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