search for: apic_icr_busy

Displaying 10 results from an estimated 10 matches for "apic_icr_busy".

2012 Apr 20
1
[PATCH v2 0/2] fix "perf top" soft lockups under Xen
...ockup 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 xen_smp_send_call_funct...
2007 Apr 18
0
[RFC/PATCH PV_OPS X86_64 04/17] pavarvirt_ops - apci header updates
...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
...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)
...ockup 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_resch...
2012 Apr 15
0
Re: [PATCH 0/2] fix "perf top" soft lockups under Xen
...>  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_fu...
2007 Apr 18
0
[RFC, PATCH 15/24] i386 Vmi apic header
...ng 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/mach-vmi/mach_apicops.h...
2007 Apr 18
0
[RFC, PATCH 15/24] i386 Vmi apic header
...ng 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/mach-vmi/mach_apicops.h...
2012 Dec 12
7
[PATCH V5] x86/kexec: Change NMI and MCE handling on kexec path
...is_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(); + + apic_mem_write(APIC_ICR2, apic_id << 24); + apic_mem_write(APIC_ICR, APIC_DM_NMI | APIC_DEST_PHYSICAL); + break; + + default: + break; + } for ( ; ; ) halt(); - - return 1; } static void nmi_shootdown_cpu...
2007 Apr 18
2
[PATCH] x86_64 paravirt_ops port
...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_gdt_table[GDT_ENTRIES];...
2007 Apr 18
2
[PATCH] x86_64 paravirt_ops port
...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_gdt_table[GDT_ENTRIES];...