qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Stefan Hajnoczi <stefanha@redhat.com>
To: "Philippe Mathieu-Daudé" <philmd@redhat.com>
Cc: Kevin Wolf <kwolf@redhat.com>, Fam Zheng <fam@euphon.net>,
	Beata Michalska <beata.michalska@linaro.org>,
	qemu-block@nongnu.org, qemu-devel@nongnu.org,
	Maxim Levitsky <mlevitsk@redhat.com>,
	Keith Busch <kbusch@kernel.org>,
	Paolo Bonzini <pbonzini@redhat.com>,
	Max Reitz <mreitz@redhat.com>
Subject: Re: [RFC PATCH 6/6] hw/block/nvme: Make device target agnostic
Date: Thu, 7 May 2020 11:04:35 +0100	[thread overview]
Message-ID: <20200507100435.GG34079@stefanha-x1.localdomain> (raw)
In-Reply-To: <9a46b1b4-bfbf-21bd-cc66-5904e784150c@redhat.com>

[-- Attachment #1: Type: text/plain, Size: 2068 bytes --]

On Mon, May 04, 2020 at 05:36:22PM +0200, Philippe Mathieu-Daudé wrote:
> +Keith new email
> 
> On 5/4/20 11:46 AM, Philippe Mathieu-Daudé wrote:
> > The NVMe device should not use target specific API.
> > Use memory_region_do_writeback() (which was introduced
> > in commit 61c490e25e0, after the NVMe emulated device
> > was added) to replace qemu_ram_writeback().
> > 
> > Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
> > ---
> > RFC because I have no clue how dirty_log_mask works.
> > 
> > Cc: Paolo Bonzini <pbonzini@redhat.com>
> > Cc: Beata Michalska <beata.michalska@linaro.org>
> > ---
> >   hw/block/nvme.c        | 4 +---
> >   hw/block/Makefile.objs | 2 +-
> >   2 files changed, 2 insertions(+), 4 deletions(-)
> > 
> > diff --git a/hw/block/nvme.c b/hw/block/nvme.c
> > index 9b453423cf..9b0ac0ea2a 100644
> > --- a/hw/block/nvme.c
> > +++ b/hw/block/nvme.c
> > @@ -46,7 +46,6 @@
> >   #include "qapi/visitor.h"
> >   #include "sysemu/hostmem.h"
> >   #include "sysemu/block-backend.h"
> > -#include "exec/ram_addr.h"
> >   #include "qemu/log.h"
> >   #include "qemu/module.h"
> > @@ -1207,8 +1206,7 @@ static uint64_t nvme_mmio_read(void *opaque, hwaddr addr, unsigned size)
> >            */
> >           if (addr == 0xE08 &&
> >               (NVME_PMRCAP_PMRWBM(n->bar.pmrcap) & 0x02)) {
> > -            qemu_ram_writeback(n->pmrdev->mr.ram_block,
> > -                               0, n->pmrdev->size);
> > +            memory_region_do_writeback(&n->pmrdev->mr, 0, n->pmrdev->size);

qemu_ram_write() is being called because we need to msync or persist
pmem here.

The memory_region_do_writeback() API is not equivalent, its purpose is
for dirty write logging (which we don't care about here because the
writes themselves will already have been logged when the guest performed
them).

I think qemu_ram_writeback() should just be made common so that this
code isn't target-specific. Maybe it should be renamed to
qemu_ram_msync() to avoid confusion with dirty write APIs.

Stefan

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

  reply	other threads:[~2020-05-07 10:05 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-05-04  9:46 [PATCH 0/6] block/nvme: Align block pages queue to host page size Philippe Mathieu-Daudé
2020-05-04  9:46 ` [PATCH 1/6] qemu/osdep: Document qemu_memalign() and friends Philippe Mathieu-Daudé
2020-05-07  8:58   ` Stefan Hajnoczi
2020-05-04  9:46 ` [PATCH 2/6] qemu/bitmap: Document bitmap_new() returned pointer Philippe Mathieu-Daudé
2020-05-07  8:58   ` Stefan Hajnoczi
2020-05-04  9:46 ` [PATCH 3/6] sysemu/block-backend: Document blk_read()/blk_pwrite() Philippe Mathieu-Daudé
2020-05-07  8:56   ` Stefan Hajnoczi
2020-05-04  9:46 ` [PATCH 4/6] block/block: Document BlockSizes fields Philippe Mathieu-Daudé
2020-05-07  8:58   ` Stefan Hajnoczi
2020-05-04  9:46 ` [PATCH 5/6] block/nvme: Align block pages queue to host page size Philippe Mathieu-Daudé
2020-05-05  0:34   ` David Gibson
2020-05-05  8:00   ` Laurent Vivier
2020-05-05  8:23     ` Laurent Vivier
2020-05-05  9:48       ` Philippe Mathieu-Daudé
2020-05-05 15:51   ` Philippe Mathieu-Daudé
2020-05-04  9:46 ` [RFC PATCH 6/6] hw/block/nvme: Make device target agnostic Philippe Mathieu-Daudé
2020-05-04 15:36   ` Philippe Mathieu-Daudé
2020-05-07 10:04     ` Stefan Hajnoczi [this message]
2020-05-07 16:24       ` Paolo Bonzini

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=20200507100435.GG34079@stefanha-x1.localdomain \
    --to=stefanha@redhat.com \
    --cc=beata.michalska@linaro.org \
    --cc=fam@euphon.net \
    --cc=kbusch@kernel.org \
    --cc=kwolf@redhat.com \
    --cc=mlevitsk@redhat.com \
    --cc=mreitz@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=philmd@redhat.com \
    --cc=qemu-block@nongnu.org \
    --cc=qemu-devel@nongnu.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).