Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 21 Dec 2002 02:36:52 -0800 (PST)
From:      Serguei Tzukanov <tzukanov@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 22585 for review
Message-ID:  <200212211036.gBLAaqwF009159@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=22585

Change 22585 by tzukanov@tzukanov_antares on 2002/12/21 02:35:54

	Random fixes. exit() syscall hang still unresolved.

Affected files ...

.. //depot/projects/s390/lib/libc/s390/gen/Makefile.inc#2 edit
.. //depot/projects/s390/lib/libc/s390/gen/getcontext.S#2 edit
.. //depot/projects/s390/lib/libc/s390/gen/infinity.c#2 edit
.. //depot/projects/s390/lib/libc/s390/gen/signalcontext.c#1 add
.. //depot/projects/s390/lib/libc/s390/sys/Makefile.inc#2 edit
.. //depot/projects/s390/sys/dev/md/md.c#5 edit
.. //depot/projects/s390/sys/s390/conf/GENERIC#4 edit
.. //depot/projects/s390/sys/s390/s390/autoconf.c#2 edit
.. //depot/projects/s390/sys/s390/s390/locore.S#2 edit
.. //depot/projects/s390/sys/s390/s390/machdep.c#4 edit
.. //depot/projects/s390/sys/s390/s390/pmap.c#4 edit
.. //depot/projects/s390/sys/s390/s390/trap.c#3 edit
.. //depot/projects/s390/sys/s390/s390/vm_machdep.c#3 edit
.. //depot/projects/s390/sys/sys/param.h#5 edit

Differences ...

==== //depot/projects/s390/lib/libc/s390/gen/Makefile.inc#2 (text+ko) ====

@@ -1,5 +1,5 @@
 # $FreeBSD: src/lib/libc/s390/gen/Makefile.inc,v 1.0 2002/07/06 06:45:32 tzukanov Exp $
 
-SRCS+=	_ctx_start.S flt_rounds.S getcontext.S fabs.S frexp.S \
+SRCS+=	_ctx_start.S flt_rounds.S fabs.S frexp.S \
 	infinity.c isinf.S ldexp.S makecontext.c modf.S \
-	setjmp.S swapcontext.c
+	setjmp.S signalcontext.c

==== //depot/projects/s390/lib/libc/s390/gen/getcontext.S#2 (text+ko) ====

@@ -13,11 +13,13 @@
 	.weak	setcontext
 	.set	setcontext, __setcontext
 ENTRY(__setcontext)
+	lhi	%r2,	-1
 	br	%r14
 
 /* int getcontext(ucontext_t *ucp) */
 	.weak	getcontext
 	.set	getcontext, __getcontext
 ENTRY(__getcontext)
+	lhi	%r2,	-1
 	br	%r14
 

==== //depot/projects/s390/lib/libc/s390/gen/infinity.c#2 (text+ko) ====

@@ -1,4 +1,4 @@
 /* $FreeBSD: src/lib/libc/s390/gen/fabs.S,v 1.0 2002/03/23 02:44:18 tzukanov Exp $ */
 
 /* Bytes for +Infinity on a S/390. */
-char __infinity[] = {0x7f, 0xf0, 0, 0, 0, 0, 0, 0};
+const union __infinity_un __infinity = {{0x7f, 0xf0, 0, 0, 0, 0, 0, 0}};

==== //depot/projects/s390/lib/libc/s390/sys/Makefile.inc#2 (text+ko) ====

@@ -1,5 +1,7 @@
 # $FreeBSD: src/lib/libc/s390/sys/Makefile.inc,v 1.0 2001/11/13 06:36:43 tzukanov Exp $
 
+SRCS+=	s390_sysinfo.c
+
 MDASM=	brk.S cerror.S exect.S pipe.S ptrace.S sbrk.S setlogin.S
 
 # Don't generate default code for these syscalls:
@@ -8,3 +10,5 @@
 	pwrite.o setdomainname.o sstk.o truncate.o uname.o yield.o
 
 PSEUDO=	_getlogin.o _exit.o
+
+MAN+=	s390_sysinfo.2

==== //depot/projects/s390/sys/dev/md/md.c#5 (text+ko) ====

@@ -1146,7 +1146,7 @@
 md_takeroot(void *junk)
 {
 	if (mdrootready)
-		rootdevnames[0] = "ufs:/dev/md0";
+		rootdevnames[0] = "ufs:/dev/md0c";
 }
 
 SYSINIT(md_root, SI_SUB_MOUNT_ROOT, SI_ORDER_FIRST, md_takeroot, NULL);

==== //depot/projects/s390/sys/s390/conf/GENERIC#4 (text+ko) ====

@@ -34,15 +34,16 @@
 options 	INVARIANT_SUPPORT
 options 	INVARIANTS
 options 	WITNESS
-options 	WITNESS_SKIPSPIN
+#options 	WITNESS_SKIPSPIN
 #options 	DIAGNOSTIC
-#options 	DEBUG_LOCKS
+options 	DEBUG_LOCKS
 
 options 	KTR
 options 	KTR_ENTRIES=8192
 options 	KTR_COMPILE=KTR_ALL
 #options 	KTR_MASK="(KTR_PMAP|KTR_TRAP|KTR_PROC|KTR_SIG|KTR_VM|KTR_SYSC|KTR_VOP|KTR_SMP)"
