xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
From: Ian Campbell <ijc@hellion.org.uk>
To: Jan Beulich <JBeulich@suse.com>,
	Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Cc: wei.liu2@citrix.com, seabios@seabios.org,
	"Huangpeng (Peter)" <peter.huangpeng@huawei.com>,
	xen-devel <xen-devel@lists.xen.org>,
	kevin@koconnor.net, Shannon Zhao <zhaoshenglong@huawei.com>,
	keir@xen.org, evil.dani@gmail.com,
	"Jinjian (Ken)" <jinjian@huawei.com>
Subject: Re: [SeaBIOS] Xen PV block device support in Seabios
Date: Wed, 16 Mar 2016 13:41:53 +0000	[thread overview]
Message-ID: <1458135713.30744.16.camel__35730.8701765307$1458135803$gmane$org@hellion.org.uk> (raw)
In-Reply-To: <56E96EB602000078000DD270@prv-mh.provo.novell.com>

On Wed, 2016-03-16 at 07:33 -0600, Jan Beulich wrote:
> > 
> > > 
> > > > 
> > > > On 16.03.16 at 14:15, <konrad.wilk@oracle.com> wrote:
> > On Wed, Mar 16, 2016 at 12:22:32PM +0000, Ian Campbell wrote:
> > > 
> > > On Wed, 2016-03-16 at 20:13 +0800, Shannon Zhao wrote:
> > > > 
> > > > 
> > > > On 2016/3/16 19:20, Ian Campbell wrote:
> > > > > 
> > > > > 
> > > > > (nb, my citrix.com email is no longer valid)
> > > > > On Wed, 2016-03-16 at 11:33 +0800, Shannon Zhao wrote:
> > > > > > 
> > > > > > 
> > > > > > > 
> > > > > > > 
> > > > > > > Hi,
> > > > > > > 
> > > > > > > I noticed there are some efforts to add Xen PV block
> > > > > > > device support in
> > > > > > > Seabios in a GSoC project and there is a wiki page [1]
> > > > > > > for it. I found
> > > > > > > some patches [2] to add Xenstore R/W support for Seabios.
> > > > > > > But I didn't
> > > > > > > find the patches to add PV block device driver in
> > > > > > > Seabios.
> > > > > > > 
> > > > > > > If you know please tell me where I can find these
> > > > > > > patches. And I noticed
> > > > > > > that the patches [2] and this GSoC project work didn't
> > > > > > > get applied to
> > > > > > > Seabios eventually, is there any reason? Does it mean
> > > > > > > that there are
> > > > > > > some difficulties to support Xen PV block device in
> > > > > > > Seabios?
> > > > > This work was never finished, IIRC (and it was a long time
> > > > > ago so this
> > > > > might be a faulty recollection) the main stumbling block was
> > > > > that there
> > > > > is no reasonable BIOS level event which could be used to tear
> > > > > down the
> > > > > PV interfaces in order to hand them over to the OS (unlike,
> > > > > say, EFI
> > > > > where there is ExitBootServices).
> > > > > 
> > > > Ian, thanks for your reply! It looks like the problem is how
> > > > and when to
> > > > clear PV resources in seabios before handing over to guest. But
> > > > I wonder
> > > > why virtio works in seabios. Does seabios using virtio need to
> > > > clear
> > > > things like vrings? Or seabios doesn't clear the things and
> > > > guest just
> > > > covers the configuration with new values?
> > > I think virtio covered this use case from day 1 by having the
> > > reset,
> > > but also by not having a xenstore ring etc.
> > > 
> > > > 
> > > > > 
> > > > > So making this work would require something like a complete
> > > > > set of
> > > > > parallel PV infrastructure (devices, corresponding xenstore
> > > > > nodes,
> > > > > grant table) for the use of the BIOS firmware, or perhaps a
> > > > > (tricky
> > > > > to
> > > > > retrofit in a backwards compatible manner) PV facility for
> > > > > the
> > > > > guest to
> > > > > reset everything before starting to use them.
> > > > > 
> > > > Like guest front-end driver checks if the backend state is
> > > > XenbusStateInitWait, if not, tell the backend to reset to
> > > > XenbusStateInitWait state?
> > > Before it can do this the guest needs to recover the xenbus ring
> > > (which
> > > was used by SeaBIOS) into a usable state -- so you need to be
> > > thinking
> > > at least one layer further down before you can start to think
> > > about
> > > individual devices, and don't forget the grant table (which may
> > > have in
> > > use entries from the BIOS) and event channels (which the BIOS may
> > > have
> > > setup).
> > > 
> > > I'm afraid I don't have any concrete answer for what exactly
> > > needs to
> > > be done to make this work, but I do know that it is a (IMHO very)
> > > non-
> > > trivial amount of investigation, prototyping and coding.
> > But it does work with OVMF. That is it implements the full PV
> > driver
> > for block. So it surely is possible.
> And grub2, iirc.

Both of those have a defined handover point at which they can
preemptively reset things for the guest (ExitBootServices for UEFI and
right before calling the kernel for grub).

A BIOS doesn't have that, an OS could make any number of INT calls at
any time after the BIOS hands over control and there is no "I'm done
now" INT which the OS could use to ask for a reset.

Ian.

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

      reply	other threads:[~2016-03-16 13:41 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-03-16  3:33 Xen PV block device support in Seabios Shannon Zhao
2016-03-16 10:39 ` Wei Liu
2016-03-16 11:20 ` [SeaBIOS] " Ian Campbell
2016-03-16 12:13   ` Shannon Zhao
2016-03-16 12:22     ` Ian Campbell
     [not found]     ` <1458130952.30744.14.camel@hellion.org.uk>
2016-03-16 12:31       ` Shannon Zhao
2016-03-16 12:58       ` Gerd Hoffmann
2016-03-16 13:15       ` Konrad Rzeszutek Wilk
2016-03-16 13:33         ` Jan Beulich
2016-03-16 13:41           ` Ian Campbell [this message]

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='1458135713.30744.16.camel__35730.8701765307$1458135803$gmane$org@hellion.org.uk' \
    --to=ijc@hellion.org.uk \
    --cc=JBeulich@suse.com \
    --cc=evil.dani@gmail.com \
    --cc=jinjian@huawei.com \
    --cc=keir@xen.org \
    --cc=kevin@koconnor.net \
    --cc=konrad.wilk@oracle.com \
    --cc=peter.huangpeng@huawei.com \
    --cc=seabios@seabios.org \
    --cc=wei.liu2@citrix.com \
    --cc=xen-devel@lists.xen.org \
    --cc=zhaoshenglong@huawei.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 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).