xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
* Xen PV block device support in Seabios
@ 2016-03-16  3:33 Shannon Zhao
  2016-03-16 10:39 ` Wei Liu
  2016-03-16 11:20 ` [SeaBIOS] " Ian Campbell
  0 siblings, 2 replies; 10+ messages in thread
From: Shannon Zhao @ 2016-03-16  3:33 UTC (permalink / raw)
  To: Jan Beulich, evil.dani, kevin, keir, wei.liu2, Ian Campbell
  Cc: Jinjian (Ken), seabios, Huangpeng (Peter), xen-devel

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?

Thanks in advance!

[1] http://wiki.xenproject.org/wiki/SeaBIOS
[2] http://www.seabios.org/pipermail/seabios/2011-August/002214.html

-- 
Shannon


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

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Xen PV block device support in Seabios
  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
  1 sibling, 0 replies; 10+ messages in thread
From: Wei Liu @ 2016-03-16 10:39 UTC (permalink / raw)
  To: Shannon Zhao
  Cc: wei.liu2, Ian Campbell, seabios, Huangpeng (Peter),
	xen-devel, kevin, Jan Beulich, keir, evil.dani, Jinjian (Ken)

Hello

On Wed, Mar 16, 2016 at 11:33:02AM +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?
> 

On the wiki page there seems to be some clues on why it is not implemented --
there are issues with real mode. But then everything was way before my
formal involvement with Xen so I don't really know all the details.

Wei.

> Thanks in advance!
> 
> [1] http://wiki.xenproject.org/wiki/SeaBIOS
> [2] http://www.seabios.org/pipermail/seabios/2011-August/002214.html
> 
> -- 
> Shannon
> 

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

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [SeaBIOS] Xen PV block device support in Seabios
  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 ` Ian Campbell
  2016-03-16 12:13   ` Shannon Zhao
  1 sibling, 1 reply; 10+ messages in thread
From: Ian Campbell @ 2016-03-16 11:20 UTC (permalink / raw)
  To: Shannon Zhao, Jan Beulich, evil.dani, kevin, keir, wei.liu2,
	Ian Campbell
  Cc: Jinjian (Ken), seabios, Huangpeng (Peter), xen-devel

(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).

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.

Ultimately it didn't seem worth the effort to engineer all that given
that mostly the same aims (faster PV assisted boot) could be achieved
by using UEFI for most modern OSes.

Ian.

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

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [SeaBIOS] Xen PV block device support in Seabios
  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>
  0 siblings, 2 replies; 10+ messages in thread
From: Shannon Zhao @ 2016-03-16 12:13 UTC (permalink / raw)
  To: Ian Campbell, evil.dani, kevin, keir, wei.liu2
  Cc: Jinjian (Ken), seabios, Huangpeng (Peter), xen-devel



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?

> 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?

> Ultimately it didn't seem worth the effort to engineer all that given
> that mostly the same aims (faster PV assisted boot) could be achieved
> by using UEFI for most modern OSes.
Yes, for modern OSes it could UEFI. But for some old OSes or some
existing VMs, if we want to use PV assisted boot, it needs to add this
in seabios.

