Hi Peter Understood about the windows build issue. I will drop this patch for now and focus on the main GSoC project as suggested.
Thank you, Aadeshveer On Thu, May 21, 2026 at 1:14 AM Peter Xu <[email protected]> wrote: > > 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 <[email protected]> > > --- > > 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 >
