search for: apic_icr

Displaying 12 results from an estimated 12 matches for "apic_icr".

2012 Apr 20
1
[PATCH v2 0/2] fix "perf top" soft lockups under Xen
...now. The soft lockup code path is: __irq_work_queue arch_irq_work_raise apic->send_IPI_self(IRQ_WORK_VECTOR); apic_send_IPI_self __default_send_IPI_shortcut __xapic_wait_icr_idle static inline void __xapic_wait_icr_idle(void) { while (native_apic_mem_read(APIC_ICR) & APIC_ICR_BUSY) cpu_relax(); } The lockup happens at above while looop. The cause is that Xen has not implemented the APIC IPI interface yet. Xen has IPI interface: xen_send_IPI_one, but it''s only used in xen_smp_send_reschedule, xen_smp_send_call_function_ipi and xe...
2012 Dec 12
7
[PATCH V5] x86/kexec: Change NMI and MCE handling on kexec path
...*/ - if ( cpu == crashing_cpu ) - return 1; - local_irq_disable(); + switch ( current_local_apic_mode() ) + { + u32 apic_id; - kexec_crash_save_cpu(); + case APIC_MODE_X2APIC: + apic_id = apic_rdmsr(APIC_ID); - __stop_this_cpu(); + apic_wrmsr(APIC_ICR, APIC_DM_NMI | APIC_DEST_PHYSICAL | ((u64)apic_id << 32)); + break; - atomic_dec(&waiting_for_crash_ipi); + case APIC_MODE_XAPIC: + apic_id = GET_xAPIC_ID(apic_mem_read(APIC_ID)); + + while ( apic_mem_read(APIC_ICR) & APIC_ICR_BUSY ) + cpu_relax...
2007 Apr 18
0
[RFC/PATCH PV_OPS X86_64 04/17] pavarvirt_ops - apci header updates
...eturn *((volatile unsigned int *)(APIC_BASE+reg)); } +#ifdef CONFIG_PARAVIRT +#include <asm/paravirt.h> +#else +#define apic_write native_apic_write +#define apic_read native_apic_read + +#endif /* CONFIG_PARAVIRT */ + static __inline__ void apic_wait_icr_idle(void) { while (apic_read( APIC_ICR ) & APIC_ICR_BUSY) --
2007 Apr 18
0
[RFC/PATCH PV_OPS X86_64 04/17] pavarvirt_ops - apci header updates
...eturn *((volatile unsigned int *)(APIC_BASE+reg)); } +#ifdef CONFIG_PARAVIRT +#include <asm/paravirt.h> +#else +#define apic_write native_apic_write +#define apic_read native_apic_read + +#endif /* CONFIG_PARAVIRT */ + static __inline__ void apic_wait_icr_idle(void) { while (apic_read( APIC_ICR ) & APIC_ICR_BUSY) --
2012 Apr 15
0
(no subject)
...too? The soft lockup code path is: __irq_work_queue arch_irq_work_raise apic->send_IPI_self(IRQ_WORK_VECTOR); apic_send_IPI_self __default_send_IPI_shortcut __xapic_wait_icr_idle static inline void __xapic_wait_icr_idle(void) { while (native_apic_mem_read(APIC_ICR) & APIC_ICR_BUSY) cpu_relax(); } The lockup happens at above while looop. The cause is that Xen has not implemented the APIC IPI interface yet. Xen has IPI interface: xen_send_IPI_one, but it''s only used...
2012 Apr 15
0
Re: [PATCH 0/2] fix "perf top" soft lockups under Xen
..._irq_work_queue >  arch_irq_work_raise >    apic->send_IPI_self(IRQ_WORK_VECTOR); >      apic_send_IPI_self >        __default_send_IPI_shortcut >          __xapic_wait_icr_idle > > static inline void __xapic_wait_icr_idle(void) > { >        while (native_apic_mem_read(APIC_ICR) & APIC_ICR_BUSY) >                cpu_relax(); > } > > The lockup happens at above while looop. > > The cause is that Xen has not implemented the APIC IPI interface yet. > Xen has IPI interface: xen_send_IPI_one, but it''s only used in > xen_smp_send_reschedule,...
2007 Apr 18
0
[RFC, PATCH 15/24] i386 Vmi apic header
...tomic(unsigned long reg, unsigned long v) -{ - xchg((volatile unsigned long *)(APIC_BASE+reg), v); -} - -static __inline unsigned long apic_read(unsigned long reg) -{ - return *((volatile unsigned long *)(APIC_BASE+reg)); -} - static __inline__ void apic_wait_icr_idle(void) { while ( apic_read( APIC_ICR ) & APIC_ICR_BUSY ) Index: linux-2.6.16-rc5/include/asm-i386/mach-vmi/mach_apicops.h =================================================================== --- linux-2.6.16-rc5.orig/include/asm-i386/mach-vmi/mach_apicops.h 2006-03-10 13:03:37.000000000 -0800 +++ linux-2.6.16-rc5/include/asm-i386/m...
2007 Apr 18
0
[RFC, PATCH 15/24] i386 Vmi apic header
...tomic(unsigned long reg, unsigned long v) -{ - xchg((volatile unsigned long *)(APIC_BASE+reg), v); -} - -static __inline unsigned long apic_read(unsigned long reg) -{ - return *((volatile unsigned long *)(APIC_BASE+reg)); -} - static __inline__ void apic_wait_icr_idle(void) { while ( apic_read( APIC_ICR ) & APIC_ICR_BUSY ) Index: linux-2.6.16-rc5/include/asm-i386/mach-vmi/mach_apicops.h =================================================================== --- linux-2.6.16-rc5.orig/include/asm-i386/mach-vmi/mach_apicops.h 2006-03-10 13:03:37.000000000 -0800 +++ linux-2.6.16-rc5/include/asm-i386/m...
2007 Apr 18
2
refactoring io_apic.c
...- see Intel Dev. Manual Vol. 3, Ch. 8.6.1 */ - unsigned int ver = GET_APIC_VERSION(apic_read(APIC_LVR)); - if (ver >= 0x14) /* P4 or higher */ - return; - /* - * Wait for idle. - */ - apic_wait_icr_idle(); - - apic_printk(APIC_DEBUG, "Synchronizing Arb IDs.\n"); - apic_write_around(APIC_ICR, APIC_DEST_ALLINC | APIC_INT_LEVELTRIG - | APIC_DM_INIT); -} - extern void __error_in_apic_c (void); /* diff -purN -X /home/mbligh/.diff.exclude virgin/arch/i386/kernel/io_apic.c io_apic_split/arch/i386/kernel/io_apic.c --- virgin/arch/i386/kernel/io_apic.c 2005-06-17 12:48:29.000000000 -070...
2007 Apr 18
2
refactoring io_apic.c
...- see Intel Dev. Manual Vol. 3, Ch. 8.6.1 */ - unsigned int ver = GET_APIC_VERSION(apic_read(APIC_LVR)); - if (ver >= 0x14) /* P4 or higher */ - return; - /* - * Wait for idle. - */ - apic_wait_icr_idle(); - - apic_printk(APIC_DEBUG, "Synchronizing Arb IDs.\n"); - apic_write_around(APIC_ICR, APIC_DEST_ALLINC | APIC_INT_LEVELTRIG - | APIC_DM_INIT); -} - extern void __error_in_apic_c (void); /* diff -purN -X /home/mbligh/.diff.exclude virgin/arch/i386/kernel/io_apic.c io_apic_split/arch/i386/kernel/io_apic.c --- virgin/arch/i386/kernel/io_apic.c 2005-06-17 12:48:29.000000000 -070...
2007 Apr 18
2
[PATCH] x86_64 paravirt_ops port
...eturn *((volatile unsigned int *)(APIC_BASE+reg)); } +#ifdef CONFIG_PARAVIRT +#include <asm/paravirt.h> +#else +#define apic_write native_apic_write +#define apic_read native_apic_read + +#endif /* CONFIG_PARAVIRT */ + static __inline__ void apic_wait_icr_idle(void) { while (apic_read( APIC_ICR ) & APIC_ICR_BUSY) Index: linux-2.6.19-quilt/include/asm-x86_64/desc.h =================================================================== --- linux-2.6.19-quilt.orig/include/asm-x86_64/desc.h +++ linux-2.6.19-quilt/include/asm-x86_64/desc.h @@ -16,9 +16,8 @@ extern struct desc_struct cpu_gd...
2007 Apr 18
2
[PATCH] x86_64 paravirt_ops port
...eturn *((volatile unsigned int *)(APIC_BASE+reg)); } +#ifdef CONFIG_PARAVIRT +#include <asm/paravirt.h> +#else +#define apic_write native_apic_write +#define apic_read native_apic_read + +#endif /* CONFIG_PARAVIRT */ + static __inline__ void apic_wait_icr_idle(void) { while (apic_read( APIC_ICR ) & APIC_ICR_BUSY) Index: linux-2.6.19-quilt/include/asm-x86_64/desc.h =================================================================== --- linux-2.6.19-quilt.orig/include/asm-x86_64/desc.h +++ linux-2.6.19-quilt/include/asm-x86_64/desc.h @@ -16,9 +16,8 @@ extern struct desc_struct cpu_gd...