Thanks,
-- 
Shannon


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

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [SeaBIOS] Xen PV block device support in Seabios
  2016-03-16 12:13   ` Shannon Zhao
@ 2016-03-16 12:22     ` Ian Campbell
       [not found]     ` <1458130952.30744.14.camel@hellion.org.uk>
  1 sibling, 0 replies; 10+ messages in thread
From: Ian Campbell @ 2016-03-16 12:22 UTC (permalink / raw)
  To: Shannon Zhao, evil.dani, kevin, keir, wei.liu2
  Cc: Jinjian (Ken), seabios, Huangpeng (Peter), xen-devel

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.

> > Ultimately it didn't seem worth the effort to engineer all that
> > given
> > that mostly the same aims (faster PV assisted boot) could be
> > achieved
> > by using UEFI for most modern OSes.
> Yes, for modern OSes it could UEFI. But for some old OSes or some
> existing VMs, if we want to use PV assisted boot, it needs to add this
> in seabios.

Sure, it's a completely reasonable feature to want, but you should be
aware that there are some very non-trivial issue to be resolved, at
which point you need to ask whether it is worth your time and effort.

Ian.

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

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [SeaBIOS] Xen PV block device support in Seabios
       [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
  2 siblings, 0 replies; 10+ messages in thread
From: Shannon Zhao @ 2016-03-16 12:31 UTC (permalink / raw)
  To: Ian Campbell, evil.dani, kevin, keir, wei.liu2
  Cc: Jinjian (Ken), seabios, Huangpeng (Peter), xen-devel



On 2016/3/16 20:22, 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.
> 
>>> > > Ultimately it didn't seem worth the effort to engineer all that
>>> > > given
>>> > > that mostly the same aims (faster PV assisted boot) could be
>>> > > achieved
>>> > > by using UEFI for most modern OSes.
>> > Yes, for modern OSes it could UEFI. But for some old OSes or some
>> > existing VMs, if we want to use PV assisted boot, it needs to add this
>> > in seabios.
> Sure, it's a completely reasonable feature to want, but you should be
> aware that there are some very non-trivial issue to be resolved, at
> which point you need to ask whether it is worth your time and effort.
Hmm, right. I'll think about this. Anyway, thanks a lot!

-- 
Shannon


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

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [SeaBIOS] Xen PV block device support in Seabios
       [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
  2 siblings, 0 replies; 10+ messages in thread
From: Gerd Hoffmann @ 2016-03-16 12:58 UTC (permalink / raw)
  To: Ian Campbell
  Cc: wei.liu2, seabios, Huangpeng (Peter),
	xen-devel, kevin, Shannon Zhao, keir, evil.dani, Jinjian (Ken)

  Hi,

> > 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,

That is correct.  First thing the kernel driver does as part of the
initialization sequence is a reset, to put the device into a known
state, no matter where seabios left it off.

Oh, and of course seabios does the same.  So even in case the virtio
device is in some weird state due to kernel crashing and rebooting
seabios will be able to boot from it without any problems.

cheers,
  Gerd


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

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [SeaBIOS] Xen PV block device support in Seabios
       [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
  2 siblings, 1 reply; 10+ messages in thread
From: Konrad Rzeszutek Wilk @ 2016-03-16 13:15 UTC (permalink / raw)
  To: Ian Campbell
  Cc: wei.liu2, seabios, Huangpeng (Peter),
	xen-devel, kevin, Shannon Zhao, keir, evil.dani, Jinjian (Ken)

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.

Also the hvmloader uses the XenStore mechanism as well..

> 
> > > Ultimately it didn't seem worth the effort to engineer all that
> > > given
> > > that mostly the same aims (faster PV assisted boot) could be
> > > achieved
> > > by using UEFI for most modern OSes.
> > Yes, for modern OSes it could UEFI. But for some old OSes or some
> > existing VMs, if we want to use PV assisted boot, it needs to add this
> > in seabios.
> 
> Sure, it's a completely reasonable feature to want, but you should be
> aware that there are some very non-trivial issue to be resolved, at
> which point you need to ask whether it is worth your time and effort.
> 
> Ian.
> 
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@lists.xen.org
> http://lists.xen.org/xen-devel

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

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [SeaBIOS] Xen PV block device support in Seabios
  2016-03-16 13:15       ` Konrad Rzeszutek Wilk
@ 2016-03-16 13:33         ` Jan Beulich
  2016-03-16 13:41           ` Ian Campbell
  0 siblings, 1 reply; 10+ messages in thread
From: Jan Beulich @ 2016-03-16 13:33 UTC (permalink / raw)
  To: Ian Campbell, Konrad Rzeszutek Wilk
  Cc: wei.liu2, seabios, Huangpeng (Peter),
	xen-devel, kevin, Shannon Zhao, keir, evil.dani, Jinjian (Ken)

>>> 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.

Jan


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

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [SeaBIOS] Xen PV block device support in Seabios
  2016-03-16 13:33         ` Jan Beulich
@ 2016-03-16 13:41           ` Ian Campbell
  0 siblings, 0 replies; 10+ messages in thread
From: Ian Campbell @ 2016-03-16 13:41 UTC (permalink / raw)
  To: Jan Beulich, Konrad Rzeszutek Wilk
  Cc: wei.liu2, seabios, Huangpeng (Peter),
	xen-devel, kevin, Shannon Zhao, keir, evil.dani, Jinjian (Ken)

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

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2016-03-16 13:41 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
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 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).