From: Pankaj Gupta <pagupta-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
To: Stefan Hajnoczi <stefanha-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
Cc: jack-AlSwsSmVLrQ@public.gmane.org,
kvm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
david-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org,
Stefan Hajnoczi
<stefanha-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
ross zwisler
<ross.zwisler-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>,
qemu-devel-qX2TKyscuCcdnm+yROfE0A@public.gmane.org,
lcapitulino-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org,
linux-mm-Bw31MaZKKs3YtjvyW6yDsg@public.gmane.org,
niteshnarayanlal-PkbjNfxxIARBDgjK7y7TUQ@public.gmane.org,
mst-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org,
hch-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org,
linux-nvdimm-y27Ovi1pjclAfugRpC6u6w@public.gmane.org,
marcel-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org,
nilal-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org,
riel-ebMLmSuQjDVBDgjK7y7TUQ@public.gmane.org,
pbonzini-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org,
kwolf-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org,
xiaoguangrong eric
<xiaoguangrong.eric-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
imammedo-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org
Subject: Re: [Qemu-devel] [RFC v2 1/2] virtio: add pmem driver
Date: Sat, 28 Apr 2018 06:48:41 -0400 (EDT) [thread overview]
Message-ID: <1266554822.23475618.1524912521209.JavaMail.zimbra@redhat.com> (raw)
In-Reply-To: <20180427133146.GB11150-lxVrvc10SDRcolVlb+j0YCZi+YwRKgec@public.gmane.org>
> > > > + int err;
> > > > +
> > > > + sg_init_one(&sg, buf, sizeof(buf));
> > > > +
> > > > + err = virtqueue_add_outbuf(vpmem->req_vq, &sg, 1, buf, GFP_KERNEL);
> > > > +
> > > > + if (err) {
> > > > + dev_err(&vdev->dev, "failed to send command to virtio pmem
> > > > device\n");
> > > > + return;
> > > > + }
> > > > +
> > > > + virtqueue_kick(vpmem->req_vq);
> > >
> > > Is any locking necessary? Two CPUs must not invoke virtio_pmem_flush()
> > > at the same time. Not sure if anything guarantees this, maybe you're
> > > relying on libnvdimm but I haven't checked.
> >
> > I thought about it to some extent, and wanted to go ahead with simple
> > version first:
> >
> > - I think file 'inode -> locking' sill is there for request on single file.
> > - For multiple files, our aim is to just flush the backend block image.
> > - Even there is collision for virt queue read/write entry it should just
> > trigger a Qemu fsync.
> > We just want most recent flush to assure guest writes are synced
> > properly.
> >
> > Important point here: We are doing entire block fsync for guest virtual
> > disk.
>
> I don't understand your answer. Is locking necessary or not?
It will be required with other changes.
>
> From the virtqueue_add_outbuf() documentation:
>
> * Caller must ensure we don't call this with other virtqueue operations
> * at the same time (except where noted).
Yes, I also saw it. But thought if can avoid it with current functionality. :)
Thanks,
Pankaj
WARNING: multiple messages have this Message-ID (diff)
From: Pankaj Gupta <pagupta@redhat.com>
To: Stefan Hajnoczi <stefanha@redhat.com>
Cc: jack@suse.cz, kvm@vger.kernel.org, david@redhat.com,
linux-nvdimm@ml01.01.org, ross zwisler <ross.zwisler@intel.com>,
qemu-devel@nongnu.org, lcapitulino@redhat.com,
linux-mm@kvack.org, niteshnarayanlal@hotmail.com, mst@redhat.com,
hch@infradead.org, Stefan Hajnoczi <stefanha@gmail.com>,
marcel@redhat.com, nilal@redhat.com,
haozhong zhang <haozhong.zhang@intel.com>,
riel@surriel.com, pbonzini@redhat.com,
dan j williams <dan.j.williams@intel.com>,
kwolf@redhat.com,
xiaoguangrong eric <xiaoguangrong.eric@gmail.com>,
linux-kernel@vger.kernel.org, imammedo@redhat.com
Subject: Re: [Qemu-devel] [RFC v2 1/2] virtio: add pmem driver
Date: Sat, 28 Apr 2018 06:48:41 -0400 (EDT) [thread overview]
Message-ID: <1266554822.23475618.1524912521209.JavaMail.zimbra@redhat.com> (raw)
In-Reply-To: <20180427133146.GB11150@stefanha-x1.localdomain>
> > > > + int err;
> > > > +
> > > > + sg_init_one(&sg, buf, sizeof(buf));
> > > > +
> > > > + err = virtqueue_add_outbuf(vpmem->req_vq, &sg, 1, buf, GFP_KERNEL);
> > > > +
> > > > + if (err) {
> > > > + dev_err(&vdev->dev, "failed to send command to virtio pmem
> > > > device\n");
> > > > + return;
> > > > + }
> > > > +
> > > > + virtqueue_kick(vpmem->req_vq);
> > >
> > > Is any locking necessary? Two CPUs must not invoke virtio_pmem_flush()
> > > at the same time. Not sure if anything guarantees this, maybe you're
> > > relying on libnvdimm but I haven't checked.
> >
> > I thought about it to some extent, and wanted to go ahead with simple
> > version first:
> >
> > - I think file 'inode -> locking' sill is there for request on single file.
> > - For multiple files, our aim is to just flush the backend block image.
> > - Even there is collision for virt queue read/write entry it should just
> > trigger a Qemu fsync.
> > We just want most recent flush to assure guest writes are synced
> > properly.
> >
> > Important point here: We are doing entire block fsync for guest virtual
> > disk.
>
> I don't understand your answer. Is locking necessary or not?
It will be required with other changes.
>
> From the virtqueue_add_outbuf() documentation:
>
> * Caller must ensure we don't call this with other virtqueue operations
> * at the same time (except where noted).
Yes, I also saw it. But thought if can avoid it with current functionality. :)
Thanks,
Pankaj
next prev parent reply other threads:[~2018-04-28 10:48 UTC|newest]
Thread overview: 80+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-04-25 11:24 [RFC v2 0/2] kvm "fake DAX" device flushing Pankaj Gupta
2018-04-25 11:24 ` [Qemu-devel] " Pankaj Gupta
2018-04-25 11:24 ` Pankaj Gupta
[not found] ` <20180425112415.12327-1-pagupta-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2018-04-25 11:24 ` [RFC v2 1/2] virtio: add pmem driver Pankaj Gupta
2018-04-25 11:24 ` [Qemu-devel] " Pankaj Gupta
2018-04-25 11:24 ` Pankaj Gupta
[not found] ` <20180425112415.12327-2-pagupta-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2018-04-25 14:21 ` Dan Williams
2018-04-25 14:21 ` [Qemu-devel] " Dan Williams
2018-04-25 14:21 ` Dan Williams
[not found] ` <CAPcyv4hvrB08XPTbVK0xT2_1Xmaid=-v3OMxJVDTNwQucsOHLA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2018-04-25 14:43 ` Dan Williams
2018-04-25 14:43 ` [Qemu-devel] " Dan Williams
2018-04-25 14:43 ` Dan Williams
[not found] ` <CAPcyv4hiowWozV527sQA_e4fdgCYbD6xfG==vepAqu0hxQEQcw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2018-04-26 12:27 ` Jeff Moyer
2018-04-26 12:27 ` [Qemu-devel] " Jeff Moyer
2018-04-26 12:27 ` Jeff Moyer
2018-04-26 12:27 ` Jeff Moyer
[not found] ` <x49o9i6885e.fsf-RRHT56Q3PSP4kTEheFKJxxDDeQx5vsVwAInAS/Ez/D0@public.gmane.org>
2018-04-26 17:15 ` [Qemu-devel] " Pankaj Gupta
2018-04-26 17:15 ` Pankaj Gupta
[not found] ` <1499190564.23017177.1524762938762.JavaMail.zimbra-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2018-04-26 17:24 ` Jeff Moyer
2018-04-26 17:24 ` Jeff Moyer
2018-04-25 14:52 ` Michael S. Tsirkin
2018-04-25 14:52 ` [Qemu-devel] " Michael S. Tsirkin
2018-04-25 14:52 ` Michael S. Tsirkin
[not found] ` <20180425174705-mutt-send-email-mst-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2018-04-25 15:11 ` [Qemu-devel] " Pankaj Gupta
2018-04-25 15:11 ` Pankaj Gupta
2018-04-26 13:12 ` Stefan Hajnoczi
[not found] ` <20180426131236.GA30991-lxVrvc10SDRcolVlb+j0YCZi+YwRKgec@public.gmane.org>
2018-04-26 15:44 ` Pankaj Gupta
2018-04-26 15:44 ` Pankaj Gupta
2018-04-27 13:31 ` Stefan Hajnoczi
[not found] ` <20180427133146.GB11150-lxVrvc10SDRcolVlb+j0YCZi+YwRKgec@public.gmane.org>
2018-04-28 10:48 ` Pankaj Gupta [this message]
2018-04-28 10:48 ` Pankaj Gupta
2018-04-25 11:24 ` [RFC v2 2/2] pmem: device flush over VIRTIO Pankaj Gupta
2018-04-25 11:24 ` [Qemu-devel] " Pankaj Gupta
2018-04-25 11:24 ` Pankaj Gupta
[not found] ` <20180425112415.12327-3-pagupta-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2018-04-25 14:23 ` Dan Williams
2018-04-25 14:23 ` [Qemu-devel] " Dan Williams
2018-04-25 14:23 ` Dan Williams
[not found] ` <CAPcyv4gpZzKfE7jY1peYOVd6sVhNz7jce1s_xNH_2Lt8AjRK-Q-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2018-04-25 14:47 ` Pankaj Gupta
2018-04-25 14:47 ` [Qemu-devel] " Pankaj Gupta
2018-04-25 14:47 ` Pankaj Gupta
2018-04-26 13:15 ` Stefan Hajnoczi
2018-04-26 13:15 ` [Qemu-devel] " Stefan Hajnoczi
[not found] ` <20180426131517.GB30991-lxVrvc10SDRcolVlb+j0YCZi+YwRKgec@public.gmane.org>
2018-04-26 16:40 ` Pankaj Gupta
2018-04-26 16:40 ` [Qemu-devel] " Pankaj Gupta
2018-04-26 16:40 ` Pankaj Gupta
[not found] ` <58645254.23011245.1524760853269.JavaMail.zimbra-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2018-04-26 16:57 ` Dan Williams
2018-04-26 16:57 ` [Qemu-devel] " Dan Williams
2018-04-26 16:57 ` Dan Williams
[not found] ` <CAPcyv4jv-hJNKJxak98T7aCnWztVEDTE8o=8fjvOrVmrTfyjdA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2018-04-26 17:13 ` Pankaj Gupta
2018-04-26 17:13 ` [Qemu-devel] " Pankaj Gupta
2018-04-26 17:13 ` Pankaj Gupta
2018-04-25 11:24 ` [RFC v2] qemu: Add virtio pmem device Pankaj Gupta
2018-04-25 11:24 ` [Qemu-devel] " Pankaj Gupta
2018-04-25 11:24 ` Pankaj Gupta
[not found] ` <20180425112415.12327-4-pagupta-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2018-04-25 11:35 ` [Qemu-devel] " no-reply-isE1Te71pDtAfugRpC6u6w
2018-04-25 11:35 ` no-reply
2018-04-25 11:35 ` no-reply
2018-04-25 11:58 ` Pankaj Gupta
2018-04-25 11:58 ` Pankaj Gupta
2018-04-25 14:23 ` Eric Blake
2018-04-25 14:23 ` Eric Blake
[not found] ` <79f72139-0fcb-3d5e-a16c-24f3b5ee1a07-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2018-04-25 14:51 ` Pankaj Gupta
2018-04-25 14:51 ` Pankaj Gupta
2018-04-25 11:46 ` no-reply
2018-04-25 11:46 ` no-reply
2018-04-25 11:46 ` no-reply
2018-04-25 14:25 ` Eric Blake
2018-04-25 14:25 ` Eric Blake
[not found] ` <25f3e433-cfa6-4a62-ba7f-47aef1119dfc-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2018-04-25 14:55 ` Pankaj Gupta
2018-04-25 14:55 ` Pankaj Gupta
2018-04-26 13:24 ` Stefan Hajnoczi
2018-04-26 13:24 ` [Qemu-devel] " Stefan Hajnoczi
[not found] ` <20180426132406.GC30991-lxVrvc10SDRcolVlb+j0YCZi+YwRKgec@public.gmane.org>
2018-04-26 16:43 ` Pankaj Gupta
2018-04-26 16:43 ` Pankaj Gupta
2018-06-01 12:24 ` [Qemu-devel] [RFC v2 0/2] kvm "fake DAX" device flushing Igor Mammedov
2018-06-01 12:24 ` Igor Mammedov
[not found] ` <20180601142410.5c986f13-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2018-06-04 5:56 ` Pankaj Gupta
2018-06-04 5:56 ` Pankaj Gupta
2018-06-04 9:55 ` David Hildenbrand
2018-06-04 9:55 ` David Hildenbrand
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=1266554822.23475618.1524912521209.JavaMail.zimbra@redhat.com \
--to=pagupta-h+wxahxf7alqt0dzr+alfa@public.gmane.org \
--cc=david-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
--cc=hch-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org \
--cc=imammedo-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
--cc=jack-AlSwsSmVLrQ@public.gmane.org \
--cc=kvm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=kwolf-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
--cc=lcapitulino-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
--cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-mm-Bw31MaZKKs3YtjvyW6yDsg@public.gmane.org \
--cc=linux-nvdimm-y27Ovi1pjclAfugRpC6u6w@public.gmane.org \
--cc=marcel-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
--cc=mst-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
--cc=nilal-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
--cc=niteshnarayanlal-PkbjNfxxIARBDgjK7y7TUQ@public.gmane.org \
--cc=pbonzini-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
--cc=qemu-devel-qX2TKyscuCcdnm+yROfE0A@public.gmane.org \
--cc=riel-ebMLmSuQjDVBDgjK7y7TUQ@public.gmane.org \
--cc=ross.zwisler-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org \
--cc=stefanha-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
--cc=stefanha-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
--cc=xiaoguangrong.eric-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.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.