Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 21 Nov 2005 20:06:33 GMT
From:      John Baldwin <jhb@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 87042 for review
Message-ID:  <200511212006.jALK6XKE068762@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=87042

Change 87042 by jhb@jhb_slimer on 2005/11/21 20:05:51

	IFC @87038.

Affected files ...

.. //depot/projects/smpng/sys/alpha/alpha/clock.c#16 integrate
.. //depot/projects/smpng/sys/alpha/alpha/pmap.c#75 integrate
.. //depot/projects/smpng/sys/amd64/amd64/apic_vector.S#10 integrate
.. //depot/projects/smpng/sys/amd64/amd64/identcpu.c#15 integrate
.. //depot/projects/smpng/sys/amd64/amd64/io_apic.c#12 integrate
.. //depot/projects/smpng/sys/amd64/amd64/machdep.c#47 integrate
.. //depot/projects/smpng/sys/amd64/amd64/mp_machdep.c#29 integrate
.. //depot/projects/smpng/sys/amd64/amd64/pmap.c#50 integrate
.. //depot/projects/smpng/sys/amd64/amd64/trap.c#38 integrate
.. //depot/projects/smpng/sys/amd64/conf/NOTES#26 integrate
.. //depot/projects/smpng/sys/arm/arm/identcpu.c#5 integrate
.. //depot/projects/smpng/sys/arm/arm/pmap.c#23 integrate
.. //depot/projects/smpng/sys/arm/include/armreg.h#3 integrate
.. //depot/projects/smpng/sys/arm/include/pmap.h#14 integrate
.. //depot/projects/smpng/sys/boot/forth/loader.conf#39 integrate
.. //depot/projects/smpng/sys/boot/forth/loader.conf.5#11 integrate
.. //depot/projects/smpng/sys/cam/scsi/scsi_cd.c#27 integrate
.. //depot/projects/smpng/sys/cam/scsi/scsi_da.c#60 integrate
.. //depot/projects/smpng/sys/compat/ndis/subr_ndis.c#34 integrate
.. //depot/projects/smpng/sys/compat/ndis/subr_ntoskrnl.c#38 integrate
.. //depot/projects/smpng/sys/conf/Makefile.arm#15 integrate
.. //depot/projects/smpng/sys/conf/files#158 integrate
.. //depot/projects/smpng/sys/conf/files.amd64#36 integrate
.. //depot/projects/smpng/sys/conf/files.i386#89 integrate
.. //depot/projects/smpng/sys/conf/files.pc98#77 integrate
.. //depot/projects/smpng/sys/conf/options.i386#52 integrate
.. //depot/projects/smpng/sys/conf/options.pc98#51 integrate
.. //depot/projects/smpng/sys/contrib/dev/oltr/if_oltr.c#16 integrate
.. //depot/projects/smpng/sys/contrib/pf/net/if_pflog.c#12 integrate
.. //depot/projects/smpng/sys/contrib/pf/net/if_pfsync.c#18 integrate
.. //depot/projects/smpng/sys/dev/aac/aac.c#53 integrate
.. //depot/projects/smpng/sys/dev/aic7xxx/aicasm/Makefile#13 integrate
.. //depot/projects/smpng/sys/dev/an/if_an.c#48 integrate
.. //depot/projects/smpng/sys/dev/arl/if_arl.c#10 integrate
.. //depot/projects/smpng/sys/dev/ath/ath_rate/sample/sample.c#5 integrate
.. //depot/projects/smpng/sys/dev/ath/if_ath.c#32 integrate
.. //depot/projects/smpng/sys/dev/ath/if_athioctl.h#10 integrate
.. //depot/projects/smpng/sys/dev/ath/if_athvar.h#20 integrate
.. //depot/projects/smpng/sys/dev/bfe/if_bfe.c#20 integrate
.. //depot/projects/smpng/sys/dev/bge/if_bge.c#62 integrate
.. //depot/projects/smpng/sys/dev/bge/if_bgereg.h#32 integrate
.. //depot/projects/smpng/sys/dev/bktr/bktr_card.c#14 integrate
.. //depot/projects/smpng/sys/dev/bktr/bktr_card.h#8 integrate
.. //depot/projects/smpng/sys/dev/bktr/bktr_tuner.c#9 integrate
.. //depot/projects/smpng/sys/dev/bktr/bktr_tuner.h#5 integrate
.. //depot/projects/smpng/sys/dev/ciss/ciss.c#43 integrate
.. //depot/projects/smpng/sys/dev/dc/if_dc.c#3 integrate
.. //depot/projects/smpng/sys/dev/ed/if_ed.c#36 integrate
.. //depot/projects/smpng/sys/dev/em/if_em.c#57 integrate
.. //depot/projects/smpng/sys/dev/em/if_em.h#29 integrate
.. //depot/projects/smpng/sys/dev/em/if_em_hw.h#16 integrate
.. //depot/projects/smpng/sys/dev/em/if_em_osdep.h#15 integrate
.. //depot/projects/smpng/sys/dev/ep/if_ep.c#26 integrate
.. //depot/projects/smpng/sys/dev/ex/if_ex.c#19 integrate
.. //depot/projects/smpng/sys/dev/fe/if_fe.c#23 integrate
.. //depot/projects/smpng/sys/dev/fe/if_fe_pccard.c#18 integrate
.. //depot/projects/smpng/sys/dev/fxp/if_fxp.c#69 integrate
.. //depot/projects/smpng/sys/dev/gem/if_gem.c#26 integrate
.. //depot/projects/smpng/sys/dev/hme/if_hme.c#28 integrate
.. //depot/projects/smpng/sys/dev/hptmv/entry.c#8 integrate
.. //depot/projects/smpng/sys/dev/hwpmc/hwpmc_x86.c#4 integrate
.. //depot/projects/smpng/sys/dev/ie/if_ie.c#15 integrate
.. //depot/projects/smpng/sys/dev/ipw/if_ipw.c#9 integrate
.. //depot/projects/smpng/sys/dev/iwi/if_iwi.c#12 integrate
.. //depot/projects/smpng/sys/dev/iwi/if_iwireg.h#5 integrate
.. //depot/projects/smpng/sys/dev/iwi/if_iwivar.h#5 integrate
.. //depot/projects/smpng/sys/dev/ixgb/if_ixgb.c#14 integrate
.. //depot/projects/smpng/sys/dev/joy/joy.c#10 integrate
.. //depot/projects/smpng/sys/dev/lge/if_lge.c#32 integrate
.. //depot/projects/smpng/sys/dev/lnc/if_lnc.c#21 integrate
.. //depot/projects/smpng/sys/dev/lnc/if_lnc_cbus.c#10 integrate
.. //depot/projects/smpng/sys/dev/mpt/mpt.h#7 integrate
.. //depot/projects/smpng/sys/dev/mpt/mpt_raid.c#3 integrate
.. //depot/projects/smpng/sys/dev/my/if_my.c#21 integrate
.. //depot/projects/smpng/sys/dev/nge/if_nge.c#46 integrate
.. //depot/projects/smpng/sys/dev/nve/if_nve.c#8 integrate
.. //depot/projects/smpng/sys/dev/owi/if_ieee80211.h#2 delete
.. //depot/projects/smpng/sys/dev/owi/if_owi.c#11 delete
.. //depot/projects/smpng/sys/dev/owi/if_owi_pccard.c#7 delete
.. //depot/projects/smpng/sys/dev/owi/if_wireg.h#3 delete
.. //depot/projects/smpng/sys/dev/owi/if_wivar.h#5 delete
.. //depot/projects/smpng/sys/dev/pci/pci.c#65 integrate
.. //depot/projects/smpng/sys/dev/pdq/if_fea.c#10 integrate
.. //depot/projects/smpng/sys/dev/pdq/if_fpa.c#11 integrate
.. //depot/projects/smpng/sys/dev/pdq/pdq_freebsd.h#9 integrate
.. //depot/projects/smpng/sys/dev/pdq/pdq_ifsubr.c#13 integrate
.. //depot/projects/smpng/sys/dev/ral/if_ral.c#11 integrate
.. //depot/projects/smpng/sys/dev/ray/if_ray.c#24 integrate
.. //depot/projects/smpng/sys/dev/re/if_re.c#33 integrate
.. //depot/projects/smpng/sys/dev/sbni/if_sbni.c#20 integrate
.. //depot/projects/smpng/sys/dev/snc/dp83932.c#15 integrate
.. //depot/projects/smpng/sys/dev/sound/isa/sb16.c#21 integrate
.. //depot/projects/smpng/sys/dev/sound/pci/es137x.c#19 integrate
.. //depot/projects/smpng/sys/dev/sound/pci/ich.c#37 integrate
.. //depot/projects/smpng/sys/dev/sound/pci/via8233.c#19 integrate
.. //depot/projects/smpng/sys/dev/sound/pcm/ac97.c#29 integrate
.. //depot/projects/smpng/sys/dev/sound/pcm/channel.c#33 integrate
.. //depot/projects/smpng/sys/dev/sound/pcm/dsp.c#31 integrate
.. //depot/projects/smpng/sys/dev/sound/pcm/feeder_fmt.c#13 integrate
.. //depot/projects/smpng/sys/dev/sound/pcm/feeder_rate.c#10 integrate
.. //depot/projects/smpng/sys/dev/sound/pcm/feeder_volume.c#2 integrate
.. //depot/projects/smpng/sys/dev/sound/pcm/mixer.c#23 integrate
.. //depot/projects/smpng/sys/dev/sound/usb/uaudio.c#9 integrate
.. //depot/projects/smpng/sys/dev/sound/usb/uaudio.h#5 integrate
.. //depot/projects/smpng/sys/dev/sound/usb/uaudio_pcm.c#13 integrate
.. //depot/projects/smpng/sys/dev/speaker/speaker.h#1 branch
.. //depot/projects/smpng/sys/dev/speaker/spkr.c#1 branch
.. //depot/projects/smpng/sys/dev/twa/tw_cl.h#2 integrate
.. //depot/projects/smpng/sys/dev/twa/tw_cl_externs.h#2 integrate
.. //depot/projects/smpng/sys/dev/twa/tw_cl_fwif.h#2 integrate
.. //depot/projects/smpng/sys/dev/twa/tw_cl_fwimg.c#2 integrate
.. //depot/projects/smpng/sys/dev/twa/tw_cl_init.c#2 integrate
.. //depot/projects/smpng/sys/dev/twa/tw_cl_intr.c#2 integrate
.. //depot/projects/smpng/sys/dev/twa/tw_cl_io.c#2 integrate
.. //depot/projects/smpng/sys/dev/twa/tw_cl_ioctl.h#2 integrate
.. //depot/projects/smpng/sys/dev/twa/tw_cl_misc.c#2 integrate
.. //depot/projects/smpng/sys/dev/twa/tw_cl_share.h#2 integrate
.. //depot/projects/smpng/sys/dev/twa/tw_osl.h#2 integrate
.. //depot/projects/smpng/sys/dev/twa/tw_osl_cam.c#5 integrate
.. //depot/projects/smpng/sys/dev/twa/tw_osl_freebsd.c#4 integrate
.. //depot/projects/smpng/sys/dev/twa/tw_osl_includes.h#3 integrate
.. //depot/projects/smpng/sys/dev/twa/tw_osl_inline.h#1 branch
.. //depot/projects/smpng/sys/dev/twa/tw_osl_share.h#4 integrate
.. //depot/projects/smpng/sys/dev/tx/if_tx.c#24 integrate
.. //depot/projects/smpng/sys/dev/txp/if_txp.c#31 integrate
.. //depot/projects/smpng/sys/dev/usb/if_aue.c#40 integrate
.. //depot/projects/smpng/sys/dev/usb/if_axe.c#24 integrate
.. //depot/projects/smpng/sys/dev/usb/if_cue.c#31 integrate
.. //depot/projects/smpng/sys/dev/usb/if_kue.c#28 integrate
.. //depot/projects/smpng/sys/dev/usb/if_rue.c#18 integrate
.. //depot/projects/smpng/sys/dev/usb/if_udav.c#12 integrate
.. //depot/projects/smpng/sys/dev/usb/if_ural.c#10 integrate
.. //depot/projects/smpng/sys/dev/usb/if_uralvar.h#4 integrate
.. //depot/projects/smpng/sys/dev/usb/ulpt.c#22 integrate
.. //depot/projects/smpng/sys/dev/vge/if_vge.c#13 integrate
.. //depot/projects/smpng/sys/dev/vx/if_vx.c#23 integrate
.. //depot/projects/smpng/sys/dev/wi/if_wi.c#79 integrate
.. //depot/projects/smpng/sys/dev/wl/if_wl.c#27 integrate
.. //depot/projects/smpng/sys/dev/xe/if_xe.c#25 integrate
.. //depot/projects/smpng/sys/fs/devfs/devfs_vnops.c#53 integrate
.. //depot/projects/smpng/sys/fs/msdosfs/msdosfs_vfsops.c#45 integrate
.. //depot/projects/smpng/sys/fs/smbfs/smbfs_vfsops.c#32 integrate
.. //depot/projects/smpng/sys/geom/geom_disk.c#46 integrate
.. //depot/projects/smpng/sys/geom/geom_disk.h#5 integrate
.. //depot/projects/smpng/sys/geom/geom_dump.c#24 integrate
.. //depot/projects/smpng/sys/geom/geom_gpt.c#21 integrate
.. //depot/projects/smpng/sys/geom/geom_subr.c#47 integrate
.. //depot/projects/smpng/sys/geom/vinum/geom_vinum.c#13 integrate
.. //depot/projects/smpng/sys/geom/vinum/geom_vinum.h#8 integrate
.. //depot/projects/smpng/sys/geom/vinum/geom_vinum_drive.c#14 integrate
.. //depot/projects/smpng/sys/geom/vinum/geom_vinum_move.c#1 branch
.. //depot/projects/smpng/sys/geom/vinum/geom_vinum_rename.c#1 branch
.. //depot/projects/smpng/sys/geom/vinum/geom_vinum_rm.c#8 integrate
.. //depot/projects/smpng/sys/i386/conf/NOTES#111 integrate
.. //depot/projects/smpng/sys/i386/conf/PAE#16 integrate
.. //depot/projects/smpng/sys/i386/conf/XBOX#1 branch
.. //depot/projects/smpng/sys/i386/i386/apic_vector.s#19 integrate
.. //depot/projects/smpng/sys/i386/i386/identcpu.c#39 integrate
.. //depot/projects/smpng/sys/i386/i386/io_apic.c#15 integrate
.. //depot/projects/smpng/sys/i386/i386/machdep.c#99 integrate
.. //depot/projects/smpng/sys/i386/i386/mp_machdep.c#94 integrate
.. //depot/projects/smpng/sys/i386/i386/pmap.c#90 integrate
.. //depot/projects/smpng/sys/i386/i386/trap.c#89 integrate
.. //depot/projects/smpng/sys/i386/i386/vm_machdep.c#75 integrate
.. //depot/projects/smpng/sys/i386/include/speaker.h#3 integrate
.. //depot/projects/smpng/sys/i386/include/xbox.h#1 branch
.. //depot/projects/smpng/sys/i386/isa/clock.c#45 integrate
.. //depot/projects/smpng/sys/i386/isa/spkr.c#17 delete
.. //depot/projects/smpng/sys/i386/pci/pci_cfgreg.c#31 integrate
.. //depot/projects/smpng/sys/i386/xbox/pic16l.s#1 branch
.. //depot/projects/smpng/sys/i386/xbox/xbox.c#1 branch
.. //depot/projects/smpng/sys/i386/xbox/xboxfb.c#1 branch
.. //depot/projects/smpng/sys/ia64/ia64/pmap.c#75 integrate
.. //depot/projects/smpng/sys/kern/imgact_elf.c#48 integrate
.. //depot/projects/smpng/sys/kern/init_main.c#58 integrate
.. //depot/projects/smpng/sys/kern/kern_acct.c#38 integrate
.. //depot/projects/smpng/sys/kern/kern_descrip.c#86 integrate
.. //depot/projects/smpng/sys/kern/kern_exit.c#105 integrate
.. //depot/projects/smpng/sys/kern/kern_fork.c#96 integrate
.. //depot/projects/smpng/sys/kern/kern_ktrace.c#47 integrate
.. //depot/projects/smpng/sys/kern/kern_proc.c#80 integrate
.. //depot/projects/smpng/sys/kern/kern_sig.c#113 integrate
.. //depot/projects/smpng/sys/kern/kern_time.c#39 integrate
.. //depot/projects/smpng/sys/kern/subr_power.c#6 integrate
.. //depot/projects/smpng/sys/kern/subr_rman.c#25 integrate
.. //depot/projects/smpng/sys/kern/subr_sleepqueue.c#20 integrate
.. //depot/projects/smpng/sys/kern/subr_trap.c#79 integrate
.. //depot/projects/smpng/sys/kern/sys_process.c#46 integrate
.. //depot/projects/smpng/sys/kern/uipc_proto.c#5 integrate
.. //depot/projects/smpng/sys/kern/uipc_usrreq.c#51 integrate
.. //depot/projects/smpng/sys/kern/vfs_aio.c#65 integrate
.. //depot/projects/smpng/sys/kern/vfs_mount.c#52 integrate
.. //depot/projects/smpng/sys/kern/vfs_subr.c#115 integrate
.. //depot/projects/smpng/sys/modules/Makefile#110 integrate
.. //depot/projects/smpng/sys/modules/geom/geom_vinum/Makefile#3 integrate
.. //depot/projects/smpng/sys/modules/iwi/Makefile#3 integrate
.. //depot/projects/smpng/sys/modules/md/Makefile#5 integrate
.. //depot/projects/smpng/sys/modules/oldcard/Makefile#6 delete
.. //depot/projects/smpng/sys/modules/owi/Makefile#4 delete
.. //depot/projects/smpng/sys/modules/speaker/Makefile#2 integrate
.. //depot/projects/smpng/sys/modules/twa/Makefile#4 integrate
.. //depot/projects/smpng/sys/net/fddi.h#6 integrate
.. //depot/projects/smpng/sys/net/if.c#76 integrate
.. //depot/projects/smpng/sys/net/if_arcsubr.c#20 integrate
.. //depot/projects/smpng/sys/net/if_arp.h#9 integrate
.. //depot/projects/smpng/sys/net/if_bridge.c#15 integrate
.. //depot/projects/smpng/sys/net/if_bridgevar.h#4 integrate
.. //depot/projects/smpng/sys/net/if_clone.c#7 integrate
.. //depot/projects/smpng/sys/net/if_clone.h#3 integrate
.. //depot/projects/smpng/sys/net/if_disc.c#21 integrate
.. //depot/projects/smpng/sys/net/if_ef.c#21 integrate
.. //depot/projects/smpng/sys/net/if_ethersubr.c#66 integrate
.. //depot/projects/smpng/sys/net/if_faith.c#30 integrate
.. //depot/projects/smpng/sys/net/if_fddisubr.c#26 integrate
.. //depot/projects/smpng/sys/net/if_fwsubr.c#10 integrate
.. //depot/projects/smpng/sys/net/if_gif.c#30 integrate
.. //depot/projects/smpng/sys/net/if_gre.c#27 integrate
.. //depot/projects/smpng/sys/net/if_iso88025subr.c#23 integrate
.. //depot/projects/smpng/sys/net/if_mib.c#8 integrate
.. //depot/projects/smpng/sys/net/if_ppp.c#37 integrate
.. //depot/projects/smpng/sys/net/if_stf.c#34 integrate
.. //depot/projects/smpng/sys/net/if_tap.c#38 integrate
.. //depot/projects/smpng/sys/net/if_var.h#42 integrate
.. //depot/projects/smpng/sys/net/if_vlan.c#42 integrate
.. //depot/projects/smpng/sys/net/iso88025.h#7 integrate
.. //depot/projects/smpng/sys/net/route.c#29 integrate
.. //depot/projects/smpng/sys/net/rtsock.c#51 integrate
.. //depot/projects/smpng/sys/net80211/ieee80211.c#16 integrate
.. //depot/projects/smpng/sys/net80211/ieee80211_ioctl.c#21 integrate
.. //depot/projects/smpng/sys/net80211/ieee80211_var.h#15 integrate
.. //depot/projects/smpng/sys/netatalk/aarp.c#19 integrate
.. //depot/projects/smpng/sys/netatalk/at_proto.c#4 integrate
.. //depot/projects/smpng/sys/netatm/atm_if.c#16 integrate
.. //depot/projects/smpng/sys/netatm/atm_proto.c#8 integrate
.. //depot/projects/smpng/sys/netgraph/bluetooth/socket/ng_btsocket.c#12 integrate
.. //depot/projects/smpng/sys/netgraph/netgraph.h#24 integrate
.. //depot/projects/smpng/sys/netgraph/ng_base.c#42 integrate
.. //depot/projects/smpng/sys/netgraph/ng_ether.c#29 integrate
.. //depot/projects/smpng/sys/netgraph/ng_fec.c#18 integrate
.. //depot/projects/smpng/sys/netgraph/ng_socket.c#35 integrate
.. //depot/projects/smpng/sys/netinet/igmp.c#17 integrate
.. //depot/projects/smpng/sys/netinet/in_gif.c#16 integrate
.. //depot/projects/smpng/sys/netinet/in_proto.c#22 integrate
.. //depot/projects/smpng/sys/netinet/ip_carp.c#15 integrate
.. //depot/projects/smpng/sys/netinet/ip_divert.c#45 integrate
.. //depot/projects/smpng/sys/netinet/ip_fastfwd.c#22 integrate
.. //depot/projects/smpng/sys/netinet/ip_fw2.c#62 integrate
.. //depot/projects/smpng/sys/netinet/ip_icmp.c#37 integrate
.. //depot/projects/smpng/sys/netinet/ip_input.c#71 integrate
.. //depot/projects/smpng/sys/netinet/ip_mroute.c#43 integrate
.. //depot/projects/smpng/sys/netinet/ip_options.c#1 branch
.. //depot/projects/smpng/sys/netinet/ip_options.h#1 branch
.. //depot/projects/smpng/sys/netinet/ip_output.c#79 integrate
.. //depot/projects/smpng/sys/netinet/ip_var.h#30 integrate
.. //depot/projects/smpng/sys/netinet/tcp_input.c#77 integrate
.. //depot/projects/smpng/sys/netinet/tcp_output.c#38 integrate
.. //depot/projects/smpng/sys/netinet/tcp_sack.c#15 integrate
.. //depot/projects/smpng/sys/netinet/tcp_syncache.c#43 integrate
.. //depot/projects/smpng/sys/netinet/udp_usrreq.c#61 integrate
.. //depot/projects/smpng/sys/netinet6/in6_proto.c#14 integrate
.. //depot/projects/smpng/sys/netinet6/mld6.c#16 integrate
.. //depot/projects/smpng/sys/netipsec/keysock.c#10 integrate
.. //depot/projects/smpng/sys/netipx/ipx_ip.c#14 integrate
.. //depot/projects/smpng/sys/netipx/ipx_proto.c#7 integrate
.. //depot/projects/smpng/sys/netkey/keysock.c#23 integrate
.. //depot/projects/smpng/sys/netnatm/natm_proto.c#15 integrate
.. //depot/projects/smpng/sys/nfsclient/nfs_bio.c#44 integrate
.. //depot/projects/smpng/sys/nfsclient/nfs_socket.c#39 integrate
.. //depot/projects/smpng/sys/nfsclient/nfs_subs.c#27 integrate
.. //depot/projects/smpng/sys/nfsclient/nfs_vnops.c#55 integrate
.. //depot/projects/smpng/sys/nfsclient/nfsm_subs.h#9 integrate
.. //depot/projects/smpng/sys/pc98/conf/NOTES#47 integrate
.. //depot/projects/smpng/sys/pci/agp_amd64.c#7 integrate
.. //depot/projects/smpng/sys/pci/if_de.c#29 integrate
.. //depot/projects/smpng/sys/pci/if_pcn.c#38 integrate
.. //depot/projects/smpng/sys/pci/if_rl.c#63 integrate
.. //depot/projects/smpng/sys/pci/if_sf.c#42 integrate
.. //depot/projects/smpng/sys/pci/if_sis.c#58 integrate
.. //depot/projects/smpng/sys/pci/if_sk.c#53 integrate
.. //depot/projects/smpng/sys/pci/if_ste.c#43 integrate
.. //depot/projects/smpng/sys/pci/if_ti.c#51 integrate
.. //depot/projects/smpng/sys/pci/if_tl.c#32 integrate
.. //depot/projects/smpng/sys/pci/if_vr.c#43 integrate
.. //depot/projects/smpng/sys/pci/if_wb.c#37 integrate
.. //depot/projects/smpng/sys/pci/if_xl.c#65 integrate
.. //depot/projects/smpng/sys/powerpc/conf/GENERIC#29 integrate
.. //depot/projects/smpng/sys/powerpc/include/pte.h#5 integrate
.. //depot/projects/smpng/sys/powerpc/powerpc/mmu_if.m#2 integrate
.. //depot/projects/smpng/sys/powerpc/powerpc/ofw_machdep.c#12 integrate
.. //depot/projects/smpng/sys/powerpc/powerpc/pmap.c#58 delete
.. //depot/projects/smpng/sys/powerpc/powerpc/pmap_dispatch.c#2 integrate
.. //depot/projects/smpng/sys/powerpc/psim/ata_iobus.c#12 integrate
.. //depot/projects/smpng/sys/sparc64/conf/GENERIC#59 integrate
.. //depot/projects/smpng/sys/sparc64/sparc64/pmap.c#61 integrate
.. //depot/projects/smpng/sys/sys/ata.h#23 integrate
.. //depot/projects/smpng/sys/sys/ktrace.h#12 integrate
.. //depot/projects/smpng/sys/sys/mbuf.h#56 integrate
.. //depot/projects/smpng/sys/sys/mdioctl.h#14 integrate
.. //depot/projects/smpng/sys/sys/param.h#90 integrate
.. //depot/projects/smpng/sys/sys/proc.h#156 integrate
.. //depot/projects/smpng/sys/sys/queue.h#14 integrate
.. //depot/projects/smpng/sys/sys/resource.h#16 integrate
.. //depot/projects/smpng/sys/sys/signal.h#22 integrate
.. //depot/projects/smpng/sys/sys/time.h#19 integrate
.. //depot/projects/smpng/sys/sys/wait.h#9 integrate
.. //depot/projects/smpng/sys/ufs/ffs/ffs_vfsops.c#78 integrate
.. //depot/projects/smpng/sys/vm/pmap.h#28 integrate
.. //depot/projects/smpng/sys/vm/vm_map.c#75 integrate
.. //depot/projects/smpng/sys/vm/vm_pageout.c#54 integrate

