Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755575Ab2BOUqb (ORCPT ); Wed, 15 Feb 2012 15:46:31 -0500 Received: from www.linutronix.de ([62.245.132.108]:54995 "EHLO Galois.linutronix.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754595Ab2BOUq2 (ORCPT ); Wed, 15 Feb 2012 15:46:28 -0500 Date: Wed, 15 Feb 2012 21:46:27 +0100 (CET) From: Thomas Gleixner To: Matthew Garrett cc: LKML , Arjan van de Ven , Peter Zijlstra Subject: Re: [PATCH] hrtimers: Special-case zero length sleeps In-Reply-To: <20120215203814.GA29795@srcf.ucam.org> Message-ID: References: <1317308372-6810-1-git-send-email-mjg@redhat.com> <20120215145225.GA21448@srcf.ucam.org> <20120215202221.GA29552@srcf.ucam.org> <20120215203814.GA29795@srcf.ucam.org> User-Agent: Alpine 2.02 (LFD 1266 2009-07-14) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Linutronix-Spam-Score: -1.0 X-Linutronix-Spam-Level: - X-Linutronix-Spam-Status: No , -1.0 points, 5.0 required, ALL_TRUSTED=-1,SHORTCIRCUIT=-0.0001 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1911 Lines: 40 On Wed, 15 Feb 2012, Matthew Garrett wrote: > On Wed, Feb 15, 2012 at 09:30:20PM +0100, Thomas Gleixner wrote: > > On Wed, 15 Feb 2012, Matthew Garrett wrote: > > > Excellent. So the real question is what /should/ sleep(0) do - nothing, > > > schedule or sleep for an arbitrary period of time that could be years? > > > > Well, I don't expect slack to be set to years and I really don't want > > to special case sleep(0), because then we might end up discussing > > special casing usleep(1) or nanosleep(1ns) as well. > > Increasing slack to the seconds range has measureable power management > benefits, but there's some code that ends up broken as a result even > when they're nominally event driven. I've no problem with us just > declaring that code as broken, but it would be less effort to special > case it. Application authors do seem to have ended up under the belief > that sleep(0) is a meaningful thing to do, and the internet seems to be > full of suggestions to use it rather than sched_yield(). The internet is full of crappy suggestions written by absolutely clueless and advisory resistant morons. Dammit, we cannot come up with a reasonable definition for special casing that stuff simply because you cannot draw a clear boundary what to special case and what not. And there is no sensible definition for what to do - return right away or go through schedule() or what ever. sleep(0) is as pointless as sched_yield() and it's about time that we stop to create a fucking mess in the kernel just because user space programmers refuse to understand how an operating system works and how proper programming should be done. Thanks, tglx -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/