This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
Home Products Support Community News


Re: [Xen-devel] [PATCH 0/3] xen: msi support for Xen dom0

To: Jeremy Fitzhardinge <jeremy@xxxxxxxx>
Subject: Re: [Xen-devel] [PATCH 0/3] xen: msi support for Xen dom0
From: Qing He <qing.he@xxxxxxxxx>
Date: Wed, 19 Aug 2009 09:45:52 +0800
Cc: "xen-devel@xxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxx>, "Jiang, Yunhong" <yunhong.jiang@xxxxxxxxx>
Delivery-date: Tue, 18 Aug 2009 18:42:04 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <4A8B0DFA.1020002@xxxxxxxx>
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
References: <1250574314-19600-1-git-send-email-qing.he@xxxxxxxxx> <4A8B0DFA.1020002@xxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Mutt/1.5.17+20080114 (2008-01-14)
On Wed, 2009-08-19 at 04:24 +0800, Jeremy Fitzhardinge wrote:
> On 08/17/09 22:45, Qing He wrote:
> > This patch set adds support for msi in Xen dom0. It's based on the
> > pci notifier patches of Weidong Han (on rebase/pci branch) and
> > contains the following 3 patches.
> >
> >     [PATCH 1/3] xen: make pci notifier work with booting devices
> >     [PATCH 2/3] xen: add msi support for dom0
> >     [PATCH 3/3] xen: re-enable msi (effectively revert bf89bc29)
> >   
> Thanks, I've applied these to rebase/dom0/msi for now.   I haven't
> tested them (or really compiled them) yet, so please look at the branch
> and see that everything's OK.
> > One of the problem left is how to save/restore MSI across S3. Since
> > pci_restore_msi_state() now doesn't have any arch specific hook, the
> > code in arch/x86/ won't get a chance to run during S3 wakeup, so
> > write_msi_msg() is called instead of xen specific functions. One of
> > the possible solutions (and which I prefer) is to add something like
> > arch_pci_restore_msi, but that involves slightly changing
> > drivers/pci/msi.c, which probably needs more thinking and discussion.
> >
> > An alternative is to trap and emulate any access to pci configuration
> > space. In that case, nothing in dom0 needs changing, and write_msi_msg
> > can be reused, but considerable logic may need to change in Xen
> > hypervisor.
> >   
> The approach taken by 2/3 is not really going to fly upstream, and is
> broadly incompatible with my intended design for interrupt handling,
> which is to decouple the Xen/dom0 aspects of interrupt handling from the
> apic/ioapic code entirely.  I don't know what impact this will have on
> MSI support.  I'd appreciate it if you could look at the
> rebase/dom0/new-interrupt-routing branch and comment on it.

I'll have a look at it first.

> I'm not actually sure this approach is going to work; so far it just
> locks up the machine shortly after ACPI initialization.  Trapping an
> emulating (IO-)APIC accesses may well turn out to be simpler (on the
> Linux side, at least) and more robust in the end...

MSI by nature is vector based, but xen uses pirq as the interface to
communicate with dom0, 2/3 is actually used to handle the pirq thing
instead of solely vectors.

So trapping and emulating for msi will first need a decoupling of that,
allowing dom0 to use only vector to index its msi. This requires changing
of the current pirq based xen irq, which seems quite annoying at Xen side,
especially if per-cpu vector is in.


>     J

Xen-devel mailing list