Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753467AbcCLSsq (ORCPT ); Sat, 12 Mar 2016 13:48:46 -0500 Received: from mail-wm0-f66.google.com ([74.125.82.66]:35867 "EHLO mail-wm0-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751626AbcCLSsl (ORCPT ); Sat, 12 Mar 2016 13:48:41 -0500 Date: Sat, 12 Mar 2016 19:48:36 +0100 From: Ingo Molnar To: Rich Felker Cc: Linus Torvalds , Andy Lutomirski , the arch/x86 maintainers , Linux Kernel Mailing List , Borislav Petkov , "musl@lists.openwall.com" , Andrew Morton , Thomas Gleixner , Peter Zijlstra Subject: Re: [musl] Re: [RFC PATCH] x86/vdso/32: Add AT_SYSINFO cancellation helpers Message-ID: <20160312184836.GA17707@gmail.com> References: <20160310033446.GL9349@brightrain.aerifal.cx> <20160310111646.GA13102@gmail.com> <20160310164104.GM9349@brightrain.aerifal.cx> <20160310180331.GB15940@gmail.com> <20160310232819.GR9349@brightrain.aerifal.cx> <20160311093347.GA17749@gmail.com> <20160311113914.GD29662@port70.net> <20160312170040.GA1108@gmail.com> <20160312180531.GD9349@brightrain.aerifal.cx> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20160312180531.GD9349@brightrain.aerifal.cx> User-Agent: Mutt/1.5.23 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1719 Lines: 47 * Rich Felker wrote: > On Sat, Mar 12, 2016 at 06:00:40PM +0100, Ingo Molnar wrote: > > > > * Linus Torvalds wrote: > > > > > [...] > > > > > > Because if that's the case, I wonder if what you really want is not "sticky > > > signals" as much as "synchronous signals" - ie the ability to say that a signal > > > shouldn't ever interrupt in random places, but only at well-defined points > > > (where a system call would be one such point - are there others?) > > > > Yes, I had similar 'deferred signal delivery' thoughts after having written up the > > sticky signals approach, I just couldn't map all details of the semantics: see the > > 'internal libc functions' problem below. > > > > If we can do this approach then there's another advantage as well: this way the C > > library does not even have to poll for cancellation at syscall boundaries: i.e. > > the regular system call fast path gets faster by 2-3 instructions as well. > > That is not a measurable benefit. You're talking about 2-3 cycles out of 10k or > more cycles (these are heavy blocking syscalls not light things like SYS_time or > SYS_getpid). Huh? The list of 'must be' cancellable system calls includes key system calls like: open() close() read() variants write() variants poll() select() which can be and often are very lightweight. The list of 'may be cancellable' system calls includes even more lightweight system calls. I think you are confusing 'might block' with 'will block'. Most IO operations on a modern kernel with modern hardware will not block! You are scaring me ... :-( Thanks, Ingo