On Wed, 01/21 11:37, Paolo Bonzini wrote: > > > On 21/01/2015 09:58, Fam Zheng wrote: > >> > 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. > Maybe I'm missing something, but in common cases, the set of fds for epoll_wait doesn't change that radically from one iteration to another, does it? Fam -- To unsubscribe from this list: send the line "unsubscribe linux-api" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html