> > diff --git a/src/util/virfile.c b/src/util/virfile.c > index a04f888e06..fdacd17890 100644 > --- a/src/util/virfile.c > +++ b/src/util/virfile.c > @@ -282,6 +282,18 @@ virFileWrapperFdNew(int *fd, const char *name, unsigned int flags) > > ret->cmd = virCommandNewArgList(iohelper_path, name, NULL); > > + if (flags & VIR_FILE_WRAPPER_BIG_PIPE) { > + /* > + * virsh save/resume would slow to a crawl with a default pipe size (usually 64k). > + * This improves the situation by 400%, although going through io_helper still incurs > + * in a performance penalty compared with a direct qemu migration to a socket. > + */ > + int pipe_sz, rv = virFileReadValueInt(&pipe_sz, "/proc/sys/fs/pipe-max-size"); > + if (rv != 0) { > + pipe_sz = 1024 * 1024; /* common default for pipe-max-size */ > + } > + fcntl(pipefd[output ? 0 : 1], F_SETPIPE_SZ, pipe_sz); > + } I believe this entire hunk of code should be ifdef'd within #ifdef __linux__. non-windows does not necessarily mean only linux.