Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
linux
Commits
cebb469b
Commit
cebb469b
authored
Feb 17, 2009
by
Ingo Molnar
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'x86/apic' into perfcounters/core
parents
0b6de009
9be1b56a
Changes
9
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
148 additions
and
152 deletions
+148
-152
arch/x86/kernel/Makefile
arch/x86/kernel/Makefile
+2
-6
arch/x86/kernel/apic/Makefile
arch/x86/kernel/apic/Makefile
+6
-2
arch/x86/kernel/apic/bigsmp_32.c
arch/x86/kernel/apic/bigsmp_32.c
+0
-0
arch/x86/kernel/apic/es7000_32.c
arch/x86/kernel/apic/es7000_32.c
+0
-0
arch/x86/kernel/apic/numaq_32.c
arch/x86/kernel/apic/numaq_32.c
+0
-0
arch/x86/kernel/apic/probe_32.c
arch/x86/kernel/apic/probe_32.c
+16
-144
arch/x86/kernel/apic/probe_64.c
arch/x86/kernel/apic/probe_64.c
+0
-0
arch/x86/kernel/apic/summit_32.c
arch/x86/kernel/apic/summit_32.c
+0
-0
arch/x86/kernel/setup.c
arch/x86/kernel/setup.c
+124
-0
No files found.
arch/x86/kernel/Makefile
View file @
cebb469b
...
@@ -30,7 +30,7 @@ obj-y += traps.o irq.o irq_$(BITS).o dumpstack_$(BITS).o
...
@@ -30,7 +30,7 @@ obj-y += traps.o irq.o irq_$(BITS).o dumpstack_$(BITS).o
obj-y
+=
time_
$(BITS)
.o ioport.o ldt.o dumpstack.o
obj-y
+=
time_
$(BITS)
.o ioport.o ldt.o dumpstack.o
obj-y
+=
setup.o i8259.o irqinit_
$(BITS)
.o
obj-y
+=
setup.o i8259.o irqinit_
$(BITS)
.o
obj-$(CONFIG_X86_VISWS)
+=
visws_quirks.o
obj-$(CONFIG_X86_VISWS)
+=
visws_quirks.o
obj-$(CONFIG_X86_32)
+=
probe_
32.o probe_
roms_32.o
obj-$(CONFIG_X86_32)
+=
probe_roms_32.o
obj-$(CONFIG_X86_32)
+=
sys_i386_32.o i386_ksyms_32.o
obj-$(CONFIG_X86_32)
+=
sys_i386_32.o i386_ksyms_32.o
obj-$(CONFIG_X86_64)
+=
sys_x86_64.o x8664_ksyms_64.o
obj-$(CONFIG_X86_64)
+=
sys_x86_64.o x8664_ksyms_64.o
obj-$(CONFIG_X86_64)
+=
syscall_64.o vsyscall_64.o
obj-$(CONFIG_X86_64)
+=
syscall_64.o vsyscall_64.o
...
@@ -63,17 +63,13 @@ obj-$(CONFIG_SMP) += setup_percpu.o
...
@@ -63,17 +63,13 @@ obj-$(CONFIG_SMP) += setup_percpu.o
obj-$(CONFIG_X86_64_SMP)
+=
tsc_sync.o
obj-$(CONFIG_X86_64_SMP)
+=
tsc_sync.o
obj-$(CONFIG_X86_TRAMPOLINE)
+=
trampoline_
$(BITS)
.o
obj-$(CONFIG_X86_TRAMPOLINE)
+=
trampoline_
$(BITS)
.o
obj-$(CONFIG_X86_MPPARSE)
+=
mpparse.o
obj-$(CONFIG_X86_MPPARSE)
+=
mpparse.o
obj-
$(CONFIG_X86_LOCAL_APIC)
+=
apic/
obj-
y
+=
apic/
obj-$(CONFIG_X86_REBOOTFIXUPS)
+=
reboot_fixups_32.o
obj-$(CONFIG_X86_REBOOTFIXUPS)
+=
reboot_fixups_32.o
obj-$(CONFIG_DYNAMIC_FTRACE)
+=
ftrace.o
obj-$(CONFIG_DYNAMIC_FTRACE)
+=
ftrace.o
obj-$(CONFIG_FUNCTION_GRAPH_TRACER)
+=
ftrace.o
obj-$(CONFIG_FUNCTION_GRAPH_TRACER)
+=
ftrace.o
obj-$(CONFIG_KEXEC)
+=
machine_kexec_
$(BITS)
.o
obj-$(CONFIG_KEXEC)
+=
machine_kexec_
$(BITS)
.o
obj-$(CONFIG_KEXEC)
+=
relocate_kernel_
$(BITS)
.o crash.o
obj-$(CONFIG_KEXEC)
+=
relocate_kernel_
$(BITS)
.o crash.o
obj-$(CONFIG_CRASH_DUMP)
+=
crash_dump_
$(BITS)
.o
obj-$(CONFIG_CRASH_DUMP)
+=
crash_dump_
$(BITS)
.o
obj-$(CONFIG_X86_BIGSMP)
+=
bigsmp_32.o
obj-$(CONFIG_X86_NUMAQ)
+=
numaq_32.o
obj-$(CONFIG_X86_ES7000)
+=
es7000_32.o
obj-$(CONFIG_X86_SUMMIT)
+=
summit_32.o
obj-y
+=
vsmp_64.o
obj-y
+=
vsmp_64.o
obj-$(CONFIG_KPROBES)
+=
kprobes.o
obj-$(CONFIG_KPROBES)
+=
kprobes.o
obj-$(CONFIG_MODULES)
+=
module_
$(BITS)
.o
obj-$(CONFIG_MODULES)
+=
module_
$(BITS)
.o
...
...
arch/x86/kernel/apic/Makefile
View file @
cebb469b
...
@@ -2,14 +2,18 @@
...
@@ -2,14 +2,18 @@
# Makefile for local APIC drivers and for the IO-APIC code
# Makefile for local APIC drivers and for the IO-APIC code
#
#
obj-
y
:=
apic
.o ipi.o nmi.o
obj-
$(CONFIG_X86_LOCAL_APIC)
+=
apic.o probe_
$(BITS)
.o ipi.o nmi.o
obj-$(CONFIG_X86_IO_APIC)
+=
io_apic.o
obj-$(CONFIG_X86_IO_APIC)
+=
io_apic.o
obj-$(CONFIG_SMP)
+=
ipi.o
obj-$(CONFIG_SMP)
+=
ipi.o
ifeq
($(CONFIG_X86_64),y)
ifeq
($(CONFIG_X86_64),y)
obj-y
+=
apic_
64.o apic_
flat_64.o
obj-y
+=
apic_flat_64.o
obj-$(CONFIG_X86_X2APIC)
+=
x2apic_cluster.o
obj-$(CONFIG_X86_X2APIC)
+=
x2apic_cluster.o
obj-$(CONFIG_X86_X2APIC)
+=
x2apic_phys.o
obj-$(CONFIG_X86_X2APIC)
+=
x2apic_phys.o
obj-$(CONFIG_X86_UV)
+=
x2apic_uv_x.o
obj-$(CONFIG_X86_UV)
+=
x2apic_uv_x.o
endif
endif
obj-$(CONFIG_X86_BIGSMP)
+=
bigsmp_32.o
obj-$(CONFIG_X86_NUMAQ)
+=
numaq_32.o
obj-$(CONFIG_X86_ES7000)
+=
es7000_32.o
obj-$(CONFIG_X86_SUMMIT)
+=
summit_32.o
arch/x86/kernel/bigsmp_32.c
→
arch/x86/kernel/
apic/
bigsmp_32.c
View file @
cebb469b
File moved
arch/x86/kernel/es7000_32.c
→
arch/x86/kernel/
apic/
es7000_32.c
View file @
cebb469b
File moved
arch/x86/kernel/numaq_32.c
→
arch/x86/kernel/
apic/
numaq_32.c
View file @
cebb469b
File moved
arch/x86/kernel/probe_32.c
→
arch/x86/kernel/
apic/
probe_32.c
View file @
cebb469b
...
@@ -47,7 +47,22 @@
...
@@ -47,7 +47,22 @@
int
no_broadcast
=
DEFAULT_SEND_IPI
;
int
no_broadcast
=
DEFAULT_SEND_IPI
;
#ifdef CONFIG_X86_LOCAL_APIC
static
__init
int
no_ipi_broadcast
(
char
*
str
)
{
get_option
(
&
str
,
&
no_broadcast
);
pr_info
(
"Using %s mode
\n
"
,
no_broadcast
?
"No IPI Broadcast"
:
"IPI Broadcast"
);
return
1
;
}
__setup
(
"no_ipi_broadcast="
,
no_ipi_broadcast
);
static
int
__init
print_ipi_mode
(
void
)
{
pr_info
(
"Using IPI %s mode
\n
"
,
no_broadcast
?
"No-Shortcut"
:
"Shortcut"
);
return
0
;
}
late_initcall
(
print_ipi_mode
);
void
default_setup_apic_routing
(
void
)
void
default_setup_apic_routing
(
void
)
{
{
...
@@ -279,146 +294,3 @@ int __init default_acpi_madt_oem_check(char *oem_id, char *oem_table_id)
...
@@ -279,146 +294,3 @@ int __init default_acpi_madt_oem_check(char *oem_id, char *oem_table_id)
}
}
return
0
;
return
0
;
}
}
#endif
/* CONFIG_X86_LOCAL_APIC */
/**
* pre_intr_init_hook - initialisation prior to setting up interrupt vectors
*
* Description:
* Perform any necessary interrupt initialisation prior to setting up
* the "ordinary" interrupt call gates. For legacy reasons, the ISA
* interrupts should be initialised here if the machine emulates a PC
* in any way.
**/
void
__init
pre_intr_init_hook
(
void
)
{
if
(
x86_quirks
->
arch_pre_intr_init
)
{
if
(
x86_quirks
->
arch_pre_intr_init
())
return
;
}
init_ISA_irqs
();
}
/**
* intr_init_hook - post gate setup interrupt initialisation
*
* Description:
* Fill in any interrupts that may have been left out by the general
* init_IRQ() routine. interrupts having to do with the machine rather
* than the devices on the I/O bus (like APIC interrupts in intel MP
* systems) are started here.
**/
void
__init
intr_init_hook
(
void
)
{
if
(
x86_quirks
->
arch_intr_init
)
{
if
(
x86_quirks
->
arch_intr_init
())
return
;
}
}
/**
* pre_setup_arch_hook - hook called prior to any setup_arch() execution
*
* Description:
* generally used to activate any machine specific identification
* routines that may be needed before setup_arch() runs. On Voyager
* this is used to get the board revision and type.
**/
void
__init
pre_setup_arch_hook
(
void
)
{
}
/**
* trap_init_hook - initialise system specific traps
*
* Description:
* Called as the final act of trap_init(). Used in VISWS to initialise
* the various board specific APIC traps.
**/
void
__init
trap_init_hook
(
void
)
{
if
(
x86_quirks
->
arch_trap_init
)
{
if
(
x86_quirks
->
arch_trap_init
())
return
;
}
}
static
struct
irqaction
irq0
=
{
.
handler
=
timer_interrupt
,
.
flags
=
IRQF_DISABLED
|
IRQF_NOBALANCING
|
IRQF_IRQPOLL
,
.
mask
=
CPU_MASK_NONE
,
.
name
=
"timer"
};
/**
* pre_time_init_hook - do any specific initialisations before.
*
**/
void
__init
pre_time_init_hook
(
void
)
{
if
(
x86_quirks
->
arch_pre_time_init
)
x86_quirks
->
arch_pre_time_init
();
}
/**
* time_init_hook - do any specific initialisations for the system timer.
*
* Description:
* Must plug the system timer interrupt source at HZ into the IRQ listed
* in irq_vectors.h:TIMER_IRQ
**/
void
__init
time_init_hook
(
void
)
{
if
(
x86_quirks
->
arch_time_init
)
{
/*
* A nonzero return code does not mean failure, it means
* that the architecture quirk does not want any
* generic (timer) setup to be performed after this:
*/
if
(
x86_quirks
->
arch_time_init
())
return
;
}
irq0
.
mask
=
cpumask_of_cpu
(
0
);
setup_irq
(
0
,
&
irq0
);
}
#ifdef CONFIG_MCA
/**
* mca_nmi_hook - hook into MCA specific NMI chain
*
* Description:
* The MCA (Microchannel Architecture) has an NMI chain for NMI sources
* along the MCA bus. Use this to hook into that chain if you will need
* it.
**/
void
mca_nmi_hook
(
void
)
{
/*
* If I recall correctly, there's a whole bunch of other things that
* we can do to check for NMI problems, but that's all I know about
* at the moment.
*/
pr_warning
(
"NMI generated from unknown source!
\n
"
);
}
#endif
static
__init
int
no_ipi_broadcast
(
char
*
str
)
{
get_option
(
&
str
,
&
no_broadcast
);
pr_info
(
"Using %s mode
\n
"
,
no_broadcast
?
"No IPI Broadcast"
:
"IPI Broadcast"
);
return
1
;
}
__setup
(
"no_ipi_broadcast="
,
no_ipi_broadcast
);
static
int
__init
print_ipi_mode
(
void
)
{
pr_info
(
"Using IPI %s mode
\n
"
,
no_broadcast
?
"No-Shortcut"
:
"Shortcut"
);
return
0
;
}
late_initcall
(
print_ipi_mode
);
arch/x86/kernel/apic/
apic
_64.c
→
arch/x86/kernel/apic/
probe
_64.c
View file @
cebb469b
File moved
arch/x86/kernel/summit_32.c
→
arch/x86/kernel/
apic/
summit_32.c
View file @
cebb469b
File moved
arch/x86/kernel/setup.c
View file @
cebb469b
...
@@ -985,4 +985,128 @@ void __init setup_arch(char **cmdline_p)
...
@@ -985,4 +985,128 @@ void __init setup_arch(char **cmdline_p)
#endif
#endif
}
}
#ifdef CONFIG_X86_32
/**
* pre_intr_init_hook - initialisation prior to setting up interrupt vectors
*
* Description:
* Perform any necessary interrupt initialisation prior to setting up
* the "ordinary" interrupt call gates. For legacy reasons, the ISA
* interrupts should be initialised here if the machine emulates a PC
* in any way.
**/
void
__init
pre_intr_init_hook
(
void
)
{
if
(
x86_quirks
->
arch_pre_intr_init
)
{
if
(
x86_quirks
->
arch_pre_intr_init
())
return
;
}
init_ISA_irqs
();
}
/**
* intr_init_hook - post gate setup interrupt initialisation
*
* Description:
* Fill in any interrupts that may have been left out by the general
* init_IRQ() routine. interrupts having to do with the machine rather
* than the devices on the I/O bus (like APIC interrupts in intel MP
* systems) are started here.
**/
void
__init
intr_init_hook
(
void
)
{
if
(
x86_quirks
->
arch_intr_init
)
{
if
(
x86_quirks
->
arch_intr_init
())
return
;
}
}
/**
* pre_setup_arch_hook - hook called prior to any setup_arch() execution
*
* Description:
* generally used to activate any machine specific identification
* routines that may be needed before setup_arch() runs. On Voyager
* this is used to get the board revision and type.
**/
void
__init
pre_setup_arch_hook
(
void
)
{
}
/**
* trap_init_hook - initialise system specific traps
*
* Description:
* Called as the final act of trap_init(). Used in VISWS to initialise
* the various board specific APIC traps.
**/
void
__init
trap_init_hook
(
void
)
{
if
(
x86_quirks
->
arch_trap_init
)
{
if
(
x86_quirks
->
arch_trap_init
())
return
;
}
}
static
struct
irqaction
irq0
=
{
.
handler
=
timer_interrupt
,
.
flags
=
IRQF_DISABLED
|
IRQF_NOBALANCING
|
IRQF_IRQPOLL
,
.
mask
=
CPU_MASK_NONE
,
.
name
=
"timer"
};
/**
* pre_time_init_hook - do any specific initialisations before.
*
**/
void
__init
pre_time_init_hook
(
void
)
{
if
(
x86_quirks
->
arch_pre_time_init
)
x86_quirks
->
arch_pre_time_init
();
}
/**
* time_init_hook - do any specific initialisations for the system timer.
*
* Description:
* Must plug the system timer interrupt source at HZ into the IRQ listed
* in irq_vectors.h:TIMER_IRQ
**/
void
__init
time_init_hook
(
void
)
{
if
(
x86_quirks
->
arch_time_init
)
{
/*
* A nonzero return code does not mean failure, it means
* that the architecture quirk does not want any
* generic (timer) setup to be performed after this:
*/
if
(
x86_quirks
->
arch_time_init
())
return
;
}
irq0
.
mask
=
cpumask_of_cpu
(
0
);
setup_irq
(
0
,
&
irq0
);
}
#ifdef CONFIG_MCA
/**
* mca_nmi_hook - hook into MCA specific NMI chain
*
* Description:
* The MCA (Microchannel Architecture) has an NMI chain for NMI sources
* along the MCA bus. Use this to hook into that chain if you will need
* it.
**/
void
mca_nmi_hook
(
void
)
{
/*
* If I recall correctly, there's a whole bunch of other things that
* we can do to check for NMI problems, but that's all I know about
* at the moment.
*/
pr_warning
(
"NMI generated from unknown source!
\n
"
);
}
#endif
/* CONFIG_MCA */
#endif
/* CONFIG_X86_32 */
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment