VMX: inject high priority interrupts first
PATCH 1/1 VMX: inject high priority interrupts first
From 2e80a9eb15769443716ebd87eb2567cd0de9c84e Mon Sep 17 00:00:00 2001
From: Dor Laor <dor.laor-atKUWr5tajBWk0Htik3J/[email protected]>
Date: Thu, 13 Dec 2007 15:07:08 +0200
Subject: [PATCH] This patch changes the order in which interrupts are injected when the
in-kernel APIC is disabled. Now the IRQ with the highest priority is
injected
first. Noted by Joerg Roedel for SVM.
--- drivers/kvm/vmx.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-)
drivers/kvm/vmx.c +0 -0
@@ -1736,8 +1736,8 @@ static void vmx_inject_irq(struct kvm_vcpu *vcpu,
int irq)
static void kvm_do_inject_irq(struct kvm_vcpu *vcpu) {
- int word_index = __ffs(vcpu->irq_summary);
- int bit_index = __ffs(vcpu->irq_pending[word_index]);
+ int word_index = __fls(vcpu->irq_summary);
+ int bit_index = __fls(vcpu->irq_pending[word_index]);
int irq = word_index * BITS_PER_LONG + bit_index;
clear_bit(bit_index, &vcpu->irq_pending[word_index]);Signature · 9 lines
1.5.3.3 ------------------------------------------------------------------------- SF.Net email is sponsored by: Check out the new SourceForge.net Marketplace. It's the best place to buy or sell services for just about anything Open Source. http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace
A message that is not in the archive (sent off-list or not yet received): 47613102.1020200-atKUWr5tajBWk0Htik3J/[email protected]
This is not necessary, vector doesn;t mean priority.
Remember I ever had a talk with Avi that user level irqchip could only support one vector pending in kernel like you mentioned too. On the other hand, if we have multiple pending vectors, we will lose priority. The point here is that vector doesn;t stand for priority for example slave PIC has higher priority than IRQ3-7 of master PIC. Using ffs or fls doesn;t matter here.
But I think we'd better clean the code to just use pending_vector instead of bitmap to reduce those kind of unnecessary bit scan/set/clear etc. Eddie
Quoted 37 lines
-----Original Message-----
From: kvm-devel-bounces-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org [mailto:kvm-devel-bounces-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org] On Behalf Of Dor Laor
Sent: 2007年12月13日 21:18
To: kvm-devel
Subject: [kvm-devel] [PATCH] VMX: inject high priority interrupts firstFrom
2e80a9eb15769443716ebd87eb2567cd0de9c84eMon Sep 17 00:00:00 2001
From: Dor Laor <dor.laor-atKUWr5tajBWk0Htik3J/[email protected]>
Date: Thu, 13 Dec 2007 15:07:08 +0200
Subject: [PATCH] This patch changes the order in which interrupts are injected when the
in-kernel APIC is disabled. Now the IRQ with the highest priority is injected
first. Noted by Joerg Roedel for SVM.---
drivers/kvm/vmx.c| 4 ++--1 files changed, 2 insertions(+), 2 deletions(-)drivers/kvm/vmx.c +2
-2@@ -1736,8 +1736,8 @@ static void vmx_inject_irq(struct kvm_vcpu *vcpu, int irq)static void kvm_do_inject_irq (struct kvm_vcpu *vcpu) { -int word_index =__ffs (vcpu->irq_summary); -int bit_index =__ffs (vcpu->irq_pending[word_index]); +int word_index =__fls (vcpu->irq_summary); +int bit_index =__fls (vcpu->irq_pending[word_index]);int irq = word_index *BITS_PER_LONG + bit_index;
Quoted 18 lines
clear_bit(bit_index, &vcpu->irq_pending[word_index]);Signature · 15 lines
1.5.3.3 --------------------------------------------------------------- ---------- SF.Net email is sponsored by: Check out the new SourceForge.net Marketplace. It's the best place to buy or sell services for just about anything Open Source. http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.ne t/marketplace _______________________________________________ kvm-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/kvm-devel
-------------------------------------------------------------------------
SF.Net email is sponsored by:
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services
for just about anything Open Source.
http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace
_______________________________________________
kvm-devel mailing list [email protected]
https://lists.sourceforge.net/lists/listinfo/kvm-devel
A message that is not in the archive (sent off-list or not yet received): 10EA09EFD8728347A513008B6B0DA77A0281F361-wq7ZOvIWXbNpB2pF5aRoyrfspsVTdybXVpNB7YpNyf8@public.gmane.org
Quoted 9 lines · Eddie
This is not necessary, vector doesn;t mean priority.
Remember I ever had a talk with Avi that user level irqchip could only support one vector pending in kernel like you mentioned too. On the other hand, if we have multiple pending vectors, we will lose priority. The point here is that vector doesn;t stand for priority for example slave PIC has higher priority than IRQ3-7 of master PIC. Using ffs or fls doesn;t matter here.
Yes.
Quoted 3 lines
But I think we'd better clean the code to just use
pending_vectorinstead of bitmap to reduce those kind of unnecessary bit scan/set/clear etc.
That's my plan; use a pending vector and put it in subarch independent code.
Signature · 1 line
error compiling committee.c: too many arguments to function
-------------------------------------------------------------------------
SF.Net email is sponsored by:
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services
for just about anything Open Source.
http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace
_______________________________________________
kvm-devel mailing list [email protected]
https://lists.sourceforge.net/lists/listinfo/kvm-devel