From owner-p4-projects@FreeBSD.ORG Tue Mar 1 19:30:34 2005 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 7498916A4D1; Tue, 1 Mar 2005 19:30:34 +0000 (GMT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 4D02116A4CE for ; Tue, 1 Mar 2005 19:30:34 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 74F2743D1D for ; Tue, 1 Mar 2005 19:30:33 +0000 (GMT) (envelope-from jmg@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j21JUXOP083789 for ; Tue, 1 Mar 2005 19:30:33 GMT (envelope-from jmg@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j21JUV8O083786 for perforce@freebsd.org; Tue, 1 Mar 2005 19:30:32 GMT (envelope-from jmg@freebsd.org) Date: Tue, 1 Mar 2005 19:30:32 GMT Message-Id: <200503011930.j21JUV8O083786@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jmg@freebsd.org using -f From: John-Mark Gurney To: Perforce Change Reviews Subject: PERFORCE change 72279 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 01 Mar 2005 19:30:35 -0000 http://perforce.freebsd.org/chv.cgi?CH=72279 Change 72279 by jmg@jmg_carbon on 2005/03/01 19:29:45 bring up projects/arm to HEAD.. I'm keeping cognet's fixup till we figure out what the correct fix is... Affected files ... .. //depot/projects/arm/src/sys/alpha/include/exec.h#2 integrate .. //depot/projects/arm/src/sys/amd64/acpica/madt.c#2 integrate .. //depot/projects/arm/src/sys/amd64/amd64/apic_vector.S#2 integrate .. //depot/projects/arm/src/sys/amd64/amd64/io_apic.c#2 integrate .. //depot/projects/arm/src/sys/amd64/amd64/local_apic.c#2 integrate .. //depot/projects/arm/src/sys/amd64/amd64/machdep.c#2 integrate .. //depot/projects/arm/src/sys/amd64/amd64/mp_machdep.c#2 integrate .. //depot/projects/arm/src/sys/amd64/amd64/mp_watchdog.c#2 integrate .. //depot/projects/arm/src/sys/amd64/amd64/mptable.c#2 integrate .. //depot/projects/arm/src/sys/amd64/conf/GENERIC#2 integrate .. //depot/projects/arm/src/sys/amd64/conf/NOTES#2 integrate .. //depot/projects/arm/src/sys/amd64/include/apicvar.h#2 integrate .. //depot/projects/arm/src/sys/amd64/include/exec.h#2 integrate .. //depot/projects/arm/src/sys/amd64/include/sf_buf.h#2 integrate .. //depot/projects/arm/src/sys/amd64/include/smp.h#2 integrate .. //depot/projects/arm/src/sys/amd64/isa/clock.c#2 integrate .. //depot/projects/arm/src/sys/arm/arm/cpufunc_asm.S#3 integrate .. //depot/projects/arm/src/sys/arm/arm/fusu.S#2 integrate .. //depot/projects/arm/src/sys/arm/arm/genassym.c#2 integrate .. //depot/projects/arm/src/sys/arm/arm/locore.S#8 integrate .. //depot/projects/arm/src/sys/arm/arm/machdep.c#2 integrate .. //depot/projects/arm/src/sys/arm/arm/pmap.c#4 integrate .. //depot/projects/arm/src/sys/arm/arm/swtch.S#2 integrate .. //depot/projects/arm/src/sys/arm/arm/sys_machdep.c#2 integrate .. //depot/projects/arm/src/sys/arm/include/exec.h#2 integrate .. //depot/projects/arm/src/sys/arm/include/machdep.h#2 integrate .. //depot/projects/arm/src/sys/arm/include/pmap.h#2 integrate .. //depot/projects/arm/src/sys/arm/include/proc.h#2 integrate .. //depot/projects/arm/src/sys/arm/include/sysarch.h#2 integrate .. //depot/projects/arm/src/sys/arm/xscale/i80321/iq31244_machdep.c#3 integrate .. //depot/projects/arm/src/sys/arm/xscale/i80321/std.i80321#2 integrate .. //depot/projects/arm/src/sys/arm/xscale/std.xscale#1 branch .. //depot/projects/arm/src/sys/cam/cam_periph.c#2 integrate .. //depot/projects/arm/src/sys/cam/cam_xpt.c#2 integrate .. //depot/projects/arm/src/sys/cam/scsi/scsi_all.c#2 integrate .. //depot/projects/arm/src/sys/coda/coda_vfsops.c#2 integrate .. //depot/projects/arm/src/sys/coda/coda_vfsops.h#2 integrate .. //depot/projects/arm/src/sys/compat/freebsd32/freebsd32_misc.c#2 integrate .. //depot/projects/arm/src/sys/compat/freebsd32/freebsd32_proto.h#2 integrate .. //depot/projects/arm/src/sys/compat/freebsd32/freebsd32_syscall.h#2 integrate .. //depot/projects/arm/src/sys/compat/freebsd32/freebsd32_syscalls.c#2 integrate .. //depot/projects/arm/src/sys/compat/freebsd32/freebsd32_sysent.c#2 integrate .. //depot/projects/arm/src/sys/compat/freebsd32/syscalls.master#2 integrate .. //depot/projects/arm/src/sys/compat/linux/linux_stats.c#2 integrate .. //depot/projects/arm/src/sys/compat/linux/linux_util.c#2 integrate .. //depot/projects/arm/src/sys/compat/linux/linux_util.h#2 integrate .. //depot/projects/arm/src/sys/compat/ndis/kern_ndis.c#2 integrate .. //depot/projects/arm/src/sys/compat/ndis/kern_windrv.c#2 integrate .. //depot/projects/arm/src/sys/compat/ndis/ntoskrnl_var.h#2 integrate .. //depot/projects/arm/src/sys/compat/ndis/subr_ntoskrnl.c#2 integrate .. //depot/projects/arm/src/sys/compat/ndis/subr_pe.c#2 integrate .. //depot/projects/arm/src/sys/compat/ndis/subr_usbd.c#1 branch .. //depot/projects/arm/src/sys/compat/ndis/usbd_var.h#1 branch .. //depot/projects/arm/src/sys/compat/pecoff/imgact_pecoff.c#2 integrate .. //depot/projects/arm/src/sys/compat/svr4/svr4_signal.c#2 integrate .. //depot/projects/arm/src/sys/compat/svr4/svr4_signal.h#2 integrate .. //depot/projects/arm/src/sys/compat/svr4/svr4_sysvec.c#2 integrate .. //depot/projects/arm/src/sys/conf/NOTES#2 integrate .. //depot/projects/arm/src/sys/conf/files#2 integrate .. //depot/projects/arm/src/sys/conf/files.amd64#2 integrate .. //depot/projects/arm/src/sys/conf/files.i386#2 integrate .. //depot/projects/arm/src/sys/conf/kern.post.mk#3 integrate .. //depot/projects/arm/src/sys/conf/majors#2 integrate .. //depot/projects/arm/src/sys/conf/options#2 integrate .. //depot/projects/arm/src/sys/conf/options.arm#3 integrate .. //depot/projects/arm/src/sys/conf/options.i386#2 integrate .. //depot/projects/arm/src/sys/contrib/altq/altq/altq_subr.c#2 integrate .. //depot/projects/arm/src/sys/contrib/altq/altq/altq_var.h#2 integrate .. //depot/projects/arm/src/sys/contrib/dev/hptmv/i386-elf.raid.o.uu#2 integrate .. //depot/projects/arm/src/sys/contrib/dev/hptmv/ioctl.c#2 integrate .. //depot/projects/arm/src/sys/contrib/ipfilter/netinet/mlfk_ipl.c#2 integrate .. //depot/projects/arm/src/sys/contrib/pf/net/pf_if.c#2 integrate .. //depot/projects/arm/src/sys/dev/acpica/acpi.c#2 integrate .. //depot/projects/arm/src/sys/dev/acpica/acpi_ec.c#2 integrate .. //depot/projects/arm/src/sys/dev/acpica/acpi_pcibvar.h#2 integrate .. //depot/projects/arm/src/sys/dev/acpica/acpi_perf.c#2 integrate .. //depot/projects/arm/src/sys/dev/acpica/acpi_quirks#2 integrate .. //depot/projects/arm/src/sys/dev/acpica/acpi_thermal.c#2 integrate .. //depot/projects/arm/src/sys/dev/acpica/acpi_throttle.c#2 integrate .. //depot/projects/arm/src/sys/dev/acpica/acpiio.h#2 integrate .. //depot/projects/arm/src/sys/dev/acpica/acpivar.h#2 integrate .. //depot/projects/arm/src/sys/dev/advansys/adwlib.c#2 integrate .. //depot/projects/arm/src/sys/dev/ata/atapi-tape.c#2 integrate .. //depot/projects/arm/src/sys/dev/cardbus/cardbus.c#2 integrate .. //depot/projects/arm/src/sys/dev/cardbus/cardbus_cis.c#2 integrate .. //depot/projects/arm/src/sys/dev/ciss/ciss.c#2 integrate .. //depot/projects/arm/src/sys/dev/cp/if_cp.c#2 integrate .. //depot/projects/arm/src/sys/dev/cpufreq/ichss.c#2 integrate .. //depot/projects/arm/src/sys/dev/ctau/if_ct.c#2 integrate .. //depot/projects/arm/src/sys/dev/digi/digi.c#2 integrate .. //depot/projects/arm/src/sys/dev/dpt/dpt_eisa.c#2 integrate .. //depot/projects/arm/src/sys/dev/dpt/dpt_pci.c#2 integrate .. //depot/projects/arm/src/sys/dev/drm/drm_bufs.h#2 integrate .. //depot/projects/arm/src/sys/dev/drm/radeon_state.c#2 integrate .. //depot/projects/arm/src/sys/dev/ed/if_ed.c#2 integrate .. //depot/projects/arm/src/sys/dev/ed/if_ed_isa.c#2 integrate .. //depot/projects/arm/src/sys/dev/ed/if_ed_pccard.c#2 integrate .. //depot/projects/arm/src/sys/dev/ed/if_ed_pci.c#2 integrate .. //depot/projects/arm/src/sys/dev/ed/if_ed_sic.c#2 integrate .. //depot/projects/arm/src/sys/dev/ed/if_ed_wd80x3.c#2 integrate .. //depot/projects/arm/src/sys/dev/ed/if_edvar.h#2 integrate .. //depot/projects/arm/src/sys/dev/fb/vgareg.h#2 integrate .. //depot/projects/arm/src/sys/dev/fdc/fdc.c#2 integrate .. //depot/projects/arm/src/sys/dev/fe/if_fe.c#2 integrate .. //depot/projects/arm/src/sys/dev/fe/if_fe_cbus.c#2 integrate .. //depot/projects/arm/src/sys/dev/fe/if_fe_isa.c#2 integrate .. //depot/projects/arm/src/sys/dev/fe/if_fe_pccard.c#2 integrate .. //depot/projects/arm/src/sys/dev/fe/if_fereg.h#2 integrate .. //depot/projects/arm/src/sys/dev/fe/if_fevar.h#2 integrate .. //depot/projects/arm/src/sys/dev/fe/mb86960.h#2 integrate .. //depot/projects/arm/src/sys/dev/fxp/if_fxp.c#2 integrate .. //depot/projects/arm/src/sys/dev/hme/if_hme_pci.c#2 integrate .. //depot/projects/arm/src/sys/dev/hptmv/access601.h#1 branch .. //depot/projects/arm/src/sys/dev/hptmv/array.h#1 branch .. //depot/projects/arm/src/sys/dev/hptmv/atapi.h#1 branch .. //depot/projects/arm/src/sys/dev/hptmv/command.h#1 branch .. //depot/projects/arm/src/sys/dev/hptmv/entry.c#2 integrate .. //depot/projects/arm/src/sys/dev/hptmv/gui_lib.c#1 branch .. //depot/projects/arm/src/sys/dev/hptmv/hptproc.c#1 branch .. //depot/projects/arm/src/sys/dev/hptmv/i386-elf.raid.o.uu#1 branch .. //depot/projects/arm/src/sys/dev/hptmv/ioctl.c#1 branch .. //depot/projects/arm/src/sys/dev/hptmv/mvSata.h#1 branch .. //depot/projects/arm/src/sys/dev/hptmv/mvStorageDev.h#1 branch .. //depot/projects/arm/src/sys/dev/hptmv/raid5n.h#1 branch .. //depot/projects/arm/src/sys/dev/hptmv/readme.txt#1 branch .. //depot/projects/arm/src/sys/dev/hptmv/vdevice.h#1 branch .. //depot/projects/arm/src/sys/dev/if_ndis/if_ndis.c#2 integrate .. //depot/projects/arm/src/sys/dev/if_ndis/if_ndis_pccard.c#2 integrate .. //depot/projects/arm/src/sys/dev/if_ndis/if_ndis_pci.c#2 integrate .. //depot/projects/arm/src/sys/dev/if_ndis/if_ndis_usb.c#1 branch .. //depot/projects/arm/src/sys/dev/kbd/atkbd.c#2 integrate .. //depot/projects/arm/src/sys/dev/null/null.c#2 integrate .. //depot/projects/arm/src/sys/dev/pccard/pccarddevs#2 integrate .. //depot/projects/arm/src/sys/dev/pci/pci.c#2 integrate .. //depot/projects/arm/src/sys/dev/pci/pci_private.h#2 integrate .. //depot/projects/arm/src/sys/dev/pci/pci_user.c#2 integrate .. //depot/projects/arm/src/sys/dev/puc/puc.c#2 integrate .. //depot/projects/arm/src/sys/dev/puc/puc_pci.c#2 integrate .. //depot/projects/arm/src/sys/dev/puc/puc_sbus.c#2 integrate .. //depot/projects/arm/src/sys/dev/re/if_re.c#2 integrate .. //depot/projects/arm/src/sys/dev/rp/rp_pci.c#2 integrate .. //depot/projects/arm/src/sys/dev/safe/safe.c#2 integrate .. //depot/projects/arm/src/sys/dev/sbsh/if_sbsh.c#2 integrate .. //depot/projects/arm/src/sys/dev/si/si_pci.c#2 integrate .. //depot/projects/arm/src/sys/dev/snc/dp83932.c#2 integrate .. //depot/projects/arm/src/sys/dev/sound/isa/ad1816.c#2 integrate .. //depot/projects/arm/src/sys/dev/sound/isa/mss.c#2 integrate .. //depot/projects/arm/src/sys/dev/sound/pci/als4000.c#2 integrate .. //depot/projects/arm/src/sys/dev/sound/pci/au88x0.c#2 integrate .. //depot/projects/arm/src/sys/dev/sound/pci/aureal.c#2 integrate .. //depot/projects/arm/src/sys/dev/sound/pci/cmi.c#2 integrate .. //depot/projects/arm/src/sys/dev/sound/pci/cs4281.c#2 integrate .. //depot/projects/arm/src/sys/dev/sound/pci/csa.c#2 integrate .. //depot/projects/arm/src/sys/dev/sound/pci/ds1.c#2 integrate .. //depot/projects/arm/src/sys/dev/sound/pci/emu10k1.c#2 integrate .. //depot/projects/arm/src/sys/dev/sound/pci/es137x.c#2 integrate .. //depot/projects/arm/src/sys/dev/sound/pci/fm801.c#2 integrate .. //depot/projects/arm/src/sys/dev/sound/pci/ich.c#2 integrate .. //depot/projects/arm/src/sys/dev/sound/pci/maestro.c#2 integrate .. //depot/projects/arm/src/sys/dev/sound/pci/maestro3.c#2 integrate .. //depot/projects/arm/src/sys/dev/sound/pci/solo.c#2 integrate .. //depot/projects/arm/src/sys/dev/sound/pci/t4dwave.c#2 integrate .. //depot/projects/arm/src/sys/dev/sound/pci/via8233.c#2 integrate .. //depot/projects/arm/src/sys/dev/sound/pci/via82c686.c#2 integrate .. //depot/projects/arm/src/sys/dev/sound/pci/vibes.c#2 integrate .. //depot/projects/arm/src/sys/dev/sound/pcm/dsp.c#2 integrate .. //depot/projects/arm/src/sys/dev/sound/pcm/mixer.c#2 integrate .. //depot/projects/arm/src/sys/dev/sound/pcm/sndstat.c#2 integrate .. //depot/projects/arm/src/sys/dev/sound/pcm/sound.h#2 integrate .. //depot/projects/arm/src/sys/dev/sound/sbus/cs4231.c#2 integrate .. //depot/projects/arm/src/sys/dev/sound/usb/uaudio_pcm.c#2 integrate .. //depot/projects/arm/src/sys/dev/sr/if_sr_pci.c#2 integrate .. //depot/projects/arm/src/sys/dev/stg/tmc18c30_pci.c#2 integrate .. //depot/projects/arm/src/sys/dev/sx/sx_pci.c#2 integrate .. //depot/projects/arm/src/sys/dev/sym/sym_hipd.c#2 integrate .. //depot/projects/arm/src/sys/dev/syscons/syscons.c#2 integrate .. //depot/projects/arm/src/sys/dev/syscons/sysmouse.c#2 integrate .. //depot/projects/arm/src/sys/dev/tdfx/tdfx_pci.c#2 integrate .. //depot/projects/arm/src/sys/dev/tga/tga_pci.c#2 integrate .. //depot/projects/arm/src/sys/dev/trm/trm.c#2 integrate .. //depot/projects/arm/src/sys/dev/twa/twa_freebsd.c#2 integrate .. //depot/projects/arm/src/sys/dev/twe/twe_freebsd.c#2 integrate .. //depot/projects/arm/src/sys/dev/tx/if_tx.c#2 integrate .. //depot/projects/arm/src/sys/dev/txp/if_txp.c#2 integrate .. //depot/projects/arm/src/sys/dev/ubsec/ubsec.c#2 integrate .. //depot/projects/arm/src/sys/dev/usb/ehci_pci.c#2 integrate .. //depot/projects/arm/src/sys/dev/usb/ohci_pci.c#2 integrate .. //depot/projects/arm/src/sys/dev/usb/uhci_pci.c#2 integrate .. //depot/projects/arm/src/sys/dev/usb/usb_subr.c#2 integrate .. //depot/projects/arm/src/sys/dev/usb/usbcdc.h#2 integrate .. //depot/projects/arm/src/sys/dev/usb/usbdi.c#2 integrate .. //depot/projects/arm/src/sys/dev/usb/usbdi.h#2 integrate .. //depot/projects/arm/src/sys/dev/usb/usbdi_util.c#2 integrate .. //depot/projects/arm/src/sys/dev/usb/usbdi_util.h#2 integrate .. //depot/projects/arm/src/sys/dev/utopia/idtphy.c#1 branch .. //depot/projects/arm/src/sys/dev/utopia/suni.c#1 branch .. //depot/projects/arm/src/sys/dev/utopia/utopia.c#2 integrate .. //depot/projects/arm/src/sys/dev/utopia/utopia.h#2 integrate .. //depot/projects/arm/src/sys/dev/utopia/utopia_priv.h#1 branch .. //depot/projects/arm/src/sys/dev/vge/if_vge.c#2 integrate .. //depot/projects/arm/src/sys/dev/vkbd/vkbd.c#2 integrate .. //depot/projects/arm/src/sys/dev/vx/if_vx_pci.c#2 integrate .. //depot/projects/arm/src/sys/dev/wi/if_wi_pci.c#2 integrate .. //depot/projects/arm/src/sys/dev/zs/zs_sbus.c#2 delete .. //depot/projects/arm/src/sys/fs/devfs/devfs.h#2 integrate .. //depot/projects/arm/src/sys/fs/devfs/devfs_vnops.c#2 integrate .. //depot/projects/arm/src/sys/fs/msdosfs/msdosfs_vfsops.c#2 integrate .. //depot/projects/arm/src/sys/fs/msdosfs/msdosfs_vnops.c#2 integrate .. //depot/projects/arm/src/sys/fs/nwfs/nwfs_vnops.c#2 integrate .. //depot/projects/arm/src/sys/fs/pseudofs/pseudofs_vncache.c#2 integrate .. //depot/projects/arm/src/sys/fs/smbfs/smbfs_vnops.c#2 integrate .. //depot/projects/arm/src/sys/fs/unionfs/union_vfsops.c#2 integrate .. //depot/projects/arm/src/sys/geom/concat/g_concat.c#2 integrate .. //depot/projects/arm/src/sys/geom/concat/g_concat.h#2 integrate .. //depot/projects/arm/src/sys/geom/geom_vfs.c#2 integrate .. //depot/projects/arm/src/sys/geom/label/g_label.c#2 integrate .. //depot/projects/arm/src/sys/geom/label/g_label.h#2 integrate .. //depot/projects/arm/src/sys/geom/mirror/g_mirror.c#2 integrate .. //depot/projects/arm/src/sys/geom/mirror/g_mirror.h#2 integrate .. //depot/projects/arm/src/sys/geom/raid3/g_raid3.c#2 integrate .. //depot/projects/arm/src/sys/geom/raid3/g_raid3.h#2 integrate .. //depot/projects/arm/src/sys/geom/shsec/g_shsec.c#2 integrate .. //depot/projects/arm/src/sys/geom/shsec/g_shsec.h#2 integrate .. //depot/projects/arm/src/sys/geom/stripe/g_stripe.c#2 integrate .. //depot/projects/arm/src/sys/geom/stripe/g_stripe.h#2 integrate .. //depot/projects/arm/src/sys/geom/vinum/geom_vinum_var.h#2 integrate .. //depot/projects/arm/src/sys/geom/vinum/geom_vinum_volume.c#2 integrate .. //depot/projects/arm/src/sys/gnu/ext2fs/ext2_alloc.c#2 integrate .. //depot/projects/arm/src/sys/gnu/ext2fs/ext2_linux_balloc.c#2 integrate .. //depot/projects/arm/src/sys/gnu/ext2fs/ext2_vnops.c#2 integrate .. //depot/projects/arm/src/sys/i386/acpica/madt.c#2 integrate .. //depot/projects/arm/src/sys/i386/conf/NOTES#2 integrate .. //depot/projects/arm/src/sys/i386/cpufreq/est.c#1 branch .. //depot/projects/arm/src/sys/i386/cpufreq/p4tcc.c#1 branch .. //depot/projects/arm/src/sys/i386/i386/io_apic.c#2 integrate .. //depot/projects/arm/src/sys/i386/i386/machdep.c#2 integrate .. //depot/projects/arm/src/sys/i386/i386/mp_watchdog.c#2 integrate .. //depot/projects/arm/src/sys/i386/i386/p4tcc.c#2 delete .. //depot/projects/arm/src/sys/i386/ibcs2/ibcs2_msg.c#2 integrate .. //depot/projects/arm/src/sys/i386/include/_types.h#2 integrate .. //depot/projects/arm/src/sys/i386/include/exec.h#2 integrate .. //depot/projects/arm/src/sys/i386/isa/ic/mb86960.h#2 delete .. //depot/projects/arm/src/sys/i386/isa/pcf.c#2 integrate .. //depot/projects/arm/src/sys/i386/isa/vesa.c#2 integrate .. //depot/projects/arm/src/sys/ia64/conf/NOTES#2 integrate .. //depot/projects/arm/src/sys/ia64/include/exec.h#2 integrate .. //depot/projects/arm/src/sys/isa/vga_isa.c#2 integrate .. //depot/projects/arm/src/sys/kern/imgact_shell.c#2 integrate .. //depot/projects/arm/src/sys/kern/init_sysent.c#2 integrate .. //depot/projects/arm/src/sys/kern/kern_acct.c#2 integrate .. //depot/projects/arm/src/sys/kern/kern_conf.c#2 integrate .. //depot/projects/arm/src/sys/kern/kern_cpu.c#2 integrate .. //depot/projects/arm/src/sys/kern/kern_event.c#2 integrate .. //depot/projects/arm/src/sys/kern/kern_exec.c#2 integrate .. //depot/projects/arm/src/sys/kern/kern_kse.c#2 integrate .. //depot/projects/arm/src/sys/kern/kern_mib.c#2 integrate .. //depot/projects/arm/src/sys/kern/kern_module.c#2 integrate .. //depot/projects/arm/src/sys/kern/kern_poll.c#2 integrate .. //depot/projects/arm/src/sys/kern/kern_sig.c#2 integrate .. //depot/projects/arm/src/sys/kern/sched_ule.c#2 integrate .. //depot/projects/arm/src/sys/kern/subr_bus.c#2 integrate .. //depot/projects/arm/src/sys/kern/subr_eventhandler.c#2 integrate .. //depot/projects/arm/src/sys/kern/subr_log.c#2 integrate .. //depot/projects/arm/src/sys/kern/syscalls.c#2 integrate .. //depot/projects/arm/src/sys/kern/syscalls.master#2 integrate .. //depot/projects/arm/src/sys/kern/tty_cons.c#2 integrate .. //depot/projects/arm/src/sys/kern/tty_pty.c#2 integrate .. //depot/projects/arm/src/sys/kern/tty_tty.c#2 integrate .. //depot/projects/arm/src/sys/kern/uipc_mbuf.c#2 integrate .. //depot/projects/arm/src/sys/kern/uipc_sem.c#2 integrate .. //depot/projects/arm/src/sys/kern/uipc_socket.c#2 integrate .. //depot/projects/arm/src/sys/kern/uipc_socket2.c#2 integrate .. //depot/projects/arm/src/sys/kern/uipc_syscalls.c#3 integrate .. //depot/projects/arm/src/sys/kern/uipc_usrreq.c#2 integrate .. //depot/projects/arm/src/sys/kern/vfs_default.c#2 integrate .. //depot/projects/arm/src/sys/kern/vfs_init.c#2 integrate .. //depot/projects/arm/src/sys/kern/vfs_mount.c#2 integrate .. //depot/projects/arm/src/sys/kern/vfs_subr.c#2 integrate .. //depot/projects/arm/src/sys/kern/vfs_vnops.c#2 integrate .. //depot/projects/arm/src/sys/modules/acpi/Makefile#2 integrate .. //depot/projects/arm/src/sys/modules/acpi/acpi/Makefile#2 integrate .. //depot/projects/arm/src/sys/modules/acpi/acpi_perf/Makefile#2 delete .. //depot/projects/arm/src/sys/modules/auxio/Makefile#2 integrate .. //depot/projects/arm/src/sys/modules/cpufreq/Makefile#2 integrate .. //depot/projects/arm/src/sys/modules/ndis/Makefile#2 integrate .. //depot/projects/arm/src/sys/modules/utopia/Makefile#2 integrate .. //depot/projects/arm/src/sys/net/bpf.c#2 integrate .. //depot/projects/arm/src/sys/net/bridge.c#2 integrate .. //depot/projects/arm/src/sys/net/if.c#2 integrate .. //depot/projects/arm/src/sys/net/if.h#2 integrate .. //depot/projects/arm/src/sys/net/if_clone.c#2 integrate .. //depot/projects/arm/src/sys/net/if_disc.c#2 integrate .. //depot/projects/arm/src/sys/net/if_ethersubr.c#2 integrate .. //depot/projects/arm/src/sys/net/if_faith.c#2 integrate .. //depot/projects/arm/src/sys/net/if_loop.c#2 integrate .. //depot/projects/arm/src/sys/net/if_media.h#2 integrate .. //depot/projects/arm/src/sys/net/if_stf.c#2 integrate .. //depot/projects/arm/src/sys/net/if_types.h#2 integrate .. //depot/projects/arm/src/sys/net/if_var.h#2 integrate .. //depot/projects/arm/src/sys/net/if_vlan.c#2 integrate .. //depot/projects/arm/src/sys/net/if_vlan_var.h#2 integrate .. //depot/projects/arm/src/sys/net/rtsock.c#2 integrate .. //depot/projects/arm/src/sys/net80211/ieee80211_input.c#2 integrate .. //depot/projects/arm/src/sys/netatalk/aarp.c#2 integrate .. //depot/projects/arm/src/sys/netatalk/at_control.c#2 integrate .. //depot/projects/arm/src/sys/netatalk/at_extern.h#2 integrate .. //depot/projects/arm/src/sys/netatalk/at_var.h#2 integrate .. //depot/projects/arm/src/sys/netatalk/ddp_output.c#2 integrate .. //depot/projects/arm/src/sys/netatm/atm_cm.c#2 integrate .. //depot/projects/arm/src/sys/netatm/atm_socket.c#2 integrate .. //depot/projects/arm/src/sys/netatm/atm_var.h#2 integrate .. //depot/projects/arm/src/sys/netatm/ipatm/ipatm_load.c#2 integrate .. //depot/projects/arm/src/sys/netgraph/bluetooth/socket/ng_btsocket_l2cap.c#2 integrate .. //depot/projects/arm/src/sys/netgraph/bluetooth/socket/ng_btsocket_rfcomm.c#2 integrate .. //depot/projects/arm/src/sys/netgraph/ng_ksocket.c#2 integrate .. //depot/projects/arm/src/sys/netgraph/ng_parse.c#2 integrate .. //depot/projects/arm/src/sys/netinet/if_ether.c#2 integrate .. //depot/projects/arm/src/sys/netinet/if_ether.h#2 integrate .. //depot/projects/arm/src/sys/netinet/in.h#2 integrate .. //depot/projects/arm/src/sys/netinet/in_pcb.c#2 integrate .. //depot/projects/arm/src/sys/netinet/in_proto.c#2 integrate .. //depot/projects/arm/src/sys/netinet/ip_carp.c#1 branch .. //depot/projects/arm/src/sys/netinet/ip_carp.h#1 branch .. //depot/projects/arm/src/sys/netinet/ip_dummynet.c#2 integrate .. //depot/projects/arm/src/sys/netinet/ip_fw2.c#2 integrate .. //depot/projects/arm/src/sys/netinet/ip_input.c#2 integrate .. //depot/projects/arm/src/sys/netinet/ip_mroute.c#2 integrate .. //depot/projects/arm/src/sys/netinet/ip_output.c#2 integrate .. //depot/projects/arm/src/sys/netinet/tcp_sack.c#2 integrate .. //depot/projects/arm/src/sys/netinet/tcp_subr.c#2 integrate .. //depot/projects/arm/src/sys/netinet/tcp_syncache.c#2 integrate .. //depot/projects/arm/src/sys/netinet/tcp_usrreq.c#2 integrate .. //depot/projects/arm/src/sys/netinet/udp_usrreq.c#2 integrate .. //depot/projects/arm/src/sys/netinet6/icmp6.c#2 integrate .. //depot/projects/arm/src/sys/netinet6/in6.c#2 integrate .. //depot/projects/arm/src/sys/netinet6/in6_ifattach.c#2 integrate .. //depot/projects/arm/src/sys/netinet6/in6_proto.c#2 integrate .. //depot/projects/arm/src/sys/netinet6/in6_var.h#2 integrate .. //depot/projects/arm/src/sys/netinet6/ip6_output.c#2 integrate .. //depot/projects/arm/src/sys/netinet6/ipsec.c#2 integrate .. //depot/projects/arm/src/sys/netinet6/nd6.c#2 integrate .. //depot/projects/arm/src/sys/netinet6/nd6_nbr.c#2 integrate .. //depot/projects/arm/src/sys/netipx/spx_usrreq.c#2 integrate .. //depot/projects/arm/src/sys/netncp/ncp_nls.c#2 integrate .. //depot/projects/arm/src/sys/nfs4client/nfs4_vnops.c#2 integrate .. //depot/projects/arm/src/sys/nfsclient/nfs_socket.c#2 integrate .. //depot/projects/arm/src/sys/nfsclient/nfs_vnops.c#2 integrate .. //depot/projects/arm/src/sys/opencrypto/cryptodev.c#2 integrate .. //depot/projects/arm/src/sys/pc98/conf/NOTES#2 integrate .. //depot/projects/arm/src/sys/pc98/i386/machdep.c#2 integrate .. //depot/projects/arm/src/sys/pc98/pc98/pc98gdc.c#2 integrate .. //depot/projects/arm/src/sys/pci/agp_ali.c#2 integrate .. //depot/projects/arm/src/sys/pci/agp_amd.c#2 integrate .. //depot/projects/arm/src/sys/pci/agp_amd64.c#2 integrate .. //depot/projects/arm/src/sys/pci/agp_i810.c#2 integrate .. //depot/projects/arm/src/sys/pci/agp_intel.c#2 integrate .. //depot/projects/arm/src/sys/pci/agp_nvidia.c#2 integrate .. //depot/projects/arm/src/sys/pci/agp_sis.c#2 integrate .. //depot/projects/arm/src/sys/pci/agp_via.c#2 integrate .. //depot/projects/arm/src/sys/pci/alpm.c#2 integrate .. //depot/projects/arm/src/sys/pci/amdpm.c#2 integrate .. //depot/projects/arm/src/sys/pci/if_dc.c#2 integrate .. //depot/projects/arm/src/sys/pci/if_de.c#2 integrate .. //depot/projects/arm/src/sys/pci/if_mn.c#2 integrate .. //depot/projects/arm/src/sys/pci/if_pcn.c#2 integrate .. //depot/projects/arm/src/sys/pci/if_rl.c#2 integrate .. //depot/projects/arm/src/sys/pci/if_sf.c#2 integrate .. //depot/projects/arm/src/sys/pci/if_sis.c#2 integrate .. //depot/projects/arm/src/sys/pci/if_sk.c#2 integrate .. //depot/projects/arm/src/sys/pci/if_ste.c#2 integrate .. //depot/projects/arm/src/sys/pci/if_ti.c#2 integrate .. //depot/projects/arm/src/sys/pci/if_tl.c#2 integrate .. //depot/projects/arm/src/sys/pci/if_vr.c#2 integrate .. //depot/projects/arm/src/sys/pci/if_wb.c#2 integrate .. //depot/projects/arm/src/sys/pci/if_xl.c#2 integrate .. //depot/projects/arm/src/sys/pci/intpm.c#2 integrate .. //depot/projects/arm/src/sys/pci/ncr.c#2 integrate .. //depot/projects/arm/src/sys/pci/viapm.c#2 integrate .. //depot/projects/arm/src/sys/pci/xrpu.c#2 integrate .. //depot/projects/arm/src/sys/powerpc/include/exec.h#2 integrate .. //depot/projects/arm/src/sys/powerpc/ofw/ofw_syscons.c#2 integrate .. //depot/projects/arm/src/sys/powerpc/ofw/ofw_syscons.h#2 integrate .. //depot/projects/arm/src/sys/powerpc/powerpc/machdep.c#2 integrate .. //depot/projects/arm/src/sys/powerpc/powerpc/pmap.c#2 integrate .. //depot/projects/arm/src/sys/security/mac/mac_sysv_msg.c#2 integrate .. //depot/projects/arm/src/sys/sparc64/conf/GENERIC#2 integrate .. //depot/projects/arm/src/sys/sparc64/conf/NOTES#2 integrate .. //depot/projects/arm/src/sys/sparc64/sparc64/pmap.c#2 integrate .. //depot/projects/arm/src/sys/sys/bufobj.h#2 integrate .. //depot/projects/arm/src/sys/sys/bus.h#2 integrate .. //depot/projects/arm/src/sys/sys/conf.h#2 integrate .. //depot/projects/arm/src/sys/sys/cpu.h#2 integrate .. //depot/projects/arm/src/sys/sys/event.h#2 integrate .. //depot/projects/arm/src/sys/sys/imgact.h#2 integrate .. //depot/projects/arm/src/sys/sys/mbuf.h#2 integrate .. //depot/projects/arm/src/sys/sys/mount.h#2 integrate .. //depot/projects/arm/src/sys/sys/mutex.h#2 integrate .. //depot/projects/arm/src/sys/sys/param.h#2 integrate .. //depot/projects/arm/src/sys/sys/socketvar.h#2 integrate .. //depot/projects/arm/src/sys/sys/syscall.h#2 integrate .. //depot/projects/arm/src/sys/sys/syscall.mk#2 integrate .. //depot/projects/arm/src/sys/sys/syscallsubr.h#2 integrate .. //depot/projects/arm/src/sys/sys/sysctl.h#2 integrate .. //depot/projects/arm/src/sys/sys/sysproto.h#2 integrate .. //depot/projects/arm/src/sys/sys/systm.h#2 integrate .. //depot/projects/arm/src/sys/sys/vnode.h#2 integrate .. //depot/projects/arm/src/sys/ufs/ffs/ffs_alloc.c#2 integrate .. //depot/projects/arm/src/sys/ufs/ffs/ffs_inode.c#2 integrate .. //depot/projects/arm/src/sys/ufs/ffs/ffs_snapshot.c#2 integrate .. //depot/projects/arm/src/sys/ufs/ffs/ffs_softdep.c#2 integrate .. //depot/projects/arm/src/sys/ufs/ffs/ffs_vfsops.c#2 integrate .. //depot/projects/arm/src/sys/ufs/ffs/fs.h#2 integrate .. //depot/projects/arm/src/sys/ufs/ufs/ufs_inode.c#2 integrate .. //depot/projects/arm/src/sys/ufs/ufs/ufs_vnops.c#2 integrate .. //depot/projects/arm/src/sys/vm/uma_core.c#2 integrate .. //depot/projects/arm/src/sys/vm/vnode_pager.c#2 integrate .. //depot/user/jmg/arm/src/sys/arm/conf/TS7200#7 edit Differences ... ==== //depot/projects/arm/src/sys/alpha/include/exec.h#2 (text+ko) ==== @@ -29,7 +29,12 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/alpha/include/exec.h,v 1.3 2005/01/05 20:05:50 imp Exp $ + * $FreeBSD: src/sys/alpha/include/exec.h,v 1.4 2005/02/19 21:16:48 ru Exp $ */ -#define __LDPGSZ 8192 +#ifndef _MACHINE_EXEC_H_ +#define _MACHINE_EXEC_H_ + +#define __LDPGSZ 8192 + +#endif /* !_MACHINE_EXEC_H_ */ ==== //depot/projects/arm/src/sys/amd64/acpica/madt.c#2 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/acpica/madt.c,v 1.14 2004/06/10 21:30:08 peter Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/acpica/madt.c,v 1.15 2005/02/22 21:52:51 jhb Exp $"); #include #include @@ -367,7 +367,7 @@ } /* First, we run through adding I/O APIC's. */ - if (madt->PCATCompat) + if (madt->PCATCompat && !(acpi_quirks & ACPI_Q_MADT_IRQ0)) ioapic_enable_mixed_mode(); madt_walk_table(madt_parse_apics, NULL); @@ -596,8 +596,14 @@ enum intr_polarity pol; char buf[64]; + if (acpi_quirks & ACPI_Q_MADT_IRQ0 && intr->Source == 0 && + intr->Interrupt == 2) { + if (bootverbose) + printf("MADT: Skipping timer override\n"); + return; + } if (bootverbose) - printf("MADT: intr override: source %u, irq %u\n", + printf("MADT: Interrupt override: source %u, irq %u\n", intr->Source, intr->Interrupt); KASSERT(intr->Bus == 0, ("bus for interrupt overrides must be zero")); if (madt_find_interrupt(intr->Interrupt, &new_ioapic, ==== //depot/projects/arm/src/sys/amd64/amd64/apic_vector.S#2 (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.101 2005/01/21 06:01:19 peter Exp $ + * $FreeBSD: src/sys/amd64/amd64/apic_vector.S,v 1.102 2005/02/28 23:37:35 peter Exp $ */ /* @@ -137,6 +137,23 @@ ISR_VEC(6, apic_isr6) ISR_VEC(7, apic_isr7) +/* + * Local APIC periodic timer handler. + */ + .text + SUPERALIGN_TEXT +IDTVEC(timerint) + PUSH_FRAME + + movq lapic, %rdx + movl $0, LA_EOI(%rdx) /* End Of Interrupt to APIC */ + + FAKE_MCOUNT(TF_EIP(%esp)) + + call lapic_handle_timer + MEXITCOUNT + jmp doreti + #ifdef SMP /* * Global address space TLB shootdown. ==== //depot/projects/arm/src/sys/amd64/amd64/io_apic.c#2 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/io_apic.c,v 1.12 2005/01/21 06:01:19 peter Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/io_apic.c,v 1.14 2005/02/28 23:37:35 peter Exp $"); #include "opt_atpic.h" #include "opt_isa.h" @@ -66,7 +66,7 @@ #define TODO printf("%s: not implemented!\n", __func__) -MALLOC_DEFINE(M_IOAPIC, "I/O APIC", "I/O APIC structures"); +static MALLOC_DEFINE(M_IOAPIC, "I/O APIC", "I/O APIC structures"); /* * New interrupt support code.. @@ -548,10 +548,11 @@ /* * Assume that pin 0 on the first I/O APIC is an ExtINT pin - * and that pins 1-15 are ISA interrupts. Assume that all + * if mixed mode is enabled and an ISA interrupt if not. + * Assume that pins 1-15 are ISA interrupts and that all * other pins are PCI interrupts. */ - if (intpin->io_vector == 0) + if (intpin->io_vector == 0 && mixed_mode_enabled) ioapic_set_extint(io, i); else if (intpin->io_vector < IOAPIC_ISA_INTS) { intpin->io_bus = APIC_BUS_ISA; ==== //depot/projects/arm/src/sys/amd64/amd64/local_apic.c#2 (text+ko) ==== @@ -32,13 +32,14 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/local_apic.c,v 1.11 2005/01/21 06:01:19 peter Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/local_apic.c,v 1.12 2005/02/28 23:37:35 peter Exp $"); #include #include #include #include #include +#include #include #include @@ -66,6 +67,10 @@ CTASSERT(APIC_LOCAL_INTS == 240); CTASSERT(IPI_STOP < APIC_SPURIOUS_INT); +#define LAPIC_TIMER_HZ_DIVIDER 3 +#define LAPIC_TIMER_STATHZ_DIVIDER 23 +#define LAPIC_TIMER_PROFHZ_DIVIDER 2 + /* * Support for local APICs. Local APICs manage interrupts on each * individual processor as opposed to I/O APICs which receive interrupts @@ -90,6 +95,10 @@ u_int la_cluster:4; u_int la_cluster_id:2; u_int la_present:1; + u_long *la_timer_count; + u_long la_hard_ticks; + u_long la_stat_ticks; + u_long la_prof_ticks; } static lapics[MAX_APICID]; /* XXX: should thermal be an NMI? */ @@ -115,9 +124,21 @@ IDTVEC(apic_isr7), /* 224 - 255 */ }; +static u_int32_t lapic_timer_divisors[] = { + APIC_TDCR_1, APIC_TDCR_2, APIC_TDCR_4, APIC_TDCR_8, APIC_TDCR_16, + APIC_TDCR_32, APIC_TDCR_64, APIC_TDCR_128 +}; + volatile lapic_t *lapic; +static u_long lapic_timer_divisor, lapic_timer_period, lapic_timer_hz; +static u_long *lapic_virtual_hardclock, *lapic_virtual_statclock, + *lapic_virtual_profclock; static void lapic_enable(void); +static void lapic_timer_enable_intr(void); +static void lapic_timer_oneshot(u_int count); +static void lapic_timer_periodic(u_int count); +static void lapic_timer_set_divisor(u_int divisor); static uint32_t lvt_mode(struct lapic *la, u_int pin, uint32_t value); static uint32_t @@ -180,7 +201,10 @@ /* Set BSP's per-CPU local APIC ID. */ PCPU_SET(apic_id, lapic_id()); - /* XXX: timer/error/thermal interrupts */ + /* Local APIC timer interrupt. */ + setidt(APIC_TIMER_INT, IDTVEC(timerint), SDT_SYSIGT, SEL_KPL, 0); + + /* XXX: error/thermal interrupts */ } /* @@ -251,6 +275,7 @@ struct lapic *la; u_int32_t value, maxlvt; register_t eflags; + char buf[MAXCOMLEN + 1]; la = &lapics[lapic_id()]; KASSERT(la->la_present, ("missing APIC structure")); @@ -280,11 +305,84 @@ lapic->lvt_lint0 = lvt_mode(la, LVT_LINT0, lapic->lvt_lint0); lapic->lvt_lint1 = lvt_mode(la, LVT_LINT1, lapic->lvt_lint1); - /* XXX: more LVT entries */ + /* Program timer LVT and setup handler. */ + lapic->lvt_timer = lvt_mode(la, LVT_TIMER, lapic->lvt_timer); + snprintf(buf, sizeof(buf), "lapic%d: timer", lapic_id()); + intrcnt_add(buf, &la->la_timer_count); + if (PCPU_GET(cpuid) != 0) { + KASSERT(lapic_timer_period != 0, ("lapic%u: zero divisor", + lapic_id())); + lapic_timer_set_divisor(lapic_timer_divisor); + lapic_timer_periodic(lapic_timer_period); + lapic_timer_enable_intr(); + } + + /* XXX: Performance counter, error, and thermal LVTs */ intr_restore(eflags); } +/* + * Called by cpu_initclocks() on the BSP to setup the local APIC timer so + * that it can drive hardclock, statclock, and profclock. This function + * returns true if it is able to use the local APIC timer to drive the + * clocks and false if it is not able. + */ +int +lapic_setup_clock(void) +{ + u_long value; + + /* Can't drive the timer without a local APIC. */ + if (lapic == NULL) + return (0); + + /* If we've only got one CPU, then use the RTC and ISA timer instead. */ + if (mp_ncpus == 1) + return (0); + + /* Start off with a divisor of 2 (power on reset default). */ + lapic_timer_divisor = 2; + + /* Try to calibrate the local APIC timer. */ + do { + lapic_timer_set_divisor(lapic_timer_divisor); + lapic_timer_oneshot(APIC_TIMER_MAX_COUNT); + DELAY(2000000); + value = APIC_TIMER_MAX_COUNT - lapic->ccr_timer; + if (value != APIC_TIMER_MAX_COUNT) + break; + lapic_timer_divisor <<= 1; + } while (lapic_timer_divisor <= 128); + if (lapic_timer_divisor > 128) + panic("lapic: Divisor too big"); + value /= 2; + if (bootverbose) + printf("lapic: Divisor %lu, Frequency %lu hz\n", + lapic_timer_divisor, value); + + /* + * We will drive the timer at a small multiple of hz and drive + * both of the other timers with similarly small but relatively + * prime divisors. + */ + lapic_timer_hz = hz * LAPIC_TIMER_HZ_DIVIDER; + stathz = lapic_timer_hz / LAPIC_TIMER_STATHZ_DIVIDER; + profhz = lapic_timer_hz / LAPIC_TIMER_PROFHZ_DIVIDER; + lapic_timer_period = value / lapic_timer_hz; + intrcnt_add("lapic: hardclock", &lapic_virtual_hardclock); + intrcnt_add("lapic: statclock", &lapic_virtual_statclock); + intrcnt_add("lapic: profclock", &lapic_virtual_profclock); + + /* + * Start up the timer on the BSP. The APs will kick off their + * timer during lapic_setup(). + */ + lapic_timer_periodic(lapic_timer_period); + lapic_timer_enable_intr(); + return (1); +} + void lapic_disable(void) { @@ -516,6 +614,91 @@ intr_execute_handlers(isrc, &frame); } +void +lapic_handle_timer(struct clockframe frame) +{ + struct lapic *la; + + la = &lapics[PCPU_GET(apic_id)]; + (*la->la_timer_count)++; + critical_enter(); + + /* Fire hardclock at hz. */ + la->la_hard_ticks += hz; + if (la->la_hard_ticks >= lapic_timer_hz) { + la->la_hard_ticks -= lapic_timer_hz; + if (PCPU_GET(cpuid) == 0) { + (*lapic_virtual_hardclock)++; + hardclock(&frame); + } else + hardclock_process(&frame); + } + + /* Fire statclock at stathz. */ + la->la_stat_ticks += stathz; + if (la->la_stat_ticks >= lapic_timer_hz) { + la->la_stat_ticks -= lapic_timer_hz; + if (PCPU_GET(cpuid) == 0) + (*lapic_virtual_statclock)++; + statclock(&frame); + } + + /* Fire profclock at profhz, but only when needed. */ + la->la_prof_ticks += profhz; + if (la->la_prof_ticks >= lapic_timer_hz) { + la->la_prof_ticks -= lapic_timer_hz; + if (PCPU_GET(cpuid) == 0) + (*lapic_virtual_profclock)++; + if (profprocs != 0) + profclock(&frame); + } + critical_exit(); +} + +static void +lapic_timer_set_divisor(u_int divisor) +{ + + KASSERT(powerof2(divisor), ("lapic: invalid divisor %u", divisor)); + KASSERT(ffs(divisor) <= sizeof(lapic_timer_divisors) / + sizeof(u_int32_t), ("lapic: invalid divisor %u", divisor)); + lapic->dcr_timer = lapic_timer_divisors[ffs(divisor) - 1]; +} + +static void +lapic_timer_oneshot(u_int count) +{ + u_int32_t value; + + value = lapic->lvt_timer; + value &= ~APIC_LVTT_TM; + value |= APIC_LVTT_TM_ONE_SHOT; + lapic->lvt_timer = value; + lapic->icr_timer = count; +} + +static void +lapic_timer_periodic(u_int count) +{ + u_int32_t value; + + value = lapic->lvt_timer; + value &= ~APIC_LVTT_TM; + value |= APIC_LVTT_TM_PERIODIC; + lapic->lvt_timer = value; + lapic->icr_timer = count; +} + +static void +lapic_timer_enable_intr(void) +{ + u_int32_t value; + + value = lapic->lvt_timer; + value &= ~APIC_LVT_M; + lapic->lvt_timer = value; +} + /* Translate between IDT vectors and IRQ vectors. */ u_int apic_irq_to_idt(u_int irq) ==== //depot/projects/arm/src/sys/amd64/amd64/machdep.c#2 (text+ko) ==== @@ -39,7 +39,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.629 2005/02/06 01:55:06 njl Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.630 2005/03/01 04:18:32 obrien Exp $"); #include "opt_atalk.h" #include "opt_atpic.h" @@ -156,6 +156,7 @@ int cold = 1; long Maxmem = 0; +long realmem = 0; vm_paddr_t phys_avail[20]; @@ -188,6 +189,7 @@ #endif printf("real memory = %ju (%ju MB)\n", ptoa((uintmax_t)Maxmem), ptoa((uintmax_t)Maxmem) / 1048576); + realmem = Maxmem; /* * Display any holes after the first chunk of extended memory. */ ==== //depot/projects/arm/src/sys/amd64/amd64/mp_machdep.c#2 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/mp_machdep.c,v 1.249 2005/01/21 06:01:19 peter Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/mp_machdep.c,v 1.250 2005/02/28 23:37:35 peter Exp $"); #include "opt_cpu.h" #include "opt_kstack_pages.h" @@ -872,82 +872,15 @@ } -/* - * For statclock, we send an IPI to all CPU's to have them call this - * function. - */ - void -forward_statclock(void) -{ - int map; - - CTR0(KTR_SMP, "forward_statclock"); - - if (!smp_started || cold || panicstr) - return; - - map = PCPU_GET(other_cpus) & ~(stopped_cpus|hlt_cpus_mask); - if (map != 0) - ipi_selected(map, IPI_STATCLOCK); -} - -/* - * For each hardclock(), we send an IPI to all other CPU's to have them - * execute this function. It would be nice to reduce contention on - * sched_lock if we could simply peek at the CPU to determine the user/kernel - * state and call hardclock_process() on the CPU receiving the clock interrupt - * and then just use a simple IPI to handle any ast's if needed. - */ - -void -forward_hardclock(void) -{ - u_int map; - - CTR0(KTR_SMP, "forward_hardclock"); - - if (!smp_started || cold || panicstr) - return; - - map = PCPU_GET(other_cpus) & ~(stopped_cpus|hlt_cpus_mask); - if (map != 0) - ipi_selected(map, IPI_HARDCLOCK); -} - -void ipi_bitmap_handler(struct clockframe frame) { int cpu = PCPU_GET(cpuid); u_int ipi_bitmap; - struct thread *td; ipi_bitmap = atomic_readandclear_int(&cpu_ipi_pending[cpu]); - critical_enter(); - /* Nothing to do for AST */ - - if (ipi_bitmap & (1 << IPI_HARDCLOCK)) { - td = curthread; - td->td_intr_nesting_level++; - hardclock_process(&frame); - td->td_intr_nesting_level--; - } - - if (ipi_bitmap & (1 << IPI_STATCLOCK)) { - CTR0(KTR_SMP, "forwarded_statclock"); - - td = curthread; - td->td_intr_nesting_level++; - if (profprocs != 0) - profclock(&frame); - if (pscnt == psdiv) - statclock(&frame); - td->td_intr_nesting_level--; - } - - critical_exit(); } /* ==== //depot/projects/arm/src/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.2 2004/08/15 20:32:40 rwatson Exp $ + * $FreeBSD: src/sys/amd64/amd64/mp_watchdog.c,v 1.4 2005/02/28 08:55:53 pjd Exp $ */ #include "opt_mp_watchdog.h" @@ -49,11 +49,11 @@ #include /* - * mp_swatchdog hijacks the idle thread on a specified CPU, prevents new work + * mp_watchdog hijacks the idle thread on a specified CPU, prevents new work * from being scheduled there, and uses it as a "watchdog" to detect kernel * failure on other CPUs. This is made reasonable by inclusion of logical * processors in Xeon hardware. The watchdog is configured by setting the - * debug.watchdog_cpu sysctl to the CPU of interest. A callout will then + * debug.watchdog sysctl/tunable to the CPU of interest. A callout will then * begin executing reseting a timer that is gradually lowered by the watching * thread. If the timer reaches 0, the watchdog fires by ether dropping * directly to the debugger, or by sending an NMI IPI to the boot processor. @@ -68,11 +68,14 @@ static int watchdog_timer = -1; static int watchdog_nmi = 1; +TUNABLE_INT("debug.watchdog", &watchdog_cpu); SYSCTL_INT(_debug, OID_AUTO, watchdog_nmi, CTLFLAG_RW, &watchdog_nmi, 0, "IPI the boot processor with an NMI to enter the debugger"); static struct callout watchdog_callout; +static void watchdog_change(int wdcpu); + /* * Number of seconds before the watchdog will fire if the callout fails to * reset the timer. @@ -84,6 +87,8 @@ { callout_init(&watchdog_callout, CALLOUT_MPSAFE); + if (watchdog_cpu != -1) + watchdog_change(watchdog_cpu); } /* @@ -108,6 +113,27 @@ } SYSINIT(watchdog_init, SI_SUB_DRIVERS, SI_ORDER_ANY, watchdog_init, NULL); +static void +watchdog_change(int wdcpu) +{ + + if (wdcpu == -1 || wdcpu == 0xffffffff) { + /* + * Disable the watchdog. + */ >>> TRUNCATED FOR MAIL (1000 lines) <<<