PERFORCE change 121001 for review
Robert Watson
rwatson at FreeBSD.org
Tue Jun 5 16:36:19 UTC 2007
http://perforce.freebsd.org/chv.cgi?CH=121001
Change 121001 by rwatson at rwatson_zoo on 2007/06/05 16:33:46
Integrate TrustedBSD priv branch.
Affected files ...
.. //depot/projects/trustedbsd/priv/sys/amd64/amd64/cpu_switch.S#4 integrate
.. //depot/projects/trustedbsd/priv/sys/amd64/amd64/genassym.c#5 integrate
.. //depot/projects/trustedbsd/priv/sys/amd64/amd64/identcpu.c#4 integrate
.. //depot/projects/trustedbsd/priv/sys/amd64/amd64/intr_machdep.c#7 integrate
.. //depot/projects/trustedbsd/priv/sys/amd64/amd64/machdep.c#9 integrate
.. //depot/projects/trustedbsd/priv/sys/amd64/amd64/mp_machdep.c#7 integrate
.. //depot/projects/trustedbsd/priv/sys/amd64/amd64/mp_watchdog.c#2 integrate
.. //depot/projects/trustedbsd/priv/sys/amd64/amd64/pmap.c#8 integrate
.. //depot/projects/trustedbsd/priv/sys/amd64/amd64/trap.c#6 integrate
.. //depot/projects/trustedbsd/priv/sys/amd64/amd64/tsc.c#3 integrate
.. //depot/projects/trustedbsd/priv/sys/amd64/amd64/vm_machdep.c#4 integrate
.. //depot/projects/trustedbsd/priv/sys/amd64/ia32/ia32_syscall.c#3 integrate
.. //depot/projects/trustedbsd/priv/sys/amd64/include/pcpu.h#4 integrate
.. //depot/projects/trustedbsd/priv/sys/amd64/include/specialreg.h#4 integrate
.. //depot/projects/trustedbsd/priv/sys/amd64/include/vmparam.h#4 integrate
.. //depot/projects/trustedbsd/priv/sys/amd64/isa/clock.c#6 integrate
.. //depot/projects/trustedbsd/priv/sys/amd64/linux32/linux32_machdep.c#11 integrate
.. //depot/projects/trustedbsd/priv/sys/arm/arm/intr.c#4 integrate
.. //depot/projects/trustedbsd/priv/sys/arm/arm/machdep.c#4 integrate
.. //depot/projects/trustedbsd/priv/sys/arm/arm/pmap.c#6 integrate
.. //depot/projects/trustedbsd/priv/sys/arm/arm/trap.c#5 integrate
.. //depot/projects/trustedbsd/priv/sys/arm/arm/undefined.c#3 integrate
.. //depot/projects/trustedbsd/priv/sys/arm/arm/vm_machdep.c#6 integrate
.. //depot/projects/trustedbsd/priv/sys/arm/at91/uart_cpu_at91rm9200usart.c#3 integrate
.. //depot/projects/trustedbsd/priv/sys/arm/include/pcpu.h#3 integrate
.. //depot/projects/trustedbsd/priv/sys/arm/include/vmparam.h#4 integrate
.. //depot/projects/trustedbsd/priv/sys/cam/cam_xpt.c#8 integrate
.. //depot/projects/trustedbsd/priv/sys/cam/scsi/scsi_all.c#3 integrate
.. //depot/projects/trustedbsd/priv/sys/coda/coda_vnops.c#5 integrate
.. //depot/projects/trustedbsd/priv/sys/compat/linprocfs/linprocfs.c#9 integrate
.. //depot/projects/trustedbsd/priv/sys/compat/linux/linux_misc.c#15 integrate
.. //depot/projects/trustedbsd/priv/sys/compat/ndis/subr_ndis.c#3 integrate
.. //depot/projects/trustedbsd/priv/sys/compat/ndis/subr_ntoskrnl.c#3 integrate
.. //depot/projects/trustedbsd/priv/sys/compat/opensolaris/kern/opensolaris_kobj.c#4 integrate
.. //depot/projects/trustedbsd/priv/sys/compat/opensolaris/kern/opensolaris_kstat.c#2 integrate
.. //depot/projects/trustedbsd/priv/sys/compat/opensolaris/kern/opensolaris_vfs.c#4 integrate
.. //depot/projects/trustedbsd/priv/sys/compat/opensolaris/sys/vfs.h#2 integrate
.. //depot/projects/trustedbsd/priv/sys/compat/opensolaris/sys/vnode.h#3 integrate
.. //depot/projects/trustedbsd/priv/sys/compat/svr4/svr4_misc.c#8 integrate
.. //depot/projects/trustedbsd/priv/sys/conf/Makefile.ia64#3 integrate
.. //depot/projects/trustedbsd/priv/sys/conf/NOTES#14 integrate
.. //depot/projects/trustedbsd/priv/sys/conf/files#16 integrate
.. //depot/projects/trustedbsd/priv/sys/conf/options#11 integrate
.. //depot/projects/trustedbsd/priv/sys/contrib/ipfilter/netinet/fil.c#2 integrate
.. //depot/projects/trustedbsd/priv/sys/contrib/ipfilter/netinet/ip_auth.c#2 integrate
.. //depot/projects/trustedbsd/priv/sys/contrib/ipfilter/netinet/ip_auth.h#2 integrate
.. //depot/projects/trustedbsd/priv/sys/contrib/ipfilter/netinet/ip_compat.h#2 integrate
.. //depot/projects/trustedbsd/priv/sys/contrib/ipfilter/netinet/ip_fil.h#2 integrate
.. //depot/projects/trustedbsd/priv/sys/contrib/ipfilter/netinet/ip_fil_freebsd.c#3 integrate
.. //depot/projects/trustedbsd/priv/sys/contrib/ipfilter/netinet/ip_frag.c#2 integrate
.. //depot/projects/trustedbsd/priv/sys/contrib/ipfilter/netinet/ip_frag.h#2 integrate
.. //depot/projects/trustedbsd/priv/sys/contrib/ipfilter/netinet/ip_ftp_pxy.c#2 integrate
.. //depot/projects/trustedbsd/priv/sys/contrib/ipfilter/netinet/ip_htable.c#2 integrate
.. //depot/projects/trustedbsd/priv/sys/contrib/ipfilter/netinet/ip_htable.h#2 integrate
.. //depot/projects/trustedbsd/priv/sys/contrib/ipfilter/netinet/ip_ipsec_pxy.c#2 integrate
.. //depot/projects/trustedbsd/priv/sys/contrib/ipfilter/netinet/ip_irc_pxy.c#2 integrate
.. //depot/projects/trustedbsd/priv/sys/contrib/ipfilter/netinet/ip_log.c#2 integrate
.. //depot/projects/trustedbsd/priv/sys/contrib/ipfilter/netinet/ip_lookup.c#2 integrate
.. //depot/projects/trustedbsd/priv/sys/contrib/ipfilter/netinet/ip_lookup.h#2 integrate
.. //depot/projects/trustedbsd/priv/sys/contrib/ipfilter/netinet/ip_nat.c#2 integrate
.. //depot/projects/trustedbsd/priv/sys/contrib/ipfilter/netinet/ip_nat.h#2 integrate
.. //depot/projects/trustedbsd/priv/sys/contrib/ipfilter/netinet/ip_pool.c#2 integrate
.. //depot/projects/trustedbsd/priv/sys/contrib/ipfilter/netinet/ip_pool.h#2 integrate
.. //depot/projects/trustedbsd/priv/sys/contrib/ipfilter/netinet/ip_pptp_pxy.c#2 integrate
.. //depot/projects/trustedbsd/priv/sys/contrib/ipfilter/netinet/ip_proxy.c#2 integrate
.. //depot/projects/trustedbsd/priv/sys/contrib/ipfilter/netinet/ip_proxy.h#2 integrate
.. //depot/projects/trustedbsd/priv/sys/contrib/ipfilter/netinet/ip_raudio_pxy.c#2 integrate
.. //depot/projects/trustedbsd/priv/sys/contrib/ipfilter/netinet/ip_rcmd_pxy.c#2 integrate
.. //depot/projects/trustedbsd/priv/sys/contrib/ipfilter/netinet/ip_rpcb_pxy.c#2 integrate
.. //depot/projects/trustedbsd/priv/sys/contrib/ipfilter/netinet/ip_scan.c#2 integrate
.. //depot/projects/trustedbsd/priv/sys/contrib/ipfilter/netinet/ip_scan.h#2 integrate
.. //depot/projects/trustedbsd/priv/sys/contrib/ipfilter/netinet/ip_state.c#3 integrate
.. //depot/projects/trustedbsd/priv/sys/contrib/ipfilter/netinet/ip_state.h#2 integrate
.. //depot/projects/trustedbsd/priv/sys/contrib/ipfilter/netinet/ip_sync.c#2 integrate
.. //depot/projects/trustedbsd/priv/sys/contrib/ipfilter/netinet/ip_sync.h#2 integrate
.. //depot/projects/trustedbsd/priv/sys/contrib/ipfilter/netinet/ipl.h#2 integrate
.. //depot/projects/trustedbsd/priv/sys/contrib/ipfilter/netinet/mlfk_ipl.c#2 integrate
.. //depot/projects/trustedbsd/priv/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_ctldir.c#4 integrate
.. //depot/projects/trustedbsd/priv/sys/dev/acpi_support/acpi_asus.c#3 integrate
.. //depot/projects/trustedbsd/priv/sys/dev/acpi_support/acpi_panasonic.c#2 integrate
.. //depot/projects/trustedbsd/priv/sys/dev/acpica/Osd/OsdHardware.c#3 integrate
.. //depot/projects/trustedbsd/priv/sys/dev/acpica/acpi_cpu.c#4 integrate
.. //depot/projects/trustedbsd/priv/sys/dev/acpica/acpi_dock.c#3 integrate
.. //depot/projects/trustedbsd/priv/sys/dev/acpica/acpi_ec.c#3 integrate
.. //depot/projects/trustedbsd/priv/sys/dev/acpica/acpi_timer.c#3 integrate
.. //depot/projects/trustedbsd/priv/sys/dev/ath/if_ath.c#9 integrate
.. //depot/projects/trustedbsd/priv/sys/dev/bge/if_bge.c#12 integrate
.. //depot/projects/trustedbsd/priv/sys/dev/ciss/ciss.c#8 integrate
.. //depot/projects/trustedbsd/priv/sys/dev/cxgb/cxgb_main.c#5 integrate
.. //depot/projects/trustedbsd/priv/sys/dev/em/README#3 integrate
.. //depot/projects/trustedbsd/priv/sys/dev/em/if_em.c#11 integrate
.. //depot/projects/trustedbsd/priv/sys/dev/gem/if_gem.c#5 integrate
.. //depot/projects/trustedbsd/priv/sys/dev/gem/if_gemreg.h#2 integrate
.. //depot/projects/trustedbsd/priv/sys/dev/gem/if_gemvar.h#4 integrate
.. //depot/projects/trustedbsd/priv/sys/dev/hwpmc/hwpmc_mod.c#7 integrate
.. //depot/projects/trustedbsd/priv/sys/dev/md/md.c#4 integrate
.. //depot/projects/trustedbsd/priv/sys/dev/mfi/mfi.c#8 integrate
.. //depot/projects/trustedbsd/priv/sys/dev/mfi/mfivar.h#5 integrate
.. //depot/projects/trustedbsd/priv/sys/dev/mpt/mpilib/mpi.h#2 integrate
.. //depot/projects/trustedbsd/priv/sys/dev/mpt/mpilib/mpi_cnfg.h#2 integrate
.. //depot/projects/trustedbsd/priv/sys/dev/mpt/mpilib/mpi_init.h#2 integrate
.. //depot/projects/trustedbsd/priv/sys/dev/mpt/mpilib/mpi_ioc.h#2 integrate
.. //depot/projects/trustedbsd/priv/sys/dev/mpt/mpilib/mpi_log_fc.h#2 delete
.. //depot/projects/trustedbsd/priv/sys/dev/mpt/mpilib/mpi_log_sas.h#2 delete
.. //depot/projects/trustedbsd/priv/sys/dev/mpt/mpilib/mpi_raid.h#2 integrate
.. //depot/projects/trustedbsd/priv/sys/dev/mpt/mpilib/mpi_sas.h#2 integrate
.. //depot/projects/trustedbsd/priv/sys/dev/mpt/mpilib/mpi_targ.h#2 integrate
.. //depot/projects/trustedbsd/priv/sys/dev/mpt/mpt.c#5 integrate
.. //depot/projects/trustedbsd/priv/sys/dev/mpt/mpt.h#6 integrate
.. //depot/projects/trustedbsd/priv/sys/dev/mpt/mpt_cam.c#11 integrate
.. //depot/projects/trustedbsd/priv/sys/dev/pccard/pccard.c#4 integrate
.. //depot/projects/trustedbsd/priv/sys/dev/pccard/pccardvarp.h#3 integrate
.. //depot/projects/trustedbsd/priv/sys/dev/pccbb/pccbb.c#5 integrate
.. //depot/projects/trustedbsd/priv/sys/dev/pccbb/pccbb_pci.c#4 integrate
.. //depot/projects/trustedbsd/priv/sys/dev/pccbb/pccbbvar.h#3 integrate
.. //depot/projects/trustedbsd/priv/sys/dev/sound/clone.c#1 branch
.. //depot/projects/trustedbsd/priv/sys/dev/sound/clone.h#1 branch
.. //depot/projects/trustedbsd/priv/sys/dev/sound/pci/atiixp.c#6 integrate
.. //depot/projects/trustedbsd/priv/sys/dev/sound/pci/emu10kx.c#5 integrate
.. //depot/projects/trustedbsd/priv/sys/dev/sound/pci/envy24ht.c#8 integrate
.. //depot/projects/trustedbsd/priv/sys/dev/sound/pci/es137x.c#6 integrate
.. //depot/projects/trustedbsd/priv/sys/dev/sound/pci/hda/hdac.c#9 integrate
.. //depot/projects/trustedbsd/priv/sys/dev/sound/pci/via8233.c#6 integrate
.. //depot/projects/trustedbsd/priv/sys/dev/sound/pcm/ac97.c#8 integrate
.. //depot/projects/trustedbsd/priv/sys/dev/sound/pcm/buffer.c#7 integrate
.. //depot/projects/trustedbsd/priv/sys/dev/sound/pcm/channel.c#5 integrate
.. //depot/projects/trustedbsd/priv/sys/dev/sound/pcm/channel.h#4 integrate
.. //depot/projects/trustedbsd/priv/sys/dev/sound/pcm/dsp.c#6 integrate
.. //depot/projects/trustedbsd/priv/sys/dev/sound/pcm/dsp.h#4 integrate
.. //depot/projects/trustedbsd/priv/sys/dev/sound/pcm/feeder.c#4 integrate
.. //depot/projects/trustedbsd/priv/sys/dev/sound/pcm/feeder_fmt.c#4 integrate
.. //depot/projects/trustedbsd/priv/sys/dev/sound/pcm/feeder_rate.c#4 integrate
.. //depot/projects/trustedbsd/priv/sys/dev/sound/pcm/feeder_volume.c#4 integrate
.. //depot/projects/trustedbsd/priv/sys/dev/sound/pcm/mixer.c#5 integrate
.. //depot/projects/trustedbsd/priv/sys/dev/sound/pcm/sndstat.c#4 integrate
.. //depot/projects/trustedbsd/priv/sys/dev/sound/pcm/sound.c#6 integrate
.. //depot/projects/trustedbsd/priv/sys/dev/sound/pcm/sound.h#7 integrate
.. //depot/projects/trustedbsd/priv/sys/dev/sound/pcm/vchan.c#5 integrate
.. //depot/projects/trustedbsd/priv/sys/dev/sound/pcm/vchan.h#2 integrate
.. //depot/projects/trustedbsd/priv/sys/dev/sound/unit.c#1 branch
.. //depot/projects/trustedbsd/priv/sys/dev/sound/unit.h#1 branch
.. //depot/projects/trustedbsd/priv/sys/dev/sound/usb/uaudio.c#6 integrate
.. //depot/projects/trustedbsd/priv/sys/dev/sound/usb/uaudio_pcm.c#5 integrate
.. //depot/projects/trustedbsd/priv/sys/dev/sound/version.h#1 branch
.. //depot/projects/trustedbsd/priv/sys/dev/speaker/spkr.c#2 integrate
.. //depot/projects/trustedbsd/priv/sys/dev/syscons/syscons.c#7 integrate
.. //depot/projects/trustedbsd/priv/sys/dev/usb/uplcom.c#5 integrate
.. //depot/projects/trustedbsd/priv/sys/dev/usb/uvscom.c#4 integrate
.. //depot/projects/trustedbsd/priv/sys/fs/devfs/devfs_vnops.c#10 integrate
.. //depot/projects/trustedbsd/priv/sys/fs/fifofs/fifo_vnops.c#3 integrate
.. //depot/projects/trustedbsd/priv/sys/fs/msdosfs/msdosfs_vfsops.c#8 integrate
.. //depot/projects/trustedbsd/priv/sys/fs/nwfs/nwfs_io.c#2 integrate
.. //depot/projects/trustedbsd/priv/sys/fs/procfs/procfs_ctl.c#2 integrate
.. //depot/projects/trustedbsd/priv/sys/fs/procfs/procfs_ioctl.c#11 integrate
.. //depot/projects/trustedbsd/priv/sys/fs/procfs/procfs_status.c#4 integrate
.. //depot/projects/trustedbsd/priv/sys/fs/smbfs/smbfs_io.c#3 integrate
.. //depot/projects/trustedbsd/priv/sys/fs/smbfs/smbfs_vnops.c#5 integrate
.. //depot/projects/trustedbsd/priv/sys/fs/unionfs/union.h#3 integrate
.. //depot/projects/trustedbsd/priv/sys/fs/unionfs/union_subr.c#4 integrate
.. //depot/projects/trustedbsd/priv/sys/fs/unionfs/union_vnops.c#5 integrate
.. //depot/projects/trustedbsd/priv/sys/geom/cache/g_cache.c#2 integrate
.. //depot/projects/trustedbsd/priv/sys/geom/eli/g_eli.c#7 integrate
.. //depot/projects/trustedbsd/priv/sys/geom/geom_kern.c#2 integrate
.. //depot/projects/trustedbsd/priv/sys/geom/journal/g_journal.c#4 integrate
.. //depot/projects/trustedbsd/priv/sys/geom/mirror/g_mirror.c#4 integrate
.. //depot/projects/trustedbsd/priv/sys/geom/raid3/g_raid3.c#5 integrate
.. //depot/projects/trustedbsd/priv/sys/geom/stripe/g_stripe.c#3 integrate
.. //depot/projects/trustedbsd/priv/sys/gnu/fs/ext2fs/ext2_bmap.c#2 integrate
.. //depot/projects/trustedbsd/priv/sys/gnu/fs/reiserfs/reiserfs_vfsops.c#6 integrate
.. //depot/projects/trustedbsd/priv/sys/i386/i386/elan-mmcr.c#4 integrate
.. //depot/projects/trustedbsd/priv/sys/i386/i386/intr_machdep.c#6 integrate
.. //depot/projects/trustedbsd/priv/sys/i386/i386/machdep.c#10 integrate
.. //depot/projects/trustedbsd/priv/sys/i386/i386/mp_clock.c#2 integrate
.. //depot/projects/trustedbsd/priv/sys/i386/i386/mp_machdep.c#8 integrate
.. //depot/projects/trustedbsd/priv/sys/i386/i386/mp_watchdog.c#2 integrate
.. //depot/projects/trustedbsd/priv/sys/i386/i386/pmap.c#9 integrate
.. //depot/projects/trustedbsd/priv/sys/i386/i386/trap.c#6 integrate
.. //depot/projects/trustedbsd/priv/sys/i386/i386/tsc.c#3 integrate
.. //depot/projects/trustedbsd/priv/sys/i386/i386/vm_machdep.c#6 integrate
.. //depot/projects/trustedbsd/priv/sys/i386/ibcs2/imgact_coff.c#2 integrate
.. //depot/projects/trustedbsd/priv/sys/i386/include/pcpu.h#4 integrate
.. //depot/projects/trustedbsd/priv/sys/i386/include/specialreg.h#4 integrate
.. //depot/projects/trustedbsd/priv/sys/i386/include/vmparam.h#5 integrate
.. //depot/projects/trustedbsd/priv/sys/i386/isa/clock.c#6 integrate
.. //depot/projects/trustedbsd/priv/sys/i386/isa/npx.c#3 integrate
.. //depot/projects/trustedbsd/priv/sys/i386/linux/linux_machdep.c#12 integrate
.. //depot/projects/trustedbsd/priv/sys/ia64/ia32/ia32_trap.c#3 integrate
.. //depot/projects/trustedbsd/priv/sys/ia64/ia64/interrupt.c#4 integrate
.. //depot/projects/trustedbsd/priv/sys/ia64/ia64/machdep.c#6 integrate
.. //depot/projects/trustedbsd/priv/sys/ia64/ia64/mp_machdep.c#3 integrate
.. //depot/projects/trustedbsd/priv/sys/ia64/ia64/pmap.c#7 integrate
.. //depot/projects/trustedbsd/priv/sys/ia64/ia64/trap.c#6 integrate
.. //depot/projects/trustedbsd/priv/sys/ia64/ia64/vm_machdep.c#2 integrate
.. //depot/projects/trustedbsd/priv/sys/ia64/include/pcpu.h#4 integrate
.. //depot/projects/trustedbsd/priv/sys/kern/init_main.c#9 integrate
.. //depot/projects/trustedbsd/priv/sys/kern/kern_acct.c#9 integrate
.. //depot/projects/trustedbsd/priv/sys/kern/kern_alq.c#4 integrate
.. //depot/projects/trustedbsd/priv/sys/kern/kern_clock.c#7 integrate
.. //depot/projects/trustedbsd/priv/sys/kern/kern_condvar.c#5 integrate
.. //depot/projects/trustedbsd/priv/sys/kern/kern_conf.c#5 integrate
.. //depot/projects/trustedbsd/priv/sys/kern/kern_cpu.c#3 integrate
.. //depot/projects/trustedbsd/priv/sys/kern/kern_descrip.c#10 integrate
.. //depot/projects/trustedbsd/priv/sys/kern/kern_exec.c#9 integrate
.. //depot/projects/trustedbsd/priv/sys/kern/kern_exit.c#6 integrate
.. //depot/projects/trustedbsd/priv/sys/kern/kern_fork.c#11 integrate
.. //depot/projects/trustedbsd/priv/sys/kern/kern_idle.c#5 integrate
.. //depot/projects/trustedbsd/priv/sys/kern/kern_intr.c#9 integrate
.. //depot/projects/trustedbsd/priv/sys/kern/kern_kse.c#6 integrate
.. //depot/projects/trustedbsd/priv/sys/kern/kern_kthread.c#3 integrate
.. //depot/projects/trustedbsd/priv/sys/kern/kern_ktrace.c#10 integrate
.. //depot/projects/trustedbsd/priv/sys/kern/kern_linker.c#7 integrate
.. //depot/projects/trustedbsd/priv/sys/kern/kern_lockf.c#2 integrate
.. //depot/projects/trustedbsd/priv/sys/kern/kern_malloc.c#5 integrate
.. //depot/projects/trustedbsd/priv/sys/kern/kern_mbuf.c#6 integrate
.. //depot/projects/trustedbsd/priv/sys/kern/kern_mib.c#5 integrate
.. //depot/projects/trustedbsd/priv/sys/kern/kern_mutex.c#5 integrate
.. //depot/projects/trustedbsd/priv/sys/kern/kern_poll.c#4 integrate
.. //depot/projects/trustedbsd/priv/sys/kern/kern_proc.c#6 integrate
.. //depot/projects/trustedbsd/priv/sys/kern/kern_resource.c#13 integrate
.. //depot/projects/trustedbsd/priv/sys/kern/kern_rwlock.c#5 integrate
.. //depot/projects/trustedbsd/priv/sys/kern/kern_shutdown.c#6 integrate
.. //depot/projects/trustedbsd/priv/sys/kern/kern_sig.c#10 integrate
.. //depot/projects/trustedbsd/priv/sys/kern/kern_subr.c#5 integrate
.. //depot/projects/trustedbsd/priv/sys/kern/kern_switch.c#5 integrate
.. //depot/projects/trustedbsd/priv/sys/kern/kern_sx.c#6 integrate
.. //depot/projects/trustedbsd/priv/sys/kern/kern_synch.c#6 integrate
.. //depot/projects/trustedbsd/priv/sys/kern/kern_sysctl.c#8 integrate
.. //depot/projects/trustedbsd/priv/sys/kern/kern_tc.c#2 integrate
.. //depot/projects/trustedbsd/priv/sys/kern/kern_thr.c#8 integrate
.. //depot/projects/trustedbsd/priv/sys/kern/kern_thread.c#7 integrate
.. //depot/projects/trustedbsd/priv/sys/kern/kern_time.c#9 integrate
.. //depot/projects/trustedbsd/priv/sys/kern/kern_umtx.c#12 integrate
.. //depot/projects/trustedbsd/priv/sys/kern/ksched.c#2 integrate
.. //depot/projects/trustedbsd/priv/sys/kern/link_elf.c#4 integrate
.. //depot/projects/trustedbsd/priv/sys/kern/link_elf_obj.c#4 integrate
.. //depot/projects/trustedbsd/priv/sys/kern/sched_4bsd.c#6 integrate
.. //depot/projects/trustedbsd/priv/sys/kern/sched_core.c#5 delete
.. //depot/projects/trustedbsd/priv/sys/kern/sched_ule.c#7 integrate
.. //depot/projects/trustedbsd/priv/sys/kern/subr_lock.c#5 integrate
.. //depot/projects/trustedbsd/priv/sys/kern/subr_prof.c#4 integrate
.. //depot/projects/trustedbsd/priv/sys/kern/subr_sleepqueue.c#4 integrate
.. //depot/projects/trustedbsd/priv/sys/kern/subr_smp.c#3 integrate
.. //depot/projects/trustedbsd/priv/sys/kern/subr_taskqueue.c#3 integrate
.. //depot/projects/trustedbsd/priv/sys/kern/subr_trap.c#8 integrate
.. //depot/projects/trustedbsd/priv/sys/kern/subr_turnstile.c#4 integrate
.. //depot/projects/trustedbsd/priv/sys/kern/subr_witness.c#12 integrate
.. //depot/projects/trustedbsd/priv/sys/kern/sys_generic.c#6 integrate
.. //depot/projects/trustedbsd/priv/sys/kern/sys_process.c#6 integrate
.. //depot/projects/trustedbsd/priv/sys/kern/tty.c#8 integrate
.. //depot/projects/trustedbsd/priv/sys/kern/tty_cons.c#4 integrate
.. //depot/projects/trustedbsd/priv/sys/kern/uipc_sockbuf.c#5 integrate
.. //depot/projects/trustedbsd/priv/sys/kern/uipc_socket.c#11 integrate
.. //depot/projects/trustedbsd/priv/sys/kern/vfs_aio.c#7 integrate
.. //depot/projects/trustedbsd/priv/sys/kern/vfs_bio.c#9 integrate
.. //depot/projects/trustedbsd/priv/sys/kern/vfs_cluster.c#5 integrate
.. //depot/projects/trustedbsd/priv/sys/kern/vfs_subr.c#14 integrate
.. //depot/projects/trustedbsd/priv/sys/kern/vfs_syscalls.c#14 integrate
.. //depot/projects/trustedbsd/priv/sys/kern/vfs_vnops.c#8 integrate
.. //depot/projects/trustedbsd/priv/sys/kern/vnode_if.src#5 integrate
.. //depot/projects/trustedbsd/priv/sys/modules/dcons/Makefile#2 integrate
.. //depot/projects/trustedbsd/priv/sys/modules/sound/sound/Makefile#3 integrate
.. //depot/projects/trustedbsd/priv/sys/net/if_bridge.c#8 integrate
.. //depot/projects/trustedbsd/priv/sys/net/if_media.h#3 integrate
.. //depot/projects/trustedbsd/priv/sys/netgraph/bluetooth/common/ng_bluetooth.c#2 integrate
.. //depot/projects/trustedbsd/priv/sys/netgraph/ng_base.c#5 integrate
.. //depot/projects/trustedbsd/priv/sys/netgraph/ng_ppp.c#5 integrate
.. //depot/projects/trustedbsd/priv/sys/netinet/sctp_bsd_addr.c#7 integrate
.. //depot/projects/trustedbsd/priv/sys/netinet/sctp_constants.h#9 integrate
.. //depot/projects/trustedbsd/priv/sys/netinet/sctp_indata.c#9 integrate
.. //depot/projects/trustedbsd/priv/sys/netinet/sctp_input.c#9 integrate
.. //depot/projects/trustedbsd/priv/sys/netinet/sctp_input.h#4 integrate
.. //depot/projects/trustedbsd/priv/sys/netinet/sctp_os_bsd.h#8 integrate
.. //depot/projects/trustedbsd/priv/sys/netinet/sctp_output.c#9 integrate
.. //depot/projects/trustedbsd/priv/sys/netinet/sctp_output.h#5 integrate
.. //depot/projects/trustedbsd/priv/sys/netinet/sctp_pcb.c#11 integrate
.. //depot/projects/trustedbsd/priv/sys/netinet/sctp_pcb.h#8 integrate
.. //depot/projects/trustedbsd/priv/sys/netinet/sctp_structs.h#9 integrate
.. //depot/projects/trustedbsd/priv/sys/netinet/sctp_timer.c#9 integrate
.. //depot/projects/trustedbsd/priv/sys/netinet/sctp_usrreq.c#10 integrate
.. //depot/projects/trustedbsd/priv/sys/netinet/sctputil.c#9 integrate
.. //depot/projects/trustedbsd/priv/sys/netinet/sctputil.h#9 integrate
.. //depot/projects/trustedbsd/priv/sys/netinet/tcp_timewait.c#2 integrate
.. //depot/projects/trustedbsd/priv/sys/netinet/tcp_usrreq.c#9 integrate
.. //depot/projects/trustedbsd/priv/sys/netinet6/frag6.c#3 integrate
.. //depot/projects/trustedbsd/priv/sys/netinet6/in6.c#8 integrate
.. //depot/projects/trustedbsd/priv/sys/netinet6/in6_ifattach.c#3 integrate
.. //depot/projects/trustedbsd/priv/sys/netinet6/in6_var.h#3 integrate
.. //depot/projects/trustedbsd/priv/sys/netinet6/ip6_var.h#3 integrate
.. //depot/projects/trustedbsd/priv/sys/netinet6/sctp6_usrreq.c#10 integrate
.. //depot/projects/trustedbsd/priv/sys/netncp/ncp_sock.c#3 integrate
.. //depot/projects/trustedbsd/priv/sys/netsmb/smb_trantcp.c#2 integrate
.. //depot/projects/trustedbsd/priv/sys/nfs4client/nfs4_vnops.c#4 integrate
.. //depot/projects/trustedbsd/priv/sys/nfsclient/nfs_bio.c#3 integrate
.. //depot/projects/trustedbsd/priv/sys/nfsclient/nfs_vnops.c#9 integrate
.. //depot/projects/trustedbsd/priv/sys/pc98/cbus/clock.c#5 integrate
.. //depot/projects/trustedbsd/priv/sys/pc98/pc98/machdep.c#8 integrate
.. //depot/projects/trustedbsd/priv/sys/powerpc/include/pcpu.h#3 integrate
.. //depot/projects/trustedbsd/priv/sys/powerpc/powerpc/intr_machdep.c#4 integrate
.. //depot/projects/trustedbsd/priv/sys/powerpc/powerpc/machdep.c#7 integrate
.. //depot/projects/trustedbsd/priv/sys/powerpc/powerpc/trap.c#5 integrate
.. //depot/projects/trustedbsd/priv/sys/powerpc/powerpc/vm_machdep.c#4 integrate
.. //depot/projects/trustedbsd/priv/sys/security/audit/audit.c#13 integrate
.. //depot/projects/trustedbsd/priv/sys/security/audit/audit.h#6 integrate
.. //depot/projects/trustedbsd/priv/sys/security/audit/audit_arg.c#7 integrate
.. //depot/projects/trustedbsd/priv/sys/security/audit/audit_bsm.c#7 integrate
.. //depot/projects/trustedbsd/priv/sys/security/audit/audit_bsm_klib.c#4 integrate
.. //depot/projects/trustedbsd/priv/sys/security/audit/audit_pipe.c#5 integrate
.. //depot/projects/trustedbsd/priv/sys/security/audit/audit_private.h#7 integrate
.. //depot/projects/trustedbsd/priv/sys/security/audit/audit_syscalls.c#11 integrate
.. //depot/projects/trustedbsd/priv/sys/security/audit/audit_worker.c#6 integrate
.. //depot/projects/trustedbsd/priv/sys/security/mac_lomac/mac_lomac.c#9 integrate
.. //depot/projects/trustedbsd/priv/sys/sparc64/include/pcpu.h#3 integrate
.. //depot/projects/trustedbsd/priv/sys/sparc64/include/vmparam.h#4 integrate
.. //depot/projects/trustedbsd/priv/sys/sparc64/sparc64/intr_machdep.c#3 integrate
.. //depot/projects/trustedbsd/priv/sys/sparc64/sparc64/machdep.c#7 integrate
.. //depot/projects/trustedbsd/priv/sys/sparc64/sparc64/mp_machdep.c#4 integrate
.. //depot/projects/trustedbsd/priv/sys/sparc64/sparc64/pmap.c#5 integrate
.. //depot/projects/trustedbsd/priv/sys/sparc64/sparc64/trap.c#4 integrate
.. //depot/projects/trustedbsd/priv/sys/sparc64/sparc64/tsb.c#3 integrate
.. //depot/projects/trustedbsd/priv/sys/sparc64/sparc64/vm_machdep.c#2 integrate
.. //depot/projects/trustedbsd/priv/sys/sun4v/include/pcpu.h#4 integrate
.. //depot/projects/trustedbsd/priv/sys/sun4v/include/vmparam.h#4 integrate
.. //depot/projects/trustedbsd/priv/sys/sun4v/sun4v/intr_machdep.c#6 integrate
.. //depot/projects/trustedbsd/priv/sys/sun4v/sun4v/machdep.c#6 integrate
.. //depot/projects/trustedbsd/priv/sys/sun4v/sun4v/mp_machdep.c#4 integrate
.. //depot/projects/trustedbsd/priv/sys/sun4v/sun4v/pmap.c#6 integrate
.. //depot/projects/trustedbsd/priv/sys/sun4v/sun4v/trap.c#6 integrate
.. //depot/projects/trustedbsd/priv/sys/sun4v/sun4v/tsb.c#4 integrate
.. //depot/projects/trustedbsd/priv/sys/sun4v/sun4v/tte_hash.c#4 integrate
.. //depot/projects/trustedbsd/priv/sys/sun4v/sun4v/vm_machdep.c#4 integrate
.. //depot/projects/trustedbsd/priv/sys/sys/conf.h#4 integrate
.. //depot/projects/trustedbsd/priv/sys/sys/filedesc.h#4 integrate
.. //depot/projects/trustedbsd/priv/sys/sys/mutex.h#5 integrate
.. //depot/projects/trustedbsd/priv/sys/sys/proc.h#9 integrate
.. //depot/projects/trustedbsd/priv/sys/sys/resource.h#2 integrate
.. //depot/projects/trustedbsd/priv/sys/sys/resourcevar.h#2 integrate
.. //depot/projects/trustedbsd/priv/sys/sys/sched.h#5 integrate
.. //depot/projects/trustedbsd/priv/sys/sys/sx.h#6 integrate
.. //depot/projects/trustedbsd/priv/sys/sys/sysctl.h#6 integrate
.. //depot/projects/trustedbsd/priv/sys/sys/turnstile.h#2 integrate
.. //depot/projects/trustedbsd/priv/sys/sys/vmmeter.h#4 integrate
.. //depot/projects/trustedbsd/priv/sys/sys/vnode.h#7 integrate
.. //depot/projects/trustedbsd/priv/sys/ufs/ffs/ffs_inode.c#3 integrate
.. //depot/projects/trustedbsd/priv/sys/ufs/ffs/ffs_snapshot.c#6 integrate
.. //depot/projects/trustedbsd/priv/sys/ufs/ufs/ufs_bmap.c#2 integrate
.. //depot/projects/trustedbsd/priv/sys/ufs/ufs/ufs_extattr.c#4 integrate
.. //depot/projects/trustedbsd/priv/sys/ufs/ufs/ufs_quota.c#11 integrate
.. //depot/projects/trustedbsd/priv/sys/vm/swap_pager.c#9 integrate
.. //depot/projects/trustedbsd/priv/sys/vm/uma_core.c#7 integrate
.. //depot/projects/trustedbsd/priv/sys/vm/vm_contig.c#9 integrate
.. //depot/projects/trustedbsd/priv/sys/vm/vm_fault.c#6 integrate
.. //depot/projects/trustedbsd/priv/sys/vm/vm_glue.c#7 integrate
.. //depot/projects/trustedbsd/priv/sys/vm/vm_map.c#5 integrate
.. //depot/projects/trustedbsd/priv/sys/vm/vm_meter.c#4 integrate
.. //depot/projects/trustedbsd/priv/sys/vm/vm_mmap.c#6 integrate
.. //depot/projects/trustedbsd/priv/sys/vm/vm_object.c#7 integrate
.. //depot/projects/trustedbsd/priv/sys/vm/vm_page.c#10 integrate
.. //depot/projects/trustedbsd/priv/sys/vm/vm_pageout.c#5 integrate
.. //depot/projects/trustedbsd/priv/sys/vm/vm_pageq.c#4 integrate
.. //depot/projects/trustedbsd/priv/sys/vm/vm_zeroidle.c#7 integrate
.. //depot/projects/trustedbsd/priv/sys/vm/vnode_pager.c#5 integrate
Differences ...
==== //depot/projects/trustedbsd/priv/sys/amd64/amd64/cpu_switch.S#4 (text+ko) ====
@@ -30,7 +30,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $FreeBSD: src/sys/amd64/amd64/cpu_switch.S,v 1.156 2007/03/30 00:06:20 jkim Exp $
+ * $FreeBSD: src/sys/amd64/amd64/cpu_switch.S,v 1.157 2007/06/05 00:16:43 jeff Exp $
*/
#include <machine/asmacros.h>
@@ -73,19 +73,16 @@
movq TD_PCB(%rsi),%rdx /* newtd->td_proc */
movq PCB_CR3(%rdx),%rdx
movq %rdx,%cr3 /* new address space */
- /* set bit in new pm_active */
- movq TD_PROC(%rsi),%rdx
- movq P_VMSPACE(%rdx), %rdx
- LK btsl %eax, VM_PMAP+PM_ACTIVE(%rdx) /* set new */
- jmp sw1
+ jmp swact
/*
- * cpu_switch(old, new)
+ * cpu_switch(old, new, mtx)
*
* Save the current thread state, then select the next thread to run
* and load its state.
* %rdi = oldtd
* %rsi = newtd
+ * %rdx = mtx
*/
ENTRY(cpu_switch)
/* Switch to new thread. First, save context. */
@@ -147,17 +144,33 @@
movq TD_PCB(%rsi),%r8
/* switch address space */
- movq PCB_CR3(%r8),%rdx
+ movq PCB_CR3(%r8),%rcx
movq %cr3,%rax
- cmpq %rdx,%rax /* Same address space? */
- je sw1
- movq %rdx,%cr3 /* new address space */
-
+ cmpq %rcx,%rax /* Same address space? */
+ jne swinact
+ movq %rdx, TD_LOCK(%rdi) /* Release the old thread */
+ /* Wait for the new thread to become unblocked */
+ movq $blocked_lock, %rdx
+1:
+ movq TD_LOCK(%rsi),%rcx
+ cmpq %rcx, %rdx
+ je 1b
+ jmp sw1
+swinact:
+ movq %rcx,%cr3 /* new address space */
movl PCPU(CPUID), %eax
/* Release bit from old pmap->pm_active */
- movq TD_PROC(%rdi), %rdx /* oldproc */
- movq P_VMSPACE(%rdx), %rdx
- LK btrl %eax, VM_PMAP+PM_ACTIVE(%rdx) /* clear old */
+ movq TD_PROC(%rdi), %rcx /* oldproc */
+ movq P_VMSPACE(%rcx), %rcx
+ LK btrl %eax, VM_PMAP+PM_ACTIVE(%rcx) /* clear old */
+ movq %rdx, TD_LOCK(%rdi) /* Release the old thread */
+swact:
+ /* Wait for the new thread to become unblocked */
+ movq $blocked_lock, %rdx
+1:
+ movq TD_LOCK(%rsi),%rcx
+ cmpq %rcx, %rdx
+ je 1b
/* Set bit in new pmap->pm_active */
movq TD_PROC(%rsi),%rdx /* newproc */
==== //depot/projects/trustedbsd/priv/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.161 2007/03/30 00:06:20 jkim Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/genassym.c,v 1.162 2007/06/05 00:13:49 jeff Exp $");
#include "opt_compat.h"
#include "opt_kstack_pages.h"
@@ -76,6 +76,7 @@
ASSYM(PM_ACTIVE, offsetof(struct pmap, pm_active));
ASSYM(P_SFLAG, offsetof(struct proc, p_sflag));
+ASSYM(TD_LOCK, offsetof(struct thread, td_lock));
ASSYM(TD_FLAGS, offsetof(struct thread, td_flags));
ASSYM(TD_PCB, offsetof(struct thread, td_pcb));
ASSYM(TD_PROC, offsetof(struct thread, td_proc));
==== //depot/projects/trustedbsd/priv/sys/amd64/amd64/identcpu.c#4 (text+ko) ====
@@ -39,7 +39,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/identcpu.c,v 1.153 2007/03/26 18:03:29 njl Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/identcpu.c,v 1.154 2007/05/30 14:23:26 des Exp $");
#include "opt_cpu.h"
@@ -236,7 +236,7 @@
"\015<b12>"
"\016CX16" /* CMPXCHG16B Instruction */
"\017xTPR" /* Send Task Priority Messages*/
- "\020<b15>"
+ "\020PDCM" /* Perf/Debug Capability MSR */
"\021<b16>"
"\022<b17>"
"\023DCA" /* Direct Cache Access */
@@ -342,13 +342,8 @@
}
if (cpu_feature & CPUID_HTT && strcmp(cpu_vendor,
- "AuthenticAMD") == 0) {
+ "AuthenticAMD") == 0)
cpu_feature &= ~CPUID_HTT;
- if (bootverbose)
- printf("\nHTT bit cleared - FreeBSD"
- " does not have licensing issues"
- " requiring it.\n");
- }
/*
* If this CPU supports HTT or CMP then mention the
==== //depot/projects/trustedbsd/priv/sys/amd64/amd64/intr_machdep.c#7 (text+ko) ====
@@ -26,7 +26,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $FreeBSD: src/sys/amd64/amd64/intr_machdep.c,v 1.32 2007/05/08 21:29:12 jhb Exp $
+ * $FreeBSD: src/sys/amd64/amd64/intr_machdep.c,v 1.34 2007/06/04 21:38:44 attilio Exp $
*/
/*
@@ -250,7 +250,7 @@
* processed too.
*/
(*isrc->is_count)++;
- PCPU_LAZY_INC(cnt.v_intr);
+ PCPU_INC(cnt.v_intr);
ie = isrc->is_event;
@@ -310,7 +310,7 @@
struct thread *td;
struct intr_event *ie;
struct intr_handler *ih;
- int error, vector, thread;
+ int error, vector, thread, ret;
td = curthread;
@@ -321,7 +321,7 @@
* processed too.
*/
(*isrc->is_count)++;
- PCPU_LAZY_INC(cnt.v_intr);
+ PCPU_INC(cnt.v_intr);
ie = isrc->is_event;
@@ -356,6 +356,7 @@
* a trapframe as its argument.
*/
td->td_intr_nesting_level++;
+ ret = 0;
thread = 0;
critical_enter();
TAILQ_FOREACH(ih, &ie->ie_handlers, ih_next) {
@@ -367,9 +368,17 @@
ih->ih_filter, ih->ih_argument == NULL ? frame :
ih->ih_argument, ih->ih_name);
if (ih->ih_argument == NULL)
- ih->ih_filter(frame);
+ ret = ih->ih_filter(frame);
else
- ih->ih_filter(ih->ih_argument);
+ ret = ih->ih_filter(ih->ih_argument);
+ /*
+ * Wrapper handler special case: see
+ * i386/intr_machdep.c::intr_execute_handlers()
+ */
+ if (!thread) {
+ if (ret == FILTER_SCHEDULE_THREAD)
+ thread = 1;
+ }
}
/*
==== //depot/projects/trustedbsd/priv/sys/amd64/amd64/machdep.c#9 (text+ko) ====
@@ -39,7 +39,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.671 2007/05/18 07:10:42 jeff Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.674 2007/06/05 00:00:49 jeff Exp $");
#include "opt_atalk.h"
#include "opt_atpic.h"
@@ -163,7 +163,13 @@
long Maxmem = 0;
long realmem = 0;
-#define PHYSMAP_SIZE (2 * 30)
+/*
+ * The number of PHYSMAP entries must be one less than the number of
+ * PHYSSEG entries because the PHYSMAP entry that spans the largest
+ * physical address that is accessible by ISA DMA is split into two
+ * PHYSSEG entries.
+ */
+#define PHYSMAP_SIZE (2 * (VM_PHYSSEG_MAX - 1))
vm_paddr_t phys_avail[PHYSMAP_SIZE + 2];
vm_paddr_t dump_avail[PHYSMAP_SIZE + 2];
@@ -221,8 +227,8 @@
vm_ksubmap_init(&kmi);
printf("avail memory = %ju (%ju MB)\n",
- ptoa((uintmax_t)VMCNT_GET(free_count)),
- ptoa((uintmax_t)VMCNT_GET(free_count)) / 1048576);
+ ptoa((uintmax_t)cnt.v_free_count),
+ ptoa((uintmax_t)cnt.v_free_count) / 1048576);
/*
* Set up buffers, so they can be used to read disk labels.
@@ -460,9 +466,9 @@
#ifdef SMP
/* Schedule ourselves on the indicated cpu. */
- mtx_lock_spin(&sched_lock);
+ thread_lock(curthread);
sched_bind(curthread, cpu_id);
- mtx_unlock_spin(&sched_lock);
+ thread_unlock(curthread);
#endif
/* Calibrate by measuring a short delay. */
@@ -473,9 +479,9 @@
intr_restore(reg);
#ifdef SMP
- mtx_lock_spin(&sched_lock);
+ thread_lock(curthread);
sched_unbind(curthread);
- mtx_unlock_spin(&sched_lock);
+ thread_unlock(curthread);
#endif
/*
==== //depot/projects/trustedbsd/priv/sys/amd64/amd64/mp_machdep.c#7 (text+ko) ====
@@ -25,7 +25,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/mp_machdep.c,v 1.285 2007/05/19 05:03:59 kan Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/mp_machdep.c,v 1.286 2007/06/04 23:56:07 jeff Exp $");
#include "opt_cpu.h"
#include "opt_kstack_pages.h"
@@ -46,6 +46,7 @@
#include <sys/mutex.h>
#include <sys/pcpu.h>
#include <sys/proc.h>
+#include <sys/sched.h>
#include <sys/smp.h>
#include <sys/sysctl.h>
@@ -590,26 +591,8 @@
while (smp_started == 0)
ia32_pause();
- /* ok, now grab sched_lock and enter the scheduler */
- mtx_lock_spin(&sched_lock);
+ sched_throw(NULL);
- /*
- * Correct spinlock nesting. The idle thread context that we are
- * borrowing was created so that it would start out with a single
- * spin lock (sched_lock) held in fork_trampoline(). Since we've
- * explicitly acquired locks in this function, the nesting count
- * is now 2 rather than 1. Since we are nested, calling
- * spinlock_exit() will simply adjust the counts without allowing
- * spin lock using code to interrupt us.
- */
- spinlock_exit();
- KASSERT(curthread->td_md.md_spinlock_count == 1, ("invalid count"));
-
- PCPU_SET(switchtime, cpu_ticks());
- PCPU_SET(switchticks, ticks);
-
- cpu_throw(NULL, choosethread()); /* doesn't return */
-
panic("scheduler returned us to %s", __func__);
/* NOTREACHED */
}
@@ -988,12 +971,12 @@
if (ipi_bitmap & (1 << IPI_PREEMPT)) {
struct thread *running_thread = curthread;
- mtx_lock_spin(&sched_lock);
+ thread_lock(running_thread);
if (running_thread->td_critnest > 1)
running_thread->td_owepreempt = 1;
else
mi_switch(SW_INVOL | SW_PREEMPT, NULL);
- mtx_unlock_spin(&sched_lock);
+ thread_unlock(running_thread);
}
/* Nothing to do for AST */
@@ -1177,11 +1160,9 @@
if (mp_ncpus == 1)
return;
- mtx_lock_spin(&sched_lock);
atomic_store_rel_int(&aps_ready, 1);
while (smp_started == 0)
ia32_pause();
- mtx_unlock_spin(&sched_lock);
}
SYSINIT(start_aps, SI_SUB_SMP, SI_ORDER_FIRST, release_aps, NULL);
==== //depot/projects/trustedbsd/priv/sys/amd64/amd64/mp_watchdog.c#2 (text+ko) ====
@@ -23,7 +23,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $FreeBSD: src/sys/amd64/amd64/mp_watchdog.c,v 1.4 2005/02/28 08:55:53 pjd Exp $
+ * $FreeBSD: src/sys/amd64/amd64/mp_watchdog.c,v 1.5 2007/06/04 23:56:33 jeff Exp $
*/
#include "opt_mp_watchdog.h"
@@ -105,9 +105,7 @@
* locks to make sure. Then reset the timer.
*/
mtx_lock(&Giant);
- mtx_lock_spin(&sched_lock);
watchdog_timer = WATCHDOG_THRESHOLD;
- mtx_unlock_spin(&sched_lock);
mtx_unlock(&Giant);
callout_reset(&watchdog_callout, 1 * hz, watchdog_function, NULL);
}
@@ -156,34 +154,6 @@
sysctl_watchdog, "I", "");
/*
- * A badly behaved sysctl that leaks the sched lock when written to. Then
- * spin holding it just to make matters worse. This can be used to test the
- * effectiveness of the watchdog by generating a fairly hard and nast hang.
- * Note that Giant is also held in the current world order when we get here.
- */
-static int
-sysctl_leak_schedlock(SYSCTL_HANDLER_ARGS)
-{
- int error, temp;
-
- temp = 0;
- error = sysctl_handle_int(oidp, &temp, 0, req);
- if (error)
- return (error);
-
- if (req->newptr != NULL) {
- if (temp) {
- printf("Leaking the sched lock...\n");
- mtx_lock_spin(&sched_lock);
- while (1);
- }
- }
- return (0);
-}
-SYSCTL_PROC(_debug, OID_AUTO, leak_schedlock, CTLTYPE_INT|CTLFLAG_RW, 0, 0,
- sysctl_leak_schedlock, "IU", "");
-
-/*
* Drop into the debugger by sending an IPI NMI to the boot processor.
*/
static void
==== //depot/projects/trustedbsd/priv/sys/amd64/amd64/pmap.c#8 (text+ko) ====
@@ -77,7 +77,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.586 2007/05/20 22:33:41 jeff Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.587 2007/05/31 22:52:10 attilio Exp $");
/*
* Manages physical address maps.
@@ -620,7 +620,7 @@
* numbers of pv entries.
*/
TUNABLE_INT_FETCH("vm.pmap.shpgperproc", &shpgperproc);
- pv_entry_max = shpgperproc * maxproc + VMCNT_GET(page_count);
+ pv_entry_max = shpgperproc * maxproc + cnt.v_page_count;
TUNABLE_INT_FETCH("vm.pmap.pv_entries", &pv_entry_max);
pv_entry_high_water = 9 * (pv_entry_max / 10);
}
@@ -633,7 +633,7 @@
error = sysctl_handle_int(oidp, oidp->oid_arg1, oidp->oid_arg2, req);
if (error == 0 && req->newptr) {
- shpgperproc = (pv_entry_max - VMCNT_GET(page_count)) / maxproc;
+ shpgperproc = (pv_entry_max - cnt.v_page_count) / maxproc;
pv_entry_high_water = 9 * (pv_entry_max / 10);
}
return (error);
@@ -648,7 +648,7 @@
error = sysctl_handle_int(oidp, oidp->oid_arg1, oidp->oid_arg2, req);
if (error == 0 && req->newptr) {
- pv_entry_max = shpgperproc * maxproc + VMCNT_GET(page_count);
+ pv_entry_max = shpgperproc * maxproc + cnt.v_page_count;
pv_entry_high_water = 9 * (pv_entry_max / 10);
}
return (error);
@@ -1149,7 +1149,8 @@
*/
m->right = *free;
*free = m;
- VMCNT_SUB(wire_count, 1);
+
+ atomic_subtract_int(&cnt.v_wire_count, 1);
return 1;
}
@@ -1459,7 +1460,7 @@
pmap->pm_pml4[PML4PML4I] = 0; /* Recursive Mapping */
m->wire_count--;
- VMCNT_SUB(wire_count, 1);
+ atomic_subtract_int(&cnt.v_wire_count, 1);
vm_page_free_zero(m);
PMAP_LOCK_DESTROY(pmap);
}
==== //depot/projects/trustedbsd/priv/sys/amd64/amd64/trap.c#6 (text+ko) ====
@@ -38,7 +38,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/trap.c,v 1.316 2007/05/27 19:16:45 rwatson Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/trap.c,v 1.317 2007/06/04 21:38:44 attilio Exp $");
/*
* AMD64 Trap and System call handling
@@ -163,7 +163,7 @@
register_t addr = 0;
ksiginfo_t ksi;
- PCPU_LAZY_INC(cnt.v_trap);
+ PCPU_INC(cnt.v_trap);
type = frame->tf_trapno;
#ifdef SMP
@@ -737,10 +737,10 @@
ksiginfo_t ksi;
/*
- * note: PCPU_LAZY_INC() can only be used if we can afford
+ * note: PCPU_INC() can only be used if we can afford
* occassional inaccuracy in the count.
*/
- PCPU_LAZY_INC(cnt.v_syscall);
+ PCPU_INC(cnt.v_syscall);
#ifdef DIAGNOSTIC
if (ISPL(frame->tf_cs) != SEL_UPL) {
==== //depot/projects/trustedbsd/priv/sys/amd64/amd64/tsc.c#3 (text+ko) ====
@@ -25,7 +25,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/tsc.c,v 1.207 2007/03/26 18:03:29 njl Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/tsc.c,v 1.208 2007/06/04 18:25:01 dwmalone Exp $");
#include "opt_clock.h"
@@ -204,7 +204,7 @@
if (tsc_timecounter.tc_frequency == 0)
return (EOPNOTSUPP);
freq = tsc_freq;
- error = sysctl_handle_int(oidp, &freq, sizeof(freq), req);
+ error = sysctl_handle_quad(oidp, &freq, 0, req);
if (error == 0 && req->newptr != NULL) {
tsc_freq = freq;
tsc_timecounter.tc_frequency = tsc_freq;
@@ -212,8 +212,8 @@
return (error);
}
-SYSCTL_PROC(_machdep, OID_AUTO, tsc_freq, CTLTYPE_LONG | CTLFLAG_RW,
- 0, sizeof(u_int), sysctl_machdep_tsc_freq, "IU", "");
+SYSCTL_PROC(_machdep, OID_AUTO, tsc_freq, CTLTYPE_QUAD | CTLFLAG_RW,
+ 0, sizeof(u_int), sysctl_machdep_tsc_freq, "QU", "");
static unsigned
tsc_get_timecount(struct timecounter *tc)
==== //depot/projects/trustedbsd/priv/sys/amd64/amd64/vm_machdep.c#4 (text+ko) ====
@@ -41,7 +41,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/vm_machdep.c,v 1.254 2007/04/24 21:17:45 jhb Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/vm_machdep.c,v 1.255 2007/06/04 23:57:29 jeff Exp $");
#include "opt_isa.h"
#include "opt_cpu.h"
@@ -170,7 +170,7 @@
* pcb2->pcb_[fg]sbase: cloned above
*/
- /* Setup to release sched_lock in fork_exit(). */
+ /* Setup to release spin count in fork_exit(). */
td2->td_md.md_spinlock_count = 1;
td2->td_md.md_saved_flags = PSL_KERNEL | PSL_I;
@@ -304,7 +304,7 @@
* pcb2->pcb_[fg]sbase: cloned above
*/
- /* Setup to release sched_lock in fork_exit(). */
+ /* Setup to release spin count in fork_exit(). */
td->td_md.md_spinlock_count = 1;
td->td_md.md_saved_flags = PSL_KERNEL | PSL_I;
}
==== //depot/projects/trustedbsd/priv/sys/amd64/ia32/ia32_syscall.c#3 (text+ko) ====
@@ -36,7 +36,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/ia32/ia32_syscall.c,v 1.17 2006/12/17 06:48:39 kmacy Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/ia32/ia32_syscall.c,v 1.18 2007/06/04 21:38:45 attilio Exp $");
/*
* 386 Trap and System call handling
@@ -105,10 +105,10 @@
ksiginfo_t ksi;
/*
- * note: PCPU_LAZY_INC() can only be used if we can afford
+ * note: PCPU_INC() can only be used if we can afford
* occassional inaccuracy in the count.
*/
- PCPU_LAZY_INC(cnt.v_syscall);
+ PCPU_INC(cnt.v_syscall);
td->td_pticks = 0;
td->td_frame = frame;
==== //depot/projects/trustedbsd/priv/sys/amd64/include/pcpu.h#4 (text+ko) ====
@@ -23,7 +23,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $FreeBSD: src/sys/amd64/include/pcpu.h,v 1.47 2007/03/11 05:54:28 alc Exp $
+ * $FreeBSD: src/sys/amd64/include/pcpu.h,v 1.48 2007/06/04 21:38:45 attilio Exp $
*/
#ifndef _MACHINE_PCPU_H_
@@ -56,7 +56,8 @@
extern struct pcpu *pcpup;
#define PCPU_GET(member) (pcpup->pc_ ## member)
-#define PCPU_LAZY_INC(member) (++pcpup->pc_ ## member)
+#define PCPU_ADD(member, val) (pcpup->pc_ ## member += (val))
+#define PCPU_INC(member) PCPU_ADD(member, 1)
#define PCPU_PTR(member) (&pcpup->pc_ ## member)
#define PCPU_SET(member, val) (pcpup->pc_ ## member = (val))
@@ -110,10 +111,31 @@
})
/*
+ * Adds the value to the per-cpu counter name. The implementation
+ * must be atomic with respect to interrupts.
+ */
+#define __PCPU_ADD(name, val) do { \
+ __pcpu_type(name) __val; \
+ struct __s { \
+ u_char __b[MIN(sizeof(__pcpu_type(name)), 8)]; \
+ } __s; \
+ \
+ __val = (val); \
+ if (sizeof(__val) == 1 || sizeof(__val) == 2 || \
+ sizeof(__val) == 4 || sizeof(__val) == 8) { \
+ __s = *(struct __s *)(void *)&__val; \
+ __asm __volatile("add %1,%%gs:%0" \
+ : "=m" (*(struct __s *)(__pcpu_offset(name))) \
+ : "r" (__s)); \
+ } else \
+ *__PCPU_PTR(name) += __val; \
+} while (0)
+
+/*
* Increments the value of the per-cpu counter name. The implementation
* must be atomic with respect to interrupts.
*/
-#define __PCPU_LAZY_INC(name) do { \
+#define __PCPU_INC(name) do { \
CTASSERT(sizeof(__pcpu_type(name)) == 1 || \
sizeof(__pcpu_type(name)) == 2 || \
sizeof(__pcpu_type(name)) == 4 || \
@@ -159,7 +181,8 @@
}
>>> TRUNCATED FOR MAIL (1000 lines) <<<
More information about the p4-projects
mailing list