qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Pankaj Gupta <pagupta@redhat.com>
To: Wei Yang <richardw.yang@linux.intel.com>
Cc: kwolf@redhat.com, aarcange@redhat.com,
	xiaoguangrong eric <xiaoguangrong.eric@gmail.com>,
	mst@redhat.com, cohuck@redhat.com, david@redhat.com,
	qemu-devel@nongnu.org, ehabkost@redhat.com, armbru@redhat.com,
	stefanha@redhat.com, pbonzini@redhat.com, lcapitulino@redhat.com,
	imammedo@redhat.com, riel@surriel.com, nilal@redhat.com,
	dan j williams <dan.j.williams@intel.com>,
	dgilbert@redhat.com, rth@twiddle.net
Subject: Re: [Qemu-devel] [PATCH v2 0/7] Qemu virtio pmem device
Date: Tue, 2 Jul 2019 06:07:44 -0400 (EDT)	[thread overview]
Message-ID: <1872807933.38582516.1562062064161.JavaMail.zimbra@redhat.com> (raw)
In-Reply-To: <20190702084934.GA25987@richard>


> 
> On Wed, Jun 19, 2019 at 03:19:00PM +0530, Pankaj Gupta wrote:
> > This patch series has implementation for "virtio pmem"
> > device. "virtio pmem" is persistent memory(nvdimm) device in
> > guest which allows to bypass the guest page cache. This
> > also implements a VIRTIO based asynchronous flush mechanism.
> > Details of project idea for 'virtio pmem' flushing interface
> > is shared [2] & [3].
> >
> > Sharing Qemu device emulation in this patchset. Tested with
> > guest kernel driver [1]. This series is based on David's
> > memory device refactoring [5] work with modified version of
> > my initial virtio pmem [4] series.
> >
> > Usage:
> > ./qemu -name test -machine pc -m 8G,slots=240,maxmem=20G
> > -object memory-backend-file,id=mem1,share,mem-path=test.img,
> >  size=4G,share
> > -device virtio-pmem-pci,memdev=mem1,id=nv1
> >
> 
> Hi, Pankaj

Hi Wei,

> 
> I tried this series with v14 kernel driver, while getting some error on using
> this. Not sure this is my error configuration.
> 
> The qemu command line is:
> 
>     -object
>     memory-backend-file,id=mem1,share=on,mem-path=/dev/dax0.0,size=1G,align=2M
>     -device virtio-pmem-pci,memdev=mem1,id=nv1

Are you using host backing on real NVDIMM? Currently, we only support backing image 
file on regular SSD. We have plans to support backing file on real NVDIMM device
as well but this is part of future work.

Can you please try by allocating a raw image file on regular SSD. It is working fine
for me.

> 
> The guest boots up and I can see /dev/pmem0 device. But when I want to
> partition this device, I got the error:
> 
>     # parted /dev/pmem0 mklabel gpt
>     Warning: Error fsyncing/closing /dev/pmem0: Input/output error
> 
> Also I see an error when running "ndctl list":
> 
>     libndctl: __sysfs_device_parse: ndctl0: add_dev() failed

Will look at this if it is related.

