kvm.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Gleb Natapov <gleb@redhat.com>
To: Avi Kivity <avi@redhat.com>
Cc: kvm@vger.kernel.org
Subject: Re: [PATCH] Move irq sharing information to irqchip level.
Date: Fri, 21 Aug 2009 21:16:38 +0300	[thread overview]
Message-ID: <20090821181638.GA30248@redhat.com> (raw)
In-Reply-To: <4A892473.9010000@redhat.com>

On Mon, Aug 17, 2009 at 12:35:47PM +0300, Avi Kivity wrote:
> On 08/13/2009 08:19 PM, Gleb Natapov wrote:
> >This removes assumptions that max GSIs is smaller than number of pins.
> >Sharing is tracked on pin level not GSI level.
> >
> >Signed-off-by: Gleb Natapov<gleb@redhat.com>
> >diff --git a/arch/x86/include/asm/kvm_host.h b/arch/x86/include/asm/kvm_host.h
> >index b17d845..4c15bdd 100644
> >--- a/arch/x86/include/asm/kvm_host.h
> >+++ b/arch/x86/include/asm/kvm_host.h
> >@@ -413,7 +413,6 @@ struct kvm_arch{
> >  	gpa_t ept_identity_map_addr;
> >
> >  	unsigned long irq_sources_bitmap;
> >-	unsigned long irq_states[KVM_IOAPIC_NUM_PINS];
> >  	u64 vm_init_tsc;
> >  };
> >
> >diff --git a/arch/x86/kvm/irq.h b/arch/x86/kvm/irq.h
> >index 7d6058a..c025a23 100644
> >--- a/arch/x86/kvm/irq.h
> >+++ b/arch/x86/kvm/irq.h
> >@@ -71,6 +71,7 @@ struct kvm_pic {
> >  	int output;		/* intr from master PIC */
> >  	struct kvm_io_device dev;
> >  	void (*ack_notifier)(void *opaque, int irq);
> >+	unsigned long irq_states[16];
> >  };
> >
> 
> I think it's cleaner to move this into the routing table to avoid
> duplication.  Currently there is no object which is unique to a gsi,
> but after your array patch, it can be placed next to the hlist_head.
> 
The problem is that at this level it is not known if GSI is MSI or not.
Current code dials with this by arbitrary assuming that GSI is MSI if it
is greater then KVM_IOAPIC_NUM_PINS, but this is not enforced when
routing table is installed and userspace is free to use any GSI as MSI.
Of cause this problem would not exist if MSIs were not linked to GSIs
in the first place.

The code duplication is very small (one line of code) and logically it
is more correct to track duplications at irqchip level. Theoretically
GSI may be shared when PIC is used and not shared when IOAPIC is used.

--
			Gleb.

  reply	other threads:[~2009-08-21 18:16 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-08-13 17:19 [PATCH] Move irq sharing information to irqchip level Gleb Natapov
2009-08-17  9:35 ` Avi Kivity
2009-08-21 18:16   ` Gleb Natapov [this message]
2009-08-23 11:28     ` Avi Kivity
2009-08-23 11:36       ` Gleb Natapov
2009-08-23 11:46         ` Avi Kivity
2009-08-23 11:56           ` Gleb Natapov
2009-08-23 12:02             ` Avi Kivity

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20090821181638.GA30248@redhat.com \
    --to=gleb@redhat.com \
    --cc=avi@redhat.com \
    --cc=kvm@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).