All of lore.kernel.org
 help / color / mirror / Atom feed
From: Rusty Russell <rusty@rustcorp.com.au>
To: Pawel Moll <pawel.moll@arm.com>,
	Peter Maydell <peter.maydell@linaro.org>
Cc: virtualization@lists.linux-foundation.org,
	"KONRAD Frédéric" <fred.konrad@greensocs.com>
Subject: Re: what should a virtio-mmio transport without a backend look like?
Date: Mon, 01 Jul 2013 09:37:59 +0930	[thread overview]
Message-ID: <87mwq7ta5c.fsf@rustcorp.com.au> (raw)
In-Reply-To: <1371726501.3231.22.camel@hornet>

Pawel Moll <pawel.moll@arm.com> writes:
> On Thu, 2013-06-20 at 11:29 +0100, Peter Maydell wrote:
>> I'm (finally) trying to add virtio-mmio support properly to
>> QEMU now Fred has put all the refactoring foundations in place.
>> 
>> 1. One question I've run into is: what should a virtio-mmio transport
>> with no backend look like to the guest OS? The spec as written
>> seems to assume that there's always some backend present.
>> (The idea is that QEMU might just always instantiate say 8
>> mmio transports, and then whether they actually have a
>> blk/net/whatever backend depends on user options).
>> 
>> It looks as if the current linux driver insists (if it sees a
>> device tree node) that the MagicValue register at least is
>> correct (otherwise it complains). So one possibility would
>> be "MagicValue/Version/VendorID must read as usual, DeviceID
>> should read as some special "nothing here" value (0?), everything
>> else can RAZ/WI".
>> 
>> We could just say "all RAZ/WI", since this merely causes Linux
>> currently to print a warning about the bad magic number, and
>> then subsequently make Linux less alarmist about the zero.
>> 
>> We could also define that the transport should look as if
>> there's some sort of 'null' backend plugged in. This would
>> be more effort on the qemu side though, I think.
>
> There are two aspects of the problem:
>
> 1. Current implementation of the virtio core won't do anything to the
> device if the device/vendor IDs don't match with any of the drivers.
>
> 2. All that current virtio-mmio implementation will do is:
> * read magic
> * read device & vendor id
> * write page size
>
> So, a device behaving as you mentioned - magic ok, all register read as
> zero, all writes ignored, will do exactly what you want.
>
> Now, as to mandating this:
>
> 1. We could mandate device ID 0 (zero) as "NOOP". This is in line with
> current ID numbers allocation, just needs formalizing at the top level
> of the spec.

FWIW, I'm happy to bless 0 as "no device present".

Cheers,
Rusty.

      parent reply	other threads:[~2013-07-01  0:07 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <CAFEAcA9qCUQLZho8wJvewYJ0AEhDBc37_LpZWs8XBV1U7RVZgA@mail.gmail.com>
2013-06-20 11:08 ` what should a virtio-mmio transport without a backend look like? Pawel Moll
2013-06-20 12:58   ` Christopher Covington
2013-06-21 15:23     ` Peter Maydell
2013-06-21 16:02       ` Christopher Covington
2013-06-21 16:41         ` Peter Maydell
2013-06-21 16:47           ` Pawel Moll
2013-06-21 17:01             ` Peter Maydell
2013-06-21 18:01               ` Christopher Covington
2013-06-21 18:28                 ` Peter Maydell
2013-06-21 18:45                   ` Christopher Covington
2013-06-22 10:51                     ` Peter Maydell
2013-06-24 12:26                       ` Christopher Covington
2013-06-24 12:57                         ` Peter Maydell
2013-06-21 20:13                   ` Paolo Bonzini
2013-07-01  0:07   ` Rusty Russell [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=87mwq7ta5c.fsf@rustcorp.com.au \
    --to=rusty@rustcorp.com.au \
    --cc=fred.konrad@greensocs.com \
    --cc=pawel.moll@arm.com \
    --cc=peter.maydell@linaro.org \
    --cc=virtualization@lists.linux-foundation.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 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.