215e258fd1
o Setting td_intr_frame to the XIVs trap frame because it's referenced by the ET event handler. o Signal EOI to the CPU before calling the registered XIV handlers. This prevents lost ITC interrupts, which cause starvation in one-shot mode. o Adding support for IPI_HARDCLOCK with corresponding per-CPU counters. o Have the APs call cpu_initclocks() so as to limited the scattering of clock related initialization. cpu_initclocks() calls the <self>_bsp() or <self>_ap() version accordingly. o Uncomment the ET clock handling in cpu_idle(). o Update the DDB 'show pcpu' output for the new MD fields. o Entirely rewritten ia64_ih_clock(). Note that we don't create as many clock XIVs as we have CPUs, as is done on PowerPC. It doesn't scale. We can only have 240 XIVs and we can have more CPUs than that. There's a single intrcnt index for the cumulative clock ticks and we keep per CPU counts in the PCPU stats structure. o Register the ITC by hooking SI_SUB_CONFIGURE (2nd order). Open issues: o Clock interrupts can still be lost. Some tweaking is still necessary. Thanks to: mav@ for his support, feedback and explanations. ET stats while committing: eris% sysctl machdep.cpu | grep nclks machdep.cpu.0.nclks: 24007 machdep.cpu.1.nclks: 22895 machdep.cpu.2.nclks: 13523 machdep.cpu.3.nclks: 9342 machdep.cpu.4.nclks: 9103 machdep.cpu.5.nclks: 9298 machdep.cpu.6.nclks: 10039 machdep.cpu.7.nclks: 9479 eris% vmstat -i | grep clock clock 108599 50
140 lines
5.8 KiB
Plaintext
140 lines
5.8 KiB
Plaintext
# This file tells config what files go into building a kernel,
|
|
# files marked standard are always included.
|
|
#
|
|
# $FreeBSD$
|
|
#
|
|
# The long compile-with and dependency lines are required because of
|
|
# limitations in config: backslash-newline doesn't work in strings, and
|
|
# dependency lines other than the first are silently ignored.
|
|
#
|
|
#
|
|
font8x16.o optional std8x16font \
|
|
compile-with "uudecode < /usr/share/syscons/fonts/${STD8X16FONT}-8x16.fnt && file2c 'unsigned char font_16[16*256] = {' '};' < ${STD8X16FONT}-8x16 > font8x16.c && ${CC} -c ${CFLAGS} font8x16.c" \
|
|
no-implicit-rule before-depend \
|
|
clean "${STD8X16FONT}-8x16 font8x16.c"
|
|
#
|
|
atkbdmap.h optional atkbd_dflt_keymap \
|
|
compile-with "/usr/sbin/kbdcontrol -L ${ATKBD_DFLT_KEYMAP} | sed -e 's/^static keymap_t.* = /static keymap_t key_map = /' -e 's/^static accentmap_t.* = /static accentmap_t accent_map = /' > atkbdmap.h" \
|
|
no-obj no-implicit-rule before-depend \
|
|
clean "atkbdmap.h"
|
|
#
|
|
font.h optional sc_dflt_font \
|
|
compile-with "uudecode < /usr/share/syscons/fonts/${SC_DFLT_FONT}-8x16.fnt && file2c 'static u_char dflt_font_16[16*256] = {' '};' < ${SC_DFLT_FONT}-8x16 > font.h && uudecode < /usr/share/syscons/fonts/${SC_DFLT_FONT}-8x14.fnt && file2c 'static u_char dflt_font_14[14*256] = {' '};' < ${SC_DFLT_FONT}-8x14 >> font.h && uudecode < /usr/share/syscons/fonts/${SC_DFLT_FONT}-8x8.fnt && file2c 'static u_char dflt_font_8[8*256] = {' '};' < ${SC_DFLT_FONT}-8x8 >> font.h" \
|
|
no-obj no-implicit-rule before-depend \
|
|
clean "font.h ${SC_DFLT_FONT}-8x14 ${SC_DFLT_FONT}-8x16 ${SC_DFLT_FONT}-8x8"
|
|
#
|
|
ukbdmap.h optional ukbd_dflt_keymap \
|
|
compile-with "/usr/sbin/kbdcontrol -L ${UKBD_DFLT_KEYMAP} | sed -e 's/^static keymap_t.* = /static keymap_t key_map = /' -e 's/^static accentmap_t.* = /static accentmap_t accent_map = /' > ukbdmap.h" \
|
|
no-obj no-implicit-rule before-depend \
|
|
clean "ukbdmap.h"
|
|
#
|
|
compat/freebsd32/freebsd32_ioctl.c optional compat_freebsd32
|
|
compat/freebsd32/freebsd32_misc.c optional compat_freebsd32
|
|
compat/freebsd32/freebsd32_syscalls.c optional compat_freebsd32
|
|
compat/freebsd32/freebsd32_sysent.c optional compat_freebsd32
|
|
compat/ia32/ia32_sysvec.c optional compat_freebsd32
|
|
contrib/ia64/libuwx/src/uwx_bstream.c standard
|
|
contrib/ia64/libuwx/src/uwx_context.c standard
|
|
contrib/ia64/libuwx/src/uwx_env.c standard
|
|
contrib/ia64/libuwx/src/uwx_scoreboard.c standard
|
|
contrib/ia64/libuwx/src/uwx_step.c standard
|
|
contrib/ia64/libuwx/src/uwx_str.c standard
|
|
contrib/ia64/libuwx/src/uwx_swap.c standard
|
|
contrib/ia64/libuwx/src/uwx_trace.c standard
|
|
contrib/ia64/libuwx/src/uwx_uinfo.c standard
|
|
contrib/ia64/libuwx/src/uwx_utable.c standard
|
|
crypto/blowfish/bf_enc.c optional crypto | ipsec
|
|
crypto/des/des_enc.c optional crypto | ipsec | netsmb
|
|
dev/atkbdc/atkbd.c optional atkbd atkbdc
|
|
dev/atkbdc/atkbd_atkbdc.c optional atkbd atkbdc
|
|
dev/atkbdc/atkbdc.c optional atkbdc
|
|
dev/atkbdc/atkbdc_isa.c optional atkbdc isa
|
|
dev/atkbdc/atkbdc_subr.c optional atkbdc
|
|
dev/atkbdc/psm.c optional psm atkbdc
|
|
dev/fb/fb.c optional fb | vga
|
|
dev/fb/vga.c optional vga
|
|
dev/hwpmc/hwpmc_ia64.c optional hwpmc
|
|
dev/io/iodev.c optional io
|
|
dev/kbd/kbd.c optional atkbd | sc | ukbd
|
|
dev/syscons/scterm-teken.c optional sc
|
|
dev/syscons/scvgarndr.c optional sc vga
|
|
dev/syscons/scvtb.c optional sc
|
|
dev/uart/uart_cpu_ia64.c optional uart
|
|
dev/acpica/acpi_if.m standard
|
|
ia64/acpica/OsdEnvironment.c optional acpi
|
|
ia64/acpica/acpi_machdep.c optional acpi
|
|
ia64/acpica/acpi_wakeup.c optional acpi
|
|
ia64/acpica/madt.c optional acpi
|
|
ia64/disasm/disasm_decode.c standard
|
|
ia64/disasm/disasm_extract.c standard
|
|
ia64/disasm/disasm_format.c standard
|
|
ia64/ia32/ia32_misc.c optional compat_freebsd32
|
|
ia64/ia32/ia32_reg.c optional compat_freebsd32
|
|
ia64/ia32/ia32_signal.c optional compat_freebsd32
|
|
ia64/ia32/ia32_trap.c optional compat_freebsd32
|
|
ia64/ia64/autoconf.c standard
|
|
ia64/ia64/bus_machdep.c standard
|
|
ia64/ia64/busdma_machdep.c standard
|
|
ia64/ia64/clock.c standard
|
|
ia64/ia64/context.S standard
|
|
ia64/ia64/db_machdep.c optional ddb
|
|
ia64/ia64/dump_machdep.c standard
|
|
ia64/ia64/efi.c standard
|
|
ia64/ia64/elf_machdep.c standard
|
|
ia64/ia64/emulate.c standard
|
|
ia64/ia64/exception.S standard
|
|
ia64/ia64/gdb_machdep.c optional gdb
|
|
ia64/ia64/highfp.c standard
|
|
ia64/ia64/in_cksum.c optional inet | inet6
|
|
ia64/ia64/interrupt.c standard
|
|
ia64/ia64/iodev_machdep.c optional io
|
|
ia64/ia64/locore.S standard no-obj
|
|
ia64/ia64/machdep.c standard
|
|
ia64/ia64/mca.c standard
|
|
ia64/ia64/mem.c optional mem
|
|
ia64/ia64/mp_locore.S optional smp
|
|
ia64/ia64/mp_machdep.c optional smp
|
|
ia64/ia64/nexus.c standard
|
|
ia64/ia64/pal.S standard
|
|
ia64/ia64/physical.S standard
|
|
ia64/ia64/pmap.c standard
|
|
ia64/ia64/ptrace_machdep.c standard
|
|
ia64/ia64/sal.c standard
|
|
ia64/ia64/sapic.c standard
|
|
ia64/ia64/setjmp.S standard
|
|
ia64/ia64/ssc.c optional ski
|
|
ia64/ia64/sscdisk.c optional ski
|
|
ia64/ia64/stack_machdep.c optional ddb | stack
|
|
ia64/ia64/support.S standard
|
|
ia64/ia64/sys_machdep.c standard
|
|
ia64/ia64/syscall.S standard
|
|
ia64/ia64/trap.c standard
|
|
ia64/ia64/uio_machdep.c standard
|
|
ia64/ia64/uma_machdep.c standard
|
|
ia64/ia64/unaligned.c standard
|
|
ia64/ia64/unwind.c standard
|
|
ia64/ia64/vm_machdep.c standard
|
|
ia64/isa/isa.c optional isa
|
|
ia64/isa/isa_dma.c optional isa
|
|
ia64/pci/pci_cfgreg.c optional pci
|
|
isa/syscons_isa.c optional sc
|
|
isa/vga_isa.c optional vga
|
|
kern/imgact_elf32.c optional compat_freebsd32
|
|
kern/kern_clocksource.c standard
|
|
libkern/bcmp.c standard
|
|
libkern/ffsl.c standard
|
|
libkern/fls.c standard
|
|
libkern/flsl.c standard
|
|
libkern/ia64/__divdi3.S standard
|
|
libkern/ia64/__divsi3.S standard
|
|
libkern/ia64/__moddi3.S standard
|
|
libkern/ia64/__modsi3.S standard
|
|
libkern/ia64/__udivdi3.S standard
|
|
libkern/ia64/__udivsi3.S standard
|
|
libkern/ia64/__umoddi3.S standard
|
|
libkern/ia64/__umodsi3.S standard
|
|
libkern/ia64/bswap16.S standard
|
|
libkern/ia64/bswap32.S standard
|
|
libkern/memmove.c standard
|
|
libkern/memset.c standard
|