search for: clear_io_apic_pin

Displaying 8 results from an estimated 8 matches for "clear_io_apic_pin".

2008 Feb 06
3
x86: clear_IO_APIC_pin() and SMI delivery mode
clear_IO_APIC_pin() ignores entries that are set to delivery mode SMI. While this seems reasonable if the entry was unmasked, I consider it dubious for masked entries. In Linux, such behavior is benign since when the entry later is being used for some normal interrupt, the old setting is simply overwritten. In Xen,...
2011 Nov 11
4
[PATCH] x86: clean up __io_apic_eoi()
Irrespective of the IO-APIC vector sharing suppression patch just sent the logic in this function needs to iterate over all RTEs, since multiple pins within an IO-APIC may still use the same vector. This is due to the irq_2_pin[] mapping not necessarily being 1:1. Consequently we should remove the commented out code as well as the respective comments provisioned for the point in time when vector
2007 Apr 18
2
refactoring io_apic.c
...sk_IO_APIC_irq(irq); - spin_unlock_irqrestore(&ioapic_lock, flags); -} - -static void unmask_IO_APIC_irq (unsigned int irq) -{ - unsigned long flags; - - spin_lock_irqsave(&ioapic_lock, flags); - __unmask_IO_APIC_irq(irq); - spin_unlock_irqrestore(&ioapic_lock, flags); -} - -static void clear_IO_APIC_pin(unsigned int apic, unsigned int pin) -{ - struct IO_APIC_route_entry entry; - unsigned long flags; - - /* Check delivery_mode to be sure we're not clearing an SMI pin */ - spin_lock_irqsave(&ioapic_lock, flags); - *(((int*)&entry) + 0) = io_apic_read(apic, 0x10 + 2 * pin); - *(((int*)&...
2007 Apr 18
2
refactoring io_apic.c
...sk_IO_APIC_irq(irq); - spin_unlock_irqrestore(&ioapic_lock, flags); -} - -static void unmask_IO_APIC_irq (unsigned int irq) -{ - unsigned long flags; - - spin_lock_irqsave(&ioapic_lock, flags); - __unmask_IO_APIC_irq(irq); - spin_unlock_irqrestore(&ioapic_lock, flags); -} - -static void clear_IO_APIC_pin(unsigned int apic, unsigned int pin) -{ - struct IO_APIC_route_entry entry; - unsigned long flags; - - /* Check delivery_mode to be sure we're not clearing an SMI pin */ - spin_lock_irqsave(&ioapic_lock, flags); - *(((int*)&entry) + 0) = io_apic_read(apic, 0x10 + 2 * pin); - *(((int*)&...
2011 May 09
1
Bug#625438: [PATCH] xen: ioapic: avoid gcc 4.6 warnings about uninitialised variables
...- __io_apic_write(apic, 0x10+2*pin, *(((int *)&entry)+0)); - spin_unlock_irqrestore(&ioapic_lock, flags); + ioapic_write_entry(apic, pin, 1, ioapic_entries[apic][pin]); } return 0; @@ -338,18 +370,10 @@ static void eoi_IO_APIC_irq(unsigned int #define clear_IO_APIC_pin_raw(a,p) __clear_IO_APIC_pin(a,p,1) static void __clear_IO_APIC_pin(unsigned int apic, unsigned int pin, int raw) { - unsigned int (*read)(unsigned int, unsigned int) - = raw ? __io_apic_read : io_apic_read; - void (*write)(unsigned int, unsigned int, unsigned int) - = raw ? _...
2011 May 09
1
Bug#625438: [PATCH] xen: ioapic: avoid gcc 4.6 warnings about uninitialised variables
...- __io_apic_write(apic, 0x10+2*pin, *(((int *)&entry)+0)); - spin_unlock_irqrestore(&ioapic_lock, flags); + ioapic_write_entry(apic, pin, 1, ioapic_entries[apic][pin]); } return 0; @@ -338,18 +370,10 @@ static void eoi_IO_APIC_irq(unsigned int #define clear_IO_APIC_pin_raw(a,p) __clear_IO_APIC_pin(a,p,1) static void __clear_IO_APIC_pin(unsigned int apic, unsigned int pin, int raw) { - unsigned int (*read)(unsigned int, unsigned int) - = raw ? __io_apic_read : io_apic_read; - void (*write)(unsigned int, unsigned int, unsigned int) - = raw ? _...
2017 Feb 06
1
[PATCH] x86/paravirt: Avoid setting IF flag, if not necessary
Setting the IF flag can cause an VM exit. So we should avoid touching the IF flag until absolutely necessary. This patch change the way the paravirt arch_local_irq_restore() works by checking the previous flags value and call arch_local_irq_enable() only if the IF flag was set previously. On a 32 vCPUs KVM guest running the AIM7 five-sec workload, the performance increased slightly from 302136.32
2017 Feb 06
1
[PATCH] x86/paravirt: Avoid setting IF flag, if not necessary
Setting the IF flag can cause an VM exit. So we should avoid touching the IF flag until absolutely necessary. This patch change the way the paravirt arch_local_irq_restore() works by checking the previous flags value and call arch_local_irq_enable() only if the IF flag was set previously. On a 32 vCPUs KVM guest running the AIM7 five-sec workload, the performance increased slightly from 302136.32