PERFORCE change 65778 for review

Robert Watson rwatson at FreeBSD.org
Wed Nov 24 06:19:34 PST 2004


http://perforce.freebsd.org/chv.cgi?CH=65778

Change 65778 by rwatson at rwatson_zoo on 2004/11/24 14:18:40

	Integrate netperf_socket from FreeBSD CVS:
	
	alpha cpuid cleanup.
	u-area substantially removed.
	bounce buffer page pools.
	additional vm locking/clenaup.
	file descriptor locking chages, fixes -- there's now a sleep lock.
	  select, et al, substantially less giant-centric.  conditional
	  acquisition of Giant for the network stack pushed into fo_ioctl,
	  fo_poll, etc.
	armisms galore.
	pci link, interrupt, isa magic.
	bundles of dma cleanups relating to large memory spaces and bounce
	  buffering.
	if_ed altq.
	if_hme mpsafe.
	bufobj becomes argument to vop_vmap, not device node vnode pointer.
	vnode bypass for device nodes.
	vnode bypass for fifo nodes.
	revoke cleanup.
	de-80386.
	UP spin lock optimization.
	interrupt storm detection cleanup.
	ntp_gettime() system call.
	many more TCP lock documentation, assertions, some new locking,
	  locking fixes, especially relating to tcp_input(), TCP ISN
	  generation, time wait states.
	divert socket "connection" clean up (don't connect).
	many if_sk bug fixes.
	Parts of MAC support for System V IPC; System V IPC ABI cleanup.

Affected files ...

.. //depot/projects/netperf_socket/sys/alpha/alpha/genassym.c#3 integrate
.. //depot/projects/netperf_socket/sys/alpha/alpha/interrupt.c#8 integrate
.. //depot/projects/netperf_socket/sys/alpha/alpha/machdep.c#10 integrate
.. //depot/projects/netperf_socket/sys/alpha/alpha/mp_machdep.c#3 integrate
.. //depot/projects/netperf_socket/sys/alpha/include/param.h#6 integrate
.. //depot/projects/netperf_socket/sys/amd64/amd64/busdma_machdep.c#8 integrate
.. //depot/projects/netperf_socket/sys/amd64/amd64/genassym.c#5 integrate
.. //depot/projects/netperf_socket/sys/amd64/amd64/machdep.c#20 integrate
.. //depot/projects/netperf_socket/sys/amd64/include/param.h#6 integrate
.. //depot/projects/netperf_socket/sys/arm/arm/busdma_machdep.c#6 integrate
.. //depot/projects/netperf_socket/sys/arm/arm/db_interface.c#3 integrate
.. //depot/projects/netperf_socket/sys/arm/arm/db_trace.c#7 integrate
.. //depot/projects/netperf_socket/sys/arm/arm/exception.S#4 integrate
.. //depot/projects/netperf_socket/sys/arm/arm/genassym.c#4 integrate
.. //depot/projects/netperf_socket/sys/arm/arm/intr.c#5 integrate
.. //depot/projects/netperf_socket/sys/arm/arm/pmap.c#12 integrate
.. //depot/projects/netperf_socket/sys/arm/arm/swtch.S#5 integrate
.. //depot/projects/netperf_socket/sys/arm/arm/trap.c#4 integrate
.. //depot/projects/netperf_socket/sys/arm/arm/undefined.c#2 integrate
.. //depot/projects/netperf_socket/sys/arm/arm/vm_machdep.c#7 integrate
.. //depot/projects/netperf_socket/sys/arm/include/cpufunc.h#5 integrate
.. //depot/projects/netperf_socket/sys/arm/include/db_machdep.h#3 integrate
.. //depot/projects/netperf_socket/sys/arm/include/kdb.h#2 integrate
.. //depot/projects/netperf_socket/sys/arm/include/param.h#5 integrate
.. //depot/projects/netperf_socket/sys/arm/sa11x0/assabet_machdep.c#6 integrate
.. //depot/projects/netperf_socket/sys/arm/xscale/i80321/i80321.c#2 integrate
.. //depot/projects/netperf_socket/sys/arm/xscale/i80321/iq31244_machdep.c#4 integrate
.. //depot/projects/netperf_socket/sys/arm/xscale/i80321/std.i80321#2 integrate
.. //depot/projects/netperf_socket/sys/arm/xscale/i80321/std.iq31244#2 integrate
.. //depot/projects/netperf_socket/sys/arm/xscale/i80321/uart_bus_i80321.c#2 integrate
.. //depot/projects/netperf_socket/sys/arm/xscale/i80321/uart_cpu_i80321.c#2 integrate
.. //depot/projects/netperf_socket/sys/boot/Makefile#5 integrate
.. //depot/projects/netperf_socket/sys/boot/common/commands.c#4 integrate
.. //depot/projects/netperf_socket/sys/boot/efi/Makefile#2 integrate
.. //depot/projects/netperf_socket/sys/boot/efi/libefi/arch/ia64/ldscript.ia64#3 delete
.. //depot/projects/netperf_socket/sys/boot/efi/libefi/arch/ia64/start.S#3 delete
.. //depot/projects/netperf_socket/sys/boot/efi/loader/Makefile#4 delete
.. //depot/projects/netperf_socket/sys/boot/efi/loader/conf.c#2 delete
.. //depot/projects/netperf_socket/sys/boot/efi/loader/main.c#4 delete
.. //depot/projects/netperf_socket/sys/boot/efi/loader/version#2 delete
.. //depot/projects/netperf_socket/sys/boot/ia64/Makefile#3 integrate
.. //depot/projects/netperf_socket/sys/boot/ia64/efi/Makefile#1 branch
.. //depot/projects/netperf_socket/sys/boot/ia64/efi/conf.c#1 branch
.. //depot/projects/netperf_socket/sys/boot/ia64/efi/ldscript.ia64#1 branch
.. //depot/projects/netperf_socket/sys/boot/ia64/efi/main.c#1 branch
.. //depot/projects/netperf_socket/sys/boot/ia64/efi/start.S#1 branch
.. //depot/projects/netperf_socket/sys/boot/ia64/efi/version#1 branch
.. //depot/projects/netperf_socket/sys/cam/cam_xpt.c#7 integrate
.. //depot/projects/netperf_socket/sys/coda/coda_vnops.c#4 integrate
.. //depot/projects/netperf_socket/sys/compat/freebsd32/freebsd32_proto.h#10 integrate
.. //depot/projects/netperf_socket/sys/compat/freebsd32/freebsd32_syscall.h#10 integrate
.. //depot/projects/netperf_socket/sys/compat/freebsd32/freebsd32_syscalls.c#10 integrate
.. //depot/projects/netperf_socket/sys/compat/freebsd32/freebsd32_sysent.c#10 integrate
.. //depot/projects/netperf_socket/sys/compat/freebsd32/syscalls.master#9 integrate
.. //depot/projects/netperf_socket/sys/compat/pecoff/imgact_pecoff.c#3 integrate
.. //depot/projects/netperf_socket/sys/compat/svr4/svr4_filio.c#4 integrate
.. //depot/projects/netperf_socket/sys/compat/svr4/svr4_misc.c#5 integrate
.. //depot/projects/netperf_socket/sys/conf/NOTES#46 integrate
.. //depot/projects/netperf_socket/sys/conf/files#57 integrate
.. //depot/projects/netperf_socket/sys/conf/files.alpha#8 integrate
.. //depot/projects/netperf_socket/sys/conf/files.amd64#18 integrate
.. //depot/projects/netperf_socket/sys/conf/files.arm#2 integrate
.. //depot/projects/netperf_socket/sys/conf/files.i386#31 integrate
.. //depot/projects/netperf_socket/sys/conf/files.ia64#9 integrate
.. //depot/projects/netperf_socket/sys/conf/files.pc98#17 integrate
.. //depot/projects/netperf_socket/sys/conf/files.sparc64#13 integrate
.. //depot/projects/netperf_socket/sys/conf/kern.post.mk#11 integrate
.. //depot/projects/netperf_socket/sys/conf/kmod.mk#18 integrate
.. //depot/projects/netperf_socket/sys/conf/options.i386#7 integrate
.. //depot/projects/netperf_socket/sys/conf/options.pc98#9 integrate
.. //depot/projects/netperf_socket/sys/contrib/pf/net/pf.c#17 integrate
.. //depot/projects/netperf_socket/sys/crypto/blowfish/arch/i386/bf_enc.S#2 integrate
.. //depot/projects/netperf_socket/sys/ddb/db_command.c#6 integrate
.. //depot/projects/netperf_socket/sys/ddb/db_ps.c#7 integrate
.. //depot/projects/netperf_socket/sys/ddb/db_run.c#3 integrate
.. //depot/projects/netperf_socket/sys/ddb/db_thread.c#3 integrate
.. //depot/projects/netperf_socket/sys/dev/aac/aac.c#12 integrate
.. //depot/projects/netperf_socket/sys/dev/acpi_support/acpi_asus.c#1 branch
.. //depot/projects/netperf_socket/sys/dev/acpi_support/acpi_panasonic.c#1 branch
.. //depot/projects/netperf_socket/sys/dev/acpi_support/acpi_sony.c#1 branch
.. //depot/projects/netperf_socket/sys/dev/acpi_support/acpi_toshiba.c#1 branch
.. //depot/projects/netperf_socket/sys/dev/acpica/acpi_cpu.c#14 integrate
.. //depot/projects/netperf_socket/sys/dev/acpica/acpi_pci_link.c#15 integrate
.. //depot/projects/netperf_socket/sys/dev/acpica/acpi_pcib.c#13 integrate
.. //depot/projects/netperf_socket/sys/dev/acpica/acpi_pcib_acpi.c#13 integrate
.. //depot/projects/netperf_socket/sys/dev/acpica/acpi_pcib_pci.c#6 integrate
.. //depot/projects/netperf_socket/sys/dev/acpica/acpi_pcibvar.h#3 integrate
.. //depot/projects/netperf_socket/sys/dev/acpica/acpi_snc.c#2 delete
.. //depot/projects/netperf_socket/sys/dev/aic7xxx/aic79xx.c#7 integrate
.. //depot/projects/netperf_socket/sys/dev/aic7xxx/aic79xx.h#7 integrate
.. //depot/projects/netperf_socket/sys/dev/aic7xxx/aic7xxx.c#7 integrate
.. //depot/projects/netperf_socket/sys/dev/aic7xxx/aic_osm_lib.h#4 integrate
.. //depot/projects/netperf_socket/sys/dev/ata/ata-all.c#22 integrate
.. //depot/projects/netperf_socket/sys/dev/ata/ata-dma.c#8 integrate
.. //depot/projects/netperf_socket/sys/dev/ata/ata-lowlevel.c#19 integrate
.. //depot/projects/netperf_socket/sys/dev/bge/if_bge.c#14 integrate
.. //depot/projects/netperf_socket/sys/dev/ed/if_ed.c#11 integrate
.. //depot/projects/netperf_socket/sys/dev/fdc/fdc.c#15 integrate
.. //depot/projects/netperf_socket/sys/dev/fxp/if_fxp.c#14 integrate
.. //depot/projects/netperf_socket/sys/dev/hme/if_hme.c#12 integrate
.. //depot/projects/netperf_socket/sys/dev/hme/if_hme_pci.c#6 integrate
.. //depot/projects/netperf_socket/sys/dev/hme/if_hme_sbus.c#7 integrate
.. //depot/projects/netperf_socket/sys/dev/hme/if_hmevar.h#4 integrate
.. //depot/projects/netperf_socket/sys/dev/ic/ns16550.h#3 integrate
.. //depot/projects/netperf_socket/sys/dev/ic/sab82532.h#1 branch
.. //depot/projects/netperf_socket/sys/dev/ic/z8530.h#1 branch
.. //depot/projects/netperf_socket/sys/dev/mc146818/mc146818.c#1 branch
.. //depot/projects/netperf_socket/sys/dev/mc146818/mc146818reg.h#1 branch
.. //depot/projects/netperf_socket/sys/dev/mc146818/mc146818var.h#1 branch
.. //depot/projects/netperf_socket/sys/dev/mk48txx/mk48txx.c#3 integrate
.. //depot/projects/netperf_socket/sys/dev/mk48txx/mk48txxreg.h#3 integrate
.. //depot/projects/netperf_socket/sys/dev/mk48txx/mk48txxvar.h#1 branch
.. //depot/projects/netperf_socket/sys/dev/puc/puc_sbus.c#5 integrate
.. //depot/projects/netperf_socket/sys/dev/streams/streams.c#5 integrate
.. //depot/projects/netperf_socket/sys/dev/uart/uart_bus.h#5 integrate
.. //depot/projects/netperf_socket/sys/dev/uart/uart_bus_isa.c#4 integrate
.. //depot/projects/netperf_socket/sys/dev/uart/uart_core.c#5 integrate
.. //depot/projects/netperf_socket/sys/dev/uart/uart_cpu.h#4 integrate
.. //depot/projects/netperf_socket/sys/dev/uart/uart_cpu_alpha.c#4 integrate
.. //depot/projects/netperf_socket/sys/dev/uart/uart_cpu_amd64.c#4 integrate
.. //depot/projects/netperf_socket/sys/dev/uart/uart_cpu_i386.c#4 integrate
.. //depot/projects/netperf_socket/sys/dev/uart/uart_cpu_ia64.c#4 integrate
.. //depot/projects/netperf_socket/sys/dev/uart/uart_cpu_pc98.c#5 integrate
.. //depot/projects/netperf_socket/sys/dev/uart/uart_cpu_sparc64.c#6 integrate
.. //depot/projects/netperf_socket/sys/dev/uart/uart_dev_i8251.c#3 delete
.. //depot/projects/netperf_socket/sys/dev/uart/uart_dev_i8251.h#2 delete
.. //depot/projects/netperf_socket/sys/dev/uart/uart_dev_ns8250.c#7 integrate
.. //depot/projects/netperf_socket/sys/dev/uart/uart_dev_ns8250.h#2 delete
.. //depot/projects/netperf_socket/sys/dev/uart/uart_dev_sab82532.c#4 integrate
.. //depot/projects/netperf_socket/sys/dev/uart/uart_dev_sab82532.h#2 delete
.. //depot/projects/netperf_socket/sys/dev/uart/uart_dev_z8530.c#4 integrate
.. //depot/projects/netperf_socket/sys/dev/uart/uart_dev_z8530.h#2 delete
.. //depot/projects/netperf_socket/sys/dev/uart/uart_subr.c#2 integrate
.. //depot/projects/netperf_socket/sys/dev/usb/ehci.c#12 integrate
.. //depot/projects/netperf_socket/sys/dev/usb/ohci.c#6 integrate
.. //depot/projects/netperf_socket/sys/dev/usb/uhci.c#8 integrate
.. //depot/projects/netperf_socket/sys/dev/vkbd/vkbd.c#1 branch
.. //depot/projects/netperf_socket/sys/dev/vkbd/vkbd_var.h#1 branch
.. //depot/projects/netperf_socket/sys/fs/deadfs/dead_vnops.c#3 integrate
.. //depot/projects/netperf_socket/sys/fs/devfs/devfs_vnops.c#9 integrate
.. //depot/projects/netperf_socket/sys/fs/fdescfs/fdesc_vfsops.c#8 integrate
.. //depot/projects/netperf_socket/sys/fs/fdescfs/fdesc_vnops.c#3 integrate
.. //depot/projects/netperf_socket/sys/fs/fifofs/fifo_vnops.c#13 integrate
.. //depot/projects/netperf_socket/sys/fs/hpfs/hpfs_vnops.c#5 integrate
.. //depot/projects/netperf_socket/sys/fs/msdosfs/msdosfs_vnops.c#6 integrate
.. //depot/projects/netperf_socket/sys/fs/ntfs/ntfs_vnops.c#4 integrate
.. //depot/projects/netperf_socket/sys/fs/udf/udf_vnops.c#7 integrate
.. //depot/projects/netperf_socket/sys/fs/unionfs/union_subr.c#4 integrate
.. //depot/projects/netperf_socket/sys/fs/unionfs/union_vfsops.c#7 integrate
.. //depot/projects/netperf_socket/sys/fs/unionfs/union_vnops.c#6 integrate
.. //depot/projects/netperf_socket/sys/geom/gate/g_gate.c#10 integrate
.. //depot/projects/netperf_socket/sys/geom/uzip/g_uzip.c#4 integrate
.. //depot/projects/netperf_socket/sys/geom/vinum/geom_vinum.h#5 integrate
.. //depot/projects/netperf_socket/sys/geom/vinum/geom_vinum_raid5.c#7 integrate
.. //depot/projects/netperf_socket/sys/geom/vinum/geom_vinum_share.c#4 integrate
.. //depot/projects/netperf_socket/sys/geom/vinum/geom_vinum_share.h#2 integrate
.. //depot/projects/netperf_socket/sys/geom/vinum/geom_vinum_subr.c#8 integrate
.. //depot/projects/netperf_socket/sys/gnu/ext2fs/ext2_bmap.c#4 integrate
.. //depot/projects/netperf_socket/sys/i386/acpica/acpi_asus.c#12 delete
.. //depot/projects/netperf_socket/sys/i386/acpica/acpi_panasonic.c#6 delete
.. //depot/projects/netperf_socket/sys/i386/acpica/acpi_toshiba.c#11 delete
.. //depot/projects/netperf_socket/sys/i386/conf/NOTES#31 integrate
.. //depot/projects/netperf_socket/sys/i386/i386/busdma_machdep.c#8 integrate
.. //depot/projects/netperf_socket/sys/i386/i386/genassym.c#4 integrate
.. //depot/projects/netperf_socket/sys/i386/i386/identcpu.c#8 integrate
.. //depot/projects/netperf_socket/sys/i386/i386/locore.s#4 integrate
.. //depot/projects/netperf_socket/sys/i386/i386/machdep.c#15 integrate
.. //depot/projects/netperf_socket/sys/i386/i386/mp_machdep.c#12 integrate
.. //depot/projects/netperf_socket/sys/i386/i386/pmap.c#31 integrate
.. //depot/projects/netperf_socket/sys/i386/i386/support.s#5 integrate
.. //depot/projects/netperf_socket/sys/i386/i386/trap.c#8 integrate
.. //depot/projects/netperf_socket/sys/i386/include/atomic.h#4 integrate
.. //depot/projects/netperf_socket/sys/i386/include/cpu.h#6 integrate
.. //depot/projects/netperf_socket/sys/i386/include/endian.h#4 integrate
.. //depot/projects/netperf_socket/sys/i386/include/param.h#7 integrate
.. //depot/projects/netperf_socket/sys/i386/linux/linux_sysvec.c#4 integrate
.. //depot/projects/netperf_socket/sys/ia64/conf/GENERIC.hints#3 integrate
.. //depot/projects/netperf_socket/sys/ia64/ia64/genassym.c#4 integrate
.. //depot/projects/netperf_socket/sys/ia64/ia64/machdep.c#13 integrate
.. //depot/projects/netperf_socket/sys/ia64/ia64/pmap.c#20 integrate
.. //depot/projects/netperf_socket/sys/ia64/include/param.h#3 integrate
.. //depot/projects/netperf_socket/sys/ia64/include/pte.h#4 integrate
.. //depot/projects/netperf_socket/sys/isofs/cd9660/cd9660_bmap.c#4 integrate
.. //depot/projects/netperf_socket/sys/kern/imgact_aout.c#4 integrate
.. //depot/projects/netperf_socket/sys/kern/init_main.c#12 integrate
.. //depot/projects/netperf_socket/sys/kern/init_sysent.c#13 integrate
.. //depot/projects/netperf_socket/sys/kern/kern_descrip.c#22 integrate
.. //depot/projects/netperf_socket/sys/kern/kern_event.c#15 integrate
.. //depot/projects/netperf_socket/sys/kern/kern_exec.c#19 integrate
.. //depot/projects/netperf_socket/sys/kern/kern_fork.c#21 integrate
.. //depot/projects/netperf_socket/sys/kern/kern_intr.c#14 integrate
.. //depot/projects/netperf_socket/sys/kern/kern_kse.c#16 integrate
.. //depot/projects/netperf_socket/sys/kern/kern_ntptime.c#4 integrate
.. //depot/projects/netperf_socket/sys/kern/kern_proc.c#19 integrate
.. //depot/projects/netperf_socket/sys/kern/kern_sig.c#23 integrate
.. //depot/projects/netperf_socket/sys/kern/kern_switch.c#18 integrate
.. //depot/projects/netperf_socket/sys/kern/kern_thr.c#15 integrate
.. //depot/projects/netperf_socket/sys/kern/kern_thread.c#30 integrate
.. //depot/projects/netperf_socket/sys/kern/sys_generic.c#7 integrate
.. //depot/projects/netperf_socket/sys/kern/sys_pipe.c#9 integrate
.. //depot/projects/netperf_socket/sys/kern/sys_socket.c#11 integrate
.. //depot/projects/netperf_socket/sys/kern/syscalls.c#13 integrate
.. //depot/projects/netperf_socket/sys/kern/syscalls.master#13 integrate
.. //depot/projects/netperf_socket/sys/kern/tty.c#19 integrate
.. //depot/projects/netperf_socket/sys/kern/uipc_syscalls.c#30 integrate
.. //depot/projects/netperf_socket/sys/kern/vfs_bio.c#14 integrate
.. //depot/projects/netperf_socket/sys/kern/vfs_cluster.c#7 integrate
.. //depot/projects/netperf_socket/sys/kern/vfs_default.c#9 integrate
.. //depot/projects/netperf_socket/sys/kern/vfs_mount.c#18 integrate
.. //depot/projects/netperf_socket/sys/kern/vfs_subr.c#28 integrate
.. //depot/projects/netperf_socket/sys/kern/vfs_syscalls.c#16 integrate
.. //depot/projects/netperf_socket/sys/kern/vfs_vnops.c#14 integrate
.. //depot/projects/netperf_socket/sys/kern/vnode_if.src#5 integrate
.. //depot/projects/netperf_socket/sys/modules/Makefile#24 integrate
.. //depot/projects/netperf_socket/sys/modules/acpi/Makefile#6 integrate
.. //depot/projects/netperf_socket/sys/modules/acpi/acpi_asus/Makefile#4 integrate
.. //depot/projects/netperf_socket/sys/modules/acpi/acpi_panasonic/Makefile#3 integrate
.. //depot/projects/netperf_socket/sys/modules/acpi/acpi_snc/Makefile#2 delete
.. //depot/projects/netperf_socket/sys/modules/acpi/acpi_sony/Makefile#1 branch
.. //depot/projects/netperf_socket/sys/modules/acpi/acpi_toshiba/Makefile#4 integrate
.. //depot/projects/netperf_socket/sys/modules/sio/Makefile#4 integrate
.. //depot/projects/netperf_socket/sys/modules/uart/Makefile#7 integrate
.. //depot/projects/netperf_socket/sys/modules/vkbd/Makefile#1 branch
.. //depot/projects/netperf_socket/sys/net/if.c#24 integrate
.. //depot/projects/netperf_socket/sys/net/if.h#10 integrate
.. //depot/projects/netperf_socket/sys/netgraph/atm/sscop/ng_sscop_cust.h#3 integrate
.. //depot/projects/netperf_socket/sys/netgraph/bluetooth/drivers/bt3c/ng_bt3c_pccard.c#5 integrate
.. //depot/projects/netperf_socket/sys/netgraph/ng_cisco.c#5 integrate
.. //depot/projects/netperf_socket/sys/netgraph/ng_iface.c#8 integrate
.. //depot/projects/netperf_socket/sys/netgraph/ng_one2many.c#5 integrate
.. //depot/projects/netperf_socket/sys/netgraph/ng_one2many.h#3 integrate
.. //depot/projects/netperf_socket/sys/netinet/in.c#7 integrate
.. //depot/projects/netperf_socket/sys/netinet/ip_divert.c#18 integrate
.. //depot/projects/netperf_socket/sys/netinet/tcp_fsm.h#3 integrate
.. //depot/projects/netperf_socket/sys/netinet/tcp_input.c#22 integrate
.. //depot/projects/netperf_socket/sys/netinet/tcp_subr.c#25 integrate
.. //depot/projects/netperf_socket/sys/netinet/tcp_timer.c#6 integrate
.. //depot/projects/netperf_socket/sys/nfsclient/nfs_bio.c#13 integrate
.. //depot/projects/netperf_socket/sys/opencrypto/cryptodev.c#7 integrate
.. //depot/projects/netperf_socket/sys/pc98/conf/GENERIC#18 integrate
.. //depot/projects/netperf_socket/sys/pc98/conf/NOTES#19 integrate
.. //depot/projects/netperf_socket/sys/pc98/i386/machdep.c#13 integrate
.. //depot/projects/netperf_socket/sys/pci/if_sf.c#11 integrate
.. //depot/projects/netperf_socket/sys/pci/if_sfreg.h#3 integrate
.. //depot/projects/netperf_socket/sys/pci/if_sk.c#14 integrate
.. //depot/projects/netperf_socket/sys/pci/if_skreg.h#5 integrate
.. //depot/projects/netperf_socket/sys/powerpc/include/param.h#4 integrate
.. //depot/projects/netperf_socket/sys/powerpc/powerpc/genassym.c#6 integrate
.. //depot/projects/netperf_socket/sys/powerpc/powerpc/machdep.c#8 integrate
.. //depot/projects/netperf_socket/sys/security/mac/mac_sysv_msg.c#1 branch
.. //depot/projects/netperf_socket/sys/security/mac/mac_sysv_sem.c#1 branch
.. //depot/projects/netperf_socket/sys/security/mac/mac_sysv_shm.c#1 branch
.. //depot/projects/netperf_socket/sys/sparc64/conf/GENERIC#15 integrate
.. //depot/projects/netperf_socket/sys/sparc64/conf/NOTES#9 integrate
.. //depot/projects/netperf_socket/sys/sparc64/include/eeprom.h#4 integrate
.. //depot/projects/netperf_socket/sys/sparc64/include/param.h#2 integrate
.. //depot/projects/netperf_socket/sys/sparc64/isa/isa.c#5 integrate
.. //depot/projects/netperf_socket/sys/sparc64/sparc64/eeprom.c#4 integrate
.. //depot/projects/netperf_socket/sys/sparc64/sparc64/eeprom_ebus.c#6 integrate
.. //depot/projects/netperf_socket/sys/sparc64/sparc64/eeprom_sbus.c#6 integrate
.. //depot/projects/netperf_socket/sys/sparc64/sparc64/genassym.c#3 integrate
.. //depot/projects/netperf_socket/sys/sparc64/sparc64/machdep.c#10 integrate
.. //depot/projects/netperf_socket/sys/sparc64/sparc64/rtc.c#1 branch
.. //depot/projects/netperf_socket/sys/sys/buf.h#8 integrate
.. //depot/projects/netperf_socket/sys/sys/filedesc.h#6 integrate
.. //depot/projects/netperf_socket/sys/sys/mac.h#5 integrate
.. //depot/projects/netperf_socket/sys/sys/mac_policy.h#8 integrate
.. //depot/projects/netperf_socket/sys/sys/msg.h#3 integrate
.. //depot/projects/netperf_socket/sys/sys/proc.h#30 integrate
.. //depot/projects/netperf_socket/sys/sys/sem.h#3 integrate
.. //depot/projects/netperf_socket/sys/sys/shm.h#3 integrate
.. //depot/projects/netperf_socket/sys/sys/syscall.h#13 integrate
.. //depot/projects/netperf_socket/sys/sys/syscall.mk#13 integrate
.. //depot/projects/netperf_socket/sys/sys/sysproto.h#13 integrate
.. //depot/projects/netperf_socket/sys/sys/systm.h#13 integrate
.. //depot/projects/netperf_socket/sys/sys/user.h#10 integrate
.. //depot/projects/netperf_socket/sys/sys/vnode.h#14 integrate
.. //depot/projects/netperf_socket/sys/ufs/ffs/ffs_vfsops.c#14 integrate
.. //depot/projects/netperf_socket/sys/ufs/ffs/ffs_vnops.c#10 integrate
.. //depot/projects/netperf_socket/sys/ufs/ufs/ufs_bmap.c#4 integrate
.. //depot/projects/netperf_socket/sys/vm/swap_pager.c#12 integrate
.. //depot/projects/netperf_socket/sys/vm/vm_extern.h#8 integrate
.. //depot/projects/netperf_socket/sys/vm/vm_glue.c#16 integrate
.. //depot/projects/netperf_socket/sys/vm/vm_pageout.h#3 integrate
.. //depot/projects/netperf_socket/sys/vm/vm_pager.c#6 integrate
.. //depot/projects/netperf_socket/sys/vm/vnode_pager.c#9 integrate

Differences ...

==== //depot/projects/netperf_socket/sys/alpha/alpha/genassym.c#3 (text+ko) ====

@@ -33,7 +33,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/alpha/alpha/genassym.c,v 1.44 2004/04/05 21:00:49 imp Exp $");
+__FBSDID("$FreeBSD: src/sys/alpha/alpha/genassym.c,v 1.45 2004/11/20 02:28:14 das Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -52,12 +52,12 @@
 #include <sys/ktr.h>
 #include <machine/frame.h>
 #include <machine/chipset.h>
+#include <machine/pcb.h>
 #include <sys/vmmeter.h>
 #include <vm/vm.h>
 #include <vm/vm_param.h>
 #include <vm/pmap.h>
 #include <vm/vm_map.h>
-#include <sys/user.h>
 #include <net/if.h>
 #include <netinet/in.h>
 #include <nfs/nfsproto.h>

==== //depot/projects/netperf_socket/sys/alpha/alpha/interrupt.c#8 (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.82 2004/07/20 06:32:32 alc Exp $");
+__FBSDID("$FreeBSD: src/sys/alpha/alpha/interrupt.c,v 1.83 2004/11/23 22:11:53 jhb Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -474,7 +474,7 @@
 		/*
 		 * Only one processor drives the actual timer.
 		 */
-		if (PCPU_GET(cpuid) == boot_cpu_id) {
+		if (PCPU_GET(cpuid) == 0) {
 #endif
 			(*platform.clockintr)(framep);
 			/* divide hz (1024) by 8 to get stathz (128) */

==== //depot/projects/netperf_socket/sys/alpha/alpha/machdep.c#10 (text+ko) ====

@@ -88,7 +88,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/alpha/alpha/machdep.c,v 1.224 2004/11/05 19:16:43 jhb Exp $");
+__FBSDID("$FreeBSD: src/sys/alpha/alpha/machdep.c,v 1.225 2004/11/20 02:29:36 das Exp $");
 
 #include "opt_compat.h"
 #include "opt_ddb.h"
@@ -160,7 +160,6 @@
 
 struct mtx icu_lock;
 
-struct	user *proc0uarea;
 vm_offset_t proc0kstack;
 
 char machine[] = "alpha";
@@ -848,11 +847,9 @@
 
 	proc_linkup(&proc0, &ksegrp0, &thread0);
 	/*
-	 * Init mapping for u page(s) for proc 0
+	 * Init mapping for kernel stack for proc 0
 	 */
-	proc0uarea = (struct user *)pmap_steal_memory(UAREA_PAGES * PAGE_SIZE);
 	proc0kstack = pmap_steal_memory(KSTACK_PAGES * PAGE_SIZE);
-	proc0.p_uarea = proc0uarea;
 	thread0.td_kstack = proc0kstack;
 	thread0.td_pcb = (struct pcb *)
 	    (thread0.td_kstack + KSTACK_PAGES * PAGE_SIZE) - 1;
@@ -861,7 +858,6 @@
 	 * Setup the per-CPU data for the bootstrap cpu.
 	 */
 	{
-		/* This is not a 'struct user' */
 		size_t sz = round_page(KSTACK_PAGES * PAGE_SIZE);
 		pcpup = (struct pcpu *) pmap_steal_memory(sz);
 		pcpu_init(pcpup, 0, sz);

==== //depot/projects/netperf_socket/sys/alpha/alpha/mp_machdep.c#3 (text+ko) ====

@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/alpha/alpha/mp_machdep.c,v 1.53 2004/11/05 19:16:43 jhb Exp $");
+__FBSDID("$FreeBSD: src/sys/alpha/alpha/mp_machdep.c,v 1.54 2004/11/20 02:29:36 das Exp $");
 
 #include "opt_kstack_pages.h"
 
@@ -233,7 +233,7 @@
 	if (bootverbose)
 		printf("smp_start_secondary: starting cpu %d\n", pal_id);
 
-	sz = round_page((UAREA_PAGES + KSTACK_PAGES) * PAGE_SIZE);
+	sz = KSTACK_PAGES * PAGE_SIZE;
 	pcpu = malloc(sz, M_TEMP, M_NOWAIT);
 	if (!pcpu) {
 		printf("smp_start_secondary: can't allocate memory\n");

==== //depot/projects/netperf_socket/sys/alpha/include/param.h#6 (text+ko) ====

@@ -1,4 +1,4 @@
-/* $FreeBSD: src/sys/alpha/include/param.h,v 1.36 2004/09/02 18:59:14 scottl Exp $ */
+/* $FreeBSD: src/sys/alpha/include/param.h,v 1.37 2004/11/20 02:29:49 das Exp $ */
 /* From: NetBSD: param.h,v 1.20 1997/09/19 13:52:53 leo Exp */
 
 /*
@@ -117,7 +117,6 @@
 #define	KSTACK_PAGES	2		/* pages of kstack (with pcb) */
 #endif
 #define	KSTACK_GUARD_PAGES	1	/* pages of kstack guard; 0 disables */
-#define	UAREA_PAGES	1		/* pages of u-area */
 
 
 /*

==== //depot/projects/netperf_socket/sys/amd64/amd64/busdma_machdep.c#8 (text+ko) ====

@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/busdma_machdep.c,v 1.60 2004/11/10 03:49:24 scottl Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/busdma_machdep.c,v 1.63 2004/11/21 06:28:09 scottl Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -40,7 +40,6 @@
 #include <sys/mbuf.h>
 #include <sys/uio.h>
 #include <sys/sysctl.h>
-#include <sys/ktr.h>
 
 #include <vm/vm.h>
 #include <vm/vm_page.h>
@@ -87,6 +86,7 @@
 struct bounce_zone {
 	STAILQ_ENTRY(bounce_zone) links;
 	STAILQ_HEAD(bp_list, bounce_page) bounce_page_list;
+	int		total_bpages;
 	int		free_bpages;
 	int		reserved_bpages;
 	int		active_bpages;
@@ -128,15 +128,14 @@
 static struct bus_dmamap nobounce_dmamap;
 
 static void init_bounce_pages(void *dummy);
-static struct bounce_zone * alloc_bounce_zone(bus_dma_tag_t dmat);
+static int alloc_bounce_zone(bus_dma_tag_t dmat);
 static int alloc_bounce_pages(bus_dma_tag_t dmat, u_int numpages);
 static int reserve_bounce_pages(bus_dma_tag_t dmat, bus_dmamap_t map,
 				int commit);
 static bus_addr_t add_bounce_page(bus_dma_tag_t dmat, bus_dmamap_t map,
 				   vm_offset_t vaddr, bus_size_t size);
 static void free_bounce_page(bus_dma_tag_t dmat, struct bounce_page *bpage);
-static __inline int run_filter(bus_dma_tag_t dmat, bus_addr_t paddr,
-			       bus_size_t len);
+static __inline int run_filter(bus_dma_tag_t dmat, bus_addr_t paddr);
 
 /*
  * Return true if a match is made.
@@ -147,18 +146,15 @@
  * to check for a match, if there is no filter callback then assume a match.
  */
 static __inline int
-run_filter(bus_dma_tag_t dmat, bus_addr_t paddr, bus_size_t len)
+run_filter(bus_dma_tag_t dmat, bus_addr_t paddr)
 {
-	bus_size_t bndy;
 	int retval;
 
 	retval = 0;
-	bndy = dmat->boundary;
 
 	do {
 		if (((paddr > dmat->lowaddr && paddr <= dmat->highaddr)
-		 || ((paddr & (dmat->alignment - 1)) != 0)
-		 || ((paddr & bndy) != ((paddr + len) & bndy)))
+		 || ((paddr & (dmat->alignment - 1)) != 0))
 		 && (dmat->filter == NULL
 		  || (*dmat->filter)(dmat->filterarg, paddr) != 0))
 			retval = 1;
@@ -204,7 +200,8 @@
 	panic("driver error: busdma dflt_lock called");
 }
 
-#define BUS_DMA_MIN_ALLOC_COMP BUS_DMA_BUS4
+#define BUS_DMA_COULD_BOUNCE	BUS_DMA_BUS3
+#define BUS_DMA_MIN_ALLOC_COMP	BUS_DMA_BUS4
 /*
  * Allocate a device specific dma_tag.
  */
@@ -278,11 +275,21 @@
 		if (newtag->parent != NULL)
 			atomic_add_int(&parent->ref_count, 1);
 	}
-	
-	if (newtag->lowaddr < ptoa((vm_paddr_t)Maxmem) &&
+
+	if (newtag->lowaddr < ptoa((vm_paddr_t)Maxmem)
+	 || newtag->alignment > 1 || newtag->boundary > 0)
+		newtag->flags |= BUS_DMA_COULD_BOUNCE;
+
+	if (((newtag->flags & BUS_DMA_COULD_BOUNCE) != 0) &&
 	    (flags & BUS_DMA_ALLOCNOW) != 0) {
+		struct bounce_zone *bz;
+
 		/* Must bounce */
 
+		if ((error = alloc_bounce_zone(newtag)) != 0)
+			return (error);
+		bz = newtag->bounce_zone;
+
 		if (lowaddr > bounce_lowaddr) {
 			/*
 			 * Go through the pool and kill any pages
@@ -291,10 +298,10 @@
 			panic("bus_dma_tag_create: page reallocation "
 			      "not implemented");
 		}
-		if (ptoa(total_bpages) < maxsize) {
+		if (ptoa(bz->total_bpages) < maxsize) {
 			int pages;
 
-			pages = atop(maxsize) - total_bpages;
+			pages = atop(maxsize) - bz->total_bpages;
 
 			/* Add pages to our bounce pool */
 			if (alloc_bounce_pages(newtag, pages) < pages)
@@ -382,12 +389,16 @@
 	 * exclusion region, a data alignment that is stricter than 1, and/or
 	 * an active address boundary.
 	 */
-	if (dmat->lowaddr < ptoa((vm_paddr_t)Maxmem)
-	 || dmat->alignment > 1 || dmat->boundary > 0) {
+	if (dmat->flags & BUS_DMA_COULD_BOUNCE) {
 
 		/* Must bounce */
 		int maxpages;
 
+		if (dmat->bounce_zone == NULL) {
+			if ((error = alloc_bounce_zone(dmat)) != 0)
+				return (error);
+		}
+
 		*mapp = (bus_dmamap_t)malloc(sizeof(**mapp), M_DEVBUF,
 					     M_NOWAIT | M_ZERO);
 		if (*mapp == NULL) {
@@ -568,8 +579,7 @@
 		map = &nobounce_dmamap;
 
 	if ((map != &nobounce_dmamap && map->pagesneeded == 0) 
-	 && (dmat->lowaddr < ptoa((vm_paddr_t)Maxmem)
-	 || dmat->boundary > 0 || dmat->alignment > 1)) {
+	 && ((dmat->flags & BUS_DMA_COULD_BOUNCE) != 0)) {
 		vm_offset_t	vendaddr;
 
 		CTR4(KTR_BUSDMA, "lowaddr= %d Maxmem= %d, boundary= %d, "
@@ -586,7 +596,7 @@
 
 		while (vaddr < vendaddr) {
 			paddr = pmap_kextract(vaddr);
-			if (run_filter(dmat, paddr, 0) != 0) {
+			if (run_filter(dmat, paddr) != 0) {
 				needbounce = 1;
 				map->pagesneeded++;
 			}
@@ -647,7 +657,7 @@
 				sgsize = (baddr - curaddr);
 		}
 
-		if (map->pagesneeded != 0 && run_filter(dmat, curaddr, sgsize))
+		if (map->pagesneeded != 0 && run_filter(dmat, curaddr))
 			curaddr = add_bounce_page(dmat, map, vaddr, sgsize);
 
 		/*
@@ -902,14 +912,24 @@
 	return (bz->sysctl_tree_top);
 }
 
-static struct bounce_zone *
+static int
 alloc_bounce_zone(bus_dma_tag_t dmat)
 {
 	struct bounce_zone *bz;
 
+	/* Check to see if we already have a suitable zone */
+	STAILQ_FOREACH(bz, &bounce_zone_list, links) {
+		if ((dmat->alignment <= bz->alignment)
+		 && (dmat->boundary <= bz->boundary)
+		 && (dmat->lowaddr >= bz->lowaddr)) {
+			dmat->bounce_zone = bz;
+			return (0);
+		}
+	}
+
 	if ((bz = (struct bounce_zone *)malloc(sizeof(*bz), M_DEVBUF,
 	    M_NOWAIT | M_ZERO)) == NULL)
-		return (NULL);
+		return (ENOMEM);
 
 	STAILQ_INIT(&bz->bounce_page_list);
 	bz->free_bpages = 0;
@@ -922,6 +942,7 @@
 	busdma_zonecount++;
 	snprintf(bz->lowaddrid, 18, "%#jx", (uintmax_t)bz->lowaddr);
 	STAILQ_INSERT_TAIL(&bounce_zone_list, bz, links);
+	dmat->bounce_zone = bz;
 
 	sysctl_ctx_init(&bz->sysctl_tree);
 	bz->sysctl_tree_top = SYSCTL_ADD_NODE(&bz->sysctl_tree,
@@ -929,11 +950,15 @@
 	    CTLFLAG_RD, 0, "");
 	if (bz->sysctl_tree_top == NULL) {
 		sysctl_ctx_free(&bz->sysctl_tree);
-		return (bz);
+		return (0);	/* XXX error code? */
 	}
 
 	SYSCTL_ADD_INT(busdma_sysctl_tree(bz),
 	    SYSCTL_CHILDREN(busdma_sysctl_tree_top(bz)), OID_AUTO,
+	    "total_bpages", CTLFLAG_RD, &bz->total_bpages, 0,
+	    "Totoal bounce pages");
+	SYSCTL_ADD_INT(busdma_sysctl_tree(bz),
+	    SYSCTL_CHILDREN(busdma_sysctl_tree_top(bz)), OID_AUTO,
 	    "free_bpages", CTLFLAG_RD, &bz->free_bpages, 0,
 	    "Free bounce pages");
 	SYSCTL_ADD_INT(busdma_sysctl_tree(bz),
@@ -962,7 +987,7 @@
 	    SYSCTL_CHILDREN(busdma_sysctl_tree_top(bz)), OID_AUTO,
 	    "boundary", CTLFLAG_RD, &bz->boundary, 0, "");
 
-	return (bz);
+	return (0);
 }
 
 static int
@@ -972,21 +997,6 @@
 	int count;
 
 	bz = dmat->bounce_zone;
-	if (bz == NULL) {
-		STAILQ_FOREACH(bz, &bounce_zone_list, links) {
-			if ((dmat->alignment <= bz->alignment)
-			 && (dmat->boundary <= bz->boundary)
-			 && (dmat->lowaddr >= bz->lowaddr))
-				break;
-		}
-
-		if (bz == NULL) {
-			if ((bz = alloc_bounce_zone(dmat)) == NULL)
-				return (ENOMEM);
-		}
-		dmat->bounce_zone = bz;
-	}
-
 	count = 0;
 	while (numpages > 0) {
 		struct bounce_page *bpage;
@@ -1009,6 +1019,7 @@
 		mtx_lock(&bounce_lock);
 		STAILQ_INSERT_TAIL(&bz->bounce_page_list, bpage, links);
 		total_bpages++;
+		bz->total_bpages++;
 		bz->free_bpages++;
 		mtx_unlock(&bounce_lock);
 		count++;

==== //depot/projects/netperf_socket/sys/amd64/amd64/genassym.c#5 (text+ko) ====

@@ -33,7 +33,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/genassym.c,v 1.154 2004/05/16 22:43:57 peter Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/genassym.c,v 1.155 2004/11/20 02:30:59 das Exp $");
 
 #include "opt_compat.h"
 #include "opt_kstack_pages.h"
@@ -50,14 +50,12 @@
 #include <sys/socket.h>
 #include <sys/resourcevar.h>
 #include <sys/ucontext.h>
-#include <sys/user.h>
 #include <machine/tss.h>
 #include <sys/vmmeter.h>
 #include <vm/vm.h>
 #include <vm/vm_param.h>
 #include <vm/pmap.h>
 #include <vm/vm_map.h>
-#include <sys/user.h>
 #include <sys/proc.h>
 #include <net/if.h>
 #include <netinet/in.h>
@@ -67,6 +65,7 @@
 #include <nfsclient/nfsdiskless.h>
 #include <machine/apicreg.h>
 #include <machine/cpu.h>
+#include <machine/pcb.h>
 #include <machine/sigframe.h>
 #include <machine/proc.h>
 #include <machine/specialreg.h>
@@ -76,7 +75,6 @@
 ASSYM(VM_PMAP, offsetof(struct vmspace, vm_pmap));
 ASSYM(PM_ACTIVE, offsetof(struct pmap, pm_active));
 ASSYM(P_SFLAG, offsetof(struct proc, p_sflag));
-ASSYM(P_UAREA, offsetof(struct proc, p_uarea));
 
 ASSYM(TD_FLAGS, offsetof(struct thread, td_flags));
 ASSYM(TD_PCB, offsetof(struct thread, td_pcb));
@@ -88,7 +86,6 @@
 ASSYM(V_TRAP, offsetof(struct vmmeter, v_trap));
 ASSYM(V_SYSCALL, offsetof(struct vmmeter, v_syscall));
 ASSYM(V_INTR, offsetof(struct vmmeter, v_intr));
-ASSYM(UAREA_PAGES, UAREA_PAGES);
 ASSYM(KSTACK_PAGES, KSTACK_PAGES);
 ASSYM(PAGE_SIZE, PAGE_SIZE);
 ASSYM(NPTEPG, NPTEPG);

==== //depot/projects/netperf_socket/sys/amd64/amd64/machdep.c#20 (text+ko) ====

@@ -39,7 +39,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.622 2004/10/28 12:16:03 simokawa Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.623 2004/11/20 02:29:23 das Exp $");
 
 #include "opt_atalk.h"
 #include "opt_atpic.h"
@@ -1114,9 +1114,6 @@
 #error "have you forgotten the isa device?";
 #endif
 
-	proc0.p_uarea = (struct user *)(physfree + KERNBASE);
-	bzero(proc0.p_uarea, UAREA_PAGES * PAGE_SIZE);
-	physfree += UAREA_PAGES * PAGE_SIZE;
 	thread0.td_kstack = physfree + KERNBASE;
 	bzero((void *)thread0.td_kstack, KSTACK_PAGES * PAGE_SIZE);
 	physfree += KSTACK_PAGES * PAGE_SIZE;

==== //depot/projects/netperf_socket/sys/amd64/include/param.h#6 (text+ko) ====

@@ -36,7 +36,7 @@
  * SUCH DAMAGE.
  *
  *	@(#)param.h	8.1 (Berkeley) 6/10/93
- * $FreeBSD: src/sys/amd64/include/param.h,v 1.14 2004/09/02 18:59:14 scottl Exp $
+ * $FreeBSD: src/sys/amd64/include/param.h,v 1.15 2004/11/20 02:29:49 das Exp $
  */
 
 /*
@@ -125,7 +125,6 @@
 #define	KSTACK_PAGES	4	/* pages of kstack (with pcb) */
 #endif
 #define	KSTACK_GUARD_PAGES 1	/* pages of kstack guard; 0 disables */
-#define UAREA_PAGES	1	/* holds struct user WITHOUT PCB (see def.) */
 
 
 /*

==== //depot/projects/netperf_socket/sys/arm/arm/busdma_machdep.c#6 (text+ko) ====

@@ -29,7 +29,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/arm/busdma_machdep.c,v 1.5 2004/10/21 11:59:33 cognet Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/arm/busdma_machdep.c,v 1.7 2004/11/16 00:57:44 cognet Exp $");
 
 /*
  * MacPPC bus dma support routines
@@ -97,11 +97,10 @@
  * Check to see if the specified page is in an allowed DMA range.
  */
 
-static int
+static __inline int
 bus_dmamap_load_buffer(bus_dma_tag_t dmat, bus_dma_segment_t segs[],
-    bus_dmamap_t map, void *buf, bus_size_t buflen, struct thread *td,
-    int flags, vm_offset_t *lastaddrp, int *segp,
-    int first);
+    bus_dmamap_t map, void *buf, bus_size_t buflen, struct pmap *pmap,
+    int flags, vm_offset_t *lastaddrp, int *segp);
 
 static __inline struct arm32_dma_range *
 _bus_dma_inrange(struct arm32_dma_range *ranges, int nranges,
@@ -367,7 +366,7 @@
                 void *callback_arg, int flags)
 {
      	vm_offset_t	lastaddr = 0;
-	int		error, nsegs = 0;
+	int		error, nsegs = -1;
 #ifdef __GNUC__
 	bus_dma_segment_t dm_segments[dmat->nsegments];
 #else
@@ -379,8 +378,8 @@
 	map->buffer = buf;
 	map->len = buflen;
 	error = bus_dmamap_load_buffer(dmat,
-	    dm_segments, map, buf, buflen, NULL,
-	    flags, &lastaddr, &nsegs, 1);
+	    dm_segments, map, buf, buflen, kernel_pmap,
+	    flags, &lastaddr, &nsegs);
 	if (error)
 		(*callback)(callback_arg, NULL, 0, error);
 	else
@@ -395,27 +394,20 @@
  * the starting segment on entrance, and the ending segment on exit.
  * first indicates if this is the first invocation of this function.
  */
-static int
+static int __inline
 bus_dmamap_load_buffer(bus_dma_tag_t dmat, bus_dma_segment_t segs[],
-    bus_dmamap_t map, void *buf, bus_size_t buflen, struct thread *td,
-    int flags, vm_offset_t *lastaddrp, int *segp,
-    int first)
+    bus_dmamap_t map, void *buf, bus_size_t buflen, struct pmap *pmap,
+    int flags, vm_offset_t *lastaddrp, int *segp)
 {
 	bus_size_t sgsize;
 	bus_addr_t curaddr, lastaddr, baddr, bmask;
 	vm_offset_t vaddr = (vm_offset_t)buf;
 	int seg;
 	int error = 0;
-	pmap_t pmap;
 	pd_entry_t *pde;
 	pt_entry_t pte;
 	pt_entry_t *ptep;
 
-	if (td != NULL)
-		pmap = vmspace_pmap(td->td_proc->p_vmspace);
-	else
-		pmap = pmap_kernel();
-
 	lastaddr = *lastaddrp;
 	bmask = ~(dmat->boundary - 1);
 
@@ -496,27 +488,19 @@
 		 * Insert chunk into a segment, coalescing with
 		 * the previous segment if possible.
 		 */
-		if (first) {
+		if (seg >= 0 && curaddr == lastaddr &&
+		    (segs[seg].ds_len + sgsize) <= dmat->maxsegsz &&
+		    (dmat->boundary == 0 ||
+		     (segs[seg].ds_addr & bmask) == 
+		     (curaddr & bmask))) {
+			segs[seg].ds_len += sgsize;
+				goto segdone;
+		} else {
+			if (++seg >= dmat->nsegments)
+				break;
 			segs[seg].ds_addr = curaddr;
 			segs[seg].ds_len = sgsize;
-			first = 0;
-		} else {
-			if (curaddr == lastaddr &&
-			    (segs[seg].ds_len + sgsize) <= dmat->maxsegsz &&
-			    (dmat->boundary == 0 ||
-			     (segs[seg].ds_addr & bmask) == 
-			     (curaddr & bmask))) {
-				segs[seg].ds_len += sgsize;
-				goto segdone;
-			}
-			else {
-				if (++seg >= dmat->nsegments)
-					break;
-				segs[seg].ds_addr = curaddr;
-				segs[seg].ds_len = sgsize;
-			}
 		}
-
 		if (error)
 			break;
 segdone:
@@ -549,7 +533,7 @@
 #else
 	bus_dma_segment_t dm_segments[BUS_DMAMAP_NSEGS];
 #endif
-	int nsegs = 0, error = 0;
+	int nsegs = -1, error = 0;
 
 	M_ASSERTPKTHDR(m0);
 
@@ -557,17 +541,14 @@
 	map->flags |= DMAMAP_MBUF | DMAMAP_COHERENT;
 	map->buffer = m0;
 	if (m0->m_pkthdr.len <= dmat->maxsize) {
-		int first = 1;
 		vm_offset_t lastaddr = 0;
 		struct mbuf *m;
 
 		for (m = m0; m != NULL && error == 0; m = m->m_next) {
-			if (m->m_len > 0) {
+			if (m->m_len > 0)
 				error = bus_dmamap_load_buffer(dmat,
-				    dm_segments, map, m->m_data, m->m_len, NULL,
-				    flags, &lastaddr, &nsegs, first);
-				first = 0;
-			}
+				    dm_segments, map, m->m_data, m->m_len, 
+				    pmap_kernel(), flags, &lastaddr, &nsegs);
 		}
 	} else {
 		error = EINVAL;
@@ -599,10 +580,10 @@
 #else
 	bus_dma_segment_t dm_segments[BUS_DMAMAP_NSEGS];
 #endif
-	int nsegs, i, error, first;
+	int nsegs, i, error;
 	bus_size_t resid;
 	struct iovec *iov;
-	struct thread *td = NULL;
+	struct pmap *pmap;
 
 	resid = uio->uio_resid;
 	iov = uio->uio_iov;
@@ -611,13 +592,14 @@
 	map->buffer = uio;
 
 	if (uio->uio_segflg == UIO_USERSPACE) {
-		td = uio->uio_td;
+		pmap = vmspace_pmap(uio->uio_td->td_proc->p_vmspace);
 		KASSERT(td != NULL,
 		    ("bus_dmamap_load_uio: USERSPACE but no proc"));
-	}
+	} else
+		pmap = kernel_pmap;
 
-	first = 1;
-	nsegs = error = 0;
+	error = 0;
+	nsegs = -1;
 	for (i = 0; i < uio->uio_iovcnt && resid != 0 && !error; i++) {
 		/*
 		 * Now at the first iovec to load.  Load each iovec
@@ -629,9 +611,7 @@
 
 		if (minlen > 0) {
 			error = bus_dmamap_load_buffer(dmat, dm_segments, map,
-			    addr, minlen, td, flags, &lastaddr, &nsegs, first);
-
-			first = 0;
+			    addr, minlen, pmap, flags, &lastaddr, &nsegs);
 
 			resid -= minlen;
 		}

==== //depot/projects/netperf_socket/sys/arm/arm/db_interface.c#3 (text+ko) ====

@@ -35,7 +35,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/arm/db_interface.c,v 1.2 2004/07/12 21:25:01 cognet Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/arm/db_interface.c,v 1.3 2004/11/21 18:11:39 cognet Exp $");
 #include "opt_ddb.h"
 
 #include <sys/param.h>
@@ -43,6 +43,9 @@
 #include <sys/reboot.h>
 #include <sys/systm.h>	/* just for boothowto */
 #include <sys/exec.h>
+#ifdef KDB

>>> TRUNCATED FOR MAIL (1000 lines) <<<


More information about the p4-projects mailing list