From: Peter Xu <peterx@redhat.com>
To: Aadeshveer Singh <aadeshveer07@gmail.com>
Cc: qemu-devel@nongnu.org, farosas@suse.de
Subject: Re: [PATCH] migration: use eventfd functions instead of bare read/write
Date: Wed, 20 May 2026 15:44:20 -0400 [thread overview]
Message-ID: <ag4PFEdJ9yIhtB_E@x1.local> (raw)
In-Reply-To: <20260514075136.301706-2-aadeshveer07@gmail.com>
On Thu, May 14, 2026 at 01:21:37PM +0530, Aadeshveer Singh wrote:
> Replace read() and write() syscalls on eventfd with glibc wrappers
> eventfd_read() and eventfd_write(), to make code more robust, readable
> and future-proof.
>
> Signed-off-by: Aadeshveer Singh <aadeshveer07@gmail.com>
> ---
> migration/postcopy-ram.c | 10 ++++------
> 1 file changed, 4 insertions(+), 6 deletions(-)
>
> diff --git a/migration/postcopy-ram.c b/migration/postcopy-ram.c
> index f5ef93f193..16113b166d 100644
> --- a/migration/postcopy-ram.c
> +++ b/migration/postcopy-ram.c
> @@ -1330,12 +1330,12 @@ static void *postcopy_ram_fault_thread(void *opaque)
> }
>
> if (pfd[1].revents) {
> - uint64_t tmp64 = 0;
> + eventfd_t tmp_event = 0;
>
> /* Consume the signal */
> - if (read(mis->userfault_event_fd, &tmp64, 8) != 8) {
> + if (eventfd_read(mis->userfault_event_fd, &tmp_event)) {
> /* Nothing obviously nicer than posting this error. */
> - error_report("%s: read() failed", __func__);
> + error_report("%s: eventfd_read() failed", __func__);
> }
>
> if (qatomic_read(&mis->fault_thread_quit)) {
> @@ -1773,13 +1773,11 @@ void postcopy_temp_page_reset(PostcopyTmpPage *tmp_page)
>
> void postcopy_fault_thread_notify(MigrationIncomingState *mis)
> {
> - uint64_t tmp64 = 1;
> -
> /*
> * Wakeup the fault_thread. It's an eventfd that should currently
> * be at 0, we're going to increment it to 1
> */
> - if (write(mis->userfault_event_fd, &tmp64, 8) != 8) {
> + if (eventfd_write(mis->userfault_event_fd, 1)) {
> /* Not much we can do here, but may as well report it */
> error_report("%s: incrementing failed: %s", __func__,
> strerror(errno));
> --
> 2.54.0
>
Unfortunately this will break win builds. It's because these functions are
compiled even for windows, and windows doesn't have eventfd.
Ideally we shouldn't compile postcopy code in windows at all. So it's not
really this patch's problem. But fixing that would either need temporary
CONFIG_LINUX check here just to use the glibc API or a larger refactor to
opt-out compilation of postcopy.
I'll drop this patch for now. Aadeshveer, if you want you can try to have
a look later on how to not compile postcopy code for windows. For now, I
suggest you stick with the gsoc project.
Thanks,
--
Peter Xu
next prev parent reply other threads:[~2026-05-20 19:44 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-14 7:51 [PATCH] migration: use eventfd functions instead of bare read/write Aadeshveer Singh
2026-05-15 14:42 ` Peter Xu
2026-05-20 19:44 ` Peter Xu [this message]
2026-05-23 3:01 ` Aadeshveer Singh
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=ag4PFEdJ9yIhtB_E@x1.local \
--to=peterx@redhat.com \
--cc=aadeshveer07@gmail.com \
--cc=farosas@suse.de \
--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.