All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Jan Beulich" <jbeulich@novell.com>
To: Keir Fraser <keir.fraser@eu.citrix.com>
Cc: Yunhong Jiang <yunhong.jiang@intel.com>,
	"xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>
Subject: Re: [PATCH][RFC] Support S3 for MSI interrupt in latest kernel dom0
Date: Wed, 17 Dec 2008 14:47:55 +0000	[thread overview]
Message-ID: <49491F2B.76E4.0078.0@novell.com> (raw)
In-Reply-To: <C56EA0C8.F2A%keir.fraser@eu.citrix.com>

>>> Keir Fraser <keir.fraser@eu.citrix.com> 17.12.08 13:27 >>>
>On 17/12/2008 12:11, "Jiang, Yunhong" <yunhong.jiang@intel.com> wrote:
>
>> In latest kernel, the pci_save_state will not try to save msi/x_state anymore,
>> instead, it will try to restore msi state when resume using kernel's msi data
>> structure. This cause trouble for us, since thoese MSI data structure is
>> meaningless in Xen environment.
>> 
>> Several option to resolve this issue:
>> a) Change the latest kernel (as dom0) to still to save/restore the msi content
>> b) Add a new hypercall, so when dom0 try to restore dom0, it will instruct Xen
>> HV to restore the content based on Xen's MSI data structure
>
>Could Xen remember the MSI state automatically, as it does for IO-APIC
>presumably already? It knows what vectors are routed where at least, even if
>dom0 has to reprogram the PCI device itself.

That is what the map_guest_pirq() re-invocation is intended for - use the
already known (stored) MSI state to re-setup the device accordingly
(after all, msi_compose_msg() only depends on the vector information
to be able to reconstruct address and data fields).

>I'm not sure about option C. I didn't really understand the patch, but it
>smelt like a hack.

It indeed does to a certain degree, and I had recommended to send it to
the list early in case someone (you?) has a better idea to solve the
problem *without* requiring modern Dom0 to deviate more from native
than necessary (in particular, without requiring any teardown during
suspend), which surely is desirable not only for our forward ported kernel,
but also for pv-ops once it gets MSI enabled, and which is also pretty
logical given the statement above on how easily the message is
re-computed, making storing of the message fields across suspend
superfluous.

Jan

  reply	other threads:[~2008-12-17 14:47 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-12-17 12:11 [PATCH][RFC] Support S3 for MSI interrupt in latest kernel dom0 Jiang, Yunhong
2008-12-17 12:27 ` Keir Fraser
2008-12-17 14:47   ` Jan Beulich [this message]
2008-12-17 15:06     ` Keir Fraser
2008-12-17 15:19       ` Jan Beulich
2008-12-17 15:22         ` Keir Fraser
2008-12-17 15:31           ` Jan Beulich
2008-12-17 15:53             ` Keir Fraser
2008-12-18  2:24               ` Jiang, Yunhong
2008-12-18  7:33                 ` Jan Beulich
2008-12-19 10:10                   ` Jiang, Yunhong
2008-12-19 10:29                     ` Jan Beulich
2008-12-19 10:39                       ` Jiang, Yunhong
2008-12-19 10:50                         ` Jan Beulich

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=49491F2B.76E4.0078.0@novell.com \
    --to=jbeulich@novell.com \
    --cc=keir.fraser@eu.citrix.com \
    --cc=xen-devel@lists.xensource.com \
    --cc=yunhong.jiang@intel.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.