Date: Wed, 24 Nov 2004 14:19:31 GMT From: Robert Watson <rwatson@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 65778 for review Message-ID: <200411241419.iAOEJV8o038301@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=65778 Change 65778 by rwatson@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) <<<
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200411241419.iAOEJV8o038301>