Thanks,
Pankaj
> 
> Would you mind letting me know which part I am wrong?
> 
> > (qemu) info memory-devices
> >  Memory device [virtio-pmem]: "nv1"
> >  memaddr: 0x240000000
> >  size: 4294967296
> >  memdev: /objects/mem1
> >
> > Implementation is divided into two parts:
> > New virtio pmem guest driver and qemu code changes for new
> > virtio pmem paravirtualized device. In this series we are
> > sharing Qemu device emulation.
> >
> >1. Guest virtio-pmem kernel driver
> >---------------------------------
> >   - Reads persistent memory range from paravirt device and
> >     registers with 'nvdimm_bus'.
> >   - 'nvdimm/pmem' driver uses this information to allocate
> >     persistent memory region and setup filesystem operations
> >     to the allocated memory.
> >   - virtio pmem driver implements asynchronous flushing
> >     interface to flush from guest to host.
> >
> >2. Qemu virtio-pmem device
> >---------------------------------
> >   - Creates virtio pmem device and exposes a memory range to
> >     KVM guest.
> >   - At host side this is file backed memory which acts as
> >     persistent memory.
> >   - Qemu side flush uses aio thread pool API's and virtio
> >     for asynchronous guest multi request handling.
> >
> > Virtio-pmem security implications and suggested countermeasures:
> > ---------------------------------------------------------------
> >
> > In previous posting of kernel driver, there was discussion [7]
> > on possible implications of page cache side channel attacks with
> > virtio pmem. After thorough analysis of details of known side
> > channel attacks, below are the suggestions:
> >
> > - Depends entirely on how host backing image file is mapped
> >   into guest address space.
> >
> > - virtio-pmem device emulation, by default shared mapping is used
> >   to map host backing file. It is recommended to use separate
> >   backing file at host side for every guest. This will prevent
> >   any possibility of executing common code from multiple guests
> >   and any chance of inferring guest local data based based on
> >   execution time.
> >
> > - If backing file is required to be shared among multiple guests
> >   it is recommended to don't support host page cache eviction
> >   commands from the guest driver. This will avoid any possibility
> >   of inferring guest local data or host data from another guest.
> >
> > - Proposed device specification [6] for virtio-pmem device with
> >   details of possible security implications and suggested
> >   countermeasures for device emulation.
> >
> >Changes from PATCH v1:
> > - Change proposed version from qemu 4.0 to 4.1 - Eric
> > - Remove virtio queue_add from unrealize function - Cornelia
> >
> >[1] https://lkml.org/lkml/2019/6/12/624
> >[2] https://www.spinics.net/lists/kvm/msg149761.html
> >[3] https://www.spinics.net/lists/kvm/msg153095.html
> >[4] https://marc.info/?l=linux-kernel&m=153572228719237&w=2
> >[5] https://marc.info/?l=qemu-devel&m=153555721901824&w=2
> >[6] https://lists.oasis-open.org/archives/virtio-dev/201903/msg00083.html
> >[7] https://lkml.org/lkml/2019/1/9/1191
> >
> > Pankaj Gupta (3):
> >  virtio-pmem: add virtio device
> >  virtio-pmem: sync linux headers
> >  virtio-pci: proxy for virtio-pmem
> >
> > David Hildenbrand (4):
> >  virtio-pci: Allow to specify additional interfaces for the base type
> >  hmp: Handle virtio-pmem when printing memory device infos
> >  numa: Handle virtio-pmem in NUMA stats
> >  pc: Support for virtio-pmem-pci
> >
> > hmp.c                                        |   27 ++-
> > hw/i386/Kconfig                              |    1
> > hw/i386/pc.c                                 |   72 ++++++++++
> > hw/virtio/Kconfig                            |   10 +
> > hw/virtio/Makefile.objs                      |    2
> > hw/virtio/virtio-pci.c                       |    1
> > hw/virtio/virtio-pci.h                       |    1
> > hw/virtio/virtio-pmem-pci.c                  |  131 ++++++++++++++++++
> > hw/virtio/virtio-pmem-pci.h                  |   34 ++++
> > hw/virtio/virtio-pmem.c                      |  189
> > +++++++++++++++++++++++++++
> > include/hw/pci/pci.h                         |    1
> > include/hw/virtio/virtio-pmem.h              |   49 +++++++
> > include/standard-headers/linux/virtio_ids.h  |    1
> > include/standard-headers/linux/virtio_pmem.h |   35 +++++
> > numa.c                                       |   24 +--
> > qapi/misc.json                               |   28 +++-
> > 16 files changed, 580 insertions(+), 26 deletions(-)
> >----
> 
> --
> Wei Yang
> Help you, Help me
> 
> 


  reply	other threads:[~2019-07-02 10:09 UTC|newest]

