freebsd-nq/sys/amd64/amd64
John Baldwin c7362ff7fb Change the x86 code to allocate IDT vectors on-demand when an interrupt
source is first enabled similar to how intr_event's now allocate ithreads
on-demand.  Previously, we would map IDT vectors 1:1 to IRQs.  Since we
only have 191 available IDT vectors for I/O interrupts, this limited us
to only supporting IRQs 0-190 corresponding to the first 190 I/O APIC
intpins.  On many machines, however, each PCI-X bus has its own APIC even
though it only has 1 or 2 devices, thus, we were reserving between 24 and
32 IRQs just for 1 or 2 devices and thus 24 or 32 IDT vectors.  With this
change, a machine with 100 IRQs but only 5 in use will only use up 5 IDT
vectors.  Also, this change provides an API (apic_alloc_vector() and
apic_free_vector()) that will allow a future MSI interrupt source driver to
request IDT vectors for use by MSI interrupts on x86 machines.

Tested on:	amd64, i386
2005-11-02 20:11:47 +00:00
..
amd64_mem.c Move the definition of M_MEMDESC to a non-optional file. This allows 2004-08-07 06:21:37 +00:00
apic_vector.S Use xchg in Xcpustop to close a race and make cpustop_restartfunc truly 2005-10-24 20:52:26 +00:00
atomic.c
autoconf.c Create nexus in configure_first() instead of in configure(). This 2005-05-29 23:44:22 +00:00
bios.c Make the facility for recognizing BIOS-signatures more general 2005-07-21 09:48:37 +00:00
busdma_machdep.c MFCi386: Prevent integer underflow that could result in all memory being 2005-03-12 07:05:59 +00:00
cpu_switch.S Micro optimization for context switch. Eliminate code for saving gs.base 2005-10-17 23:10:31 +00:00
db_disasm.c Checkpoint today's tidy-up of the WIP disassembler. It now agrees with 2005-03-30 22:57:41 +00:00
db_interface.c Begin all license/copyright comments with /*- 2005-01-05 20:17:21 +00:00
db_trace.c Move the prototypes of db_md_set_watchpoint(), db_md_clr_watchpoint() 2005-09-10 03:01:25 +00:00
dump_machdep.c Fix a buglet that was present in the ia64 code and that got inherited 2005-07-02 19:57:31 +00:00
elf_machdep.c Add a bare minimum (but wrong) R_X86_64_JMP_SLOT relocation type for 2005-09-27 18:18:23 +00:00
exception.S - Special-case NMI handling on the AMD64. 2005-08-27 16:03:40 +00:00
fpu.c Remove diffs to i386 version that came in via the compiler support ifdefs. 2005-03-11 22:16:09 +00:00
gdb_machdep.c Kill pcb_rflags. It served no purpose. 2005-09-27 21:10:10 +00:00
genassym.c Kill pcb_rflags. It served no purpose. 2005-09-27 21:10:10 +00:00
identcpu.c Redo physical/logical CPU count. 2005-10-17 23:23:20 +00:00
in_cksum.c Begin all license/copyright comments with /*- 2005-01-05 20:17:21 +00:00
initcpu.c - Print number of physical/logical cores and more CPUID info. 2005-10-14 22:52:01 +00:00
intr_machdep.c Reorganize the interrupt handling code a bit to make a few things cleaner 2005-10-25 19:48:48 +00:00
io_apic.c Change the x86 code to allocate IDT vectors on-demand when an interrupt 2005-11-02 20:11:47 +00:00
io.c Break out the MI part of the /dev/[k]mem and /dev/io drivers into 2004-08-01 11:40:54 +00:00
legacy.c MFi386 rev 1.61: Fix a few bugs in the legacy cpu attachment ivars. 2005-02-15 07:26:28 +00:00
local_apic.c Change the x86 code to allocate IDT vectors on-demand when an interrupt 2005-11-02 20:11:47 +00:00
locore.S
machdep.c Change PHYSMAP_SIZE to allow for more memory segments. The old value was 2005-10-26 22:16:52 +00:00
mem.c Move the definition of M_MEMDESC to a non-optional file. This allows 2004-08-07 06:21:37 +00:00
mp_machdep.c Rename the KDB_STOP_NMI kernel option to STOP_NMI and make it apply to all 2005-10-24 21:04:19 +00:00
mp_watchdog.c Typo. 2005-02-28 08:55:53 +00:00
mpboot.S Initial PG_NX support (no-execute page bit) 2004-06-08 01:02:52 +00:00
mptable_pci.c MFi386: pci attribute allocation fixes. 2005-09-18 01:42:43 +00:00
mptable.c Normalize a significant number of kernel malloc type names: 2005-10-31 15:41:29 +00:00
nexus.c __RMAN_RESOURCE_VISIBLE is not actually needed. 2005-09-25 20:03:41 +00:00
pmap.c Instead of a panic()ing in pmap_insert_entry() if get_pv_entry() 2005-10-31 21:25:33 +00:00
prof_machdep.c - Move timerreg.h to <arch>/include and split i8253 specific defines into 2005-05-14 09:10:02 +00:00
sigtramp.S
support.S Fix a minor nit that has been bugging me for a while. Fix the obvious 2005-09-27 18:32:46 +00:00
sys_machdep.c Validate if the value written into {FS,GS}.base is a canonical 2005-07-10 23:31:11 +00:00
trap.c Rename the KDB_STOP_NMI kernel option to STOP_NMI and make it apply to all 2005-10-24 21:04:19 +00:00
tsc.c Initial landing of SMP support for FreeBSD/amd64. 2003-11-17 08:58:16 +00:00
uio_machdep.c Begin all license/copyright comments with /*- 2005-01-05 20:17:21 +00:00
uma_machdep.c MFia64 2003-10-14 05:51:31 +00:00
vm_machdep.c When restarting the BSP during cpu_reset() use a membar to ensure that 2005-10-24 20:53:52 +00:00