PERFORCE change 38239 for review
John Baldwin
jhb at FreeBSD.org
Thu Sep 18 10:59:38 PDT 2003
http://perforce.freebsd.org/chv.cgi?CH=38239
Change 38239 by jhb at jhb_laptop on 2003/09/18 10:59:04
IFC @38237.
Affected files ...
.. //depot/projects/smpng/sys/alpha/alpha/pmap.c#52 integrate
.. //depot/projects/smpng/sys/alpha/alpha/vm_machdep.c#28 integrate
.. //depot/projects/smpng/sys/alpha/include/db_machdep.h#5 integrate
.. //depot/projects/smpng/sys/alpha/include/varargs.h#5 integrate
.. //depot/projects/smpng/sys/amd64/amd64/exception.S#5 integrate
.. //depot/projects/smpng/sys/amd64/amd64/machdep.c#12 integrate
.. //depot/projects/smpng/sys/amd64/amd64/pmap.c#12 integrate
.. //depot/projects/smpng/sys/amd64/amd64/vm_machdep.c#8 integrate
.. //depot/projects/smpng/sys/amd64/conf/GENERIC#7 integrate
.. //depot/projects/smpng/sys/amd64/include/signal.h#2 integrate
.. //depot/projects/smpng/sys/amd64/include/ucontext.h#3 integrate
.. //depot/projects/smpng/sys/amd64/include/varargs.h#2 integrate
.. //depot/projects/smpng/sys/amd64/pci/pci_bus.c#4 integrate
.. //depot/projects/smpng/sys/boot/forth/beastie.4th#3 integrate
.. //depot/projects/smpng/sys/boot/i386/libi386/comconsole.c#3 integrate
.. //depot/projects/smpng/sys/boot/i386/pxeldr/Makefile#4 integrate
.. //depot/projects/smpng/sys/boot/i386/pxeldr/pxeldr.s#3 integrate
.. //depot/projects/smpng/sys/boot/ia64/libski/acpi_stub.c#2 integrate
.. //depot/projects/smpng/sys/boot/ia64/libski/bootinfo.c#5 integrate
.. //depot/projects/smpng/sys/boot/ia64/libski/devicename.c#2 integrate
.. //depot/projects/smpng/sys/boot/ia64/libski/efi_stub.c#2 integrate
.. //depot/projects/smpng/sys/boot/ia64/libski/elf_freebsd.c#7 integrate
.. //depot/projects/smpng/sys/boot/ia64/libski/module.c#3 integrate
.. //depot/projects/smpng/sys/boot/ia64/libski/sal_stub.c#2 integrate
.. //depot/projects/smpng/sys/boot/ia64/libski/skifs.c#2 integrate
.. //depot/projects/smpng/sys/boot/ia64/libski/ssc.c#3 integrate
.. //depot/projects/smpng/sys/boot/ia64/libski/time.c#4 integrate
.. //depot/projects/smpng/sys/boot/pc98/boot2/boot.c#4 integrate
.. //depot/projects/smpng/sys/boot/pc98/boot2/disk.c#6 integrate
.. //depot/projects/smpng/sys/boot/pc98/boot2/io.c#4 integrate
.. //depot/projects/smpng/sys/boot/pc98/boot2/probe_keyboard.c#2 integrate
.. //depot/projects/smpng/sys/boot/pc98/boot2/sys.c#4 integrate
.. //depot/projects/smpng/sys/boot/pc98/boot2/table.c#2 integrate
.. //depot/projects/smpng/sys/boot/pc98/libpc98/biosdisk.c#8 integrate
.. //depot/projects/smpng/sys/boot/pc98/libpc98/biosmem.c#3 integrate
.. //depot/projects/smpng/sys/boot/pc98/libpc98/comconsole.c#2 integrate
.. //depot/projects/smpng/sys/boot/pc98/libpc98/gatea20.c#2 integrate
.. //depot/projects/smpng/sys/boot/pc98/libpc98/i386_module.c#2 integrate
.. //depot/projects/smpng/sys/boot/pc98/libpc98/time.c#2 integrate
.. //depot/projects/smpng/sys/boot/pc98/libpc98/vidconsole.c#4 integrate
.. //depot/projects/smpng/sys/boot/pc98/loader/conf.c#2 integrate
.. //depot/projects/smpng/sys/boot/pc98/loader/main.c#4 integrate
.. //depot/projects/smpng/sys/cam/cam_periph.c#12 integrate
.. //depot/projects/smpng/sys/cam/scsi/scsi_cd.c#19 integrate
.. //depot/projects/smpng/sys/cam/scsi/scsi_da.c#45 integrate
.. //depot/projects/smpng/sys/cam/scsi/scsi_sa.c#17 integrate
.. //depot/projects/smpng/sys/cam/scsi/scsi_target.c#10 integrate
.. //depot/projects/smpng/sys/coda/cnode.h#5 integrate
.. //depot/projects/smpng/sys/coda/coda.h#2 integrate
.. //depot/projects/smpng/sys/coda/coda_namecache.c#8 integrate
.. //depot/projects/smpng/sys/coda/coda_namecache.h#4 integrate
.. //depot/projects/smpng/sys/coda/coda_psdev.c#11 integrate
.. //depot/projects/smpng/sys/coda/coda_subr.c#9 integrate
.. //depot/projects/smpng/sys/coda/coda_subr.h#2 integrate
.. //depot/projects/smpng/sys/coda/coda_venus.c#7 integrate
.. //depot/projects/smpng/sys/coda/coda_venus.h#2 integrate
.. //depot/projects/smpng/sys/coda/coda_vfsops.c#13 integrate
.. //depot/projects/smpng/sys/coda/coda_vfsops.h#4 integrate
.. //depot/projects/smpng/sys/coda/coda_vnops.c#13 integrate
.. //depot/projects/smpng/sys/compat/linprocfs/linprocfs.c#32 integrate
.. //depot/projects/smpng/sys/compat/linux/linux_misc.c#41 integrate
.. //depot/projects/smpng/sys/conf/NOTES#54 integrate
.. //depot/projects/smpng/sys/conf/files#86 integrate
.. //depot/projects/smpng/sys/conf/files.alpha#25 integrate
.. //depot/projects/smpng/sys/conf/files.amd64#7 integrate
.. //depot/projects/smpng/sys/conf/files.i386#47 integrate
.. //depot/projects/smpng/sys/conf/files.ia64#33 integrate
.. //depot/projects/smpng/sys/conf/files.pc98#48 integrate
.. //depot/projects/smpng/sys/conf/files.sparc64#31 integrate
.. //depot/projects/smpng/sys/conf/kmod.mk#22 integrate
.. //depot/projects/smpng/sys/conf/ldscript.ia64#6 integrate
.. //depot/projects/smpng/sys/conf/options#61 integrate
.. //depot/projects/smpng/sys/conf/options.i386#31 integrate
.. //depot/projects/smpng/sys/conf/options.ia64#18 integrate
.. //depot/projects/smpng/sys/crypto/rijndael/rijndael-api-fst.c#5 integrate
.. //depot/projects/smpng/sys/crypto/sha2/sha2.c#6 integrate
.. //depot/projects/smpng/sys/ddb/db_ps.c#23 integrate
.. //depot/projects/smpng/sys/dev/aac/aac.c#30 integrate
.. //depot/projects/smpng/sys/dev/aac/aac_pci.c#25 integrate
.. //depot/projects/smpng/sys/dev/acpica/Osd/OsdHardware.c#11 integrate
.. //depot/projects/smpng/sys/dev/acpica/acpi.c#48 integrate
.. //depot/projects/smpng/sys/dev/acpica/acpi_acad.c#11 integrate
.. //depot/projects/smpng/sys/dev/acpica/acpi_cmbat.c#14 integrate
.. //depot/projects/smpng/sys/dev/acpica/acpi_ec.c#21 integrate
.. //depot/projects/smpng/sys/dev/acpica/acpi_pci.c#6 integrate
.. //depot/projects/smpng/sys/dev/acpica/acpi_resource.c#13 integrate
.. //depot/projects/smpng/sys/dev/acpica/acpica_support.c#7 delete
.. //depot/projects/smpng/sys/dev/acpica/acpica_support.h#2 delete
.. //depot/projects/smpng/sys/dev/acpica/acpiio.h#4 integrate
.. //depot/projects/smpng/sys/dev/acpica/acpivar.h#29 integrate
.. //depot/projects/smpng/sys/dev/acpica/madt.h#1 branch
.. //depot/projects/smpng/sys/dev/adlink/adlink.c#4 integrate
.. //depot/projects/smpng/sys/dev/advansys/adv_pci.c#6 integrate
.. //depot/projects/smpng/sys/dev/advansys/adw_pci.c#6 integrate
.. //depot/projects/smpng/sys/dev/aic7xxx/ahc_pci.c#12 integrate
.. //depot/projects/smpng/sys/dev/aic7xxx/ahd_pci.c#10 integrate
.. //depot/projects/smpng/sys/dev/aic7xxx/aic79xx.h#13 integrate
.. //depot/projects/smpng/sys/dev/aic7xxx/aic7xxx_pci.c#13 integrate
.. //depot/projects/smpng/sys/dev/amr/amr_pci.c#12 integrate
.. //depot/projects/smpng/sys/dev/an/if_an_pci.c#15 integrate
.. //depot/projects/smpng/sys/dev/asr/asr.c#20 integrate
.. //depot/projects/smpng/sys/dev/ata/ata-all.c#39 integrate
.. //depot/projects/smpng/sys/dev/ata/ata-chipset.c#18 integrate
.. //depot/projects/smpng/sys/dev/ata/ata-lowlevel.c#2 integrate
.. //depot/projects/smpng/sys/dev/ata/ata-pci.h#12 integrate
.. //depot/projects/smpng/sys/dev/ata/ata-queue.c#2 integrate
.. //depot/projects/smpng/sys/dev/ata/ata-raid.c#22 integrate
.. //depot/projects/smpng/sys/dev/ata/atapi-cam.c#12 integrate
.. //depot/projects/smpng/sys/dev/ata/atapi-cd.c#36 integrate
.. //depot/projects/smpng/sys/dev/ata/atapi-cd.h#11 integrate
.. //depot/projects/smpng/sys/dev/ath/if_ath.c#8 integrate
.. //depot/projects/smpng/sys/dev/ath/if_athioctl.h#3 integrate
.. //depot/projects/smpng/sys/dev/ath/if_athvar.h#5 integrate
.. //depot/projects/smpng/sys/dev/awi/awi_wep.c#13 integrate
.. //depot/projects/smpng/sys/dev/bfe/if_bfe.c#1 branch
.. //depot/projects/smpng/sys/dev/bfe/if_bfereg.h#1 branch
.. //depot/projects/smpng/sys/dev/bktr/bktr_os.c#16 integrate
.. //depot/projects/smpng/sys/dev/buslogic/bt_pci.c#6 integrate
.. //depot/projects/smpng/sys/dev/cardbus/cardbus_cis.c#17 integrate
.. //depot/projects/smpng/sys/dev/ciss/ciss.c#21 integrate
.. //depot/projects/smpng/sys/dev/dpt/dpt_pci.c#6 integrate
.. //depot/projects/smpng/sys/dev/drm/drmP.h#5 integrate
.. //depot/projects/smpng/sys/dev/drm/drm_context.h#5 integrate
.. //depot/projects/smpng/sys/dev/drm/drm_memory.h#7 integrate
.. //depot/projects/smpng/sys/dev/drm/radeon.h#5 integrate
.. //depot/projects/smpng/sys/dev/drm/radeon_cp.c#6 integrate
.. //depot/projects/smpng/sys/dev/drm/radeon_drm.h#5 integrate
.. //depot/projects/smpng/sys/dev/drm/radeon_drv.c#5 integrate
.. //depot/projects/smpng/sys/dev/drm/radeon_drv.h#6 integrate
.. //depot/projects/smpng/sys/dev/drm/radeon_mem.c#4 integrate
.. //depot/projects/smpng/sys/dev/drm/radeon_state.c#6 integrate
.. //depot/projects/smpng/sys/dev/drm/sis.h#1 branch
.. //depot/projects/smpng/sys/dev/drm/sis_drm.h#3 branch
.. //depot/projects/smpng/sys/dev/drm/sis_drv.c#1 branch
.. //depot/projects/smpng/sys/dev/drm/sis_drv.h#1 branch
.. //depot/projects/smpng/sys/dev/drm/sis_ds.c#1 branch
.. //depot/projects/smpng/sys/dev/drm/sis_ds.h#1 branch
.. //depot/projects/smpng/sys/dev/drm/sis_mm.c#1 branch
.. //depot/projects/smpng/sys/dev/ed/if_ed_pci.c#5 integrate
.. //depot/projects/smpng/sys/dev/ep/if_ep.c#10 integrate
.. //depot/projects/smpng/sys/dev/ep/if_ep_isa.c#6 integrate
.. //depot/projects/smpng/sys/dev/ep/if_ep_pccard.c#10 integrate
.. //depot/projects/smpng/sys/dev/exca/exca.c#10 integrate
.. //depot/projects/smpng/sys/dev/firewire/sbp.c#25 integrate
.. //depot/projects/smpng/sys/dev/fxp/if_fxp.c#45 integrate
.. //depot/projects/smpng/sys/dev/fxp/if_fxpvar.h#11 integrate
.. //depot/projects/smpng/sys/dev/gem/if_gem_pci.c#11 integrate
.. //depot/projects/smpng/sys/dev/hatm/if_hatm.c#7 integrate
.. //depot/projects/smpng/sys/dev/hea/hea_pci.c#6 integrate
.. //depot/projects/smpng/sys/dev/hifn/hifn7751.c#11 integrate
.. //depot/projects/smpng/sys/dev/hifn/hifn7751reg.h#2 integrate
.. //depot/projects/smpng/sys/dev/hme/if_hme_pci.c#9 integrate
.. //depot/projects/smpng/sys/dev/hme/if_hme_sbus.c#6 integrate
.. //depot/projects/smpng/sys/dev/ic/ns16550.h#3 integrate
.. //depot/projects/smpng/sys/dev/ichsmb/ichsmb_pci.c#6 integrate
.. //depot/projects/smpng/sys/dev/ida/ida_pci.c#7 integrate
.. //depot/projects/smpng/sys/dev/iir/iir_pci.c#9 integrate
.. //depot/projects/smpng/sys/dev/ips/ips.h#4 integrate
.. //depot/projects/smpng/sys/dev/ips/ips_pci.c#6 integrate
.. //depot/projects/smpng/sys/dev/isp/isp.c#30 integrate
.. //depot/projects/smpng/sys/dev/isp/isp_freebsd.c#24 integrate
.. //depot/projects/smpng/sys/dev/isp/isp_freebsd.h#19 integrate
.. //depot/projects/smpng/sys/dev/isp/isp_inline.h#10 integrate
.. //depot/projects/smpng/sys/dev/isp/isp_sbus.c#7 integrate
.. //depot/projects/smpng/sys/dev/isp/isp_target.c#10 integrate
.. //depot/projects/smpng/sys/dev/isp/isp_target.h#7 integrate
.. //depot/projects/smpng/sys/dev/isp/isp_tpublic.h#4 integrate
.. //depot/projects/smpng/sys/dev/isp/ispvar.h#19 integrate
.. //depot/projects/smpng/sys/dev/lnc/if_lnc_pci.c#6 integrate
.. //depot/projects/smpng/sys/dev/mii/bmtphy.c#6 integrate
.. //depot/projects/smpng/sys/dev/mii/miidevs#11 integrate
.. //depot/projects/smpng/sys/dev/mii/rgephy.c#1 branch
.. //depot/projects/smpng/sys/dev/mii/rgephyreg.h#1 branch
.. //depot/projects/smpng/sys/dev/mii/rlphy.c#13 integrate
.. //depot/projects/smpng/sys/dev/mlx/mlx.c#12 integrate
.. //depot/projects/smpng/sys/dev/mlx/mlxvar.h#7 integrate
.. //depot/projects/smpng/sys/dev/mly/mly.c#19 integrate
.. //depot/projects/smpng/sys/dev/mpt/mpt_pci.c#7 integrate
.. //depot/projects/smpng/sys/dev/musycc/musycc.c#7 integrate
.. //depot/projects/smpng/sys/dev/pccard/pccard.c#23 integrate
.. //depot/projects/smpng/sys/dev/pccard/pccardvar.h#14 integrate
.. //depot/projects/smpng/sys/dev/pci/pci.c#33 integrate
.. //depot/projects/smpng/sys/dev/pci/pci_private.h#9 integrate
.. //depot/projects/smpng/sys/dev/pci/pcireg.h#5 integrate
.. //depot/projects/smpng/sys/dev/pci/pcivar.h#11 integrate
.. //depot/projects/smpng/sys/dev/pst/pst-raid.c#8 integrate
.. //depot/projects/smpng/sys/dev/puc/puc.c#15 integrate
.. //depot/projects/smpng/sys/dev/puc/puc_ebus.c#1 branch
.. //depot/projects/smpng/sys/dev/puc/puc_pci.c#3 integrate
.. //depot/projects/smpng/sys/dev/puc/puc_sbus.c#1 branch
.. //depot/projects/smpng/sys/dev/puc/pucdata.c#18 integrate
.. //depot/projects/smpng/sys/dev/puc/pucvar.h#9 integrate
.. //depot/projects/smpng/sys/dev/re/if_re.c#1 branch
.. //depot/projects/smpng/sys/dev/sbni/if_sbni_pci.c#7 integrate
.. //depot/projects/smpng/sys/dev/sbsh/if_sbsh.c#4 integrate
.. //depot/projects/smpng/sys/dev/sio/sio.c#34 integrate
.. //depot/projects/smpng/sys/dev/sio/sioreg.h#6 integrate
.. //depot/projects/smpng/sys/dev/smbus/smbus.c#6 integrate
.. //depot/projects/smpng/sys/dev/sound/isa/ad1816.c#11 integrate
.. //depot/projects/smpng/sys/dev/sound/isa/ess.c#8 integrate
.. //depot/projects/smpng/sys/dev/sound/isa/mpu.c#10 integrate
.. //depot/projects/smpng/sys/dev/sound/isa/mss.c#14 integrate
.. //depot/projects/smpng/sys/dev/sound/isa/sb16.c#10 integrate
.. //depot/projects/smpng/sys/dev/sound/isa/sb8.c#8 integrate
.. //depot/projects/smpng/sys/dev/sound/isa/sndbuf_dma.c#2 integrate
.. //depot/projects/smpng/sys/dev/sound/isa/uartsio.c#8 integrate
.. //depot/projects/smpng/sys/dev/sound/pci/als4000.c#10 integrate
.. //depot/projects/smpng/sys/dev/sound/pci/au88x0.c#4 integrate
.. //depot/projects/smpng/sys/dev/sound/pci/aureal.c#7 integrate
.. //depot/projects/smpng/sys/dev/sound/pci/aureal.h#2 integrate
.. //depot/projects/smpng/sys/dev/sound/pci/cmi.c#16 integrate
.. //depot/projects/smpng/sys/dev/sound/pci/cs4281.c#9 integrate
.. //depot/projects/smpng/sys/dev/sound/pci/csa.c#8 integrate
.. //depot/projects/smpng/sys/dev/sound/pci/csamidi.c#7 integrate
.. //depot/projects/smpng/sys/dev/sound/pci/csapcm.c#6 integrate
.. //depot/projects/smpng/sys/dev/sound/pci/ds1.c#11 integrate
.. //depot/projects/smpng/sys/dev/sound/pci/emu10k1.c#14 integrate
.. //depot/projects/smpng/sys/dev/sound/pci/es137x.c#9 integrate
.. //depot/projects/smpng/sys/dev/sound/pci/fm801.c#10 integrate
.. //depot/projects/smpng/sys/dev/sound/pci/ich.c#24 integrate
.. //depot/projects/smpng/sys/dev/sound/pci/maestro.c#9 integrate
.. //depot/projects/smpng/sys/dev/sound/pci/maestro3.c#15 integrate
.. //depot/projects/smpng/sys/dev/sound/pci/neomagic-coeff.h#2 integrate
.. //depot/projects/smpng/sys/dev/sound/pci/neomagic.c#5 integrate
.. //depot/projects/smpng/sys/dev/sound/pci/neomagic.h#2 integrate
.. //depot/projects/smpng/sys/dev/sound/pci/solo.c#8 integrate
.. //depot/projects/smpng/sys/dev/sound/pci/t4dwave.c#14 integrate
.. //depot/projects/smpng/sys/dev/sound/pci/t4dwave.h#3 integrate
.. //depot/projects/smpng/sys/dev/sound/pci/via8233.c#9 integrate
.. //depot/projects/smpng/sys/dev/sound/pci/via82c686.c#14 integrate
.. //depot/projects/smpng/sys/dev/sound/pcm/ac97.c#19 integrate
.. //depot/projects/smpng/sys/dev/sound/pcm/ac97.h#7 integrate
.. //depot/projects/smpng/sys/dev/sound/pcm/buffer.c#8 integrate
.. //depot/projects/smpng/sys/dev/sound/pcm/buffer.h#4 integrate
.. //depot/projects/smpng/sys/dev/sound/pcm/channel.c#21 integrate
.. //depot/projects/smpng/sys/dev/sound/pcm/channel.h#8 integrate
.. //depot/projects/smpng/sys/dev/sound/pcm/dsp.c#16 integrate
.. //depot/projects/smpng/sys/dev/sound/pcm/dsp.h#3 integrate
.. //depot/projects/smpng/sys/dev/sound/pcm/fake.c#4 integrate
.. //depot/projects/smpng/sys/dev/sound/pcm/feeder.c#10 integrate
.. //depot/projects/smpng/sys/dev/sound/pcm/feeder.h#5 integrate
.. //depot/projects/smpng/sys/dev/sound/pcm/feeder_fmt.c#9 integrate
.. //depot/projects/smpng/sys/dev/sound/pcm/mixer.c#11 integrate
.. //depot/projects/smpng/sys/dev/sound/pcm/mixer.h#3 integrate
.. //depot/projects/smpng/sys/dev/sound/pcm/sndstat.c#10 integrate
.. //depot/projects/smpng/sys/dev/sound/pcm/sound.c#19 integrate
.. //depot/projects/smpng/sys/dev/sound/pcm/sound.h#13 integrate
.. //depot/projects/smpng/sys/dev/sound/pcm/vchan.c#7 integrate
.. //depot/projects/smpng/sys/dev/sound/pcm/vchan.h#3 integrate
.. //depot/projects/smpng/sys/dev/stg/tmc18c30_pci.c#3 integrate
.. //depot/projects/smpng/sys/dev/sym/sym_hipd.c#15 integrate
.. //depot/projects/smpng/sys/dev/tdfx/tdfx_pci.c#14 integrate
.. //depot/projects/smpng/sys/dev/trm/trm.c#12 integrate
.. //depot/projects/smpng/sys/dev/tx/if_txreg.h#4 integrate
.. //depot/projects/smpng/sys/dev/uart/uart.h#1 branch
.. //depot/projects/smpng/sys/dev/uart/uart_bus.h#1 branch
.. //depot/projects/smpng/sys/dev/uart/uart_bus_acpi.c#1 branch
.. //depot/projects/smpng/sys/dev/uart/uart_bus_ebus.c#1 branch
.. //depot/projects/smpng/sys/dev/uart/uart_bus_isa.c#1 branch
.. //depot/projects/smpng/sys/dev/uart/uart_bus_pccard.c#1 branch
.. //depot/projects/smpng/sys/dev/uart/uart_bus_pci.c#1 branch
.. //depot/projects/smpng/sys/dev/uart/uart_bus_puc.c#1 branch
.. //depot/projects/smpng/sys/dev/uart/uart_core.c#1 branch
.. //depot/projects/smpng/sys/dev/uart/uart_cpu.h#1 branch
.. //depot/projects/smpng/sys/dev/uart/uart_cpu_alpha.c#1 branch
.. //depot/projects/smpng/sys/dev/uart/uart_cpu_amd64.c#1 branch
.. //depot/projects/smpng/sys/dev/uart/uart_cpu_i386.c#1 branch
.. //depot/projects/smpng/sys/dev/uart/uart_cpu_ia64.c#1 branch
.. //depot/projects/smpng/sys/dev/uart/uart_cpu_pc98.c#1 branch
.. //depot/projects/smpng/sys/dev/uart/uart_cpu_sparc64.c#1 branch
.. //depot/projects/smpng/sys/dev/uart/uart_dev_i8251.c#1 branch
.. //depot/projects/smpng/sys/dev/uart/uart_dev_i8251.h#1 branch
.. //depot/projects/smpng/sys/dev/uart/uart_dev_ns8250.c#1 branch
.. //depot/projects/smpng/sys/dev/uart/uart_dev_ns8250.h#1 branch
.. //depot/projects/smpng/sys/dev/uart/uart_dev_sab82532.c#1 branch
.. //depot/projects/smpng/sys/dev/uart/uart_dev_sab82532.h#1 branch
.. //depot/projects/smpng/sys/dev/uart/uart_dev_z8530.c#1 branch
.. //depot/projects/smpng/sys/dev/uart/uart_dev_z8530.h#1 branch
.. //depot/projects/smpng/sys/dev/uart/uart_if.m#1 branch
.. //depot/projects/smpng/sys/dev/uart/uart_tty.c#1 branch
.. //depot/projects/smpng/sys/dev/usb/if_aue.c#24 integrate
.. //depot/projects/smpng/sys/dev/usb/ohci_pci.c#5 integrate
.. //depot/projects/smpng/sys/dev/usb/usb_mem.h#5 integrate
.. //depot/projects/smpng/sys/dev/usb/usb_subr.c#17 integrate
.. //depot/projects/smpng/sys/dev/usb/usbdevs#38 integrate
.. //depot/projects/smpng/sys/dev/usb/usbdevs.h#38 integrate
.. //depot/projects/smpng/sys/dev/usb/usbdevs_data.h#38 integrate
.. //depot/projects/smpng/sys/dev/vx/if_vx_pci.c#4 integrate
.. //depot/projects/smpng/sys/dev/wi/if_wi.c#56 integrate
.. //depot/projects/smpng/sys/dev/wi/if_wi_pccard.c#24 integrate
.. //depot/projects/smpng/sys/dev/wi/if_wi_pci.c#17 integrate
.. //depot/projects/smpng/sys/dev/wi/if_wireg.h#19 integrate
.. //depot/projects/smpng/sys/dev/wi/if_wivar.h#16 integrate
.. //depot/projects/smpng/sys/geom/bde/g_bde_crypt.c#13 integrate
.. //depot/projects/smpng/sys/geom/geom.h#31 integrate
.. //depot/projects/smpng/sys/geom/geom_bsd.c#33 integrate
.. //depot/projects/smpng/sys/geom/geom_dev.c#30 integrate
.. //depot/projects/smpng/sys/geom/geom_disk.c#29 integrate
.. //depot/projects/smpng/sys/geom/geom_io.c#23 integrate
.. //depot/projects/smpng/sys/geom/geom_mbr.c#24 integrate
.. //depot/projects/smpng/sys/geom/geom_pc98.c#21 integrate
.. //depot/projects/smpng/sys/i386/acpica/acpi_machdep.c#11 integrate
.. //depot/projects/smpng/sys/i386/acpica/acpi_wakeup.c#20 integrate
.. //depot/projects/smpng/sys/i386/conf/GENERIC#41 integrate
.. //depot/projects/smpng/sys/i386/conf/NOTES#63 integrate
.. //depot/projects/smpng/sys/i386/i386/db_interface.c#19 integrate
.. //depot/projects/smpng/sys/i386/i386/elan-mmcr.c#9 integrate
.. //depot/projects/smpng/sys/i386/i386/geode.c#1 branch
.. //depot/projects/smpng/sys/i386/i386/identcpu.c#25 integrate
.. //depot/projects/smpng/sys/i386/i386/machdep.c#64 integrate
.. //depot/projects/smpng/sys/i386/i386/mp_clock.c#9 integrate
.. //depot/projects/smpng/sys/i386/i386/mp_machdep.c#52 integrate
.. //depot/projects/smpng/sys/i386/i386/pmap.c#47 integrate
.. //depot/projects/smpng/sys/i386/i386/sys_machdep.c#34 integrate
.. //depot/projects/smpng/sys/i386/i386/trap.c#62 integrate
.. //depot/projects/smpng/sys/i386/i386/vm_machdep.c#42 integrate
.. //depot/projects/smpng/sys/i386/include/acpica_machdep.h#5 integrate
.. //depot/projects/smpng/sys/i386/include/apic.h#11 integrate
.. //depot/projects/smpng/sys/i386/include/pci_cfgreg.h#5 integrate
.. //depot/projects/smpng/sys/i386/include/segments.h#7 integrate
.. //depot/projects/smpng/sys/i386/include/varargs.h#5 integrate
.. //depot/projects/smpng/sys/i386/isa/clock.c#28 integrate
.. //depot/projects/smpng/sys/i386/isa/isa.h#2 integrate
.. //depot/projects/smpng/sys/i386/isa/isa_compat.c#3 integrate
.. //depot/projects/smpng/sys/i386/isa/isa_device.h#4 integrate
.. //depot/projects/smpng/sys/i386/isa/npx.c#36 integrate
.. //depot/projects/smpng/sys/i386/linux/imgact_linux.c#13 integrate
.. //depot/projects/smpng/sys/i386/pci/pci_bus.c#18 integrate
.. //depot/projects/smpng/sys/i386/pci/pci_cfgreg.c#20 integrate
.. //depot/projects/smpng/sys/i4b/layer1/ifpi/i4b_ifpi_pci.c#10 integrate
.. //depot/projects/smpng/sys/i4b/layer1/ifpi2/i4b_ifpi2_pci.c#11 integrate
.. //depot/projects/smpng/sys/i4b/layer1/isic/i4b_elsa_qs1p.c#6 integrate
.. //depot/projects/smpng/sys/i4b/layer1/itjc/i4b_itjc_pci.c#11 integrate
.. //depot/projects/smpng/sys/i4b/layer1/iwic/i4b_iwic_pci.c#6 integrate
.. //depot/projects/smpng/sys/ia64/acpica/madt.c#10 integrate
.. //depot/projects/smpng/sys/ia64/conf/GENERIC#34 integrate
.. //depot/projects/smpng/sys/ia64/conf/GENERIC.hints#4 integrate
.. //depot/projects/smpng/sys/ia64/conf/NOTES#2 integrate
.. //depot/projects/smpng/sys/ia64/ia64/exception.S#5 integrate
.. //depot/projects/smpng/sys/ia64/ia64/genassym.c#22 integrate
.. //depot/projects/smpng/sys/ia64/ia64/interrupt.c#21 integrate
.. //depot/projects/smpng/sys/ia64/ia64/locore.S#2 integrate
.. //depot/projects/smpng/sys/ia64/ia64/machdep.c#65 integrate
.. //depot/projects/smpng/sys/ia64/ia64/nexus.c#5 integrate
.. //depot/projects/smpng/sys/ia64/ia64/pmap.c#52 integrate
.. //depot/projects/smpng/sys/ia64/ia64/sapic.c#12 integrate
.. //depot/projects/smpng/sys/ia64/ia64/vm_machdep.c#32 integrate
.. //depot/projects/smpng/sys/ia64/include/md_var.h#11 integrate
.. //depot/projects/smpng/sys/ia64/include/sapicvar.h#4 integrate
.. //depot/projects/smpng/sys/ia64/include/vmparam.h#6 integrate
.. //depot/projects/smpng/sys/isa/fd.c#24 integrate
.. //depot/projects/smpng/sys/isa/isareg.h#4 integrate
.. //depot/projects/smpng/sys/kern/bus_if.m#8 integrate
.. //depot/projects/smpng/sys/kern/init_sysent.c#32 integrate
.. //depot/projects/smpng/sys/kern/kern_ktr.c#24 integrate
.. //depot/projects/smpng/sys/kern/kern_prot.c#74 integrate
.. //depot/projects/smpng/sys/kern/kern_tc.c#25 integrate
.. //depot/projects/smpng/sys/kern/kern_umtx.c#8 integrate
.. //depot/projects/smpng/sys/kern/kern_xxx.c#11 integrate
.. //depot/projects/smpng/sys/kern/subr_bus.c#25 integrate
.. //depot/projects/smpng/sys/kern/subr_msgbuf.c#2 integrate
.. //depot/projects/smpng/sys/kern/subr_taskqueue.c#12 integrate
.. //depot/projects/smpng/sys/kern/subr_trap.c#58 integrate
.. //depot/projects/smpng/sys/kern/subr_witness.c#104 integrate
.. //depot/projects/smpng/sys/kern/sys_pipe.c#33 integrate
.. //depot/projects/smpng/sys/kern/syscalls.c#32 integrate
.. //depot/projects/smpng/sys/kern/syscalls.master#31 integrate
.. //depot/projects/smpng/sys/kern/uipc_domain.c#8 integrate
.. //depot/projects/smpng/sys/kern/uipc_mbuf.c#21 integrate
.. //depot/projects/smpng/sys/kern/uipc_syscalls.c#38 integrate
.. //depot/projects/smpng/sys/kern/vfs_aio.c#41 integrate
.. //depot/projects/smpng/sys/kern/vfs_bio.c#49 integrate
.. //depot/projects/smpng/sys/kern/vfs_mount.c#17 integrate
.. //depot/projects/smpng/sys/modules/Makefile#61 integrate
.. //depot/projects/smpng/sys/modules/acpi/Makefile#14 integrate
.. //depot/projects/smpng/sys/modules/bfe/Makefile#1 branch
.. //depot/projects/smpng/sys/modules/coda/Makefile#3 integrate
.. //depot/projects/smpng/sys/modules/coda5/Makefile#1 branch
.. //depot/projects/smpng/sys/modules/drm/Makefile#3 integrate
.. //depot/projects/smpng/sys/modules/drm/sis/Makefile#1 branch
.. //depot/projects/smpng/sys/modules/mii/Makefile#7 integrate
.. //depot/projects/smpng/sys/modules/pst/Makefile#1 branch
.. //depot/projects/smpng/sys/modules/re/Makefile#1 branch
.. //depot/projects/smpng/sys/modules/uart/Makefile#1 branch
.. //depot/projects/smpng/sys/net/bpf.c#26 integrate
.. //depot/projects/smpng/sys/net/bridge.c#19 integrate
.. //depot/projects/smpng/sys/net/if_ethersubr.c#36 integrate
.. //depot/projects/smpng/sys/net/if_iso88025subr.c#13 integrate
.. //depot/projects/smpng/sys/net/if_vlan.c#19 integrate
.. //depot/projects/smpng/sys/net/raw_usrreq.c#12 integrate
.. //depot/projects/smpng/sys/net80211/ieee80211.c#5 integrate
.. //depot/projects/smpng/sys/net80211/ieee80211.h#2 integrate
.. //depot/projects/smpng/sys/net80211/ieee80211_input.c#5 integrate
.. //depot/projects/smpng/sys/net80211/ieee80211_ioctl.c#4 integrate
.. //depot/projects/smpng/sys/net80211/ieee80211_node.c#6 integrate
.. //depot/projects/smpng/sys/net80211/ieee80211_output.c#4 integrate
.. //depot/projects/smpng/sys/net80211/ieee80211_radiotap.h#1 branch
.. //depot/projects/smpng/sys/net80211/ieee80211_var.h#4 integrate
.. //depot/projects/smpng/sys/netatalk/aarp.c#7 integrate
.. //depot/projects/smpng/sys/netatalk/ddp_output.c#4 integrate
.. //depot/projects/smpng/sys/netinet/igmp.c#10 integrate
.. //depot/projects/smpng/sys/netinet/ip_divert.c#24 integrate
.. //depot/projects/smpng/sys/netinet/ip_dummynet.c#20 integrate
.. //depot/projects/smpng/sys/netinet/ip_flow.c#3 integrate
.. //depot/projects/smpng/sys/netinet/ip_flow.h#2 integrate
.. //depot/projects/smpng/sys/netinet/ip_fw2.c#18 integrate
.. //depot/projects/smpng/sys/netinet/ip_input.c#38 integrate
.. //depot/projects/smpng/sys/netinet/ip_mroute.c#25 integrate
.. //depot/projects/smpng/sys/netinet/ip_output.c#42 integrate
.. //depot/projects/smpng/sys/netinet/raw_ip.c#29 integrate
.. //depot/projects/smpng/sys/netinet/tcp_subr.c#33 integrate
.. //depot/projects/smpng/sys/netinet/udp_usrreq.c#29 integrate
.. //depot/projects/smpng/sys/netinet6/in6_ifattach.c#6 integrate
.. //depot/projects/smpng/sys/netinet6/in6_pcb.c#21 integrate
.. //depot/projects/smpng/sys/netinet6/nd6.c#12 integrate
.. //depot/projects/smpng/sys/netinet6/nd6_nbr.c#7 integrate
.. //depot/projects/smpng/sys/netipsec/ipsec.c#6 integrate
.. //depot/projects/smpng/sys/netipsec/ipsec.h#3 integrate
.. //depot/projects/smpng/sys/netipsec/ipsec_input.c#6 integrate
.. //depot/projects/smpng/sys/netipsec/ipsec_output.c#7 integrate
.. //depot/projects/smpng/sys/netipsec/key.c#5 integrate
.. //depot/projects/smpng/sys/netipsec/key.h#2 integrate
.. //depot/projects/smpng/sys/netipsec/keydb.h#2 integrate
.. //depot/projects/smpng/sys/netipsec/xform_ah.c#4 integrate
.. //depot/projects/smpng/sys/netipsec/xform_esp.c#4 integrate
.. //depot/projects/smpng/sys/netipsec/xform_ipcomp.c#4 integrate
.. //depot/projects/smpng/sys/netipx/ipx_input.c#8 integrate
.. //depot/projects/smpng/sys/netipx/spx_usrreq.c#9 integrate
.. //depot/projects/smpng/sys/nfsclient/bootp_subr.c#19 integrate
.. //depot/projects/smpng/sys/nfsclient/nfs_node.c#11 integrate
.. //depot/projects/smpng/sys/nfsclient/nfs_subs.c#11 integrate
.. //depot/projects/smpng/sys/nfsclient/nfs_vnops.c#32 integrate
.. //depot/projects/smpng/sys/nfsclient/nfsnode.h#5 integrate
.. //depot/projects/smpng/sys/pc98/conf/GENERIC#36 integrate
.. //depot/projects/smpng/sys/pc98/conf/NOTES#12 integrate
.. //depot/projects/smpng/sys/pc98/i386/machdep.c#58 integrate
.. //depot/projects/smpng/sys/pc98/pc98/clock.c#20 integrate
.. //depot/projects/smpng/sys/pc98/pc98/fd.c#25 integrate
.. //depot/projects/smpng/sys/pccard/i82365.h#9 integrate
.. //depot/projects/smpng/sys/pccard/pcic.c#22 integrate
.. //depot/projects/smpng/sys/pci/agp_intel.c#13 integrate
.. //depot/projects/smpng/sys/pci/amdpm.c#9 integrate
.. //depot/projects/smpng/sys/pci/if_dc.c#44 integrate
.. //depot/projects/smpng/sys/pci/if_mn.c#8 integrate
.. //depot/projects/smpng/sys/pci/if_rl.c#37 integrate
.. //depot/projects/smpng/sys/pci/if_rlreg.h#13 integrate
.. //depot/projects/smpng/sys/pci/if_sis.c#31 integrate
.. //depot/projects/smpng/sys/pci/if_sisreg.h#9 integrate
.. //depot/projects/smpng/sys/pci/if_xl.c#34 integrate
.. //depot/projects/smpng/sys/pci/if_xlreg.h#10 integrate
.. //depot/projects/smpng/sys/pci/xrpu.c#10 integrate
.. //depot/projects/smpng/sys/posix4/ksched.c#13 integrate
.. //depot/projects/smpng/sys/powerpc/include/varargs.h#5 integrate
.. //depot/projects/smpng/sys/powerpc/powerpc/vm_machdep.c#29 integrate
.. //depot/projects/smpng/sys/sparc64/conf/GENERIC#34 integrate
.. //depot/projects/smpng/sys/sparc64/include/ofw_machdep.h#3 integrate
.. //depot/projects/smpng/sys/sparc64/include/varargs.h#5 integrate
.. //depot/projects/smpng/sys/sparc64/pci/psycho.c#26 integrate
.. //depot/projects/smpng/sys/sparc64/pci/psychoreg.h#7 integrate
.. //depot/projects/smpng/sys/sparc64/sparc64/machdep.c#56 integrate
.. //depot/projects/smpng/sys/sparc64/sparc64/mp_machdep.c#19 integrate
.. //depot/projects/smpng/sys/sparc64/sparc64/ofw_machdep.c#4 integrate
.. //depot/projects/smpng/sys/sparc64/sparc64/pmap.c#43 integrate
.. //depot/projects/smpng/sys/sparc64/sparc64/vm_machdep.c#36 integrate
.. //depot/projects/smpng/sys/sys/ata.h#16 integrate
.. //depot/projects/smpng/sys/sys/buf.h#23 integrate
.. //depot/projects/smpng/sys/sys/bus.h#11 integrate
.. //depot/projects/smpng/sys/sys/interrupt.h#8 integrate
.. //depot/projects/smpng/sys/sys/ioctl_bt848.h#1 branch
.. //depot/projects/smpng/sys/sys/ioctl_meteor.h#1 branch
.. //depot/projects/smpng/sys/sys/mac.h#18 integrate
.. //depot/projects/smpng/sys/sys/mbuf.h#25 integrate
.. //depot/projects/smpng/sys/sys/param.h#48 integrate
.. //depot/projects/smpng/sys/sys/syscall.h#32 integrate
.. //depot/projects/smpng/sys/sys/syscall.mk#32 integrate
.. //depot/projects/smpng/sys/sys/syslimits.h#6 integrate
.. //depot/projects/smpng/sys/sys/sysproto.h#34 integrate
.. //depot/projects/smpng/sys/sys/taskqueue.h#6 integrate
.. //depot/projects/smpng/sys/ufs/ffs/ffs_softdep.c#27 integrate
.. //depot/projects/smpng/sys/vm/pmap.h#21 integrate
.. //depot/projects/smpng/sys/vm/swap_pager.c#32 integrate
.. //depot/projects/smpng/sys/vm/vm_fault.c#28 integrate
.. //depot/projects/smpng/sys/vm/vm_init.c#10 integrate
.. //depot/projects/smpng/sys/vm/vm_kern.c#19 integrate
.. //depot/projects/smpng/sys/vm/vm_map.c#43 integrate
.. //depot/projects/smpng/sys/vm/vm_map.h#21 integrate
.. //depot/projects/smpng/sys/vm/vm_mmap.c#32 integrate
.. //depot/projects/smpng/sys/vm/vm_object.c#43 integrate
.. //depot/projects/smpng/sys/vm/vm_page.c#41 integrate
.. //depot/projects/smpng/sys/vm/vm_pageout.c#37 integrate
.. //depot/projects/smpng/sys/vm/vnode_pager.c#34 integrate
Differences ...
==== //depot/projects/smpng/sys/alpha/alpha/pmap.c#52 (text+ko) ====
@@ -148,7 +148,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/alpha/alpha/pmap.c,v 1.134 2003/08/20 20:12:05 alc Exp $");
+__FBSDID("$FreeBSD: src/sys/alpha/alpha/pmap.c,v 1.138 2003/09/12 07:07:47 alc Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -340,7 +340,6 @@
static int pmap_release_free_page(pmap_t pmap, vm_page_t p);
static vm_page_t _pmap_allocpte(pmap_t pmap, unsigned ptepindex);
-static vm_page_t pmap_page_lookup(vm_object_t object, vm_pindex_t pindex);
static int pmap_unuse_pt(pmap_t, vm_offset_t, vm_page_t);
#ifdef SMP
static void pmap_invalidate_page_action(void *arg);
@@ -812,7 +811,31 @@
return 0;
}
+/*
+ * Routine: pmap_extract_and_hold
+ * Function:
+ * Atomically extract and hold the physical page
+ * with the given pmap and virtual address pair
+ * if that mapping permits the given protection.
+ */
+vm_page_t
+pmap_extract_and_hold(pmap_t pmap, vm_offset_t va, vm_prot_t prot)
+{
+ vm_paddr_t pa;
+ vm_page_t m;
+ m = NULL;
+ mtx_lock(&Giant);
+ if ((pa = pmap_extract(pmap, va)) != 0) {
+ m = PHYS_TO_VM_PAGE(pa);
+ vm_page_lock_queues();
+ vm_page_hold(m);
+ vm_page_unlock_queues();
+ }
+ mtx_unlock(&Giant);
+ return (m);
+}
+
/***************************************************
* Low level mapping routines.....
***************************************************/
@@ -914,22 +937,6 @@
return ALPHA_PHYS_TO_K0SEG(start);
}
-
-static vm_page_t
-pmap_page_lookup(vm_object_t object, vm_pindex_t pindex)
-{
- vm_page_t m;
-retry:
- m = vm_page_lookup(object, pindex);
- if (m != NULL) {
- vm_page_lock_queues();
- if (vm_page_sleep_if_busy(m, FALSE, "pplookp"))
- goto retry;
- vm_page_unlock_queues();
- }
- return m;
-}
-
/***************************************************
* Page table page management routines.....
***************************************************/
@@ -967,10 +974,8 @@
if (m->pindex < NUSERLEV3MAPS) {
/* unhold the level 2 page table */
vm_page_t lev2pg;
- lev2pg = vm_page_lookup(pmap->pm_pteobj,
- NUSERLEV3MAPS + pmap_lev1_index(va));
- while (vm_page_sleep_if_busy(lev2pg, FALSE, "pulook"))
- vm_page_lock_queues();
+
+ lev2pg = PHYS_TO_VM_PAGE(pmap_pte_pa(pmap_lev1pte(pmap, va)));
vm_page_unhold(lev2pg);
if (lev2pg->hold_count == 0)
_pmap_unwire_pte_hold(pmap, va, lev2pg);
@@ -1027,9 +1032,7 @@
(pmap->pm_ptphint->pindex == ptepindex)) {
mpte = pmap->pm_ptphint;
} else {
- while ((mpte = vm_page_lookup(pmap->pm_pteobj, ptepindex)) != NULL &&
- vm_page_sleep_if_busy(mpte, FALSE, "pulook"))
- vm_page_lock_queues();
+ mpte = PHYS_TO_VM_PAGE(pmap_pte_pa(pmap_lev2pte(pmap, va)));
pmap->pm_ptphint = mpte;
}
}
@@ -1240,9 +1243,9 @@
if (!pmap_pte_v(l1pte))
_pmap_allocpte(pmap, NUSERLEV3MAPS + l1index);
else {
- vm_page_t l2page =
- pmap_page_lookup(pmap->pm_pteobj,
- NUSERLEV3MAPS + l1index);
+ vm_page_t l2page;
+
+ l2page = PHYS_TO_VM_PAGE(pmap_pte_pa(l1pte));
l2page->hold_count++;
}
l2map = (pt_entry_t*) ALPHA_PHYS_TO_K0SEG(pmap_pte_pa(l1pte));
@@ -1297,7 +1300,7 @@
(pmap->pm_ptphint->pindex == ptepindex)) {
m = pmap->pm_ptphint;
} else {
- m = pmap_page_lookup(pmap->pm_pteobj, ptepindex);
+ m = PHYS_TO_VM_PAGE(pmap_pte_pa(lev2pte));
pmap->pm_ptphint = m;
}
m->hold_count++;
@@ -1999,7 +2002,6 @@
if (mpte && (mpte->pindex == ptepindex)) {
mpte->hold_count++;
} else {
-retry:
/*
* Get the level 2 entry
*/
@@ -2014,12 +2016,9 @@
(pmap->pm_ptphint->pindex == ptepindex)) {
mpte = pmap->pm_ptphint;
} else {
- mpte = pmap_page_lookup(pmap->pm_pteobj,
- ptepindex);
+ mpte = PHYS_TO_VM_PAGE(pmap_pte_pa(l2pte));
pmap->pm_ptphint = mpte;
}
- if (mpte == NULL)
- goto retry;
mpte->hold_count++;
} else {
mpte = _pmap_allocpte(pmap, ptepindex);
@@ -2774,23 +2773,30 @@
*/
if ((*pte & PG_FOW) == 0)
val |= MINCORE_MODIFIED|MINCORE_MODIFIED_OTHER;
- /*
- * Modified by someone
- */
- else if (m->dirty || pmap_is_modified(m))
- val |= MINCORE_MODIFIED_OTHER;
+ else {
+ /*
+ * Modified by someone
+ */
+ vm_page_lock_queues();
+ if (m->dirty || pmap_is_modified(m))
+ val |= MINCORE_MODIFIED_OTHER;
+ vm_page_unlock_queues();
+ }
/*
* Referenced by us
*/
if ((*pte & (PG_FOR | PG_FOE)) == 0)
val |= MINCORE_REFERENCED|MINCORE_REFERENCED_OTHER;
-
- /*
- * Referenced by someone
- */
- else if ((m->flags & PG_REFERENCED) || pmap_ts_referenced(m)) {
- val |= MINCORE_REFERENCED_OTHER;
- vm_page_flag_set(m, PG_REFERENCED);
+ else {
+ /*
+ * Referenced by someone
+ */
+ vm_page_lock_queues();
+ if ((m->flags & PG_REFERENCED) || pmap_ts_referenced(m)) {
+ val |= MINCORE_REFERENCED_OTHER;
+ vm_page_flag_set(m, PG_REFERENCED);
+ }
+ vm_page_unlock_queues();
}
}
return val;
==== //depot/projects/smpng/sys/alpha/alpha/vm_machdep.c#28 (text+ko) ====
@@ -67,7 +67,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/alpha/alpha/vm_machdep.c,v 1.93 2003/08/16 23:15:13 marcel Exp $");
+__FBSDID("$FreeBSD: src/sys/alpha/alpha/vm_machdep.c,v 1.94 2003/08/29 20:04:09 alc Exp $");
#include "opt_kstack_pages.h"
@@ -82,6 +82,8 @@
#include <sys/vnode.h>
#include <sys/vmmeter.h>
#include <sys/kernel.h>
+#include <sys/mbuf.h>
+#include <sys/socketvar.h>
#include <sys/sysctl.h>
#include <sys/unistd.h>
@@ -101,6 +103,20 @@
#include <sys/user.h>
+static void sf_buf_init(void *arg);
+SYSINIT(sock_sf, SI_SUB_MBUF, SI_ORDER_ANY, sf_buf_init, NULL)
+
+/*
+ * Expanded sf_freelist head. Really an SLIST_HEAD() in disguise, with the
+ * sf_freelist head with the sf_lock mutex.
+ */
+static struct {
+ SLIST_HEAD(, sf_buf) sf_head;
+ struct mtx sf_lock;
+} sf_freelist;
+
+static u_int sf_buf_alloc_want;
+
/*
* Finish a fork operation, with process p2 nearly set up.
* Copy and update the pcb, set up the stack so that the child
@@ -370,6 +386,91 @@
}
/*
+ * Allocate a pool of sf_bufs (sendfile(2) or "super-fast" if you prefer. :-))
+ */
+static void
+sf_buf_init(void *arg)
+{
+ struct sf_buf *sf_bufs;
+ vm_offset_t sf_base;
+ int i;
+
+ mtx_init(&sf_freelist.sf_lock, "sf_bufs list lock", NULL, MTX_DEF);
+ mtx_lock(&sf_freelist.sf_lock);
+ SLIST_INIT(&sf_freelist.sf_head);
+ sf_base = kmem_alloc_nofault(kernel_map, nsfbufs * PAGE_SIZE);
+ sf_bufs = malloc(nsfbufs * sizeof(struct sf_buf), M_TEMP,
+ M_NOWAIT | M_ZERO);
+ for (i = 0; i < nsfbufs; i++) {
+ sf_bufs[i].kva = sf_base + i * PAGE_SIZE;
+ SLIST_INSERT_HEAD(&sf_freelist.sf_head, &sf_bufs[i], free_list);
+ }
+ sf_buf_alloc_want = 0;
+ mtx_unlock(&sf_freelist.sf_lock);
+}
+
+/*
+ * Get an sf_buf from the freelist. Will block if none are available.
+ */
+struct sf_buf *
+sf_buf_alloc(struct vm_page *m)
+{
+ struct sf_buf *sf;
+ int error;
+
+ mtx_lock(&sf_freelist.sf_lock);
+ while ((sf = SLIST_FIRST(&sf_freelist.sf_head)) == NULL) {
+ sf_buf_alloc_want++;
+ error = msleep(&sf_freelist, &sf_freelist.sf_lock, PVM|PCATCH,
+ "sfbufa", 0);
+ sf_buf_alloc_want--;
+
+ /*
+ * If we got a signal, don't risk going back to sleep.
+ */
+ if (error)
+ break;
+ }
+ if (sf != NULL) {
+ SLIST_REMOVE_HEAD(&sf_freelist.sf_head, free_list);
+ sf->m = m;
+ pmap_qenter(sf->kva, &sf->m, 1);
+ }
+ mtx_unlock(&sf_freelist.sf_lock);
+ return (sf);
+}
+
+/*
+ * Detatch mapped page and release resources back to the system.
+ */
+void
+sf_buf_free(void *addr, void *args)
+{
+ struct sf_buf *sf;
+ struct vm_page *m;
+
+ sf = args;
+ pmap_qremove((vm_offset_t)addr, 1);
+ m = sf->m;
+ vm_page_lock_queues();
+ vm_page_unwire(m, 0);
+ /*
+ * Check for the object going away on us. This can
+ * happen since we don't hold a reference to it.
+ * If so, we're responsible for freeing the page.
+ */
+ if (m->wire_count == 0 && m->object == NULL)
+ vm_page_free(m);
+ vm_page_unlock_queues();
+ sf->m = NULL;
+ mtx_lock(&sf_freelist.sf_lock);
+ SLIST_INSERT_HEAD(&sf_freelist.sf_head, sf, free_list);
+ if (sf_buf_alloc_want > 0)
+ wakeup_one(&sf_freelist);
+ mtx_unlock(&sf_freelist.sf_lock);
+}
+
+/*
* Software interrupt handler for queued VM system processing.
*/
void
==== //depot/projects/smpng/sys/alpha/include/db_machdep.h#5 (text+ko) ====
@@ -1,4 +1,4 @@
-/* $FreeBSD: src/sys/alpha/include/db_machdep.h,v 1.7 2003/02/25 00:42:39 marcel Exp $ */
+/* $FreeBSD: src/sys/alpha/include/db_machdep.h,v 1.8 2003/09/07 05:33:46 marcel Exp $ */
/* $NetBSD: db_machdep.h,v 1.6 1997/09/06 02:02:25 thorpej Exp $ */
/*
@@ -34,8 +34,9 @@
/*
* Machine-dependent defines for new kernel debugger.
*/
-
+#ifndef KLD_MODULE
#include "opt_ddb.h"
+#endif
#include <sys/param.h>
#include <vm/vm.h>
==== //depot/projects/smpng/sys/alpha/include/varargs.h#5 (text+ko) ====
@@ -38,11 +38,11 @@
*
* @(#)varargs.h 8.2 (Berkeley) 3/22/94
* $NetBSD: varargs.h,v 1.7 1997/04/06 08:47:46 cgd Exp $
- * $FreeBSD: src/sys/alpha/include/varargs.h,v 1.5 2002/10/06 22:02:06 mike Exp $
+ * $FreeBSD: src/sys/alpha/include/varargs.h,v 1.6 2003/09/01 03:01:45 kan Exp $
*/
-#ifndef _ALPHA_VARARGS_H_
-#define _ALPHA_VARARGS_H_
+#ifndef _MACHINE_VARARGS_H_
+#define _MACHINE_VARARGS_H_
#if defined(__GNUC__) && (__GNUC__ == 2 && __GNUC_MINOR__ > 95 || __GNUC__ >= 3)
@@ -80,4 +80,4 @@
#endif /* __GNUC__ post GCC 2.95 */
-#endif /* !_ALPHA_VARARGS_H_ */
+#endif /* !_MACHINE_VARARGS_H_ */
==== //depot/projects/smpng/sys/amd64/amd64/exception.S#5 (text+ko) ====
@@ -31,7 +31,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $FreeBSD: src/sys/amd64/amd64/exception.S,v 1.110 2003/05/14 04:10:47 peter Exp $
+ * $FreeBSD: src/sys/amd64/amd64/exception.S,v 1.111 2003/09/09 19:32:09 peter Exp $
*/
#include <machine/asmacros.h>
@@ -227,8 +227,8 @@
swapgs
movq %rsp,PCPU(SCRATCH_RSP)
movq common_tss+COMMON_TSS_RSP0,%rsp
- /* Now emulate a trapframe. Ugh. */
- subq $TF_SIZE,%rsp
+ /* Now emulate a trapframe. Make the 8 byte alignment odd for call. */
+ subq $TF_SIZE+8,%rsp
/* defer TF_RSP till we have a spare register */
movq %r11,TF_RFLAGS(%rsp)
movq %rcx,TF_RIP(%rsp) /* %rcx original value is in %r10 */
==== //depot/projects/smpng/sys/amd64/amd64/machdep.c#12 (text+ko) ====
@@ -38,7 +38,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.588 2003/07/31 01:26:39 peter Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.589 2003/09/09 19:32:09 peter Exp $");
#include "opt_atalk.h"
#include "opt_compat.h"
@@ -1217,6 +1217,8 @@
/* make an initial tss so cpu can get interrupt stack on syscall! */
common_tss.tss_rsp0 = thread0.td_kstack + KSTACK_PAGES * PAGE_SIZE - sizeof(struct pcb);
+ /* Ensure the stack is aligned to 16 bytes */
+ common_tss.tss_rsp0 &= ~0xF;
/* doublefault stack space, runs on ist1 */
common_tss.tss_ist1 = (long)&dblfault_stack[sizeof(dblfault_stack)];
@@ -1434,7 +1436,6 @@
struct trapframe *tp;
tp = td->td_frame;
-
PROC_LOCK(curthread->td_proc);
mcp->mc_onstack = sigonstack(tp->tf_rsp);
PROC_UNLOCK(curthread->td_proc);
@@ -1486,66 +1487,42 @@
return (EINVAL);
rflags = (mcp->mc_rflags & PSL_USERCHANGE) |
(tp->tf_rflags & ~PSL_USERCHANGE);
- if ((ret = set_fpcontext(td, mcp)) == 0) {
- tp->tf_r15 = mcp->mc_r15;
- tp->tf_r14 = mcp->mc_r14;
- tp->tf_r13 = mcp->mc_r13;
- tp->tf_r12 = mcp->mc_r12;
- tp->tf_r11 = mcp->mc_r11;
- tp->tf_r10 = mcp->mc_r10;
- tp->tf_r9 = mcp->mc_r9;
- tp->tf_r8 = mcp->mc_r8;
- tp->tf_rdi = mcp->mc_rdi;
- tp->tf_rsi = mcp->mc_rsi;
- tp->tf_rbp = mcp->mc_rbp;
- tp->tf_rbx = mcp->mc_rbx;
- tp->tf_rdx = mcp->mc_rdx;
- tp->tf_rcx = mcp->mc_rcx;
- tp->tf_rax = mcp->mc_rax;
- tp->tf_rip = mcp->mc_rip;
- tp->tf_rflags = rflags;
- tp->tf_rsp = mcp->mc_rsp;
- tp->tf_ss = mcp->mc_ss;
- ret = 0;
- }
- return (ret);
+ ret = set_fpcontext(td, mcp);
+ if (ret != 0)
+ return (ret);
+ tp->tf_r15 = mcp->mc_r15;
+ tp->tf_r14 = mcp->mc_r14;
+ tp->tf_r13 = mcp->mc_r13;
+ tp->tf_r12 = mcp->mc_r12;
+ tp->tf_r11 = mcp->mc_r11;
+ tp->tf_r10 = mcp->mc_r10;
+ tp->tf_r9 = mcp->mc_r9;
+ tp->tf_r8 = mcp->mc_r8;
+ tp->tf_rdi = mcp->mc_rdi;
+ tp->tf_rsi = mcp->mc_rsi;
+ tp->tf_rbp = mcp->mc_rbp;
+ tp->tf_rbx = mcp->mc_rbx;
+ tp->tf_rdx = mcp->mc_rdx;
+ tp->tf_rcx = mcp->mc_rcx;
+ tp->tf_rax = mcp->mc_rax;
+ tp->tf_rip = mcp->mc_rip;
+ tp->tf_rflags = rflags;
+ tp->tf_rsp = mcp->mc_rsp;
+ tp->tf_ss = mcp->mc_ss;
+ return (0);
}
static void
get_fpcontext(struct thread *td, mcontext_t *mcp)
{
- struct savefpu *addr;
- /*
- * XXX mc_fpstate might be misaligned, since its declaration is not
- * unportabilized using __attribute__((aligned(16))) like the
- * declaration of struct savemm, and anyway, alignment doesn't work
- * for auto variables since we don't use gcc's pessimal stack
- * alignment. Work around this by abusing the spare fields after
- * mcp->mc_fpstate.
- *
- * XXX unpessimize most cases by only aligning when fxsave might be
- * called, although this requires knowing too much about
- * npxgetregs()'s internals.
- */
- addr = (struct savefpu *)&mcp->mc_fpstate;
- if (td == PCPU_GET(fpcurthread) && ((uintptr_t)(void *)addr & 0xF)) {
- do
- addr = (void *)((char *)addr + 4);
- while ((uintptr_t)(void *)addr & 0xF);
- }
- mcp->mc_ownedfp = npxgetregs(td, addr);
- if (addr != (struct savefpu *)&mcp->mc_fpstate) {
- bcopy(addr, &mcp->mc_fpstate, sizeof(mcp->mc_fpstate));
- bzero(&mcp->mc_spare2, sizeof(mcp->mc_spare2));
- }
+ mcp->mc_ownedfp = npxgetregs(td, (struct savefpu *)&mcp->mc_fpstate);
mcp->mc_fpformat = npxformat();
}
static int
>>> TRUNCATED FOR MAIL (1000 lines) <<<
More information about the p4-projects
mailing list