From: Peter Xu <peterx@redhat.com>
To: "Daniel P. Berrangé" <berrange@redhat.com>
Cc: Prasad Pandit <ppandit@redhat.com>,
qemu-devel@nongnu.org, Fabiano Rosas <farosas@suse.de>
Subject: Re: [PATCH] migration/multifd: Document two places for mapped-ram
Date: Mon, 4 Mar 2024 08:30:17 +0800 [thread overview]
Message-ID: <ZeUWGa20ELoWse5q@x1n> (raw)
In-Reply-To: <ZeIVYDnAkPTpKHsP@redhat.com>
On Fri, Mar 01, 2024 at 05:50:24PM +0000, Daniel P. Berrangé wrote:
> On Fri, Mar 01, 2024 at 11:17:10PM +0530, Prasad Pandit wrote:
> > Hello Petr,
Hey Prasad!
Thanks for taking a look.
> >
> > On Fri, 1 Mar 2024 at 14:46, <peterx@redhat.com> wrote:
> > > + * An explicitly close() on the channel here is normally not
> >
> > explicitly -> explicit
> >
> > > + * required, but can be helpful for "file:" iochannels, where it
> > > + * will include an fdatasync() to make sure the data is flushed to
> > > + * the disk backend.
> >
> > * an fdatasync() -> fdatasync()
I'll fix both when apply.
> >
> > * qio_channel_close
> > -> ioc_klass->io_close = qio_channel_file_close;
> > -> qemu_close(fioc->fd)
> > -> close(fd);
> >
> > It does not seem to call fdatasync() before close(fd);
> >
> > - qio_channel_file_new_path(filename, O_CREAT | O_WRONLY | O_TRUNC, ...)
>
> The documented behaviour reliant on another pending patch:
>
> https://lists.nongnu.org/archive/html/qemu-devel/2024-02/msg07046.html
Rightfully as Dan helped to answer.
While for the other comment section in the same patch it relies on the
other patch:
https://lore.kernel.org/all/20240229153017.2221-20-farosas@suse.de/
>
> >
> > Maybe the qio_channel..() calls above should include the 'O_DSYNC'
> > flag as well? But that will do fdatasync() work at each write(2) call
> > I think, not sure if that is okay.
>
>
>
> >
> > > + *
> > > + * The object_unref() cannot guarantee that because: (1) finalize()
> > > + * of the iochannel is only triggered on the last reference, and
> > > + * it's not guaranteed that we always hold the last refcount when
> > > + * reaching here, and, (2) even if finalize() is invoked, it only
> > > + * does a close(fd) without data flush.
> > > + */
> >
> > * object_unref
> > -> object_finalize
> > -> object_deinit
> > -> type->instance_finalize
> > -> qio_channel_file_finalize
> > -> qemu_close(ioc->fd);
> >
> > * I hope I'm looking at the right code here. (Sorry if I'm not)
Yes I think you're looking at the right path, it's just that the relevant
patches haven't yet landed upstream but is planned. I normally use
"Based-on" tag for such patch that has a dependency outside master, like:
Based-on: <20240229153017.2221-1-farosas@suse.de>
I believe many others on the qemu list do the same. I think the rational
is this will be both recognized by human beings and also by patchew,
e.g. patchew will report a good apply status here:
https://patchew.org/QEMU/20240301091524.39900-1-peterx@redhat.com/
And in the same patch if you fetch the tree patchew provided:
git fetch https://github.com/patchew-project/qemu tags/patchew/20240301091524.39900-1-peterx@redhat.com
You can also directly fetch the whole tree with this patch applied
correctly on top of the dependency series.
Personally I don't use patchew, but I kept that habit to declare patch
dependencies just in case it'll help others who use it (e.g., I think
patchew has other review tools like version comparisons, which I also don't
use myself).
Thanks,
--
Peter Xu
next prev parent reply other threads:[~2024-03-04 0:31 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-03-01 9:15 [PATCH] migration/multifd: Document two places for mapped-ram peterx
2024-03-01 12:22 ` Fabiano Rosas
2024-03-01 17:47 ` Prasad Pandit
2024-03-01 17:50 ` Daniel P. Berrangé
2024-03-04 0:30 ` Peter Xu [this message]
2024-03-04 5:21 ` Prasad Pandit
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=ZeUWGa20ELoWse5q@x1n \
--to=peterx@redhat.com \
--cc=berrange@redhat.com \
--cc=farosas@suse.de \
--cc=ppandit@redhat.com \
--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 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.