From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753458AbcAOIuO (ORCPT ); Fri, 15 Jan 2016 03:50:14 -0500 Received: from casper.infradead.org ([85.118.1.10]:55226 "EHLO casper.infradead.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750810AbcAOIuK (ORCPT ); Fri, 15 Jan 2016 03:50:10 -0500 Date: Fri, 15 Jan 2016 09:50:04 +0100 From: Peter Zijlstra To: Luca Abeni Cc: linux-kernel@vger.kernel.org, Ingo Molnar , Juri Lelli Subject: Re: [RFC 8/8] Do not reclaim the whole CPU bandwidth Message-ID: <20160115085004.GE3421@worktop> References: <1452785094-3086-1-git-send-email-luca.abeni@unitn.it> <1452785094-3086-9-git-send-email-luca.abeni@unitn.it> <20160114195904.GH6357@twins.programming.kicks-ass.net> <5698ABFD.1040704@unitn.it> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <5698ABFD.1040704@unitn.it> User-Agent: Mutt/1.5.22.1 (2013-10-16) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Jan 15, 2016 at 09:21:17AM +0100, Luca Abeni wrote: > On 01/14/2016 08:59 PM, Peter Zijlstra wrote: > >On Thu, Jan 14, 2016 at 04:24:53PM +0100, Luca Abeni wrote: > >>Original GRUB tends to reclaim 100% of the CPU time... And this allows a > >>"CPU hog" (i.e., a busy loop) to starve non-deadline tasks. > >>To address this issue, allow the scheduler to reclaim only a specified > >>fraction of CPU time. > >>NOTE: the fraction of CPU time that cannot be reclaimed is currently > >>hardcoded as (1 << 20) / 10 -> 90%, but it must be made configurable! > > > >So the alternative is an explicit SCHED_OTHER server which is > >configurable. > Yes, I have thought about something similar (actually, this is the strategy > I implemented in my first CBS/GRUB scheduler. With the "old" 2.4 scheduler, > this was easier :). > But I think the solution I implemented in this patch is much simpler (it > just requires a very simple modification to grub_reclaim()) and is more > elegant from the theoretical point of view. It is certainly simpler, agreed. The trouble is with interfaces. Once we expose them we're stuck with them. And from that POV I think an explicit SCHED_OTHER server (or a minimum budget for a slack time scheme) makes more sense. It provides this same information while also providing more benefit, no? > >That would maybe fit in nicely with the DL based FIFO/RR servers from > >this other pending project. > Yes, this reminds me about the half-finished patch for RT throttling using > SCHED_DEADLINE... But that patch needs much more work IMHO. IIRC two years ago at RTLWS there was a presentation that the SMP issues were 'solved' and they would be posting the patches 'soon'.