Differences ...

==== //depot/projects/smpng/sys/alpha/alpha/clock.c#16 (text+ko) ====

@@ -38,7 +38,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/alpha/alpha/clock.c,v 1.39 2005/05/14 09:10:00 nyan Exp $");
+__FBSDID("$FreeBSD: src/sys/alpha/alpha/clock.c,v 1.40 2005/11/20 01:31:29 marcel Exp $");
 
 #include "opt_clock.h"
 
@@ -475,31 +475,20 @@
  * and the time of year clock (if any) provides the rest.
  */
 void
-inittodr(base)
-	time_t base;
+inittodr(time_t base)
 {
-	register int days, yr;
 	struct clocktime ct;
-	time_t deltat;
-	int badbase, clock_compat_osf1;
-	int s;
 	struct timespec ts;
-
-	if (base < 5*SECYR) {
-		printf("WARNING: preposterous time in filesystem");
-		/* read the system clock anyway */
-		base = 6*SECYR + 186*SECDAY + SECDAY/2;
-		badbase = 1;
-	} else
-		badbase = 0;
+	int clock_compat_osf1, todr_unreliable;
+	int days, yr;
 
 	if (getenv_int("clock_compat_osf1", &clock_compat_osf1)) {
 		if (clock_compat_osf1)
 			clock_year_offset = UNIX_YEAR_OFFSET;
 	}
 
+	todr_unreliable = 0;
 	CLOCK_GET(clockdev, base, &ct);
-	clockinitted = 1;
 
 #ifdef DEBUG
 	printf("readclock: %d/%d/%d/%d/%d/%d\n", ct.year, ct.mon, ct.day,
@@ -508,7 +497,7 @@
 	ct.year += clock_year_offset;
 	if (ct.year < 70)
 		ct.year += 100;
-	
+
 	/* simple sanity checks */
 	if (ct.year < 70 || ct.mon < 1 || ct.mon > 12 || ct.day < 1 ||
 	    ct.day > 31 || ct.hour > 23 || ct.min > 59 || ct.sec > 59) {
@@ -516,48 +505,47 @@
 		 * Believe the time in the filesystem for lack of
 		 * anything better, resetting the TODR.
 		 */
-		s = splclock();
 		ts.tv_sec = base;
-		ts.tv_nsec = 0;
-		tc_setclock(&ts);
-		splx(s);
-		if (!badbase) {
-			printf("WARNING: preposterous clock chip time\n");
-			resettodr();
-		}
-		goto bad;
+		printf("WARNING: preposterous real-time clock");
+		todr_unreliable = 1;
+	} else {
+		days = 0;
+		for (yr = 70; yr < ct.year; yr++)
+			days += LEAPYEAR(yr) ? 366 : 365;
+		days += dayyr[ct.mon - 1] + ct.day - 1;
+		if (LEAPYEAR(yr) && ct.mon > 2)
+			days++;
+		/* now have days since Jan 1, 1970; the rest is easy... */
+		ts.tv_sec = days * SECDAY + ct.hour * SECHOUR +
+		    ct.min * SECMIN + ct.sec;
+		if (wall_cmos_clock)
+			ts.tv_sec += adjkerntz;
+		/*
+		 * The time base comes from a saved time, whereas the real-
+		 * time clock is supposed to represent the current time.
+		 * It is logically not possible for a saved time to be
+		 * larger than the current time, so if that happens, assume
+		 * the real-time clock is off. Warn when the real-time
+		 * clock is off by two or more days.
+		 */
+		if (ts.tv_sec < base) {
+			ts.tv_sec = base;
+			days = (base - ts.tv_sec) / (60L * 60L * 24L);
+			if (days >= 2) {
+				printf("WARNING: real-time clock lost %d days",
+				    days);
+				todr_unreliable = 1;
+			}
+		} 
 	}
-	days = 0;
-	for (yr = 70; yr < ct.year; yr++)
-		days += LEAPYEAR(yr) ? 366 : 365;
-	days += dayyr[ct.mon - 1] + ct.day - 1;
-	if (LEAPYEAR(yr) && ct.mon > 2)
-		days++;
-	/* now have days since Jan 1, 1970; the rest is easy... */
-	s = splclock();
-	ts.tv_sec = 
-	    days * SECDAY + ct.hour * SECHOUR + ct.min * SECMIN + ct.sec;
-	if (wall_cmos_clock)
-	    ts.tv_sec += adjkerntz;
 	ts.tv_nsec = 0;
 	tc_setclock(&ts);
-	splx(s);
+	clockinitted = 1;
 
-	if (!badbase) {
-		/*
-		 * See if we gained/lost two or more days;
-		 * if so, assume something is amiss.
-		 */
-		deltat = ts.tv_sec - base;
-		if (deltat < 0)
-			deltat = -deltat;
-		if (deltat < 2 * SECDAY)
-			return;
-		printf("WARNING: clock %s %d days",
-		    ts.tv_sec < base ? "lost" : "gained", deltat / SECDAY);
+	if (todr_unreliable) {
+		printf(" -- CHECK AND RESET THE DATE!\n");
+		resettodr();
 	}
-bad:
-	printf(" -- CHECK AND RESET THE DATE!\n");
 }
 
 /*

==== //depot/projects/smpng/sys/alpha/alpha/pmap.c#75 (text+ko) ====

@@ -148,7 +148,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/alpha/alpha/pmap.c,v 1.183 2005/11/04 18:03:23 alc Exp $");
+__FBSDID("$FreeBSD: src/sys/alpha/alpha/pmap.c,v 1.186 2005/11/20 06:09:47 alc Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -317,11 +317,9 @@
  */
 static uma_zone_t pvzone;
 static int pv_entry_count = 0, pv_entry_max = 0, pv_entry_high_water = 0;
-int pmap_pagedaemon_waken;
 
 static PMAP_INLINE void	free_pv_entry(pv_entry_t pv);
-static pv_entry_t get_pv_entry(void);
-static pv_entry_t pv_entry_reclaim(pmap_t locked_pmap);
+static pv_entry_t get_pv_entry(pmap_t locked_pmap);
 static void	alpha_protection_init(void);
 static void	pmap_changebit(vm_page_t m, int bit, boolean_t setem);
 
@@ -585,11 +583,6 @@
 	pv_entry_high_water = 9 * (pv_entry_max / 10);
 }
 
-void
-pmap_init2()
-{
-}
-
 
 /***************************************************
  * Manipulate TLBs for a pmap
@@ -1300,49 +1293,57 @@
 /*
  * get a new pv_entry, allocating a block from the system
  * when needed.
- * the memory allocation is performed bypassing the malloc code
- * because of the possibility of allocations at interrupt time.
  */
 static pv_entry_t
-get_pv_entry(void)
+get_pv_entry(pmap_t locked_pmap)
 {
-	pv_entry_count++;
-	if ((pv_entry_count > pv_entry_high_water) &&
-		(pmap_pagedaemon_waken == 0)) {
-		pmap_pagedaemon_waken = 1;
-		wakeup (&vm_pages_needed);
-	}
-	return uma_zalloc(pvzone, M_NOWAIT);
-}
-
-/*
- * Reclaim a pv entry by removing a mapping to an inactive page.
- */
-static pv_entry_t
-pv_entry_reclaim(pmap_t locked_pmap)
-{
+	static const struct timeval printinterval = { 60, 0 };
+	static struct timeval lastprint;
+	struct vpgqueues *vpq;
 	pmap_t pmap;
 	pt_entry_t *pte, tpte;
-	pv_entry_t pv;
+	pv_entry_t allocated_pv, next_pv, pv;
 	vm_offset_t va;
 	vm_page_t m;
 
 	PMAP_LOCK_ASSERT(locked_pmap, MA_OWNED);
 	mtx_assert(&vm_page_queue_mtx, MA_OWNED);
-	TAILQ_FOREACH(m, &vm_page_queues[PQ_INACTIVE].pl, pageq) {
+	allocated_pv = uma_zalloc(pvzone, M_NOWAIT);
+	if (allocated_pv != NULL) {
+		pv_entry_count++;
+		if (pv_entry_count > pv_entry_high_water)
+			pagedaemon_wakeup();
+		else
+			return (allocated_pv);
+	}
+
+	/*
+	 * Reclaim pv entries: At first, destroy mappings to inactive
+	 * pages.  After that, if a pv entry is still needed, destroy
+	 * mappings to active pages.
+	 */
+	if (ratecheck(&lastprint, &printinterval))
+		printf("Approaching the limit on PV entries, "
+		    "increase the vm.pmap.shpgperproc tunable.\n");
+	vpq = &vm_page_queues[PQ_INACTIVE];
+retry:
+	TAILQ_FOREACH(m, &vpq->pl, pageq) {
 		if (m->hold_count || m->busy || (m->flags & PG_BUSY))
 			continue;
-		TAILQ_FOREACH(pv, &m->md.pv_list, pv_list) {
+		TAILQ_FOREACH_SAFE(pv, &m->md.pv_list, pv_list, next_pv) {
 			va = pv->pv_va;
 			pmap = pv->pv_pmap;
-			if (pmap != locked_pmap && !PMAP_TRYLOCK(pmap))
+			/* Avoid deadlock and lock recursion. */
+			if (pmap > locked_pmap)
+				PMAP_LOCK(pmap);
+			else if (pmap != locked_pmap && !PMAP_TRYLOCK(pmap))
 				continue;
 			pmap->pm_stats.resident_count--;
 			pte = pmap_lev3pte(pmap, va);
 			tpte = *pte;
 			*pte = 0;
 			KASSERT((tpte & PG_W) == 0,
-			    ("pv_entry_reclaim: wired pte %#lx", tpte));
+			    ("get_pv_entry: wired pte %#lx", tpte));
 			if ((tpte & PG_FOR) == 0)
 				vm_page_flag_set(m, PG_REFERENCED);
 			if ((tpte & PG_FOW) == 0) {
@@ -1358,10 +1359,20 @@
 			pmap_unuse_pt(pmap, va, pv->pv_ptem);
 			if (pmap != locked_pmap)
 				PMAP_UNLOCK(pmap);
-			return (pv);
+			if (allocated_pv == NULL)
+				allocated_pv = pv;
+			else
+				free_pv_entry(pv);
+		}
+	}
+	if (allocated_pv == NULL) {
+		if (vpq == &vm_page_queues[PQ_INACTIVE]) {
+			vpq = &vm_page_queues[PQ_ACTIVE];
+			goto retry;
 		}
+		panic("get_pv_entry: increase the vm.pmap.shpgperproc tunable");
 	}
-	panic("pv_entry_reclaim: increase vm.pmap.shpgperproc");
+	return (allocated_pv);
 }
 
 static int
@@ -1408,9 +1419,7 @@
 {
 	pv_entry_t pv;
 
-	pv = get_pv_entry();
-	if (pv == NULL)
-		pv = pv_entry_reclaim(pmap);
+	pv = get_pv_entry(pmap);
 	pv->pv_va = va;
 	pv->pv_pmap = pmap;
 	pv->pv_ptem = mpte;

==== //depot/projects/smpng/sys/amd64/amd64/apic_vector.S#10 (text+ko) ====

@@ -28,7 +28,7 @@
  * SUCH DAMAGE.
  *
  *	from: vector.s, 386BSD 0.1 unknown origin
- * $FreeBSD: src/sys/amd64/amd64/apic_vector.S,v 1.104 2005/10/24 20:52:26 jhb Exp $
+ * $FreeBSD: src/sys/amd64/amd64/apic_vector.S,v 1.105 2005/11/16 20:55:57 jhb Exp $
  */
 
 /*
@@ -297,11 +297,10 @@
 	test	%eax, %eax
 	jnz	2f
 
-	xorq	%rax, %rax
-	lock
-	xchgq	cpustop_restartfunc, %rax
+	movq	cpustop_restartfunc, %rax
 	testq	%rax, %rax
 	jz	2f
+	movq	$0, cpustop_restartfunc	/* One-shot */
 
 	call	*%rax
 2:

==== //depot/projects/smpng/sys/amd64/amd64/identcpu.c#15 (text+ko) ====

@@ -39,7 +39,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/identcpu.c,v 1.140 2005/10/17 23:23:20 jkim Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/identcpu.c,v 1.141 2005/11/17 02:32:39 obrien Exp $");
 
 #include "opt_cpu.h"
 
@@ -339,7 +339,7 @@
 				cpu_feature &= ~CPUID_HTT;
 				if (bootverbose)
 	    				printf("\nHTT bit cleared - FreeBSD"
-					    " does not have licenseing issues"
+					    " does not have licensing issues"
 					    " requiring it.\n");
 			}
 

==== //depot/projects/smpng/sys/amd64/amd64/io_apic.c#12 (text+ko) ====

@@ -28,7 +28,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/io_apic.c,v 1.19 2005/11/04 23:02:28 peter Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/io_apic.c,v 1.20 2005/11/16 20:29:29 jhb Exp $");
 
 #include "opt_atpic.h"
 #include "opt_isa.h"
@@ -503,7 +503,7 @@
 	mtx_unlock_spin(&icu_lock);
 
 	/* If it's version register doesn't seem to work, punt. */
-	if (value == 0xffffff) {
+	if (value == 0xffffffff) {
 		pmap_unmapdev((vm_offset_t)apic, IOAPIC_MEM_REGION);
 		return (NULL);
 	}

==== //depot/projects/smpng/sys/amd64/amd64/machdep.c#47 (text+ko) ====

@@ -39,7 +39,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.643 2005/10/26 22:16:52 peter Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.644 2005/11/21 18:39:17 jhb Exp $");
 
 #include "opt_atalk.h"
 #include "opt_atpic.h"
@@ -124,7 +124,9 @@
 #include <machine/smp.h>
 #endif
 
+#include <dev/ic/i8259.h>
 #include <amd64/isa/icu.h>
+#include <machine/apicvar.h>
 
 #include <isa/isareg.h>
 #include <isa/rtc.h>
@@ -1125,14 +1127,6 @@
 	u_int64_t msr;
 	char *env;
 
-#ifdef DEV_ISA
-	/* Preemptively mask the atpics and leave them shut down */
-	outb(IO_ICU1 + ICU_IMR_OFFSET, 0xff);
-	outb(IO_ICU2 + ICU_IMR_OFFSET, 0xff);
-#else
-#error "have you forgotten the isa device?";
-#endif
-
 	thread0.td_kstack = physfree + KERNBASE;
 	bzero((void *)thread0.td_kstack, KSTACK_PAGES * PAGE_SIZE);
 	physfree += KSTACK_PAGES * PAGE_SIZE;
@@ -1231,9 +1225,35 @@
 	 */
 	cninit();
 
+#ifdef DEV_ISA
 #ifdef DEV_ATPIC
 	elcr_probe();
 	atpic_startup();
+#else
+	/* Reset and mask the atpics and leave them shut down. */
+	outb(IO_ICU1, ICW1_RESET | ICW1_IC4);
+	outb(IO_ICU1 + ICU_IMR_OFFSET, IDT_IO_INTS);
+	outb(IO_ICU1 + ICU_IMR_OFFSET, 1 << 2);
+	outb(IO_ICU1 + ICU_IMR_OFFSET, ICW4_8086);
+	outb(IO_ICU1 + ICU_IMR_OFFSET, 0xff);
+	outb(IO_ICU1, OCW3_SEL | OCW3_RR);
+
+	outb(IO_ICU2, ICW1_RESET | ICW1_IC4);
+	outb(IO_ICU2 + ICU_IMR_OFFSET, IDT_IO_INTS + 8);
+	outb(IO_ICU2 + ICU_IMR_OFFSET, 2);
+	outb(IO_ICU2 + ICU_IMR_OFFSET, ICW4_8086);
+	outb(IO_ICU2 + ICU_IMR_OFFSET, 0xff);
+	outb(IO_ICU2, OCW3_SEL | OCW3_RR);
+
+	/*
+	 * Point the ICU spurious interrupt vectors at the APIC spurious
+	 * interrupt handler.
+	 */
+	setidt(IDT_IO_INTS + 7, IDTVEC(spuriousint), SDT_SYSIGT, SEL_KPL, 0);
+	setidt(IDT_IO_INTS + 15, IDTVEC(spuriousint), SDT_SYSIGT, SEL_KPL, 0);
+#endif
+#else
+#error "have you forgotten the isa device?";
 #endif
 
 	kdb_init();

==== //depot/projects/smpng/sys/amd64/amd64/mp_machdep.c#29 (text+ko) ====

@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/mp_machdep.c,v 1.264 2005/10/24 21:04:17 jhb Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/mp_machdep.c,v 1.265 2005/11/16 20:58:39 jhb Exp $");
 
 #include "opt_cpu.h"
 #include "opt_kstack_pages.h"
@@ -1072,7 +1072,6 @@
 {
 	int cpu = PCPU_GET(cpuid);
 	int cpumask = PCPU_GET(cpumask);
-	void (*restartfunc)(void);
 
 	if (!(ipi_nmi_pending & cpumask))
 		return 1;
@@ -1091,10 +1090,10 @@
 	atomic_clear_int(&started_cpus, cpumask);
 	atomic_clear_int(&stopped_cpus, cpumask);
 
-	restartfunc = (void (*)(void))atomic_readandclear_long(
-		(u_long *)&cpustop_restartfunc);
-	if (restartfunc != NULL)
-		restartfunc();
+	if (cpu == 0 && cpustop_restartfunc != NULL) {
+		cpustop_restartfunc();
+		cpustop_restartfunc = NULL;
+	}
 
 	return 0;
 }

==== //depot/projects/smpng/sys/amd64/amd64/pmap.c#50 (text+ko) ====

@@ -77,7 +77,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.532 2005/11/04 18:03:23 alc Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.535 2005/11/20 06:09:48 alc Exp $");
 
 /*
  *	Manages physical address maps.
@@ -185,7 +185,6 @@
 static uma_zone_t pvzone;
 static struct vm_object pvzone_obj;
 static int pv_entry_count = 0, pv_entry_max = 0, pv_entry_high_water = 0;
-int pmap_pagedaemon_waken;
 
 /*
  * All those kernel PT submaps that BSD is so fond of
@@ -200,8 +199,7 @@
 static caddr_t crashdumpmap;
 
 static PMAP_INLINE void	free_pv_entry(pv_entry_t pv);
-static pv_entry_t get_pv_entry(void);
-static pv_entry_t pv_entry_reclaim(pmap_t locked_pmap);
+static pv_entry_t get_pv_entry(pmap_t locked_pmap);
 static void	pmap_clear_ptes(vm_page_t m, long bit);
 
 static int pmap_remove_pte(pmap_t pmap, pt_entry_t *ptq,
@@ -581,11 +579,6 @@
 	uma_zone_set_obj(pvzone, &pvzone_obj, pv_entry_max);
 }
 
-void
-pmap_init2()
-{
-}
-
 
 /***************************************************
  * Low level helper routines.....
@@ -1428,54 +1421,62 @@
 /*
  * get a new pv_entry, allocating a block from the system
  * when needed.
- * the memory allocation is performed bypassing the malloc code
- * because of the possibility of allocations at interrupt time.
  */
 static pv_entry_t
-get_pv_entry(void)
+get_pv_entry(pmap_t locked_pmap)
 {
-	pv_entry_count++;
-	if ((pv_entry_count > pv_entry_high_water) &&
-		(pmap_pagedaemon_waken == 0)) {
-		pmap_pagedaemon_waken = 1;
-		wakeup (&vm_pages_needed);
-	}
-	return uma_zalloc(pvzone, M_NOWAIT);
-}
-
-/*
- * Reclaim a pv entry by removing a mapping to an inactive page.
- */
-static pv_entry_t
-pv_entry_reclaim(pmap_t locked_pmap)
-{
+	static const struct timeval printinterval = { 60, 0 };
+	static struct timeval lastprint;
+	struct vpgqueues *vpq;
 	pd_entry_t ptepde;
 	pmap_t pmap;
 	pt_entry_t *pte, tpte;
-	pv_entry_t pv;
+	pv_entry_t allocated_pv, next_pv, pv;
 	vm_offset_t va;
 	vm_page_t m;
 
 	PMAP_LOCK_ASSERT(locked_pmap, MA_OWNED);
 	mtx_assert(&vm_page_queue_mtx, MA_OWNED);
-	TAILQ_FOREACH(m, &vm_page_queues[PQ_INACTIVE].pl, pageq) {
+	allocated_pv = uma_zalloc(pvzone, M_NOWAIT);
+	if (allocated_pv != NULL) {
+		pv_entry_count++;
+		if (pv_entry_count > pv_entry_high_water)
+			pagedaemon_wakeup();
+		else
+			return (allocated_pv);
+	}
+
+	/*
+	 * Reclaim pv entries: At first, destroy mappings to inactive
+	 * pages.  After that, if a pv entry is still needed, destroy
+	 * mappings to active pages.
+	 */
+	if (ratecheck(&lastprint, &printinterval))
+		printf("Approaching the limit on PV entries, "
+		    "increase the vm.pmap.shpgperproc tunable.\n");
+	vpq = &vm_page_queues[PQ_INACTIVE];
+retry:
+	TAILQ_FOREACH(m, &vpq->pl, pageq) {
 		if (m->hold_count || m->busy || (m->flags & PG_BUSY))
 			continue;
-		TAILQ_FOREACH(pv, &m->md.pv_list, pv_list) {
+		TAILQ_FOREACH_SAFE(pv, &m->md.pv_list, pv_list, next_pv) {
 			va = pv->pv_va;
 			pmap = pv->pv_pmap;
-			if (pmap != locked_pmap && !PMAP_TRYLOCK(pmap))
+			/* Avoid deadlock and lock recursion. */
+			if (pmap > locked_pmap)
+				PMAP_LOCK(pmap);
+			else if (pmap != locked_pmap && !PMAP_TRYLOCK(pmap))
 				continue;
 			pmap->pm_stats.resident_count--;
 			pte = pmap_pte_pde(pmap, va, &ptepde);
 			tpte = pte_load_clear(pte);
 			KASSERT((tpte & PG_W) == 0,
-			    ("pv_entry_reclaim: wired pte %#lx", tpte));
+			    ("get_pv_entry: wired pte %#lx", tpte));
 			if (tpte & PG_A)
 				vm_page_flag_set(m, PG_REFERENCED);
 			if (tpte & PG_M) {
 				KASSERT((tpte & PG_RW),
-	("pv_entry_reclaim: modified page not writable: va: %#lx, pte: %#lx",
+	("get_pv_entry: modified page not writable: va: %#lx, pte: %#lx",
 				    va, tpte));
 				if (pmap_track_modified(va))
 					vm_page_dirty(m);
@@ -1489,10 +1490,20 @@
 			pmap_unuse_pt(pmap, va, ptepde);
 			if (pmap != locked_pmap)
 				PMAP_UNLOCK(pmap);
-			return (pv);
+			if (allocated_pv == NULL)
+				allocated_pv = pv;
+			else
+				free_pv_entry(pv);
+		}
+	}
+	if (allocated_pv == NULL) {
+		if (vpq == &vm_page_queues[PQ_INACTIVE]) {
+			vpq = &vm_page_queues[PQ_ACTIVE];
+			goto retry;
 		}
+		panic("get_pv_entry: increase the vm.pmap.shpgperproc tunable");
 	}
-	panic("pv_entry_reclaim: increase vm.pmap.shpgperproc");
+	return (allocated_pv);
 }
 
 static void
@@ -1531,11 +1542,7 @@
 {
 	pv_entry_t pv;
 
-	pv = get_pv_entry();
-	if (pv == NULL) {
-		pv_entry_count--;
-		pv = pv_entry_reclaim(pmap);
-	}
+	pv = get_pv_entry(pmap);
 	pv->pv_va = va;
 	pv->pv_pmap = pmap;
 

==== //depot/projects/smpng/sys/amd64/amd64/trap.c#38 (text+ko) ====

@@ -38,7 +38,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/trap.c,v 1.296 2005/10/24 21:04:17 jhb Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/trap.c,v 1.297 2005/11/18 19:26:46 jhb Exp $");
 
 /*
  * AMD64 Trap and System call handling
@@ -100,7 +100,7 @@
 static void trap_fatal(struct trapframe *, vm_offset_t);
 void dblfault_handler(void);
 
-#define MAX_TRAP_MSG		28
+#define MAX_TRAP_MSG		30
 static char *trap_msg[] = {
 	"",					/*  0 unused */
 	"privileged instruction fault",		/*  1 T_PRIVINFLT */
@@ -131,6 +131,8 @@
 	"segment not present fault",		/* 26 T_SEGNPFLT */
 	"stack fault",				/* 27 T_STKFLT */
 	"machine check trap",			/* 28 T_MCHK */
+	"SIMD floating-point exception",	/* 29 T_XMMFLT */
+	"reserved (unknown) fault",		/* 30 T_RESERVED */
 };
 
 #ifdef KDB
@@ -609,15 +611,18 @@
 	int code, type, ss;
 	long esp;
 	struct soft_segment_descriptor softseg;
+	char *msg;
 
 	code = frame->tf_err;
 	type = frame->tf_trapno;
 	sdtossd(&gdt[IDXSEL(frame->tf_cs & 0xffff)], &softseg);
 
 	if (type <= MAX_TRAP_MSG)
-		printf("\n\nFatal trap %d: %s while in %s mode\n",
-			type, trap_msg[type],
-			ISPL(frame->tf_cs) == SEL_UPL ? "user" : "kernel");
+		msg = trap_msg[type];
+	else
+		msg = "UNKNOWN";
+	printf("\n\nFatal trap %d: %s while in %s mode\n", type, msg,
+	    ISPL(frame->tf_cs) == SEL_UPL ? "user" : "kernel");

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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200511212006.jALK6XKE068762>