From: Glauber de Oliveira Costa <gcosta@redhat.com>
To: linux-kernel@vger.kernel.org
Cc: akpm@linux-foundation.org, tglx@linutronix.de, mingo@elte.hu,
ak@suse.de, Glauber Costa <gcosta@redhat.com>
Subject: [PATCH 76/79] [PATCH] merge native_smp_prepare_cpus
Date: Wed, 19 Mar 2008 14:26:11 -0300 [thread overview]
Message-ID: <12059479154173-git-send-email-gcosta@redhat.com> (raw)
In-Reply-To: <12059479112131-git-send-email-gcosta@redhat.com>
From: Glauber Costa <gcosta@redhat.com>
With the previous changes, code for native_smp_prepare_cpus()
in i386 and x86_64 now look very similar. merge them into
smpboot.c. Minor differences are inside ifdef
Signed-off-by: Glauber Costa <gcosta@redhat.com>
---
arch/x86/kernel/smpboot.c | 170 ++++++++++++++++++++++++++++++++++++++++++
arch/x86/kernel/smpboot_32.c | 137 ---------------------------------
arch/x86/kernel/smpboot_64.c | 141 ----------------------------------
3 files changed, 170 insertions(+), 278 deletions(-)
diff --git a/arch/x86/kernel/smpboot.c b/arch/x86/kernel/smpboot.c
index 26118b4..45119d3 100644
--- a/arch/x86/kernel/smpboot.c
+++ b/arch/x86/kernel/smpboot.c
@@ -7,6 +7,7 @@
#include <linux/err.h>
#include <linux/nmi.h>
+#include <asm/acpi.h>
#include <asm/desc.h>
#include <asm/nmi.h>
#include <asm/irq.h>
@@ -75,6 +76,8 @@ EXPORT_PER_CPU_SYMBOL(cpu_info);
static atomic_t init_deasserted;
+static int boot_cpu_logical_apicid;
+
/* ready for x86_64, no harm for x86, since it will overwrite after alloc */
unsigned char *trampoline_base = __va(SMP_TRAMPOLINE_BASE);
@@ -1002,6 +1005,173 @@ int __cpuinit native_cpu_up(unsigned int cpu)
}
/*
+ * Fall back to non SMP mode after errors.
+ *
+ * RED-PEN audit/test this more. I bet there is more state messed up here.
+ */
+static __init void disable_smp(void)
+{
+ cpu_present_map = cpumask_of_cpu(0);
+ cpu_possible_map = cpumask_of_cpu(0);
+#ifdef CONFIG_X86_32
+ smpboot_clear_io_apic_irqs();
+#endif
+ if (smp_found_config)
+ phys_cpu_present_map =
+ physid_mask_of_physid(boot_cpu_physical_apicid);
+ else
+ phys_cpu_present_map = physid_mask_of_physid(0);
+ map_cpu_to_logical_apicid();
+ cpu_set(0, per_cpu(cpu_sibling_map, 0));
+ cpu_set(0, per_cpu(cpu_core_map, 0));
+}
+
+/*
+ * Various sanity checks.
+ */
+static int __init smp_sanity_check(unsigned max_cpus)
+{
+ if (!physid_isset(hard_smp_processor_id(), phys_cpu_present_map)) {
+ printk(KERN_WARNING "weird, boot CPU (#%d) not listed"
+ "by the BIOS.\n", hard_smp_processor_id());
+ physid_set(hard_smp_processor_id(), phys_cpu_present_map);
+ }
+
+ /*
+ * If we couldn't find an SMP configuration at boot time,
+ * get out of here now!
+ */
+ if (!smp_found_config && !acpi_lapic) {
+ printk(KERN_NOTICE "SMP motherboard not detected.\n");
+ disable_smp();
+ if (APIC_init_uniprocessor())
+ printk(KERN_NOTICE "Local APIC not detected."
+ " Using dummy APIC emulation.\n");
+ return -1;
+ }
+
+ /*
+ * Should not be necessary because the MP table should list the boot
+ * CPU too, but we do it for the sake of robustness anyway.
+ */
+ if (!check_phys_apicid_present(boot_cpu_physical_apicid)) {
+ printk(KERN_NOTICE
+ "weird, boot CPU (#%d) not listed by the BIOS.\n",
+ boot_cpu_physical_apicid);
+ physid_set(hard_smp_processor_id(), phys_cpu_present_map);
+ }
+
+ /*
+ * If we couldn't find a local APIC, then get out of here now!
+ */
+ if (APIC_INTEGRATED(apic_version[boot_cpu_physical_apicid]) &&
+ !cpu_has_apic) {
+ printk(KERN_ERR "BIOS bug, local APIC #%d not detected!...\n",
+ boot_cpu_physical_apicid);
+ printk(KERN_ERR "... forcing use of dummy APIC emulation."
+ "(tell your hw vendor)\n");
+ smpboot_clear_io_apic();
+ return -1;
+ }
+
+ verify_local_APIC();
+
+ /*
+ * If SMP should be disabled, then really disable it!
+ */
+ if (!max_cpus) {
+ printk(KERN_INFO "SMP mode deactivated,"
+ "forcing use of dummy APIC emulation.\n");
+ smpboot_clear_io_apic();
+#ifdef CONFIG_X86_32
+ if (nmi_watchdog == NMI_LOCAL_APIC) {
+ printk(KERN_INFO "activating minimal APIC for"
+ "NMI watchdog use.\n");
+ connect_bsp_APIC();
+ setup_local_APIC();
+ end_local_APIC_setup();
+ }
+#endif
+ return -1;
+ }
+
+ return 0;
+}
+
+static void __init smp_cpu_index_default(void)
+{
+ int i;
+ struct cpuinfo_x86 *c;
+
+ for_each_cpu_mask(i, cpu_possible_map) {
+ c = &cpu_data(i);
+ /* mark all to hotplug */
+ c->cpu_index = NR_CPUS;
+ }
+}
+
+/*
+ * Prepare for SMP bootup. The MP table or ACPI has been read
+ * earlier. Just do some sanity checking here and enable APIC mode.
+ */
+void __init native_smp_prepare_cpus(unsigned int max_cpus)
+{
+ nmi_watchdog_default();
+ smp_cpu_index_default();
+ current_cpu_data = boot_cpu_data;
+ cpu_callin_map = cpumask_of_cpu(0);
+ mb();
+ /*
+ * Setup boot CPU information
+ */
+ smp_store_cpu_info(0); /* Final full version of the data */
+ boot_cpu_logical_apicid = logical_smp_processor_id();
+ current_thread_info()->cpu = 0; /* needed? */
+ set_cpu_sibling_map(0);
+
+ if (smp_sanity_check(max_cpus) < 0) {
+ printk(KERN_INFO "SMP disabled\n");
+ disable_smp();
+ return;
+ }
+
+ if (GET_APIC_ID(apic_read(APIC_ID)) != boot_cpu_physical_apicid) {
+ panic("Boot APIC ID in local APIC unexpected (%d vs %d)",
+ GET_APIC_ID(apic_read(APIC_ID)), boot_cpu_physical_apicid);
+ /* Or can we switch back to PIC here? */
+ }
+
+#ifdef CONFIG_X86_32
+ connect_bsp_APIC();
+#endif
+ /*
+ * Switch from PIC to APIC mode.
+ */
+ setup_local_APIC();
+
+#ifdef CONFIG_X86_64
+ /*
+ * Enable IO APIC before setting up error vector
+ */
+ if (!skip_ioapic_setup && nr_ioapics)
+ enable_IO_APIC();
+#endif
+ end_local_APIC_setup();
+
+ map_cpu_to_logical_apicid();
+
+ setup_portio_remap();
+
+ smpboot_setup_io_apic();
+ /*
+ * Set up local APIC timer on boot CPU.
+ */
+
+ printk(KERN_INFO "CPU%d: ", 0);
+ print_cpu_info(&cpu_data(0));
+ setup_boot_clock();
+}
+/*
* Early setup to make printk work.
*/
void __init native_smp_prepare_boot_cpu(void)
diff --git a/arch/x86/kernel/smpboot_32.c b/arch/x86/kernel/smpboot_32.c
index 5a0f57f..3a1b9e4 100644
--- a/arch/x86/kernel/smpboot_32.c
+++ b/arch/x86/kernel/smpboot_32.c
@@ -74,7 +74,6 @@ EXPORT_PER_CPU_SYMBOL(x86_bios_cpu_apicid);
u8 apicid_2_node[MAX_APICID];
-extern void map_cpu_to_logical_apicid(void);
extern void unmap_cpu_to_logical_apicid(int cpu);
#ifdef CONFIG_HOTPLUG_CPU
@@ -94,144 +93,8 @@ void cpu_exit_clear(void)
}
#endif
-static int boot_cpu_logical_apicid;
/* Where the IO area was mapped on multiquad, always 0 otherwise */
void *xquad_portio;
#ifdef CONFIG_X86_NUMAQ
EXPORT_SYMBOL(xquad_portio);
#endif
-
-static void __init disable_smp(void)
-{
- cpu_possible_map = cpumask_of_cpu(0);
- cpu_present_map = cpumask_of_cpu(0);
- smpboot_clear_io_apic_irqs();
- if (smp_found_config)
- phys_cpu_present_map =
- physid_mask_of_physid(boot_cpu_physical_apicid);
- else
- phys_cpu_present_map = physid_mask_of_physid(0);
- map_cpu_to_logical_apicid();
- cpu_set(0, per_cpu(cpu_sibling_map, 0));
- cpu_set(0, per_cpu(cpu_core_map, 0));
-}
-
-static int __init smp_sanity_check(unsigned max_cpus)
-{
- if (!physid_isset(hard_smp_processor_id(), phys_cpu_present_map)) {
- printk(KERN_WARNING "weird, boot CPU (#%d) not listed"
- "by the BIOS.\n", hard_smp_processor_id());
- physid_set(hard_smp_processor_id(), phys_cpu_present_map);
- }
-
- /*
- * If we couldn't find an SMP configuration at boot time,
- * get out of here now!
- */
- if (!smp_found_config && !acpi_lapic) {
- printk(KERN_NOTICE "SMP motherboard not detected.\n");
- disable_smp();
- if (APIC_init_uniprocessor())
- printk(KERN_NOTICE "Local APIC not detected."
- " Using dummy APIC emulation.\n");
- return -1;
- }
-
- /*
- * Should not be necessary because the MP table should list the boot
- * CPU too, but we do it for the sake of robustness anyway.
- * Makes no sense to do this check in clustered apic mode, so skip it
- */
- if (!check_phys_apicid_present(boot_cpu_physical_apicid)) {
- printk("weird, boot CPU (#%d) not listed by the BIOS.\n",
- boot_cpu_physical_apicid);
- physid_set(hard_smp_processor_id(), phys_cpu_present_map);
- }
-
- /*
- * If we couldn't find a local APIC, then get out of here now!
- */
- if (APIC_INTEGRATED(apic_version[boot_cpu_physical_apicid]) && !cpu_has_apic) {
- printk(KERN_ERR "BIOS bug, local APIC #%d not detected!...\n",
- boot_cpu_physical_apicid);
- printk(KERN_ERR "... forcing use of dummy APIC emulation. (tell your hw vendor)\n");
- smpboot_clear_io_apic();
- return -1;
- }
-
- verify_local_APIC();
-
- /*
- * If SMP should be disabled, then really disable it!
- */
- if (!max_cpus) {
- smp_found_config = 0;
- printk(KERN_INFO "SMP mode deactivated, forcing use of dummy APIC emulation.\n");
-
- if (nmi_watchdog == NMI_LOCAL_APIC) {
- printk(KERN_INFO "activating minimal APIC for NMI watchdog use.\n");
- connect_bsp_APIC();
- setup_local_APIC();
- end_local_APIC_setup();
- }
- smpboot_clear_io_apic();
- return -1;
- }
- return 0;
-}
-
-static void __init smp_cpu_index_default(void)
-{
- int i;
- struct cpuinfo_x86 *c;
-
- for_each_cpu_mask(i, cpu_possible_map) {
- c = &cpu_data(i);
- /* mark all to hotplug */
- c->cpu_index = NR_CPUS;
- }
-}
-
-void __init native_smp_prepare_cpus(unsigned int max_cpus)
-{
- nmi_watchdog_default();
- smp_cpu_index_default();
- current_cpu_data = boot_cpu_data;
- cpu_callin_map = cpumask_of_cpu(0);
- mb();
-
- /*
- * Setup boot CPU information
- */
- smp_store_cpu_info(0); /* Final full version of the data */
- boot_cpu_logical_apicid = logical_smp_processor_id();
- current_thread_info()->cpu = 0;
-
- set_cpu_sibling_map(0);
-
- if (smp_sanity_check(max_cpus) < 0) {
- printk(KERN_INFO "SMP disabled\n");
- disable_smp();
- return;
- }
-
- if (GET_APIC_ID(apic_read(APIC_ID)) != boot_cpu_physical_apicid) {
- panic("Boot APIC ID in local APIC unexpected (%d vs %d)",
- GET_APIC_ID(apic_read(APIC_ID)), boot_cpu_physical_apicid);
- /* Or can we switch back to PIC here? */
- }
-
- connect_bsp_APIC();
- setup_local_APIC();
- end_local_APIC_setup();
- map_cpu_to_logical_apicid();
-
- setup_portio_remap();
-
- smpboot_setup_io_apic();
-
- printk(KERN_INFO "CPU%d: ", 0);
- print_cpu_info(&cpu_data(0));
- setup_boot_clock();
-}
-
diff --git a/arch/x86/kernel/smpboot_64.c b/arch/x86/kernel/smpboot_64.c
index 7752445..66b5562 100644
--- a/arch/x86/kernel/smpboot_64.c
+++ b/arch/x86/kernel/smpboot_64.c
@@ -71,144 +71,3 @@ int smp_threads_ready;
cycles_t cacheflush_time;
unsigned long cache_decay_ticks;
-
-static int boot_cpu_logical_apicid;
-/*
- * Fall back to non SMP mode after errors.
- *
- * RED-PEN audit/test this more. I bet there is more state messed up here.
- */
-static __init void disable_smp(void)
-{
- cpu_present_map = cpumask_of_cpu(0);
- cpu_possible_map = cpumask_of_cpu(0);
- if (smp_found_config)
- phys_cpu_present_map =
- physid_mask_of_physid(boot_cpu_physical_apicid);
- else
- phys_cpu_present_map = physid_mask_of_physid(0);
- cpu_set(0, per_cpu(cpu_sibling_map, 0));
- cpu_set(0, per_cpu(cpu_core_map, 0));
-}
-
-/*
- * Various sanity checks.
- */
-static int __init smp_sanity_check(unsigned max_cpus)
-{
- if (!physid_isset(hard_smp_processor_id(), phys_cpu_present_map)) {
- printk("weird, boot CPU (#%d) not listed by the BIOS.\n",
- hard_smp_processor_id());
- physid_set(hard_smp_processor_id(), phys_cpu_present_map);
- }
-
- /*
- * If we couldn't find an SMP configuration at boot time,
- * get out of here now!
- */
- if (!smp_found_config && !acpi_lapic) {
- printk(KERN_NOTICE "SMP motherboard not detected.\n");
- disable_smp();
- if (APIC_init_uniprocessor())
- printk(KERN_NOTICE "Local APIC not detected."
- " Using dummy APIC emulation.\n");
- return -1;
- }
-
- /*
- * Should not be necessary because the MP table should list the boot
- * CPU too, but we do it for the sake of robustness anyway.
- */
- if (!check_phys_apicid_present(boot_cpu_physical_apicid)) {
- printk(KERN_NOTICE
- "weird, boot CPU (#%d) not listed by the BIOS.\n",
- boot_cpu_physical_apicid);
- physid_set(hard_smp_processor_id(), phys_cpu_present_map);
- }
-
- /*
- * If we couldn't find a local APIC, then get out of here now!
- */
- if (APIC_INTEGRATED(apic_version[boot_cpu_physical_apicid]) &&
- !cpu_has_apic) {
- printk(KERN_ERR "BIOS bug, local APIC #%d not detected!...\n",
- boot_cpu_physical_apicid);
- printk(KERN_ERR "... forcing use of dummy APIC emulation. (tell your hw vendor)\n");
- smpboot_clear_io_apic();
- return -1;
- }
-
- verify_local_APIC();
-
- /*
- * If SMP should be disabled, then really disable it!
- */
- if (!max_cpus) {
- printk(KERN_INFO "SMP mode deactivated, forcing use of dummy APIC emulation.\n");
- smpboot_clear_io_apic();
- return -1;
- }
-
- return 0;
-}
-
-static void __init smp_cpu_index_default(void)
-{
- int i;
- struct cpuinfo_x86 *c;
-
- for_each_cpu_mask(i, cpu_possible_map) {
- c = &cpu_data(i);
- /* mark all to hotplug */
- c->cpu_index = NR_CPUS;
- }
-}
-
-/*
- * Prepare for SMP bootup. The MP table or ACPI has been read
- * earlier. Just do some sanity checking here and enable APIC mode.
- */
-void __init native_smp_prepare_cpus(unsigned int max_cpus)
-{
- nmi_watchdog_default();
- smp_cpu_index_default();
- cpu_callin_map = cpumask_of_cpu(0);
- mb();
-
- current_cpu_data = boot_cpu_data;
- boot_cpu_logical_apicid = logical_smp_processor_id();
- current_thread_info()->cpu = 0; /* needed? */
- set_cpu_sibling_map(0);
-
- if (smp_sanity_check(max_cpus) < 0) {
- printk(KERN_INFO "SMP disabled\n");
- disable_smp();
- return;
- }
-
- if (GET_APIC_ID(apic_read(APIC_ID)) != boot_cpu_physical_apicid) {
- panic("Boot APIC ID in local APIC unexpected (%d vs %d)",
- GET_APIC_ID(apic_read(APIC_ID)), boot_cpu_physical_apicid);
- /* Or can we switch back to PIC here? */
- }
-
- /*
- * Switch from PIC to APIC mode.
- */
- setup_local_APIC();
-
- /*
- * Enable IO APIC before setting up error vector
- */
- if (!skip_ioapic_setup && nr_ioapics)
- enable_IO_APIC();
- end_local_APIC_setup();
-
- /*
- * Set up local APIC timer on boot CPU.
- */
-
- setup_boot_clock();
- printk(KERN_INFO "CPU%d: ", 0);
- print_cpu_info(&cpu_data(0));
-}
--
1.5.0.6
next prev parent reply other threads:[~2008-03-19 20:29 UTC|newest]
Thread overview: 104+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-03-19 17:24 [PATCH 0/79] smpboot integration Glauber de Oliveira Costa
2008-03-19 17:24 ` [PATCH 01/79] [PATCH] change var types in __inquire_remote_apic Glauber de Oliveira Costa
2008-03-19 17:24 ` [PATCH 02/79] [PATCH] add loglevel to printks Glauber de Oliveira Costa
2008-03-19 17:24 ` [PATCH 03/79] [PATCH] use apic_*_around instead of apic_write in x86_64 Glauber de Oliveira Costa
2008-03-19 17:24 ` [PATCH 04/79] [PATCH] use start_ipi_hook " Glauber de Oliveira Costa
2008-03-19 17:25 ` [PATCH 05/79] [PATCH] add an smp_apply_quirks to smpboot_32.c Glauber de Oliveira Costa
2008-03-19 17:25 ` [PATCH 06/79] [PATCH] decouple call to print_cpu_info from smp_store_cpu_info Glauber de Oliveira Costa
2008-03-19 17:25 ` [PATCH 07/79] [PATCH] provide specialized identification routines for x86_64 Glauber de Oliveira Costa
2008-03-19 17:25 ` [PATCH 08/79] [PATCH] use identify_boot_cpu Glauber de Oliveira Costa
2008-03-19 17:25 ` [PATCH 09/79] [PATCH] call identify_secondary_cpu in smp_store_cpu_info Glauber de Oliveira Costa
2008-03-19 17:25 ` [PATCH 10/79] [PATCH] merge smp_store_cpu_info Glauber de Oliveira Costa
2008-03-19 17:25 ` [PATCH 11/79] [PATCH] always enable irqs when entering idle Glauber de Oliveira Costa
2008-03-19 17:25 ` [PATCH 12/79] [PATCH] don't call local_irq_enable before " Glauber de Oliveira Costa
2008-03-19 17:25 ` [PATCH 13/79] [PATCH] move setup_secondary_clock a little bit down in the function Glauber de Oliveira Costa
2008-03-19 17:25 ` [PATCH 14/79] [PATCH] move state update out of ipi_lock Glauber de Oliveira Costa
2008-03-19 17:25 ` [PATCH 15/79] [PATCH] provide APIC_INTEGRATED definition for x86_64 Glauber de Oliveira Costa
2008-03-19 17:25 ` [PATCH 16/79] [PATCH] use APIC_INTEGRATED tests in x86_64 Glauber de Oliveira Costa
2008-03-19 17:25 ` [PATCH 17/79] [PATCH] add barriers statement Glauber de Oliveira Costa
2008-03-19 17:25 ` [PATCH 18/79] [PATCH] isolate sanity checking Glauber de Oliveira Costa
2008-03-19 17:25 ` [PATCH 19/79] [PATCH] isolate logic to disable smp Glauber de Oliveira Costa
2008-03-19 17:25 ` [PATCH 20/79] [PATCH] do tests before do_boot_cpu in i386 Glauber de Oliveira Costa
2008-03-19 17:25 ` [PATCH 21/79] [PATCH] make __smp_prepare_cpu void Glauber de Oliveira Costa
2008-03-19 17:25 ` [PATCH 22/79] [PATCH] move assignment of CPU_PREPARE before do_boot_cpu Glauber de Oliveira Costa
2008-03-19 17:25 ` [PATCH 23/79] [PATCH] unify extern masks declaration Glauber de Oliveira Costa
2008-03-19 17:25 ` [PATCH 24/79] [PATCH] define bios to apicid mapping Glauber de Oliveira Costa
2008-03-19 17:25 ` [PATCH 25/79] [PATCH] initialize map pointers in setup_32.c Glauber de Oliveira Costa
2008-03-19 17:25 ` [PATCH 26/79] [PATCH] make node to apic mapping declarations unconditional Glauber de Oliveira Costa
2008-03-19 17:25 ` [PATCH 27/79] [PATCH] fix alloc_bootmem_pages_node macro Glauber de Oliveira Costa
2008-03-19 17:25 ` [PATCH 28/79] [PATCH] use specialized routine for setup per-cpu area Glauber de Oliveira Costa
2008-03-19 17:25 ` [PATCH 29/79] [PATCH] fill bios cpu to apicid maps Glauber de Oliveira Costa
2008-03-19 17:25 ` [PATCH 30/79] [PATCH] fill cpu to apicid and present map in mpparse Glauber de Oliveira Costa
2008-03-19 17:25 ` [PATCH 31/79] [PATCH] get rid of cpucount Glauber de Oliveira Costa
2008-03-19 17:25 ` [PATCH 32/79] [PATCH] allow user to impress friends Glauber de Oliveira Costa
2008-03-19 17:25 ` [PATCH 33/79] [PATCH] do smp tainting checks in a separate function Glauber de Oliveira Costa
2008-03-19 17:25 ` [PATCH 34/79] [PATCH] move impress_friends and smp_check to cpus_done Glauber de Oliveira Costa
2008-03-19 17:25 ` [PATCH 35/79] [PATCH] add subarch support (for headers) to x86_64 Glauber de Oliveira Costa
2008-03-19 17:25 ` [PATCH 36/79] [PATCH] include mach_wakecpu.h in smpboot_64 Glauber de Oliveira Costa
2008-03-19 17:25 ` [PATCH 37/79] [PATCH] include smpboot_hooks.h in smpboot_64.c Glauber de Oliveira Costa
2008-03-19 17:25 ` [PATCH 38/79] [PATCH] move smp_intr_init away from smpboot_32.c Glauber de Oliveira Costa
[not found] ` <12059477521176-git-send! -email-gcosta@redhat.com>
2008-03-19 17:25 ` [PATCH 39/79] [PATCH] don't set maps in native_smp_prepare_boot_cpu() Glauber de Oliveira Costa
2008-03-19 17:25 ` [PATCH 40/79] [PATCH] wipe get_nmi_reason out of nmi_64.h Glauber de Oliveira Costa
2008-03-19 17:25 ` [PATCH 41/79] [PATCH] unify nmi_32.h and nmi_64.h Glauber de Oliveira Costa
2008-03-19 17:25 ` [PATCH 42/79] [PATCH] call check_nmi_watchdog explicitly in native_smp_cpus_done Glauber de Oliveira Costa
2008-03-19 17:25 ` [PATCH 43/79] [PATCH] call nmi_watchdog_default in i386 Glauber de Oliveira Costa
2008-03-19 17:25 ` [PATCH 44/79] [PATCH] don't initialize sibling and core maps during preparation Glauber de Oliveira Costa
2008-03-19 17:25 ` [PATCH 45/79] [PATCH] fix apic acking of irqs Glauber de Oliveira Costa
2008-03-19 17:25 ` [PATCH 46/79] [PATCH] schedule work only if keventd is already running Glauber de Oliveira Costa
2008-03-19 17:25 ` [PATCH 47/79] [PATCH] do not zap_low_mappings in __smp_prepare_cpus Glauber de Oliveira Costa
2008-03-19 17:25 ` [PATCH 48/79] [PATCH] boot cpus from cpu_up, instead of prepare_cpus Glauber de Oliveira Costa
2008-03-19 17:25 ` [PATCH 49/79] [PATCH] get rid of commenced mask Glauber de Oliveira Costa
2008-03-19 17:25 ` [PATCH 50/79] [PATCH] use create_idle struct in do_boot_cpu Glauber de Oliveira Costa
2008-03-19 17:25 ` [PATCH 51/79] [PATCH] don't span a new worker in __smp_prepare_cpu Glauber de Oliveira Costa
2008-03-19 17:25 ` [PATCH 52/79] [PATCH] modify smp_callin in x86_64 to look like i386 Glauber de Oliveira Costa
2008-03-19 17:25 ` [PATCH 53/79] [PATCH] wrap esr setting up in i386 in lapic_setup_esr Glauber de Oliveira Costa
2008-03-19 17:25 ` [PATCH 54/79] [PATCH] provide an end_local_APIC_setup function Glauber de Oliveira Costa
2008-03-19 17:25 ` [PATCH 55/79] [PATCH] calibrate delay with irqs enabled Glauber de Oliveira Costa
2008-03-19 17:25 ` [PATCH 56/79] [PATCH] minor adjustments for do_boot_cpu Glauber de Oliveira Costa
2008-03-19 17:25 ` [PATCH 57/79] [PATCH] call do_boot_cpu directly from native_cpu_up Glauber de Oliveira Costa
2008-03-19 17:25 ` [PATCH 58/79] [PATCH] include mach_apic.h in smpboot_64.c and smpboot.c Glauber de Oliveira Costa
2008-03-19 17:25 ` [PATCH 59/79] [PATCH] change wakeup_secondary name Glauber de Oliveira Costa
2008-03-19 17:25 ` [PATCH 60/79] [PATCH] add callin tests to cpu_up Glauber de Oliveira Costa
2008-03-19 17:25 ` [PATCH 61/79] [PATCH] move {un}map_cpu_to_logical_apicid to smpboot.c Glauber de Oliveira Costa
2008-03-19 17:25 ` [PATCH 62/79] [PATCH] move stack_start to smp.h Glauber de Oliveira Costa
2008-03-19 17:25 ` [PATCH 63/79] [PATCH] change boot_cpu_id to boot_cpu_physical_apicid Glauber de Oliveira Costa
2008-03-19 17:25 ` [PATCH 64/79] [PATCH] integrate do_boot_cpu Glauber de Oliveira Costa
2008-03-19 17:26 ` [PATCH 65/79] [PATCH] integrate start_secondary Glauber de Oliveira Costa
2008-03-19 17:26 ` [PATCH 66/79] [PATCH] merge smp_prepare_boot_cpu Glauber de Oliveira Costa
2008-03-19 17:26 ` [PATCH 67/79] [PATCH] merge native_smp_cpus_done Glauber de Oliveira Costa
2008-03-19 17:26 ` [PATCH 68/79] [PATCH] use physical id when disabling smp Glauber de Oliveira Costa
2008-03-19 17:26 ` [PATCH 69/79] [PATCH] get rid of smp_boot_cpus Glauber de Oliveira Costa
2008-03-19 17:26 ` [PATCH 70/79] [PATCH] additions to i386 native_smp_prepare_cpus Glauber de Oliveira Costa
2008-03-19 17:26 ` [PATCH 71/79] [PATCH] assign nr_ioapics = 0 in smpboot_hooks.h Glauber de Oliveira Costa
2008-03-19 17:26 ` [PATCH 72/79] [PATCH] change x86_64 native_smp_prepare_cpus to match i386 Glauber de Oliveira Costa
2008-03-19 17:26 ` [PATCH 73/79] [PATCH] add extra sanity check Glauber de Oliveira Costa
2008-03-19 17:26 ` [PATCH 74/79] [PATCH] change x86_64 sanity checks to match i386 Glauber de Oliveira Costa
2008-03-19 17:26 ` [PATCH 75/79] [PATCH] introduce smpboot_clear_io_apic Glauber de Oliveira Costa
2008-03-19 17:26 ` Glauber de Oliveira Costa [this message]
2008-03-19 17:26 ` [PATCH 77/79] [PATCH] merge cpu_exit_clear Glauber de Oliveira Costa
2008-03-19 17:26 ` [PATCH 78/79] [PATCH] move apicid mappings to smpboot.c Glauber de Oliveira Costa
2008-03-19 17:26 ` [PATCH 79/79] [PATCH] remove smpboot_32.c and smpboot_64.c Glauber de Oliveira Costa
2008-03-20 6:56 ` [PATCH 58/79] [PATCH] include mach_apic.h in smpboot_64.c and smpboot.c Yinghai Lu
2008-03-20 14:25 ` Glauber Costa
2008-03-20 18:00 ` Yinghai Lu
2008-03-21 22:37 ` Yinghai Lu
2008-03-20 10:28 ` [PATCH 45/79] [PATCH] fix apic acking of irqs Maciej W. Rozycki
2008-03-20 15:04 ` Glauber Costa
2008-03-20 22:27 ` Maciej W. Rozycki
2008-03-24 14:51 ` Glauber Costa
2008-03-24 23:19 ` Maciej W. Rozycki
2008-03-25 12:40 ` Andi Kleen
2008-03-25 13:42 ` Glauber Costa
2008-03-25 15:48 ` Maciej W. Rozycki
2008-03-25 22:39 ` Glauber Costa
2008-03-19 17:35 ` [PATCH 0/79] smpboot integration Ingo Molnar
2008-03-20 2:18 ` Yinghai Lu
2008-03-20 3:00 ` Yinghai Lu
2008-03-20 3:32 ` Yinghai Lu
2008-03-20 4:40 ` Glauber Costa
2008-03-20 4:59 ` Yinghai Lu
[not found] ` <20080321133327.GN27245@elte.hu>
[not found] ` <86802c440803211218t5850ba52w78f8cb9849097ee0@mail.gmail.com>
[not found] ` <20080321195506.GB16179@elte.hu>
[not found] ` <86802c440803211303m50506ae5ta4c095e40fa1e40d@mail.gmail.com>
[not found] ` <86802c440803211441v30840be4y76d63da567c9af40@mail.gmail.com>
2008-03-21 22:14 ` Yinghai Lu
2008-03-21 22:18 ` Ingo Molnar
2008-03-24 15:13 ` Glauber Costa
2008-03-19 18:48 ` Ingo Molnar
2008-03-19 19:36 ` Ingo Molnar
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=12059479154173-git-send-email-gcosta@redhat.com \
--to=gcosta@redhat.com \
--cc=ak@suse.de \
--cc=akpm@linux-foundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=tglx@linutronix.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.