Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755351AbZGOVxI (ORCPT ); Wed, 15 Jul 2009 17:53:08 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1755060AbZGOVxI (ORCPT ); Wed, 15 Jul 2009 17:53:08 -0400 Received: from smtpout.cs.fsu.edu ([128.186.122.75]:5664 "EHLO mail.cs.fsu.edu" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1754997AbZGOVxH (ORCPT ); Wed, 15 Jul 2009 17:53:07 -0400 Date: Wed, 15 Jul 2009 17:53:05 -0400 From: Ted Baker To: Henrik Austad Cc: "James H. Anderson" , Peter Zijlstra , Chris Friesen , Raistlin , Douglas Niehaus , LKML , Ingo Molnar , Bill Huey , Linux RT , Fabio Checconi , Thomas Gleixner , Dhaval Giani , Noah Watkins , KUSP Google Group , Tommaso Cucinotta , Giuseppe Lipari , Bjoern Brandenburg Subject: Re: RFC for a new Scheduling policy/class in the Linux-kernel Message-ID: <20090715215305.GD14993@cs.fsu.edu> References: <200907102350.47124.henrik@austad.us> <1247589099.7500.191.camel@twins> <200907142128.48558.henrik@austad.us> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <200907142128.48558.henrik@austad.us> User-Agent: Mutt/1.4.2.1i Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1556 Lines: 32 On Tue, Jul 14, 2009 at 09:28:47PM +0200, Henrik Austad wrote: > ... In MC you need to do this the hard way, namely compute the > point in time not when the task misses the deadline, but when it > will *eventually* fail a deadline. By doing that, you combine > deadline, wcet and granted time in one variable, and you have a > *single* variable to compare. This is true in a theoretical sense, and is the basis of some "optimal" scheduling algorithms, including the "throwforward scheduling" algorithm. It makes sense in some environments, where you actually know the WCET of the task in advance. However, I don't believe a Linux system can expect all applications to provide this kind of information. In a system programmed using process and threads, the decision to sleep or wake is embedded in the internal logic of the thread, and implemented by system calls. The existing system calls do not convey how long the thread needs to execute before it reaches its next suspension point. Therefore, without a new API you cannot use WCET. If you create a new API for this, you are limiting this form of scheduling to threads that choose to use that API, and are able to provide the needed WCET information. This seems like a small number of cases among the full range of real-time Linux applications. Ted -- 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/