Date: Thu, 14 Apr 2005 18:55:39 GMT From: John Baldwin <jhb@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 75191 for review Message-ID: <200504141855.j3EItdVf085171@repoman.freebsd.org>
index | next in thread | raw e-mail
http://perforce.freebsd.org/chv.cgi?CH=75191 Change 75191 by jhb@jhb_slimer on 2005/04/14 18:55:16 IFC @75190. Affected files ... .. //depot/projects/smpng/sys/alpha/alpha/interrupt.c#34 integrate .. //depot/projects/smpng/sys/alpha/alpha/trap.c#58 integrate .. //depot/projects/smpng/sys/amd64/amd64/intr_machdep.c#11 integrate .. //depot/projects/smpng/sys/amd64/amd64/local_apic.c#13 integrate .. //depot/projects/smpng/sys/amd64/amd64/machdep.c#39 integrate .. //depot/projects/smpng/sys/amd64/amd64/mp_machdep.c#19 integrate .. //depot/projects/smpng/sys/amd64/amd64/support.S#12 integrate .. //depot/projects/smpng/sys/amd64/amd64/sys_machdep.c#7 integrate .. //depot/projects/smpng/sys/amd64/amd64/trap.c#24 integrate .. //depot/projects/smpng/sys/amd64/conf/GENERIC#31 integrate .. //depot/projects/smpng/sys/amd64/conf/NOTES#14 integrate .. //depot/projects/smpng/sys/amd64/ia32/ia32_syscall.c#9 integrate .. //depot/projects/smpng/sys/amd64/include/asm.h#7 integrate .. //depot/projects/smpng/sys/amd64/include/ieeefp.h#7 integrate .. //depot/projects/smpng/sys/amd64/include/sysarch.h#6 integrate .. //depot/projects/smpng/sys/amd64/include/tss.h#4 integrate .. //depot/projects/smpng/sys/arm/arm/pmap.c#15 integrate .. //depot/projects/smpng/sys/arm/arm/support.S#8 integrate .. //depot/projects/smpng/sys/arm/arm/trap.c#10 integrate .. //depot/projects/smpng/sys/arm/arm/undefined.c#7 integrate .. //depot/projects/smpng/sys/arm/include/asmacros.h#4 integrate .. //depot/projects/smpng/sys/arm/include/atomic.h#9 integrate .. //depot/projects/smpng/sys/arm/include/pmap.h#9 integrate .. //depot/projects/smpng/sys/arm/sa11x0/sa11x0_io.c#5 integrate .. //depot/projects/smpng/sys/arm/xscale/i80321/iq31244_machdep.c#9 integrate .. //depot/projects/smpng/sys/arm/xscale/i80321/obio_space.c#3 integrate .. //depot/projects/smpng/sys/boot/i386/libi386/vidconsole.c#5 integrate .. //depot/projects/smpng/sys/boot/pc98/libpc98/vidconsole.c#6 integrate .. //depot/projects/smpng/sys/cam/scsi/scsi_all.c#23 integrate .. //depot/projects/smpng/sys/cam/scsi/scsi_da.c#57 integrate .. //depot/projects/smpng/sys/cam/scsi/scsi_sa.c#23 integrate .. //depot/projects/smpng/sys/coda/coda_vnops.c#24 integrate .. //depot/projects/smpng/sys/compat/ia32/ia32_signal.h#7 integrate .. //depot/projects/smpng/sys/compat/linux/linux_file.c#26 integrate .. //depot/projects/smpng/sys/compat/linux/linux_getcwd.c#17 integrate .. //depot/projects/smpng/sys/compat/linux/linux_ioctl.c#39 integrate .. //depot/projects/smpng/sys/compat/ndis/hal_var.h#8 integrate .. //depot/projects/smpng/sys/compat/ndis/kern_ndis.c#26 integrate .. //depot/projects/smpng/sys/compat/ndis/kern_windrv.c#3 integrate .. //depot/projects/smpng/sys/compat/ndis/ndis_var.h#20 integrate .. //depot/projects/smpng/sys/compat/ndis/ntoskrnl_var.h#16 integrate .. //depot/projects/smpng/sys/compat/ndis/pe_var.h#9 integrate .. //depot/projects/smpng/sys/compat/ndis/subr_hal.c#14 integrate .. //depot/projects/smpng/sys/compat/ndis/subr_ndis.c#27 integrate .. //depot/projects/smpng/sys/compat/ndis/subr_ntoskrnl.c#27 integrate .. //depot/projects/smpng/sys/compat/ndis/subr_usbd.c#2 integrate .. //depot/projects/smpng/sys/compat/ndis/winx32_wrap.S#1 branch .. //depot/projects/smpng/sys/conf/Makefile.alpha#24 integrate .. //depot/projects/smpng/sys/conf/Makefile.amd64#10 integrate .. //depot/projects/smpng/sys/conf/Makefile.arm#8 integrate .. //depot/projects/smpng/sys/conf/Makefile.i386#22 integrate .. //depot/projects/smpng/sys/conf/Makefile.ia64#29 integrate .. //depot/projects/smpng/sys/conf/Makefile.pc98#21 integrate .. //depot/projects/smpng/sys/conf/Makefile.powerpc#29 integrate .. //depot/projects/smpng/sys/conf/Makefile.sparc64#25 integrate .. //depot/projects/smpng/sys/conf/files#139 integrate .. //depot/projects/smpng/sys/conf/files.arm#5 integrate .. //depot/projects/smpng/sys/conf/files.i386#81 integrate .. //depot/projects/smpng/sys/conf/kern.pre.mk#46 integrate .. //depot/projects/smpng/sys/conf/kmod.mk#46 integrate .. //depot/projects/smpng/sys/conf/options.i386#46 integrate .. //depot/projects/smpng/sys/contrib/pf/net/pf.c#16 integrate .. //depot/projects/smpng/sys/ddb/db_print.c#5 integrate .. //depot/projects/smpng/sys/ddb/db_run.c#10 integrate .. //depot/projects/smpng/sys/dev/acpica/acpi.c#83 integrate .. //depot/projects/smpng/sys/dev/acpica/acpi_cpu.c#33 integrate .. //depot/projects/smpng/sys/dev/acpica/acpi_ec.c#37 integrate .. //depot/projects/smpng/sys/dev/acpica/acpi_perf.c#5 integrate .. //depot/projects/smpng/sys/dev/acpica/acpi_throttle.c#4 integrate .. //depot/projects/smpng/sys/dev/acpica/acpivar.h#56 integrate .. //depot/projects/smpng/sys/dev/aic/aic_cbus.c#5 integrate .. //depot/projects/smpng/sys/dev/ata/ata-all.c#68 integrate .. //depot/projects/smpng/sys/dev/ata/ata-all.h#35 integrate .. //depot/projects/smpng/sys/dev/ata/ata-card.c#25 integrate .. //depot/projects/smpng/sys/dev/ata/ata-cbus.c#14 integrate .. //depot/projects/smpng/sys/dev/ata/ata-chipset.c#51 integrate .. //depot/projects/smpng/sys/dev/ata/ata-dma.c#43 integrate .. //depot/projects/smpng/sys/dev/ata/ata-isa.c#20 integrate .. //depot/projects/smpng/sys/dev/ata/ata-lowlevel.c#27 integrate .. //depot/projects/smpng/sys/dev/ata/ata-pci.c#54 integrate .. //depot/projects/smpng/sys/dev/ata/ata-pci.h#29 integrate .. //depot/projects/smpng/sys/dev/ata/ata-raid.c#33 integrate .. //depot/projects/smpng/sys/dev/ata/ata-raid.h#18 integrate .. //depot/projects/smpng/sys/dev/ata/atapi-cam.c#23 integrate .. //depot/projects/smpng/sys/dev/ath/if_ath.c#26 integrate .. //depot/projects/smpng/sys/dev/ath/if_athvar.h#15 integrate .. //depot/projects/smpng/sys/dev/dpt/dpt_pci.c#10 integrate .. //depot/projects/smpng/sys/dev/ed/if_ed98.h#3 integrate .. //depot/projects/smpng/sys/dev/ep/if_ep.c#19 integrate .. //depot/projects/smpng/sys/dev/ida/ida.c#18 integrate .. //depot/projects/smpng/sys/dev/ida/ida_eisa.c#11 integrate .. //depot/projects/smpng/sys/dev/ida/ida_pci.c#13 integrate .. //depot/projects/smpng/sys/dev/ida/idareg.h#5 integrate .. //depot/projects/smpng/sys/dev/ida/idavar.h#8 integrate .. //depot/projects/smpng/sys/dev/if_ndis/if_ndis.c#27 integrate .. //depot/projects/smpng/sys/dev/kbd/atkbdc.c#8 integrate .. //depot/projects/smpng/sys/dev/mse/mse.c#4 integrate .. //depot/projects/smpng/sys/dev/mse/mse_cbus.c#4 integrate .. //depot/projects/smpng/sys/dev/mse/mse_isa.c#4 integrate .. //depot/projects/smpng/sys/dev/pccard/pccard.c#34 integrate .. //depot/projects/smpng/sys/dev/pccard/pccardvar.h#20 integrate .. //depot/projects/smpng/sys/dev/pccbb/pccbb_pci.c#6 integrate .. //depot/projects/smpng/sys/dev/pci/pci.c#56 integrate .. //depot/projects/smpng/sys/dev/pci/pci_user.c#15 integrate .. //depot/projects/smpng/sys/dev/pci/pcib_if.m#3 integrate .. //depot/projects/smpng/sys/dev/ppbus/pps.c#18 integrate .. //depot/projects/smpng/sys/dev/ppc/ppc.c#5 integrate .. //depot/projects/smpng/sys/dev/sound/pci/es137x.c#16 integrate .. //depot/projects/smpng/sys/dev/sound/pcm/ac97.c#25 integrate .. //depot/projects/smpng/sys/dev/sound/usb/uaudio_pcm.c#9 integrate .. //depot/projects/smpng/sys/dev/twa/tw_cl.h#1 branch .. //depot/projects/smpng/sys/dev/twa/tw_cl_externs.h#1 branch .. //depot/projects/smpng/sys/dev/twa/tw_cl_fwif.h#1 branch .. //depot/projects/smpng/sys/dev/twa/tw_cl_fwimg.c#1 branch .. //depot/projects/smpng/sys/dev/twa/tw_cl_init.c#1 branch .. //depot/projects/smpng/sys/dev/twa/tw_cl_intr.c#1 branch .. //depot/projects/smpng/sys/dev/twa/tw_cl_io.c#1 branch .. //depot/projects/smpng/sys/dev/twa/tw_cl_ioctl.h#1 branch .. //depot/projects/smpng/sys/dev/twa/tw_cl_misc.c#1 branch .. //depot/projects/smpng/sys/dev/twa/tw_cl_share.h#1 branch .. //depot/projects/smpng/sys/dev/twa/tw_osl.h#1 branch .. //depot/projects/smpng/sys/dev/twa/tw_osl_cam.c#1 branch .. //depot/projects/smpng/sys/dev/twa/tw_osl_externs.h#1 branch .. //depot/projects/smpng/sys/dev/twa/tw_osl_freebsd.c#1 branch .. //depot/projects/smpng/sys/dev/twa/tw_osl_includes.h#1 branch .. //depot/projects/smpng/sys/dev/twa/tw_osl_ioctl.h#1 branch .. //depot/projects/smpng/sys/dev/twa/tw_osl_share.h#1 branch .. //depot/projects/smpng/sys/dev/twa/tw_osl_types.h#1 branch .. //depot/projects/smpng/sys/dev/twa/twa.c#4 delete .. //depot/projects/smpng/sys/dev/twa/twa.h#6 delete .. //depot/projects/smpng/sys/dev/twa/twa_cam.c#5 delete .. //depot/projects/smpng/sys/dev/twa/twa_externs.h#3 delete .. //depot/projects/smpng/sys/dev/twa/twa_freebsd.c#8 delete .. //depot/projects/smpng/sys/dev/twa/twa_fwimg.c#3 delete .. //depot/projects/smpng/sys/dev/twa/twa_globals.c#4 delete .. //depot/projects/smpng/sys/dev/twa/twa_includes.h#3 delete .. //depot/projects/smpng/sys/dev/twa/twa_ioctl.h#3 delete .. //depot/projects/smpng/sys/dev/twa/twa_reg.h#4 delete .. //depot/projects/smpng/sys/dev/usb/ucom.c#24 integrate .. //depot/projects/smpng/sys/dev/usb/uftdi.c#17 integrate .. //depot/projects/smpng/sys/dev/usb/uplcom.c#19 integrate .. //depot/projects/smpng/sys/dev/usb/usbdevs#74 integrate .. //depot/projects/smpng/sys/dev/wi/if_wi.c#71 integrate .. //depot/projects/smpng/sys/fs/devfs/devfs_vnops.c#44 integrate .. //depot/projects/smpng/sys/fs/hpfs/hpfs_vnops.c#29 integrate .. //depot/projects/smpng/sys/fs/msdosfs/denode.h#11 integrate .. //depot/projects/smpng/sys/fs/msdosfs/msdosfs_denode.c#23 integrate .. //depot/projects/smpng/sys/fs/msdosfs/msdosfs_lookup.c#10 integrate .. //depot/projects/smpng/sys/fs/nullfs/null_subr.c#13 integrate .. //depot/projects/smpng/sys/fs/nullfs/null_vfsops.c#19 integrate .. //depot/projects/smpng/sys/fs/nwfs/nwfs_vnops.c#15 integrate .. //depot/projects/smpng/sys/fs/pseudofs/pseudofs_vnops.c#37 integrate .. //depot/projects/smpng/sys/fs/smbfs/smbfs_vnops.c#34 integrate .. //depot/projects/smpng/sys/fs/udf/ecma167-udf.h#4 integrate .. //depot/projects/smpng/sys/fs/udf/udf_vnops.c#28 integrate .. //depot/projects/smpng/sys/fs/unionfs/union_vnops.c#28 integrate .. //depot/projects/smpng/sys/geom/geom_ctl.c#22 integrate .. //depot/projects/smpng/sys/geom/geom_sunlabel.c#26 integrate .. //depot/projects/smpng/sys/gnu/ext2fs/ext2_lookup.c#17 integrate .. //depot/projects/smpng/sys/i386/acpica/madt.c#12 integrate .. //depot/projects/smpng/sys/i386/bios/apm.c#11 integrate .. //depot/projects/smpng/sys/i386/cpufreq/est.c#4 integrate .. //depot/projects/smpng/sys/i386/cpufreq/p4tcc.c#2 integrate .. //depot/projects/smpng/sys/i386/i386/genassym.c#31 integrate .. //depot/projects/smpng/sys/i386/i386/intr_machdep.c#14 integrate .. //depot/projects/smpng/sys/i386/i386/io_apic.c#11 integrate .. //depot/projects/smpng/sys/i386/i386/local_apic.c#28 integrate .. //depot/projects/smpng/sys/i386/i386/machdep.c#92 integrate .. //depot/projects/smpng/sys/i386/i386/mp_machdep.c#81 integrate .. //depot/projects/smpng/sys/i386/i386/mptable.c#16 integrate .. //depot/projects/smpng/sys/i386/i386/swtch.s#25 integrate .. //depot/projects/smpng/sys/i386/i386/sys_machdep.c#40 integrate .. //depot/projects/smpng/sys/i386/i386/trap.c#75 integrate .. //depot/projects/smpng/sys/i386/i386/vm86bios.s#6 integrate .. //depot/projects/smpng/sys/i386/i386/vm_machdep.c#65 integrate .. //depot/projects/smpng/sys/i386/include/apicvar.h#14 integrate .. //depot/projects/smpng/sys/i386/include/clock.h#11 integrate .. //depot/projects/smpng/sys/i386/include/pc/display.h#3 integrate .. //depot/projects/smpng/sys/i386/include/pcb.h#13 integrate .. //depot/projects/smpng/sys/i386/include/pcpu.h#13 integrate .. //depot/projects/smpng/sys/i386/include/segments.h#10 integrate .. //depot/projects/smpng/sys/i386/include/sysarch.h#10 integrate .. //depot/projects/smpng/sys/i386/isa/clock.c#41 integrate .. //depot/projects/smpng/sys/i386/linux/linux.h#9 integrate .. //depot/projects/smpng/sys/i386/pci/pci_pir.c#8 integrate .. //depot/projects/smpng/sys/i4b/layer1/isic/i4b_isic.h#3 integrate .. //depot/projects/smpng/sys/ia64/ia32/ia32_trap.c#4 integrate .. //depot/projects/smpng/sys/ia64/ia64/interrupt.c#29 integrate .. //depot/projects/smpng/sys/ia64/ia64/trap.c#73 integrate .. //depot/projects/smpng/sys/isa/isahint.c#5 integrate .. //depot/projects/smpng/sys/isa/isavar.h#9 integrate .. //depot/projects/smpng/sys/isofs/cd9660/cd9660_lookup.c#13 integrate .. //depot/projects/smpng/sys/kern/kern_cpu.c#4 integrate .. //depot/projects/smpng/sys/kern/kern_intr.c#67 integrate .. //depot/projects/smpng/sys/kern/kern_lock.c#41 integrate .. //depot/projects/smpng/sys/kern/kern_malloc.c#34 integrate .. //depot/projects/smpng/sys/kern/kern_mutex.c#98 integrate .. //depot/projects/smpng/sys/kern/kern_shutdown.c#57 integrate .. //depot/projects/smpng/sys/kern/kern_sig.c#106 integrate .. //depot/projects/smpng/sys/kern/kern_switch.c#57 integrate .. //depot/projects/smpng/sys/kern/kern_synch.c#90 integrate .. //depot/projects/smpng/sys/kern/sched_4bsd.c#48 integrate .. //depot/projects/smpng/sys/kern/sched_ule.c#55 integrate .. //depot/projects/smpng/sys/kern/subr_bus.c#51 integrate .. //depot/projects/smpng/sys/kern/subr_prf.c#38 integrate .. //depot/projects/smpng/sys/kern/subr_rman.c#20 integrate .. //depot/projects/smpng/sys/kern/subr_sleepqueue.c#15 integrate .. //depot/projects/smpng/sys/kern/subr_witness.c#130 integrate .. //depot/projects/smpng/sys/kern/tty.c#59 integrate .. //depot/projects/smpng/sys/kern/uipc_usrreq.c#47 integrate .. //depot/projects/smpng/sys/kern/vfs_cache.c#27 integrate .. //depot/projects/smpng/sys/kern/vfs_hash.c#2 integrate .. //depot/projects/smpng/sys/kern/vfs_lookup.c#28 integrate .. //depot/projects/smpng/sys/kern/vfs_subr.c#101 integrate .. //depot/projects/smpng/sys/kern/vfs_syscalls.c#87 integrate .. //depot/projects/smpng/sys/kern/vfs_vnops.c#62 integrate .. //depot/projects/smpng/sys/kern/vnode_if.src#25 integrate .. //depot/projects/smpng/sys/modules/Makefile#95 integrate .. //depot/projects/smpng/sys/modules/ndis/Makefile#5 integrate .. //depot/projects/smpng/sys/modules/twa/Makefile#2 integrate .. //depot/projects/smpng/sys/net/if_tap.c#34 integrate .. //depot/projects/smpng/sys/net/iso88025.h#6 integrate .. //depot/projects/smpng/sys/net80211/ieee80211_crypto.c#5 integrate .. //depot/projects/smpng/sys/net80211/ieee80211_crypto.h#5 integrate .. //depot/projects/smpng/sys/net80211/ieee80211_ioctl.c#15 integrate .. //depot/projects/smpng/sys/netgraph/bluetooth/common/ng_bluetooth.c#6 integrate .. //depot/projects/smpng/sys/netgraph/bluetooth/drivers/bt3c/ng_bt3c_pccard.c#9 integrate .. //depot/projects/smpng/sys/netgraph/bluetooth/socket/ng_btsocket.c#11 integrate .. //depot/projects/smpng/sys/netgraph/bluetooth/socket/ng_btsocket_rfcomm.c#10 integrate .. //depot/projects/smpng/sys/netgraph/netflow/netflow.c#7 integrate .. //depot/projects/smpng/sys/netgraph/ng_cisco.c#13 integrate .. //depot/projects/smpng/sys/netinet/in_pcb.c#55 integrate .. //depot/projects/smpng/sys/netinet/ip_dummynet.c#37 integrate .. //depot/projects/smpng/sys/netinet/ip_fw_pfil.c#12 integrate .. //depot/projects/smpng/sys/netinet/ip_input.c#66 integrate .. //depot/projects/smpng/sys/netinet/tcp_input.c#69 integrate .. //depot/projects/smpng/sys/netinet/tcp_sack.c#8 integrate .. //depot/projects/smpng/sys/netinet/tcp_seq.h#10 integrate .. //depot/projects/smpng/sys/netinet/tcp_subr.c#66 integrate .. //depot/projects/smpng/sys/netinet6/icmp6.c#28 integrate .. //depot/projects/smpng/sys/netipx/README#5 integrate .. //depot/projects/smpng/sys/netipx/ipx_input.c#15 integrate .. //depot/projects/smpng/sys/nfs4client/nfs4_vnops.c#17 integrate .. //depot/projects/smpng/sys/nfsclient/nfs_vnops.c#53 integrate .. //depot/projects/smpng/sys/pc98/conf/NOTES#36 integrate .. //depot/projects/smpng/sys/pc98/i386/machdep.c#81 integrate .. //depot/projects/smpng/sys/pc98/include/apicreg.h#1 branch .. //depot/projects/smpng/sys/pc98/include/apicvar.h#1 branch .. //depot/projects/smpng/sys/pc98/include/bus_memio.h#2 integrate .. //depot/projects/smpng/sys/pc98/include/bus_pio.h#2 integrate .. //depot/projects/smpng/sys/pc98/include/clock.h#2 integrate .. //depot/projects/smpng/sys/pc98/include/ioctl_bt848.h#1 branch .. //depot/projects/smpng/sys/pc98/include/ioctl_meteor.h#1 branch .. //depot/projects/smpng/sys/pc98/include/pc/display.h#2 integrate .. //depot/projects/smpng/sys/pc98/include/pcaudio.h#2 delete .. //depot/projects/smpng/sys/pc98/include/pcaudioio.h#1 branch .. //depot/projects/smpng/sys/pc98/include/pcvt_ioctl.h#1 branch .. //depot/projects/smpng/sys/pc98/include/pvct_ioctl.h#2 delete .. //depot/projects/smpng/sys/pc98/include/smptests.h#1 branch .. //depot/projects/smpng/sys/pc98/pc98/isa_dma.c#9 integrate .. //depot/projects/smpng/sys/pc98/pc98/olpt.c#12 integrate .. //depot/projects/smpng/sys/pc98/pc98/scterm-sck.c#8 integrate .. //depot/projects/smpng/sys/pci/agp_amd64.c#5 integrate .. //depot/projects/smpng/sys/pci/if_pcn.c#32 integrate .. //depot/projects/smpng/sys/powerpc/powerpc/machdep.c#62 integrate .. //depot/projects/smpng/sys/powerpc/powerpc/trap.c#44 integrate .. //depot/projects/smpng/sys/powerpc/psim/ata_iobus.c#11 integrate .. //depot/projects/smpng/sys/security/mac/mac_vfs.c#8 integrate .. //depot/projects/smpng/sys/security/mac_biba/mac_biba.c#32 integrate .. //depot/projects/smpng/sys/security/mac_lomac/mac_lomac.c#25 integrate .. //depot/projects/smpng/sys/security/mac_mls/mac_mls.c#30 integrate .. //depot/projects/smpng/sys/security/mac_stub/mac_stub.c#10 integrate .. //depot/projects/smpng/sys/security/mac_test/mac_test.c#28 integrate .. //depot/projects/smpng/sys/sparc64/sparc64/machdep.c#75 integrate .. //depot/projects/smpng/sys/sparc64/sparc64/trap.c#61 integrate .. //depot/projects/smpng/sys/sys/bus.h#23 integrate .. //depot/projects/smpng/sys/sys/disklabel.h#29 integrate .. //depot/projects/smpng/sys/sys/mac.h#29 integrate .. //depot/projects/smpng/sys/sys/mac_policy.h#28 integrate .. //depot/projects/smpng/sys/sys/mouse.h#5 integrate .. //depot/projects/smpng/sys/sys/namei.h#16 integrate .. //depot/projects/smpng/sys/sys/param.h#80 integrate .. //depot/projects/smpng/sys/sys/proc.h#142 integrate .. //depot/projects/smpng/sys/sys/rman.h#12 integrate .. //depot/projects/smpng/sys/sys/socket.h#27 integrate .. //depot/projects/smpng/sys/sys/systm.h#65 integrate .. //depot/projects/smpng/sys/sys/un.h#11 integrate .. //depot/projects/smpng/sys/sys/unpcb.h#9 integrate .. //depot/projects/smpng/sys/sys/vnode.h#61 integrate .. //depot/projects/smpng/sys/tools/vnode_if.awk#12 integrate .. //depot/projects/smpng/sys/ufs/ufs/ufs_lookup.c#22 integrate .. //depot/projects/smpng/sys/vm/vm_meter.c#26 integrate .. //depot/projects/smpng/sys/vm/vm_mmap.c#54 integrate Differences ... ==== //depot/projects/smpng/sys/alpha/alpha/interrupt.c#34 (text+ko) ==== @@ -33,7 +33,7 @@ #include <sys/cdefs.h> /* RCS ID & Copyright macro defns */ /* __KERNEL_RCSID(0, "$NetBSD: interrupt.c,v 1.23 1998/02/24 07:38:01 thorpej Exp $");*/ -__FBSDID("$FreeBSD: src/sys/alpha/alpha/interrupt.c,v 1.84 2005/01/05 20:05:49 imp Exp $"); +__FBSDID("$FreeBSD: src/sys/alpha/alpha/interrupt.c,v 1.86 2005/04/12 23:18:53 jhb Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -436,7 +436,7 @@ critical_enter(); ih->ih_handler(ih->ih_argument); /* XXX */ - curthread->td_pflags &= ~TDP_OWEPREEMPT; + curthread->td_owepreempt = 0; critical_exit(); return; } ==== //depot/projects/smpng/sys/alpha/alpha/trap.c#58 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/alpha/alpha/trap.c,v 1.122 2005/01/05 20:05:49 imp Exp $"); +__FBSDID("$FreeBSD: src/sys/alpha/alpha/trap.c,v 1.123 2005/04/12 23:18:53 jhb Exp $"); /* #include "opt_fix_unaligned_vax_fp.h" */ #include "opt_ddb.h" ==== //depot/projects/smpng/sys/amd64/amd64/intr_machdep.c#11 (text+ko) ==== @@ -26,7 +26,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/amd64/amd64/intr_machdep.c,v 1.13 2005/01/21 06:01:19 peter Exp $ + * $FreeBSD: src/sys/amd64/amd64/intr_machdep.c,v 1.14 2005/04/12 23:18:53 jhb Exp $ */ /* ==== //depot/projects/smpng/sys/amd64/amd64/local_apic.c#13 (text+ko) ==== @@ -32,7 +32,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/amd64/amd64/local_apic.c,v 1.13 2005/03/11 22:12:38 peter Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/local_apic.c,v 1.14 2005/04/14 05:56:17 jhb Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -335,10 +335,6 @@ if (lapic == NULL) return (0); - /* If we've only got one CPU, then use the RTC and ISA timer instead. */ - if (mp_ncpus == 1) - return (0); - /* Start off with a divisor of 2 (power on reset default). */ lapic_timer_divisor = 2; ==== //depot/projects/smpng/sys/amd64/amd64/machdep.c#39 (text+ko) ==== @@ -39,7 +39,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.633 2005/04/04 21:53:52 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.634 2005/04/06 01:05:36 cperciva Exp $"); #include "opt_atalk.h" #include "opt_atpic.h" @@ -1251,6 +1251,9 @@ /* doublefault stack space, runs on ist1 */ common_tss[0].tss_ist1 = (long)&dblfault_stack[sizeof(dblfault_stack)]; + /* Set the IO permission bitmap (empty due to tss seg limit) */ + common_tss[0].tss_iobase = sizeof(struct amd64tss); + gsel_tss = GSEL(GPROC0_SEL, SEL_KPL); ltr(gsel_tss); ==== //depot/projects/smpng/sys/amd64/amd64/mp_machdep.c#19 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/amd64/amd64/mp_machdep.c,v 1.251 2005/04/04 21:53:52 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/mp_machdep.c,v 1.252 2005/04/06 01:05:36 cperciva Exp $"); #include "opt_cpu.h" #include "opt_kstack_pages.h" @@ -379,6 +379,7 @@ /* Init tss */ common_tss[cpu] = common_tss[0]; common_tss[cpu].tss_rsp0 = 0; /* not used until after switch */ + common_tss[cpu].tss_iobase = sizeof(struct amd64tss); gdt_segs[GPROC0_SEL].ssd_base = (long) &common_tss[cpu]; ssdtosyssd(&gdt_segs[GPROC0_SEL], ==== //depot/projects/smpng/sys/amd64/amd64/support.S#12 (text+ko) ==== @@ -27,7 +27,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/amd64/amd64/support.S,v 1.113 2004/07/10 22:39:17 marcel Exp $ + * $FreeBSD: src/sys/amd64/amd64/support.S,v 1.114 2005/04/10 18:12:07 alc Exp $ */ #include "opt_ddb.h" @@ -86,8 +86,6 @@ ret ENTRY(bcmp) - xorq %rax,%rax - movq %rdx,%rcx shrq $3,%rcx cld /* compare forwards */ @@ -99,10 +97,9 @@ andq $7,%rcx repe cmpsb - je 2f 1: - incq %rax -2: + setne %al + movsbl %al,%eax ret /* ==== //depot/projects/smpng/sys/amd64/amd64/sys_machdep.c#7 (text+ko) ==== @@ -31,7 +31,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/amd64/amd64/sys_machdep.c,v 1.88 2004/04/05 23:55:13 imp Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/sys_machdep.c,v 1.89 2005/04/14 16:57:58 peter Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -56,8 +56,29 @@ { int error = 0; struct pcb *pcb = curthread->td_pcb; + uint32_t i386base; switch(uap->op) { + case I386_GET_FSBASE: + i386base = pcb->pcb_fsbase; + error = copyout(&i386base, uap->parms, sizeof(i386base)); + break; + case I386_SET_FSBASE: + error = copyin(uap->parms, &i386base, sizeof(i386base)); + pcb->pcb_fsbase = i386base; + if (!error) + wrmsr(MSR_FSBASE, pcb->pcb_fsbase); + break; + case I386_GET_GSBASE: + i386base = pcb->pcb_gsbase; + error = copyout(&i386base, uap->parms, sizeof(i386base)); + break; + case I386_SET_GSBASE: + error = copyin(uap->parms, &i386base, sizeof(i386base)); + pcb->pcb_gsbase = i386base; + if (!error) + wrmsr(MSR_KGSBASE, pcb->pcb_gsbase); + break; case AMD64_GET_FSBASE: error = copyout(&pcb->pcb_fsbase, uap->parms, sizeof(pcb->pcb_fsbase)); break; ==== //depot/projects/smpng/sys/amd64/amd64/trap.c#24 (text+ko) ==== @@ -38,7 +38,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/amd64/amd64/trap.c,v 1.281 2004/08/31 07:34:53 julian Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/trap.c,v 1.282 2005/04/12 23:18:53 jhb Exp $"); /* * AMD64 Trap and System call handling ==== //depot/projects/smpng/sys/amd64/conf/GENERIC#31 (text+ko) ==== @@ -16,7 +16,7 @@ # If you are in doubt as to the purpose or necessity of a line, check first # in NOTES. # -# $FreeBSD: src/sys/amd64/conf/GENERIC,v 1.436 2005/03/31 20:55:10 obrien Exp $ +# $FreeBSD: src/sys/amd64/conf/GENERIC,v 1.437 2005/04/13 06:00:07 anholt Exp $ machine amd64 cpu HAMMER @@ -156,6 +156,8 @@ # syscons is the default console driver, resembling an SCO console device sc +device agp # support several AGP chipsets + # PCCARD (PCMCIA) support # PCMCIA and cardbus bridge support device cbb # cardbus (yenta) bridge ==== //depot/projects/smpng/sys/amd64/conf/NOTES#14 (text+ko) ==== @@ -4,7 +4,7 @@ # This file contains machine dependent kernel configuration notes. For # machine independent notes, look in /sys/conf/NOTES. # -# $FreeBSD: src/sys/amd64/conf/NOTES,v 1.27 2005/03/31 20:21:42 scottl Exp $ +# $FreeBSD: src/sys/amd64/conf/NOTES,v 1.28 2005/04/08 20:24:45 obrien Exp $ # # @@ -21,11 +21,6 @@ ##################################################################### # SMP OPTIONS: # -# The apic device enables the use of the I/O APIC for interrupt delivery. -# The apic device can be used in both UP and SMP kernels, but is required -# for SMP kernels. Thus, the apic device is not strictly an SMP option, -# but it is a prerequisite for SMP. -# # Notes: # # By default, mixed mode is used to route IRQ0 from the AT timer via ==== //depot/projects/smpng/sys/amd64/ia32/ia32_syscall.c#9 (text+ko) ==== @@ -36,7 +36,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/amd64/ia32/ia32_syscall.c,v 1.7 2004/08/31 06:12:12 julian Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/ia32/ia32_syscall.c,v 1.8 2005/04/12 23:18:53 jhb Exp $"); /* * 386 Trap and System call handling ==== //depot/projects/smpng/sys/amd64/include/asm.h#7 (text+ko) ==== @@ -30,7 +30,7 @@ * SUCH DAMAGE. * * from: @(#)DEFS.h 5.1 (Berkeley) 4/23/90 - * $FreeBSD: src/sys/amd64/include/asm.h,v 1.16 2004/06/10 22:02:26 peter Exp $ + * $FreeBSD: src/sys/amd64/include/asm.h,v 1.17 2005/04/10 20:49:21 alc Exp $ */ #ifndef _MACHINE_ASM_H_ @@ -56,8 +56,7 @@ #define CNAME(csym) csym #define HIDENAME(asmsym) .asmsym -/* XXX should use .p2align 4,0x90 for -m486. */ -#define _START_ENTRY .text; .p2align 2,0x90 +#define _START_ENTRY .text; .p2align 4,0x90 #define _ENTRY(x) _START_ENTRY; \ .globl CNAME(x); .type CNAME(x),@function; CNAME(x): ==== //depot/projects/smpng/sys/amd64/include/ieeefp.h#7 (text+ko) ==== @@ -32,7 +32,7 @@ * SUCH DAMAGE. * * from: @(#) ieeefp.h 1.0 (Berkeley) 9/23/93 - * $FreeBSD: src/sys/amd64/include/ieeefp.h,v 1.13 2005/03/15 15:53:39 das Exp $ + * $FreeBSD: src/sys/amd64/include/ieeefp.h,v 1.14 2005/04/12 23:12:00 jhb Exp $ */ /* ==== //depot/projects/smpng/sys/amd64/include/sysarch.h#6 (text+ko) ==== @@ -26,7 +26,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/amd64/include/sysarch.h,v 1.23 2004/04/05 21:25:51 imp Exp $ + * $FreeBSD: src/sys/amd64/include/sysarch.h,v 1.24 2005/04/14 16:57:58 peter Exp $ */ /* @@ -35,6 +35,11 @@ #ifndef _MACHINE_SYSARCH_H_ #define _MACHINE_SYSARCH_H_ +#define I386_GET_FSBASE 7 +#define I386_SET_FSBASE 8 +#define I386_GET_GSBASE 9 +#define I386_SET_GSBASE 10 + /* Leave space for 0-127 for to avoid translating syscalls */ #define AMD64_GET_FSBASE 128 #define AMD64_SET_FSBASE 129 ==== //depot/projects/smpng/sys/amd64/include/tss.h#4 (text+ko) ==== @@ -30,7 +30,7 @@ * SUCH DAMAGE. * * from: @(#)tss.h 5.4 (Berkeley) 1/18/91 - * $FreeBSD: src/sys/amd64/include/tss.h,v 1.16 2004/04/05 21:25:51 imp Exp $ + * $FreeBSD: src/sys/amd64/include/tss.h,v 1.17 2005/04/06 01:05:36 cperciva Exp $ */ #ifndef _MACHINE_TSS_H_ @@ -50,7 +50,6 @@ u_int64_t tss_rsp2 __packed; /* kernel stack pointer ring 2 */ u_int32_t tss_rsvd1; u_int32_t tss_rsvd2; - u_int32_t tss_rsvd3; u_int64_t tss_ist1 __packed; /* Interrupt stack table 1 */ u_int64_t tss_ist2 __packed; /* Interrupt stack table 2 */ u_int64_t tss_ist3 __packed; /* Interrupt stack table 3 */ ==== //depot/projects/smpng/sys/arm/arm/pmap.c#15 (text+ko) ==== @@ -147,7 +147,7 @@ #include "opt_vm.h" #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/arm/arm/pmap.c,v 1.26 2005/03/16 23:56:29 cognet Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/arm/pmap.c,v 1.28 2005/04/14 14:32:32 cognet Exp $"); #include <sys/param.h> #include <sys/systm.h> #include <sys/kernel.h> @@ -402,7 +402,7 @@ /* * Data for the pv entry allocation mechanism */ -#define MINPV 1024 +#define MINPV 2048 #ifndef PMAP_SHPGPERPROC #define PMAP_SHPGPERPROC 200 @@ -1205,6 +1205,18 @@ } /* + * this routine defines the region(s) of memory that should + * not be tested for the modified bit. + */ +static PMAP_INLINE int +pmap_track_modified(vm_offset_t va) +{ + if ((va < kmi.clean_sva) || (va >= kmi.clean_eva)) + return 1; + else + return 0; +} +/* * PTE_SYNC_CURRENT: * * Make sure the pte is written out to RAM. @@ -1538,7 +1550,6 @@ pm = pv->pv_pmap; oflags = pv->pv_flags; pv->pv_flags &= ~maskbits; - pmap_update(pv->pv_pmap); #if 0 pmap_acquire_pmap_lock(pm); @@ -1549,7 +1560,8 @@ ptep = &l2b->l2b_kva[l2pte_index(va)]; npte = opte = *ptep; - if (maskbits & (PVF_WRITE|PVF_MOD)) { + if (maskbits & (PVF_WRITE|PVF_MOD) && + !pmap_track_modified(pv->pv_va)) { if ((pv->pv_flags & PVF_NC)) { /* * Entry is not cacheable: @@ -1570,6 +1582,7 @@ } } else if (opte & L2_S_PROT_W) { + vm_page_dirty(pg); /* * Entry is writable/cacheable: check if pmap * is current if it is flush it, otherwise it @@ -1606,7 +1619,7 @@ } } - if (maskbits & PVF_REF) { + if (maskbits & PVF_REF && !pmap_track_modified(pv->pv_va)) { if ((pv->pv_flags & PVF_NC) == 0 && (maskbits & (PVF_WRITE|PVF_MOD)) == 0) { /* @@ -1706,6 +1719,7 @@ mtx_lock(&pg->md.pvh_mtx); #endif TAILQ_INSERT_HEAD(&pg->md.pv_list, pve, pv_list); + TAILQ_INSERT_HEAD(&pm->pm_pvlist, pve, pv_plist); pg->md.pvh_attrs |= flags & (PVF_REF | PVF_MOD); if (pm == pmap_kernel()) { if (flags & PVF_WRITE) @@ -1723,6 +1737,7 @@ #endif if (pve->pv_flags & PVF_WIRED) ++pm->pm_stats.wired_count; + vm_page_flag_set(pg, PG_REFERENCED); } /* @@ -1779,9 +1794,12 @@ { TAILQ_REMOVE(&pg->md.pv_list, pve, pv_list); + TAILQ_REMOVE(&pm->pm_pvlist, pve, pv_plist); if (pve->pv_flags & PVF_WIRED) --pm->pm_stats.wired_count; pg->md.pv_list_count--; + if (pg->md.pvh_attrs & PVF_MOD) + vm_page_dirty(pg); if (pm == pmap_kernel()) { if (pve->pv_flags & PVF_WRITE) pg->md.krw_mappings--; @@ -1792,8 +1810,18 @@ pg->md.urw_mappings--; else pg->md.uro_mappings--; - if (TAILQ_FIRST(&pg->md.pv_list) == NULL) + if (TAILQ_FIRST(&pg->md.pv_list) == NULL || + (pg->md.krw_mappings == 0 && pg->md.urw_mappings == 0)) { + pg->md.pvh_attrs &= ~PVF_MOD; + if (TAILQ_FIRST(&pg->md.pv_list) == NULL) + pg->md.pvh_attrs &= ~PVF_REF; vm_page_flag_clear(pg, PG_WRITEABLE); + } else if (pmap_track_modified(pve->pv_va)) + vm_page_dirty(pg); + if (TAILQ_FIRST(&pg->md.pv_list)) + vm_page_flag_set(pg, PG_REFERENCED); + if (pve->pv_flags & PVF_WRITE) + pmap_vac_me_harder(pg, pm, 0); } static struct pv_entry * @@ -1869,6 +1897,11 @@ pg->md.uro_mappings++; pg->md.urw_mappings--; } + if (pg->md.krw_mappings == 0 && pg->md.urw_mappings == 0) { + pg->md.pvh_attrs &= ~PVF_MOD; + vm_page_flag_clear(pg, PG_WRITEABLE); + } + pmap_vac_me_harder(pg, pm, 0); } return (oflags); @@ -2014,7 +2047,10 @@ goto out; } - pg->md.pvh_attrs |= PVF_REF | PVF_MOD; + if (pmap_track_modified(pv->pv_va)) { + pg->md.pvh_attrs |= PVF_REF | PVF_MOD; + vm_page_dirty(pg); + } pv->pv_flags |= PVF_REF | PVF_MOD; /* @@ -2038,13 +2074,16 @@ struct vm_page *pg; /* Extract the physical address of the page */ - if ((pg = PHYS_TO_VM_PAGE(pa)) == NULL) + vm_page_lock_queues(); + if ((pg = PHYS_TO_VM_PAGE(pa)) == NULL) { + vm_page_unlock_queues(); goto out; - + } /* Get the current flags for this page. */ pv = pmap_find_pv(pg, pm, va); if (pv == NULL) { + vm_page_unlock_queues(); goto out; } @@ -2055,6 +2094,7 @@ *ptep = (pte & ~L2_TYPE_MASK) | L2_S_PROTO; PTE_SYNC(ptep); rv = 1; + vm_page_unlock_queues(); } /* @@ -2236,7 +2276,7 @@ pcb->pcb_pl1vec = &pm->pm_l1->l1_kva[L1_IDX(vector_page)]; l2b = pmap_get_l2_bucket(pm, vector_page); pcb->pcb_l1vec = l2b->l2b_phys | L1_C_PROTO | - L1_C_DOM(pm->pm_domain); + L1_C_DOM(pm->pm_domain) | L1_C_DOM(PMAP_DOMAIN_KERNEL); } else pcb->pcb_pl1vec = NULL; } @@ -2486,6 +2526,7 @@ kernel_pmap->pm_active = -1; kernel_pmap->pm_domain = PMAP_DOMAIN_KERNEL; LIST_INIT(&allpmaps); + TAILQ_INIT(&kernel_pmap->pm_pvlist); LIST_INSERT_HEAD(&allpmaps, kernel_pmap, pm_list); /* @@ -2585,7 +2626,7 @@ vm_paddr_t pa; struct vm_page *pg; - pg = vm_page_alloc(NULL, 0, VM_ALLOC_NOOBJ | VM_ALLOC_SYSTEM | + pg = vm_page_alloc(NULL, 0, VM_ALLOC_NOOBJ | VM_ALLOC_ZERO | VM_ALLOC_WIRED); if (pg == NULL) return (1); @@ -2600,7 +2641,6 @@ *ptep = L2_S_PROTO | pa | cache_mode | L2_S_PROT(PTE_KERNEL, VM_PROT_READ | VM_PROT_WRITE); PTE_SYNC(ptep); - memset((void *)va, 0, PAGE_SIZE); return (0); } @@ -2691,7 +2731,7 @@ /* Distribute new L1 entry to all other L1s */ SLIST_FOREACH(l1, &l1_list, l1_link) { - pl1pd = &l1->l1_kva[L1_IDX(pmap_curmaxkvaddr)]; + pl1pd = &l1->l1_kva[L1_IDX(va)]; *pl1pd = l2b->l2b_phys | L1_C_DOM(PMAP_DOMAIN_KERNEL) | L1_C_PROTO; PTE_SYNC(pl1pd); @@ -2772,7 +2812,34 @@ void pmap_remove_pages(pmap_t pmap, vm_offset_t sva, vm_offset_t eva) { - + struct pv_entry *pv, *npv; + struct l2_bucket *l2b = NULL; + vm_page_t m; + pt_entry_t *pt; + + vm_page_lock_queues(); + for (pv = TAILQ_FIRST(&pmap->pm_pvlist); pv; pv = npv) { + if (pv->pv_va >= eva || pv->pv_va < sva) { + npv = TAILQ_NEXT(pv, pv_plist); + continue; + } + if (pv->pv_flags & PVF_WIRED) { + /* The page is wired, cannot remove it now. */ + npv = TAILQ_NEXT(pv, pv_plist); + continue; + } + pmap->pm_stats.resident_count--; + l2b = pmap_get_l2_bucket(pmap, pv->pv_va); + KASSERT(l2b != NULL, ("No L2 bucket in pmap_remove_pages")); + pt = &l2b->l2b_kva[l2pte_index(pv->pv_va)]; + m = PHYS_TO_VM_PAGE(*pt & L2_ADDR_MASK); + *pt = 0; + PTE_SYNC(pt); + npv = TAILQ_NEXT(pv, pv_plist); + pmap_nuke_pv(m, pmap, pv); + pmap_free_pv_entry(pv); + } + vm_page_unlock_queues(); cpu_idcache_wbinv_all(); cpu_tlb_flushID(); cpu_cpwait(); @@ -2852,6 +2919,8 @@ pt_entry_t *pte, opte; l2b = pmap_get_l2_bucket(pmap_kernel(), va); + if (!l2b) + return; KASSERT(l2b != NULL, ("No L2 Bucket")); pte = &l2b->l2b_kva[l2pte_index(va)]; opte = *pte; @@ -2859,9 +2928,8 @@ cpu_dcache_wbinv_range(va, PAGE_SIZE); cpu_tlb_flushD_SE(va); cpu_cpwait(); + *pte = 0; } - if (opte) - *pte = 0; } @@ -2902,8 +2970,8 @@ struct pv_entry *pv; TAILQ_FOREACH(pv, &m->md.pv_list, pv_list) - pmap_dcache_wb_range(pv->pv_pmap, pv->pv_va, PAGE_SIZE, FALSE, - (pv->pv_flags & PVF_WRITE) == 0); + pmap_dcache_wb_range(pv->pv_pmap, pv->pv_va, PAGE_SIZE, FALSE, + (pv->pv_flags & PVF_WRITE) == 0); } /* @@ -3060,12 +3128,10 @@ if (TAILQ_EMPTY(&m->md.pv_list)) return; curpm = vmspace_pmap(curproc->p_vmspace); - pmap_update(curpm); while ((pv = TAILQ_FIRST(&m->md.pv_list)) != NULL) { if (flush == FALSE && (pv->pv_pmap == curpm || pv->pv_pmap == pmap_kernel())) flush = TRUE; - pmap_update(pv->pv_pmap); l2b = pmap_get_l2_bucket(pv->pv_pmap, pv->pv_va); KASSERT(l2b != NULL, ("No l2 bucket")); ptep = &l2b->l2b_kva[l2pte_index(pv->pv_va)]; @@ -3087,7 +3153,6 @@ else pmap_tlb_flushD(curpm); } - } @@ -3121,7 +3186,6 @@ mtx_lock(&Giant); - pmap_update(pm); /* * OK, at this point, we know we're doing write-protect operation. * If the pmap is active, write-back the range. @@ -3131,6 +3195,7 @@ flush = ((eva - sva) >= (PAGE_SIZE * 4)) ? 0 : -1; flags = 0; + vm_page_lock_queues(); while (sva < eva) { next_bucket = L2_NEXT_BUCKET(sva); if (next_bucket > eva) @@ -3158,6 +3223,8 @@ f = pmap_modify_pv(pg, pm, sva, PVF_WRITE, 0); pmap_vac_me_harder(pg, pm, sva); + if (pmap_track_modified(sva)) + vm_page_dirty(pg); } else f = PVF_REF | PVF_EXEC; @@ -3185,6 +3252,7 @@ if (PV_BEEN_REFD(flags)) pmap_tlb_flushD(pm); } + vm_page_unlock_queues(); mtx_unlock(&Giant); } @@ -3209,13 +3277,12 @@ { struct l2_bucket *l2b = NULL; struct vm_page *opg; - struct pv_entry *pve; + struct pv_entry *pve = NULL; pt_entry_t *ptep, npte, opte; u_int nflags; u_int oflags; vm_paddr_t pa; - pmap_update(pmap); vm_page_lock_queues(); if (va == vector_page) { pa = systempage.pv_pa; @@ -3271,9 +3338,8 @@ nflags |= PVF_REF; - if (((prot & VM_PROT_WRITE) != 0 && - m && ((m->flags & PG_WRITEABLE) || - (m->md.pvh_attrs & PVF_MOD) != 0))) { + if (m && ((prot & VM_PROT_WRITE) != 0 || + (m->md.pvh_attrs & PVF_MOD))) { /* * This is a writable mapping, and the * page's mod state indicates it has >>> TRUNCATED FOR MAIL (1000 lines) <<<help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200504141855.j3EItdVf085171>
