On Thu, 04/16 14:03, Stefan Hajnoczi wrote: > On Thu, Apr 16, 2015 at 12:57:29PM +0800, Fam Zheng wrote: > > v3: Rebase to master for 2.4. > > Although epoll_pwait1 syscall is still being worked on [1], the QEMU > > part > > (if any) will base on this, so let's merge it first. > > > > That part is not included in this version because I'm still evaluating > > by > > comparing epoll_pwait1 with epoll+timerfd as with current master they > > seem > > to be really close. > > > > [1]: http://www.spinics.net/lists/linux-api/msg08216.html > > > > v2: Emulate nanoseconds precison of timeout with ppoll and timerfd. > > Their performance is on par with each other, but both much better than > > qemu.git: > > > > syscall high # of fd low # of fd > > ------------------------------------------------- > > qemu.git(ppoll) 44 96 > > ppoll+epoll 85 101 > > timerfd+epoll 87 109 > > > > (In high # of fd case, 3 activated but idle virtio-console devices are > > attached, which will add us hundereds of fds to poll) > > Have you rerun benchmarks with this patch series?
Yes, here: syscall high # of fd low # of fd (Unit MB/s) (Unit MB/s) ------------------------------------------------- qemu.git(ppoll) 24 73 ppoll+epoll 49 77 timerfd+epoll 49 82 > > I wonder how the ppoll-only performance changes. It seems like there > are now additional copies of <fd, events, revents> information and > corresponding malloc/realloc/frees. > > Stefan