qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Laszlo Ersek <lersek@redhat.com>
To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>,
	Kevin O'Connor <kevin@koconnor.net>
Cc: Kevin Wolf <kwolf@redhat.com>,
	Matt Fleming <matt.fleming@intel.com>,
	Ian Campbell <ian.campbell@citrix.com>,
	qemu-block@nongnu.org, Ard Biesheuvel <ard.biesheuvel@linaro.org>,
	"qemu-devel@nongnu.org" <qemu-devel@nongnu.org>,
	"xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
	Fabio Fantoni <fabio.fantoni@m2r.biz>,
	Anthony.Perard@citrix.com, John Snow <jsnow@redhat.com>
Subject: Re: [Qemu-devel] [Xen-devel] Question about xen disk unplug support for ahci missed in qemu
Date: Fri, 16 Oct 2015 11:21:45 +0200	[thread overview]
Message-ID: <5620C1A9.2000005@redhat.com> (raw)
In-Reply-To: <alpine.DEB.2.02.1510161002510.27957@kaball.uk.xensource.com>

On 10/16/15 11:06, Stefano Stabellini wrote:
> On Thu, 15 Oct 2015, Kevin O'Connor wrote:
>> On Fri, Oct 16, 2015 at 01:10:54AM +0200, Laszlo Ersek wrote:
>>> On 10/14/15 13:27, Ian Campbell wrote:
>>>> On Wed, 2015-10-14 at 12:06 +0100, Stefano Stabellini wrote:
>>>>>> Can't you just teach SeaBIOS how to deal with your PV disks and then
>>>>>> only add that to your VM and forget about IDE/AHCI? I mean, that's how
>>>>>> it's done for virtio-blk, and it doesn't involve any insanities like
>>>>>> ripping out non-hotpluggable devices.
>>>>>
>>>>> Teaching SeaBIOS to deal with PV disks can be done, in fact we already
>>>>> support PV disks in OVMF. It is possible to boot Windows with OVMF
>>>>> without any IDE disks (patch pending for libxl to create a VM without
>>>>> emulated IDE disks).
>>>>
>>>> One stumbling block in the past has been how to know when the PV drivers in
>>>> the BIOS are no longer required, such that the ring can be torn down and/or
>>>> the connection etc handed over to the OS driver.
>> [...]
>>>> AFAIK the BIOS interfaces do not have anything as reliable as that.
>>>>
>>>> How does virtio deal with this in the BIOS case?
>>>
>>> It doesn't, as far as I can tell.
>>>
>>> I don't think it has to, though! On a BIOS box, you can always boot DOS,
>>> or another operating system that continues to use the BIOS interfaces
>>> forever. (Same as if you never call ExitBootServices() in UEFI.)
>>>
>>> Given that no starter pistol gets fired between the firmware and the OS
>>> on such a platform, they must always respect each other. I guess this
>>> could occur through the E820 map, or some such.
>>
>> One can use the "ACPI enable" SMI event to detect this if they really
>> wanted to.  In SeaBIOS one could do this from
>> src/fw/smm.c:handle_smi() - however, no other drivers need this
>> notification today and it would be a bit ugly to have to handle it
>> from an SMI.  (Assuming Xen were to support SMIs.)
>>
>>> No clue in what kind of E820 memory SeaBIOS allocates the virtio rings,
>>> but I guess the Linux kernel stays away from those areas until it's past
>>> device probing and binding.
>>
>> In SeaBIOS, the virtio memory is allocated from reserved memory.  (See
>> the memalign_high() call in src/hw/virtio-pci.c - the "high" memory
>> zone is taken from reserved memory:
>> http://seabios.org/Memory_Model#Memory_available_during_initialization
>> )
>>
>> What's the reason for the "stumbling block" that requires the BIOS to
>> tear down the Xen ring prior to the OS being able to replace it?  The
>> BIOS disk calls are all synchronous, so the ring wont be active when
>> the OS brings up its own ring.  Is there some low-level interaction
>> that prevents the OS from just resetting the ring prior to enabling
>> it?
> 
> Xen only exports one PV disk interface for each disk to the guest, and
> each PV interface only supports one frontend -- only SeaBIOS or the OS
> can be connected to one PV disk, not both. In the case of OVMF, we
> handle that by disconnecting the PV frontend in OVMF when
> ExitBootServices is called, so that the OS driver can reconnect later.

