Re: [PATCH RFC 5/6] epoll: Add implementation for epoll_mod_wait
From: Paolo Bonzini <hidden>
Date: 2015-01-21 10:37:03
On 21/01/2015 09:58, Fam Zheng wrote:
quoted
quoted
See my comment in the earlier mail. If you split this into two APIs, and epoll_ctl_batch() is guaranteed to execute 'cmds' in order, then the return value of epoll_ctl_batch() could be used to tell user space how many commands succeeded. Much simpler!Yes it is much simpler. However the reason to add batching in the first place is to make epoll faster, by reducing syscalls. Splitting makes the result sub-optimal: we still need at least 2 calls instead of 1. Each one of the three proposed new call *is* a step forward, but I don't think we will have everything solved even by implementing them all. Compromise needed between performance or complexity. My take for simplicity will be leaving epoll_ctl as-is, and my take for performance will be epoll_pwait1. And I don't really like putting my time on epoll_ctl_batch, thinking it as a ambivalent compromise in between.
I agree with Michael actually. The big change is going from O(n) epoll_ctl calls to O(1), and epoll_ctl_batch achieves that just fine. Changing 2 syscalls to 1 is the icing on the cake, but we're talking of a fraction of a microsecond. Paolo