search for: phys_apicid

Displaying 20 results from an estimated 75 matches for "phys_apicid".

2007 Apr 18
0
[PATCH 4/6] SMP boot hook for paravirt
...+ + .startup_ipi_hook = (void *)native_nop, }; EXPORT_SYMBOL(paravirt_ops); diff -r acfb7a15715f arch/i386/kernel/smpboot.c --- a/arch/i386/kernel/smpboot.c Thu Dec 14 16:22:03 2006 -0800 +++ b/arch/i386/kernel/smpboot.c Thu Dec 14 16:51:52 2006 -0800 @@ -831,6 +831,13 @@ wakeup_secondary_cpu(int phys_apicid, un num_starts = 0; /* + * Paravirt / VMI wants a startup IPI hook here to set up the + * target processor state. + */ + startup_ipi_hook(phys_apicid, (unsigned long) start_secondary, + (unsigned long) stack_start.esp); + + /* * Run STARTUP IPI loop. */ Dprintk("#st...
2007 Apr 18
0
[PATCH 4/6] SMP boot hook for paravirt
...+ + .startup_ipi_hook = (void *)native_nop, }; EXPORT_SYMBOL(paravirt_ops); diff -r acfb7a15715f arch/i386/kernel/smpboot.c --- a/arch/i386/kernel/smpboot.c Thu Dec 14 16:22:03 2006 -0800 +++ b/arch/i386/kernel/smpboot.c Thu Dec 14 16:51:52 2006 -0800 @@ -831,6 +831,13 @@ wakeup_secondary_cpu(int phys_apicid, un num_starts = 0; /* + * Paravirt / VMI wants a startup IPI hook here to set up the + * target processor state. + */ + startup_ipi_hook(phys_apicid, (unsigned long) start_secondary, + (unsigned long) stack_start.esp); + + /* * Run STARTUP IPI loop. */ Dprintk("#st...
2007 Apr 18
2
[RFC, PATCH 9/24] i386 Vmi smp support
...n struct desc_struct idt_table[256]; +extern unsigned char *trampoline_base; + +#ifdef CONFIG_SMP + +#ifdef CONFIG_HOTPLUG_CPU +#define DEFAULT_SEND_IPI (1) +#else +#define DEFAULT_SEND_IPI (0) +#endif + +int no_broadcast=DEFAULT_SEND_IPI; + +APState ap; + +void __init +smpboot_startup_ipi_hook(int phys_apicid, unsigned long start_eip, + unsigned long start_esp) +{ + /* We require phys_acpicid to be the cpu number. */ + if (hypervisor_found) { + /* Default everything to zero. This is fine for most GPRs. */ + memset(&ap, 0, sizeof(AP...
2007 Apr 18
2
[RFC, PATCH 9/24] i386 Vmi smp support
...n struct desc_struct idt_table[256]; +extern unsigned char *trampoline_base; + +#ifdef CONFIG_SMP + +#ifdef CONFIG_HOTPLUG_CPU +#define DEFAULT_SEND_IPI (1) +#else +#define DEFAULT_SEND_IPI (0) +#endif + +int no_broadcast=DEFAULT_SEND_IPI; + +APState ap; + +void __init +smpboot_startup_ipi_hook(int phys_apicid, unsigned long start_eip, + unsigned long start_esp) +{ + /* We require phys_acpicid to be the cpu number. */ + if (hypervisor_found) { + /* Default everything to zero. This is fine for most GPRs. */ + memset(&ap, 0, sizeof(AP...
2015 Nov 17
1
[PATCH] paravirt: remove unused pv_apic_ops structure
.../x86/include/asm/paravirt.h b/arch/x86/include/asm/paravirt.h index 10d0596..4d7f080 100644 --- a/arch/x86/include/asm/paravirt.h +++ b/arch/x86/include/asm/paravirt.h @@ -285,15 +285,6 @@ static inline void slow_down_io(void) #endif } -#ifdef CONFIG_SMP -static inline void startup_ipi_hook(int phys_apicid, unsigned long start_eip, - unsigned long start_esp) -{ - PVOP_VCALL3(pv_apic_ops.startup_ipi_hook, - phys_apicid, start_eip, start_esp); -} -#endif - static inline void paravirt_activate_mm(struct mm_struct *prev, struct mm_struct *next) { diff --git a/arch/x86/include/asm/para...
2015 Nov 17
1
[PATCH] paravirt: remove unused pv_apic_ops structure
.../x86/include/asm/paravirt.h b/arch/x86/include/asm/paravirt.h index 10d0596..4d7f080 100644 --- a/arch/x86/include/asm/paravirt.h +++ b/arch/x86/include/asm/paravirt.h @@ -285,15 +285,6 @@ static inline void slow_down_io(void) #endif } -#ifdef CONFIG_SMP -static inline void startup_ipi_hook(int phys_apicid, unsigned long start_eip, - unsigned long start_esp) -{ - PVOP_VCALL3(pv_apic_ops.startup_ipi_hook, - phys_apicid, start_eip, start_esp); -} -#endif - static inline void paravirt_activate_mm(struct mm_struct *prev, struct mm_struct *next) { diff --git a/arch/x86/include/asm/para...
2007 Apr 18
0
[PATCH 9/9] Vmi smp fixes.patch
...007 -0800 +++ b/arch/i386/kernel/vmi.c Thu Mar 01 18:10:18 2007 -0800 @@ -525,13 +525,14 @@ void vmi_pmd_clear(pmd_t *pmd) #endif #ifdef CONFIG_SMP -struct vmi_ap_state ap; extern void setup_pda(void); -static void __init /* XXX cpu hotplug */ +static void __devinit vmi_startup_ipi_hook(int phys_apicid, unsigned long start_eip, unsigned long start_esp) { + struct vmi_ap_state ap; + /* Default everything to zero. This is fine for most GPRs. */ memset(&ap, 0, sizeof(struct vmi_ap_state)); @@ -570,7 +571,7 @@ vmi_startup_ipi_hook(int phys_apicid, un /* Protected mode, paging, A...
2007 Apr 18
0
[PATCH 9/9] Vmi smp fixes.patch
...007 -0800 +++ b/arch/i386/kernel/vmi.c Thu Mar 01 18:10:18 2007 -0800 @@ -525,13 +525,14 @@ void vmi_pmd_clear(pmd_t *pmd) #endif #ifdef CONFIG_SMP -struct vmi_ap_state ap; extern void setup_pda(void); -static void __init /* XXX cpu hotplug */ +static void __devinit vmi_startup_ipi_hook(int phys_apicid, unsigned long start_eip, unsigned long start_esp) { + struct vmi_ap_state ap; + /* Default everything to zero. This is fine for most GPRs. */ memset(&ap, 0, sizeof(struct vmi_ap_state)); @@ -570,7 +571,7 @@ vmi_startup_ipi_hook(int phys_apicid, un /* Protected mode, paging, A...
2007 Apr 19
1
[RFC, PATCH 4/5] Paravirt_ops drop internal patches.patch
...up_boot_clock); + paravirt_ops.setup_boot_clock(); } static inline void setup_secondary_clock(void) { - PVOP_VCALL0(setup_secondary_clock); + paravirt_ops.setup_secondary_clock(); } #endif @@ -711,7 +711,7 @@ static inline void startup_ipi_hook(int static inline void startup_ipi_hook(int phys_apicid, unsigned long start_eip, unsigned long start_esp) { - PVOP_VCALL3(startup_ipi_hook, phys_apicid, start_eip, start_esp); + paravirt_ops.startup_ipi_hook(phys_apicid, start_eip, start_esp); } #endif
2007 Apr 18
0
[PATCH 3/5] Paravirt smp.patch
...rq_enable_sysexit, .iret = native_iret, + + .startup_ipi_hook = (void *)native_nop, }; EXPORT_SYMBOL(paravirt_ops); =================================================================== --- a/arch/i386/kernel/smpboot.c +++ b/arch/i386/kernel/smpboot.c @@ -820,6 +823,11 @@ wakeup_secondary_cpu(int phys_apicid, un num_starts = 2; else num_starts = 0; + +#ifdef CONFIG_PARAVIRT + paravirt_ops.startup_ipi_hook(phys_apicid, (unsigned long) start_secondary, + (unsigned long) stack_start.esp); +#endif /* * Run STARTUP IPI loop. ==================================================...
2007 Apr 18
0
[PATCH 3/5] Paravirt smp.patch
...rq_enable_sysexit, .iret = native_iret, + + .startup_ipi_hook = (void *)native_nop, }; EXPORT_SYMBOL(paravirt_ops); =================================================================== --- a/arch/i386/kernel/smpboot.c +++ b/arch/i386/kernel/smpboot.c @@ -820,6 +823,11 @@ wakeup_secondary_cpu(int phys_apicid, un num_starts = 2; else num_starts = 0; + +#ifdef CONFIG_PARAVIRT + paravirt_ops.startup_ipi_hook(phys_apicid, (unsigned long) start_secondary, + (unsigned long) stack_start.esp); +#endif /* * Run STARTUP IPI loop. ==================================================...
2007 Apr 28
3
huh startup_ipi_hook?
...startup_ipi hook for vmware commit: ae5da273fe3352febd38658d8d34484cbcfb3423 is quite frankly ridiculous. In the middle of wake_up_secondary_cpu: We have: /* * Paravirt / VMI wants a startup IPI hook here to set up the * target processor state. */ startup_ipi_hook(phys_apicid, (unsigned long) start_secondary, (unsigned long) stack_start.esp); As far as I can tell from reading this there is a completely different mechanism in place to start for a secondary processor. Which seems sane. What doesn't seem sane is bothering to run the rest of the...
2007 Apr 28
3
huh startup_ipi_hook?
...startup_ipi hook for vmware commit: ae5da273fe3352febd38658d8d34484cbcfb3423 is quite frankly ridiculous. In the middle of wake_up_secondary_cpu: We have: /* * Paravirt / VMI wants a startup IPI hook here to set up the * target processor state. */ startup_ipi_hook(phys_apicid, (unsigned long) start_secondary, (unsigned long) stack_start.esp); As far as I can tell from reading this there is a completely different mechanism in place to start for a secondary processor. Which seems sane. What doesn't seem sane is bothering to run the rest of the...
2007 Apr 18
0
[PATCH 7/10] Resurrect the VMI lazy mode fixes.
...:06 2007 -0700 +++ b/arch/i386/kernel/vmi.c Fri Apr 06 14:25:03 2007 -0700 @@ -69,6 +69,7 @@ static struct { void (*flush_tlb)(int); void (*set_initial_ap_state)(int, int); void (*halt)(void); + void (*set_lazy_mode)(int mode); } vmi_ops; /* @@ -545,6 +546,26 @@ vmi_startup_ipi_hook(int phys_apicid, un } #endif +static void vmi_set_lazy_mode(enum paravirt_lazy_mode mode) +{ + static DEFINE_PER_CPU(int, lazy_mode); + + if (!vmi_ops.set_lazy_mode) + return; + + /* Modes should never nest or overlap */ + BUG_ON(__get_cpu_var(lazy_mode) && !(mode == PARAVIRT_LAZY_NONE || + m...
2007 Apr 18
0
[PATCH 2/3] Vmi initialize fs for smp
...p for SMP to use FS instead of GS. Signed-off-by: Zachary Amsden <zach@vmware.com> diff -r 2ac108843573 arch/i386/kernel/vmi.c --- a/arch/i386/kernel/vmi.c Thu Jan 04 20:01:52 2007 -0800 +++ b/arch/i386/kernel/vmi.c Thu Jan 04 20:02:42 2007 -0800 @@ -533,8 +533,8 @@ vmi_startup_ipi_hook(int phys_apicid, un ap.ds = __USER_DS; ap.es = __USER_DS; - ap.fs = 0; - ap.gs = __KERNEL_PDA; + ap.fs = __KERNEL_PDA; + ap.gs = 0; ap.eflags = 0;
2007 Apr 18
0
[PATCH 2/3] Vmi initialize fs for smp
...p for SMP to use FS instead of GS. Signed-off-by: Zachary Amsden <zach@vmware.com> diff -r 2ac108843573 arch/i386/kernel/vmi.c --- a/arch/i386/kernel/vmi.c Thu Jan 04 20:01:52 2007 -0800 +++ b/arch/i386/kernel/vmi.c Thu Jan 04 20:02:42 2007 -0800 @@ -533,8 +533,8 @@ vmi_startup_ipi_hook(int phys_apicid, un ap.ds = __USER_DS; ap.es = __USER_DS; - ap.fs = 0; - ap.gs = __KERNEL_PDA; + ap.fs = __KERNEL_PDA; + ap.gs = 0; ap.eflags = 0;
2007 Apr 18
0
[PATCH 7/10] Resurrect the VMI lazy mode fixes.
...:06 2007 -0700 +++ b/arch/i386/kernel/vmi.c Fri Apr 06 14:25:03 2007 -0700 @@ -69,6 +69,7 @@ static struct { void (*flush_tlb)(int); void (*set_initial_ap_state)(int, int); void (*halt)(void); + void (*set_lazy_mode)(int mode); } vmi_ops; /* @@ -545,6 +546,26 @@ vmi_startup_ipi_hook(int phys_apicid, un } #endif +static void vmi_set_lazy_mode(enum paravirt_lazy_mode mode) +{ + static DEFINE_PER_CPU(int, lazy_mode); + + if (!vmi_ops.set_lazy_mode) + return; + + /* Modes should never nest or overlap */ + BUG_ON(__get_cpu_var(lazy_mode) && !(mode == PARAVIRT_LAZY_NONE || + m...
2007 Apr 18
1
[PATCH] Add smp_ops interface
...mp_ops.smp_call_function_mask(mask, func, info, wait); +} + +void native_smp_prepare_boot_cpu(void); +void native_smp_prepare_cpus(unsigned int max_cpus); +int native_cpu_up(unsigned int cpunum); +void native_smp_cpus_done(unsigned int max_cpus); #ifndef CONFIG_PARAVIRT #define startup_ipi_hook(phys_apicid, start_eip, start_esp) \
2007 Apr 18
1
[PATCH] Add smp_ops interface
...mp_ops.smp_call_function_mask(mask, func, info, wait); +} + +void native_smp_prepare_boot_cpu(void); +void native_smp_prepare_cpus(unsigned int max_cpus); +int native_cpu_up(unsigned int cpunum); +void native_smp_cpus_done(unsigned int max_cpus); #ifndef CONFIG_PARAVIRT #define startup_ipi_hook(phys_apicid, start_eip, start_esp) \
2007 Jul 09
1
[PATCH RFC] first cut at splitting up paravirt_ops
...this interface. - */ - void (*apic_write)(unsigned long reg, unsigned long v); - void (*apic_write_atomic)(unsigned long reg, unsigned long v); - unsigned long (*apic_read)(unsigned long reg); - void (*setup_boot_clock)(void); - void (*setup_secondary_clock)(void); - - void (*startup_ipi_hook)(int phys_apicid, - unsigned long start_eip, - unsigned long start_esp); + /* + * Direct APIC operations, principally for VMI. Ideally + * these shouldn't be in this interface. + */ + void (*apic_write)(unsigned long reg, unsigned long v); + void (*apic_write_atomic)(unsigned long reg, unsigne...