From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paolo Bonzini Subject: Re: [PATCH RFC 5/6] epoll: Add implementation for epoll_mod_wait Date: Wed, 21 Jan 2015 11:37:03 +0100 Message-ID: <54BF814F.7090703@redhat.com> References: <1421747878-30744-1-git-send-email-famz@redhat.com> <1421747878-30744-6-git-send-email-famz@redhat.com> <54BE4F1D.7090807@gmail.com> <20150121045903.GA2858@fam-t430.nay.redhat.com> <54BF5ACE.6030206@gmail.com> <20150121085827.GB23024@ad.nay.redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit Cc: linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Thomas Gleixner , Ingo Molnar , "H. Peter Anvin" , x86-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org, Alexander Viro , Andrew Morton , Kees Cook , David Herrmann , Alexei Starovoitov , Miklos Szeredi , David Drysdale , Oleg Nesterov , "David S. Miller" , Vivek Goyal , Mike Frysinger , "Theodore Ts'o" , Heiko Carstens , Rasmus Villemoes , Rashika Kheria , Hugh Dickins , Mathieu Desnoyers , Peter Zijlstra , linux-fsdevel-fy+rA21nqHI@public.gmane.org To: Fam Zheng , "Michael Kerrisk (man-pages)" , Andy Lutomirski Return-path: In-Reply-To: <20150121085827.GB23024-ZfWej9ACyHUXGNroddHbYwC/G2K4zDHf@public.gmane.org> Sender: linux-api-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org List-Id: linux-fsdevel.vger.kernel.org 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. Paolo