-options 	KTR_MASK=0
+#options 	KTR_MASK="(KTR_PMAP|KTR_SIG|KTR_PROC)"
+options 	KTR_MASK=KTR_PROC
 options 	KTR_CPUMASK=0x3
 options 	KTR_VERBOSE
 
@@ -57,7 +58,7 @@
 options 	COMPAT_43		# Compatible with BSD 4.3
 options		COMPAT_FREEBSD4
 options 	MD_ROOT			# MD is potential root device
-options 	MD_ROOT_SIZE=2048
+options 	MD_ROOT_SIZE=4096
 
 #device		hhc			# Debug feature
 device		hmcsc			# HMC system console

==== //depot/projects/s390/sys/s390/s390/autoconf.c#2 (text+ko) ====

@@ -27,4 +27,4 @@
 	cold = 0;
 }
 
-SYSINIT(configure, SI_SUB_CONFIGURE, SI_ORDER_ANY, configure, NULL);
+SYSINIT(configure, SI_SUB_CONFIGURE, SI_ORDER_THIRD, configure, NULL);

==== //depot/projects/s390/sys/s390/s390/locore.S#2 (text+ko) ====

@@ -117,9 +117,10 @@
 	.align	8
 	.globl	sigcode
 sigcode:
+	.long	0
 	basr	%r14,	%r5
 	lhi	%r0,	SYSCALLNUM(sigreturn)
 	svc	0
-2:	j	2b
+	/* not reached */
 	.align	8
 .Lesigcode:

==== //depot/projects/s390/sys/s390/s390/machdep.c#4 (text+ko) ====


==== //depot/projects/s390/sys/s390/s390/pmap.c#4 (text+ko) ====

@@ -453,9 +453,7 @@
 	CTR2(KTR_PMAP, "pmap_page_lookup: object = %p, pindex = %u", object, pindex);
 
 	do {
-		do {
-			m = vm_page_lookup(object, pindex);
-		} while (m && vm_page_sleep_busy(m, FALSE, "pmplu"));
+		m = vm_page_lookup(object, pindex);
 		if (m != NULL) {
 			vm_page_lock_queues();
 			if (vm_page_sleep_if_busy(m, FALSE, "pmplu"))
@@ -482,7 +480,9 @@
 		    (pmap->pm_ptphint->pindex == pindex)) {
 			mpte = pmap->pm_ptphint;
 		} else {
-			mpte = pmap_page_lookup(pmap->pm_pteobj, pindex);
+			while ((mpte = vm_page_lookup(pmap->pm_pteobj, pindex)) != NULL &&
+			       vm_page_sleep_if_busy(mpte, FALSE, "pulook"))
+				vm_page_lock_queues();
 			pmap->pm_ptphint = mpte;
 		}
 		KASSERT(mpte != NULL, ("pmap_unuse_ptp: mpte == NULL"));
@@ -843,9 +843,9 @@
 
 	CTR1(KTR_PMAP, "pmap_dispose_thread: td = %p", td);
 
+	pages = td->td_kstack_pages;
 	ksobj = td->td_kstack_obj;
 	ks = td->td_kstack;
-	pages = td->td_kstack_pages;
 	pmap_qremove(ks, pages);
 	for (i = 0; i < pages; i++) {
 		m = vm_page_lookup(ksobj, i);
@@ -1161,6 +1161,7 @@
 		panic("pmap_new_thread: kstack allocation failed");
 #endif
 	td->td_kstack = ks;
+	td->td_kstack_pages = pages;
 
 	for (i = 0; i < pages; i++) {
 		m = vm_page_grab(ksobj, i, VM_ALLOC_NORMAL |

==== //depot/projects/s390/sys/s390/s390/trap.c#3 (text+ko) ====

@@ -466,9 +466,11 @@
 		/* not reached */
 	}
 
+#if 0
 	/* Translate signal for emulators. */
-	if (p->p_sysent->sv_transtrap)
-		signo = p->p_sysent->sv_transtrap(signo, code);
+	if (*p->p_sysent->sv_transtrap)
+		signo = (*p->p_sysent->sv_transtrap)(signo, code);
+#endif
 
 	/* Dispose signal for process. */
 	trapsignal(p, signo, sigcode);

==== //depot/projects/s390/sys/s390/s390/vm_machdep.c#3 (text+ko) ====


==== //depot/projects/s390/sys/sys/param.h#5 (text+ko) ====

@@ -297,7 +297,7 @@
  * Constraints: PAGE_SIZE <= MAXALLOCSAVE <= 2 ** (MINBUCKET + 14), and
  * MAXALLOCSIZE must be a power of two.
  */
-#if defined(__alpha__) || defined(__ia64__) || defined(__sparc64__)
+#if defined(__alpha__) || defined(__ia64__) || defined(__sparc64__) || defined(__s390x__)
 #define MINBUCKET	5		/* 5 => min allocation of 32 bytes */
 #else
 #define MINBUCKET	4		/* 4 => min allocation of 16 bytes */

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe p4-projects" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200212211036.gBLAaqwF009159>