Date: Thu, 18 Sep 2003 10:59:30 -0700 (PDT) From: John Baldwin <jhb@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 38239 for review Message-ID: <200309181759.h8IHxUHf073033@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=38239 Change 38239 by jhb@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) <<<
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200309181759.h8IHxUHf073033>