Thread overview: 95+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-06-19  9:49 [Qemu-devel] [PATCH v2 0/7] Qemu virtio pmem device Pankaj Gupta
2019-06-19  9:49 ` [Qemu-devel] [PATCH v2 1/7] virtio-pmem: add virtio device Pankaj Gupta
2019-07-02 11:46   ` Cornelia Huck
2019-07-02 15:07   ` [Qemu-devel] [PULL 05/22] " Michael S. Tsirkin
2019-07-11 12:57   ` Peter Maydell
2019-07-11 14:05     ` Pankaj Gupta
2019-06-19  9:49 ` [Qemu-devel] [PATCH v2 2/7] virtio-pci: Allow to specify additional interfaces for the base type Pankaj Gupta
2019-07-02 15:07   ` [Qemu-devel] [PULL 06/22] " Michael S. Tsirkin
2019-06-19  9:49 ` [Qemu-devel] [PATCH v2 3/7] virtio-pmem: sync linux headers Pankaj Gupta
2019-07-02 11:50   ` Cornelia Huck
2019-07-02 11:59     ` Pankaj Gupta
2019-07-02 16:58       ` Michael S. Tsirkin
2019-07-02 17:09         ` Pankaj Gupta
2019-07-02 17:11           ` Michael S. Tsirkin
2019-07-02 17:21             ` Pankaj Gupta
2019-07-02 15:10     ` Michael S. Tsirkin
2019-07-02 15:07   ` [Qemu-devel] [PULL 07/22] " Michael S. Tsirkin
2019-06-19  9:49 ` [Qemu-devel] [PATCH v2 4/7] virtio-pci: Proxy for virtio-pmem Pankaj Gupta
2019-07-02 11:55   ` Cornelia Huck
2019-07-02 12:00     ` Pankaj Gupta
2019-07-02 17:09     ` Michael S. Tsirkin
2019-07-02 17:14       ` Pankaj Gupta
2019-07-02 15:07   ` [Qemu-devel] [PULL 08/22] " Michael S. Tsirkin
2019-07-11 12:59   ` Peter Maydell
2019-07-11 13:27     ` Pankaj Gupta
2019-06-19  9:49 ` [Qemu-devel] [PATCH v2 5/7] hmp: Handle virtio-pmem when printing memory device infos Pankaj Gupta
2019-07-02  8:50   ` Wei Yang
2019-07-02 10:17     ` Pankaj Gupta
2019-07-02 15:07   ` [Qemu-devel] [PULL 09/22] " Michael S. Tsirkin
2019-06-19  9:49 ` [Qemu-devel] [PATCH v2 6/7] numa: Handle virtio-pmem in NUMA stats Pankaj Gupta
2019-07-02 15:07   ` [Qemu-devel] [PULL 10/22] " Michael S. Tsirkin
2019-06-19  9:49 ` [Qemu-devel] [PATCH v2 7/7] pc: Support for virtio-pmem-pci Pankaj Gupta
2019-07-02 15:07   ` [Qemu-devel] [PULL 11/22] " Michael S. Tsirkin
2019-07-01  3:53 ` [Qemu-devel] [PATCH v2 0/7] Qemu virtio pmem device Pankaj Gupta
2019-07-02  8:49 ` Wei Yang
2019-07-02 10:07   ` Pankaj Gupta [this message]
2019-07-03  0:58     ` Wei Yang
2019-07-03  1:31       ` Pankaj Gupta
2019-07-03  1:57         ` Wei Yang
2019-07-03  2:31           ` Pankaj Gupta
2019-07-03  2:42             ` Wei Yang
2019-07-03  3:21               ` Pankaj Gupta
2019-06-26  2:31 [Qemu-devel] [PATCH v4 0/5] virtio: fix some issues of "started" and "start_on_kick" flag elohimes
2019-06-26  2:31 ` [Qemu-devel] [PATCH v4 1/5] virtio: add "use-started" property elohimes
2019-06-26 10:17   ` Greg Kurz
2019-06-27  2:20     ` Yongji Xie
2019-07-02 15:07   ` [Qemu-devel] [PULL 13/22] " Michael S. Tsirkin
2019-06-26  2:31 ` [Qemu-devel] [PATCH v4 2/5] virtio: Set "start_on_kick" for legacy devices elohimes
2019-07-02 15:07   ` [Qemu-devel] [PULL 14/22] " Michael S. Tsirkin
2019-06-26  2:31 ` [Qemu-devel] [PATCH v4 3/5] virtio: Set "start_on_kick" on virtio_set_features() elohimes
2019-07-02 15:08   ` [Qemu-devel] [PULL 15/22] " Michael S. Tsirkin
2019-06-26  2:31 ` [Qemu-devel] [PATCH v4 4/5] virtio: Make sure we get correct state of device on handle_aio_output() elohimes
2019-07-02 15:08   ` [Qemu-devel] [PULL 16/22] " Michael S. Tsirkin
2019-06-26  2:31 ` [Qemu-devel] [PATCH v4 5/5] virtio: Don't change "started" flag on virtio_vmstate_change() elohimes
2019-07-02 15:08   ` [Qemu-devel] [PULL 17/22] " Michael S. Tsirkin
2019-06-26 10:43 ` [Qemu-devel] [PATCH v4 0/5] virtio: fix some issues of "started" and "start_on_kick" flag Laurent Vivier
2019-06-27  2:19   ` Yongji Xie
2019-06-26  7:48 [Qemu-devel] [PATCH v2 0/4] libvhost-user: VHOST_USER_PROTOCOL_F_MQ support Stefan Hajnoczi
2019-06-26  7:48 ` [Qemu-devel] [PATCH v2 1/4] libvhost-user: add vmsg_set_reply_u64() helper Stefan Hajnoczi
2019-07-02 15:08   ` [Qemu-devel] [PULL 19/22] " Michael S. Tsirkin
2019-06-26  7:48 ` [Qemu-devel] [PATCH v2 2/4] libvhost-user: support many virtqueues Stefan Hajnoczi
2019-07-02 15:08   ` [Qemu-devel] [PULL 20/22] " Michael S. Tsirkin
2019-06-26  7:48 ` [Qemu-devel] [PATCH v2 3/4] libvhost-user: implement VHOST_USER_PROTOCOL_F_MQ Stefan Hajnoczi
2019-07-02 15:08   ` [Qemu-devel] [PULL 21/22] " Michael S. Tsirkin
2019-06-26  7:48 ` [Qemu-devel] [PATCH v2 4/4] docs: avoid vhost-user-net specifics in multiqueue section Stefan Hajnoczi
2019-07-02 15:08   ` [Qemu-devel] [PULL 22/22] " Michael S. Tsirkin
2019-07-02 15:06 [Qemu-devel] [PULL 00/22] virtio, pc, pci: features, fixes, cleanups Michael S. Tsirkin
2019-06-25 23:23 ` [Qemu-devel] [PATCH] virtio-pci: fix missing device properties Marc-André Lureau
2019-06-26  1:55   ` Eduardo Habkost
2019-06-26  9:48     ` Marc-André Lureau
2019-06-26 12:39       ` Eduardo Habkost
2019-07-02 15:07   ` [Qemu-devel] [PULL 12/22] " Michael S. Tsirkin
2019-06-28 20:02 ` [Qemu-devel] [PATCH] pc: Move compat_apic_id_mode variable to PCMachineClass Eduardo Habkost
2019-06-29 10:46   ` Philippe Mathieu-Daudé
2019-06-30 21:30   ` Michael S. Tsirkin
2019-07-02 15:08   ` [Qemu-devel] [PULL 18/22] " Michael S. Tsirkin
2019-07-02 15:06 ` [Qemu-devel] [PULL 01/22] pcie: don't skip multi-mask events Michael S. Tsirkin
2019-07-02 15:06 ` [Qemu-devel] [PULL 02/22] pcie: check that slt ctrl changed before deleting Michael S. Tsirkin
2019-07-11 12:31   ` Peter Maydell
2019-07-02 15:06 ` [Qemu-devel] [PULL 03/22] pcie: work around for racy guest init Michael S. Tsirkin
2019-07-02 15:06 ` [Qemu-devel] [PULL 04/22] pcie: minor cleanups for slot control/status Michael S. Tsirkin
2019-07-02 15:56 ` [Qemu-devel] [PULL 00/22] virtio, pc, pci: features, fixes, cleanups Peter Maydell
2019-07-02 17:00   ` Michael S. Tsirkin
2019-07-02 17:20     ` Peter Maydell
2019-07-02 18:22       ` Michael S. Tsirkin
2019-07-02 18:27         ` Peter Maydell
2019-07-02 19:00           ` Michael S. Tsirkin
2019-07-26 12:39           ` Peter Maydell
2019-07-26 13:43             ` Michael S. Tsirkin
2019-07-04  9:25 ` Peter Maydell
2019-07-04 11:03   ` Pankaj Gupta
2019-07-04 21:24     ` Michael S. Tsirkin
2019-07-05  9:37       ` Pankaj Gupta
2019-07-04 21:29   ` Michael S. Tsirkin
2019-07-05  9:47     ` Peter Maydell

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=1872807933.38582516.1562062064161.JavaMail.zimbra@redhat.com \
    --to=pagupta@redhat.com \
    --cc=aarcange@redhat.com \
    --cc=armbru@redhat.com \
    --cc=cohuck@redhat.com \
    --cc=dan.j.williams@intel.com \
    --cc=david@redhat.com \
    --cc=dgilbert@redhat.com \
    --cc=ehabkost@redhat.com \
    --cc=imammedo@redhat.com \
    --cc=kwolf@redhat.com \
    --cc=lcapitulino@redhat.com \
    --cc=mst@redhat.com \
    --cc=nilal@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=richardw.yang@linux.intel.com \
    --cc=riel@surriel.com \
    --cc=rth@twiddle.net \
    --cc=stefanha@redhat.com \
    --cc=xiaoguangrong.eric@gmail.com \
    /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).