Date: Sat, 16 Aug 2008 22:09:22 GMT From: Julian Elischer <julian@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 147612 for review Message-ID: <200808162209.m7GM9MGL089533@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=147612 Change 147612 by julian@julian_trafmon1 on 2008/08/16 22:08:53 IFC@147609 devel an this are now in step again Affected files ... .. //depot/projects/vimage/src/sys/cam/scsi/scsi_all.c#4 integrate .. //depot/projects/vimage/src/sys/dev/pci/pci_pci.c#9 integrate .. //depot/projects/vimage/src/sys/i386/i386/swtch.s#6 integrate .. //depot/projects/vimage/src/sys/kern/vfs_cache.c#10 integrate Differences ... ==== //depot/projects/vimage/src/sys/cam/scsi/scsi_all.c#4 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/cam/scsi/scsi_all.c,v 1.52 2008/08/07 17:25:05 jkim Exp $"); +__FBSDID("$FreeBSD: src/sys/cam/scsi/scsi_all.c,v 1.53 2008/08/16 21:26:58 ken Exp $"); #include <sys/param.h> @@ -65,7 +65,7 @@ #endif /* !_KERNEL */ /* - * This is the default number of seconds we wait for devices to settle + * This is the default number of milliseconds we wait for devices to settle * after a SCSI bus reset. */ #ifndef SCSI_DELAY ==== //depot/projects/vimage/src/sys/dev/pci/pci_pci.c#9 (text+ko) ==== @@ -29,7 +29,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/dev/pci/pci_pci.c,v 1.52 2008/08/16 20:18:40 imp Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/pci/pci_pci.c,v 1.53 2008/08/16 21:51:54 imp Exp $"); /* * PCI:PCI bridge support. @@ -464,7 +464,6 @@ } } else if (!ok) { ok = 1; /* subtractive bridge: always ok */ -#if 1 if (pcib_is_nonprefetch_open(sc)) { if (start < sc->membase && end > sc->memlimit) { start = sc->membase; @@ -477,7 +476,6 @@ end = sc->pmemlimit; } } -#endif } if (end < start) { device_printf(dev, "memory: end (%lx) < start (%lx)\n", ==== //depot/projects/vimage/src/sys/i386/i386/swtch.s#6 (text+ko) ==== @@ -29,7 +29,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/i386/i386/swtch.s,v 1.156 2007/08/22 05:06:14 jkoshy Exp $ + * $FreeBSD: src/sys/i386/i386/swtch.s,v 1.157 2008/08/16 21:38:46 kmacy Exp $ */ #include "opt_npx.h" @@ -88,7 +88,7 @@ movl 8(%esp),%ecx /* New thread */ movl TD_PCB(%ecx),%edx movl PCB_CR3(%edx),%eax - movl %eax,%cr3 /* new address space */ + LOAD_CR3(%eax) /* set bit in new pm_active */ movl TD_PROC(%ecx),%eax movl P_VMSPACE(%eax), %ebx @@ -181,10 +181,10 @@ cmpl %eax,IdlePTD /* Kernel address space? */ #endif je sw0 - movl %cr3,%ebx /* The same address space? */ + READ_CR3(%ebx) /* The same address space? */ cmpl %ebx,%eax je sw0 - movl %eax,%cr3 /* new address space */ + LOAD_CR3(%eax) /* new address space */ movl %esi,%eax movl PCPU(CPUID),%esi SETOP %eax,TD_LOCK(%edi) /* Switchout td_lock */ @@ -211,6 +211,18 @@ SETOP %esi,TD_LOCK(%edi) /* Switchout td_lock */ sw1: BLOCK_SPIN(%ecx) +#ifdef XEN + pushl %eax + pushl %ecx + pushl %edx + call xen_handle_thread_switch + popl %edx + popl %ecx + popl %eax + /* + * XXX set IOPL + */ +#else /* * At this point, we've switched address spaces and are ready * to load up the rest of the next context. @@ -259,7 +271,7 @@ movl 12(%esi), %ebx movl %eax, 8(%edi) movl %ebx, 12(%edi) - +#endif /* Restore context. */ movl PCB_EBX(%edx),%ebx movl PCB_ESP(%edx),%esp @@ -285,7 +297,7 @@ movl _default_ldt,%eax cmpl PCPU(CURRENTLDT),%eax je 2f - lldt _default_ldt + LLDT(_default_ldt) movl %eax,PCPU(CURRENTLDT) jmp 2f 1: @@ -389,7 +401,7 @@ * parent's npx state for forks by forgetting to reload. */ pushfl - cli + CLI movl PCPU(FPCURTHREAD),%eax testl %eax,%eax je 1f ==== //depot/projects/vimage/src/sys/kern/vfs_cache.c#10 (text+ko) ==== @@ -33,7 +33,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/kern/vfs_cache.c,v 1.122 2008/07/31 16:57:41 csjp Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/vfs_cache.c,v 1.123 2008/08/16 21:48:10 alfred Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -199,10 +199,12 @@ /* Scan hash tables for applicable entries */ for (ncpp = nchashtbl; n_nchash > 0; n_nchash--, ncpp++) { + CACHE_LOCK(); count = 0; LIST_FOREACH(ncp, ncpp, nc_hash) { count++; } + CACHE_UNLOCK(); error = SYSCTL_OUT(req, &count, sizeof(count)); if (error) return (error); @@ -231,9 +233,11 @@ /* Scan hash tables for applicable entries */ for (ncpp = nchashtbl; n_nchash > 0; n_nchash--, ncpp++) { count = 0; + CACHE_LOCK(); LIST_FOREACH(ncp, ncpp, nc_hash) { count++; } + CACHE_UNLOCK(); if (count) used++; if (maxlength < count)
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200808162209.m7GM9MGL089533>