qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: "Michael S. Tsirkin" <mst@redhat.com>
To: Rusty Russell <rusty@rustcorp.com.au>
Cc: Anthony Liguori <aliguori@us.ibm.com>,
	qemu-devel <qemu-devel@nongnu.org>,
	kvm@vger.kernel.org, virtualization@lists.linux-foundation.org
Subject: Re: [Qemu-devel] Using PCI config space to indicate config location
Date: Fri, 12 Oct 2012 12:02:31 +0200	[thread overview]
Message-ID: <20121012100231.GA32517@redhat.com> (raw)
In-Reply-To: <871uh4587d.fsf@rustcorp.com.au>

On Fri, Oct 12, 2012 at 08:21:50PM +1030, Rusty Russell wrote:
> "Michael S. Tsirkin" <mst@redhat.com> writes:
> > On Fri, Oct 12, 2012 at 08:59:36AM +1030, Rusty Russell wrote:
> >> >> For writes, the standard seems to be a commit latch.  We could abuse the
> >> >> generation count for this: the driver writes to it to commit config
> >> >> changes.
> >> >
> >> > I think this will work. There are a couple of things that bother me:
> >> >
> >> > This assumes read accesses have no side effects, and these are sometimes handy.
> >> > Also the semantics for write aren't very clear to me.
> >> > I guess device must buffer data until generation count write?
> >> > This assumes the device has a buffer to store writes,
> >> > and it must track each byte written. I kind of dislike this
> >> > tracking of accessed bytes. Also, device would need to resolve conflicts
> >> > if any in some device specific way.
> >> 
> >> It should be trivial to implement: you keep a scratch copy of the config
> >> space, and copy it to the master copy when they hit the latch.
> >> 
> >> Implementation of this will show whether I've missed anything here, I
> >> think.
> >
> > What I refer to: what happens if driver does:
> > - write offset 1
> > - write offset 3
> > - hit commit latch
> 
> - nothing
> - nothing
> - effect of offset 1 and offset 3 writes

OK so this means that you also need to track which bytes where written
in order to know to skip byte 2.
This is what I referred to. If instead we ask driver to specify
offset/length explicitly device only needs to remember that.

Not a big deal anyway, just pointing this out.

> Now, since there's nothing published by the *driver* at the moment
> which can't be trivially atomically written, this scheme is overkill
> (sure, it means you could do a byte-at-a-time write to some 4-byte
> field, but why?).
> 
> But perhaps it's overkill: no other bus has this feature, so we'd need a
> feature bit for them anyway in future if we create a device which needs
> such atomicity.
> 
> Cheers,
> Rusty.

  reply	other threads:[~2012-10-12 10:01 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-09-27  0:29 [Qemu-devel] Proposal for virtio standardization Rusty Russell
2012-10-04 18:49 ` Anthony Liguori
2012-10-08  2:21   ` [Qemu-devel] Using PCI config space to indicate config location Rusty Russell
2012-10-08 13:58     ` Anthony Liguori
2012-10-08 14:58       ` Gerd Hoffmann
2012-10-08 15:09         ` Anthony Liguori
2012-10-08 20:13           ` Gerd Hoffmann
2012-10-08 20:55             ` Anthony Liguori
2012-10-08 23:56               ` Rusty Russell
2012-10-09  1:51                 ` Anthony Liguori
2012-10-09  3:16                   ` Rusty Russell
2012-10-09 10:17                     ` Avi Kivity
2012-10-09 14:03                       ` Anthony Liguori
2012-10-09 13:56                     ` Anthony Liguori
2012-10-10  3:44                       ` Rusty Russell
2012-10-10 11:37                         ` Michael S. Tsirkin
2012-10-09 21:09                     ` Jamie Lokier
2012-10-10  3:44                       ` Rusty Russell
2012-10-11  0:08                         ` Rusty Russell
2012-10-09  6:33                   ` Gerd Hoffmann
2012-10-09 15:26                     ` Anthony Liguori
2012-10-09 20:24                       ` Gerd Hoffmann
2012-10-10  2:54                         ` Rusty Russell
2012-10-10 13:36                           ` Anthony Liguori
2012-10-10 13:41                             ` Michael S. Tsirkin
2012-10-11  0:43                               ` Rusty Russell
2012-10-10  8:34                 ` Michael S. Tsirkin
2012-10-10  8:30     ` Michael S. Tsirkin
2012-10-11  1:18       ` Rusty Russell
2012-10-11 10:23         ` Michael S. Tsirkin
2012-10-11 22:29           ` Rusty Russell
2012-10-12  9:33             ` Michael S. Tsirkin
2012-10-12  9:51               ` Rusty Russell
2012-10-12 10:02                 ` Michael S. Tsirkin [this message]
2012-10-16 13:15                   ` Rusty Russell
2012-10-16 13:30                     ` Michael S. Tsirkin
2012-10-16 13:52                       ` Rusty Russell
2012-10-09 14:02 ` [Qemu-devel] Proposal for virtio standardization Cornelia Huck
2012-10-10  3:46   ` Rusty Russell

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=20121012100231.GA32517@redhat.com \
    --to=mst@redhat.com \
    --cc=aliguori@us.ibm.com \
    --cc=kvm@vger.kernel.org \
    --cc=qemu-devel@nongnu.org \
    --cc=rusty@rustcorp.com.au \
    --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 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).