Does the XenBus protocol support a device reset operation, regardless of
what state the device is currently in? (I don't remember all the state
transitions any longer, sorry.)

Thanks
Laszlo

  reply	other threads:[~2015-10-16  9:21 UTC|newest]

Thread overview: 52+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-10-13 15:55 [Qemu-devel] Question about xen disk unplug support for ahci missed in qemu Fabio Fantoni
2015-10-13 16:45 ` John Snow
2015-10-13 17:10   ` Stefano Stabellini
2015-10-14  9:47     ` Kevin Wolf
2015-10-14 11:06       ` Stefano Stabellini
2015-10-14 11:27         ` [Qemu-devel] [Xen-devel] " Ian Campbell
2015-10-15 23:10           ` Laszlo Ersek
2015-10-16  2:38             ` Kevin O'Connor
2015-10-16  9:06               ` Stefano Stabellini
2015-10-16  9:21                 ` Laszlo Ersek [this message]
2015-10-16  9:33                   ` Stefano Stabellini
2015-10-16  9:34                 ` Ian Campbell
2015-10-16 13:03                 ` Kevin O'Connor
2015-10-16  9:13               ` Laszlo Ersek
2015-10-14 11:32         ` [Qemu-devel] " Kevin Wolf
2015-10-14 11:44           ` Stefano Stabellini
2015-10-15 16:27         ` Fabio Fantoni
2015-10-15 18:02           ` Anthony PERARD
2015-10-16  8:32             ` Fabio Fantoni
2015-10-16 10:13               ` Anthony PERARD
2015-10-16 10:23                 ` Fabio Fantoni
2015-10-16 10:47                   ` Stefano Stabellini
2015-10-16 11:34                     ` Fabio Fantoni
2015-10-16 19:09                       ` Laszlo Ersek
2015-10-19 20:32                         ` Laszlo Ersek
2015-10-20 11:59                           ` Stefano Stabellini
2015-10-20 12:45                             ` Laszlo Ersek
2015-10-20 14:52                               ` Stefano Stabellini
2015-10-14 11:11       ` Fabio Fantoni
2015-10-14 12:48         ` Paul Durrant
2015-10-15 23:35           ` Laszlo Ersek
2015-10-16 14:04           ` Kevin Wolf
2015-10-16 14:24             ` Paul Durrant
2015-10-16 15:02               ` Kevin Wolf
2015-10-16 15:10                 ` Paul Durrant
2015-10-16 16:11                   ` Kevin Wolf
2015-10-16 16:20                     ` Paul Durrant
2015-10-16 16:42                       ` Kevin Wolf
2015-10-16 16:53                         ` Paul Durrant
2015-10-16 17:03                           ` Kevin Wolf
2015-10-19 13:42                           ` Fabio Fantoni
2015-10-16 16:53                       ` Eric Blake
2015-10-16 20:40     ` John Snow
2015-10-19 10:18       ` Stefano Stabellini
2015-10-19 11:27         ` Gerd Hoffmann
2015-10-19 11:44           ` Stefano Stabellini
2015-10-19 16:54             ` John Snow
2015-10-19 16:57               ` Stefano Stabellini
2015-10-19 18:29                 ` Fabio Fantoni
2015-10-19 19:55                   ` Laszlo Ersek
2015-10-19 14:17         ` Fabio Fantoni
2015-10-19 14:57           ` Stefano Stabellini

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=5620C1A9.2000005@redhat.com \
    --to=lersek@redhat.com \
    --cc=Anthony.Perard@citrix.com \
    --cc=ard.biesheuvel@linaro.org \
    --cc=fabio.fantoni@m2r.biz \
    --cc=ian.campbell@citrix.com \
    --cc=jsnow@redhat.com \
    --cc=kevin@koconnor.net \
    --cc=kwolf@redhat.com \
    --cc=matt.fleming@intel.com \
    --cc=qemu-block@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=stefano.stabellini@eu.citrix.com \
    --cc=xen-devel@lists.xen.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).