[cgl_discussion] Re: OSDL CGL-WG draft specs available for review
hch at infradead.org
Wed Apr 23 09:49:58 PDT 2003
> 4.10 Force unmount (2) 2 Experimental Availability Core
> 4.10 Description:
> CGL shall support forced unmounting of a filesystem.
> * The unmount should work even if there are open files or processes
> in the file system.
> * Pending requests should be ended with an error return when the
> file system is unmounted.
This is very hard to get right. What the expermintel implementation
you're referring to?
> Reference projects:
> 6.1.1 Real Time Support Performance (1) 1 Experimental Performance
> 6.1.1 Description:
> CGL shall provide the capability of configuring the scheduler to
> provide soft real time support so that the real time scheduling
> latency of a given task will not exceed a target offered by the
> * This requirement requires that a latency target can be set and
> depended upon. As an approximation, on common commodity hardware
> supported by Linux, latency responses in the range of 10 to 15
> milliseconds should be considered reasonable and likely.
> * The Validation suite can likewise specify a methodology to allow a
> vendor to specify a latency value and provide verification that
> the specified value is satisfied.
Note that without a hard RT extention you'll only get averange latencly,
but never guaranteed.
> 6.3.1 Application (Pre)loading Non-root (2) 2 None Performance Core
> 6.3.1 Description:
> Applications need to be able to exploit the application pre-loading
> capability even when they are not executing as root. A configuration
> capability needs to exist to allow the system loader to determine
> eligible applications for being pre-loaded.
That means it couldn't get paged out, you can't do that without a
hard limit for user processes.
> 6.8 Page flushing 3 Experimental Performance Core
> 6.8 Description:
> CGL shall allow either applications or the operator controllable
> parameters to control page-flushing operations to control system
> * This capability should be configurable on a per-process or
> per-application basis and also as a global setting.
> * The Proof of Concept and Architecture subgroups need to consider
> what forms an API to support this should take.
> * Security needs to be addressed as mis- or over-use of this
> capability can have severe impacts on the system.
> Existing functions such as fsync() and fdatasync() are starting points
> to describe this. The difference here is that these apply to files and
> need to be executed by the application itself rather than by an
> administrator or a "manager program" that monitors the system and
> adjusts for different requirements. For this requirement, the system
> needs to also be able to flush an applications memory pages onto swap
I don't see how you want to implement this. The fundamental VM object
for page flushing is struct address_space and it's in no say related to
> OSDL CGL shall provide POSIX-compatible interfaces to support direct
> porting of common carrier grade applications. OSDL CGL shall follow
> the IEEE Std 1003.1-2001 POSIX standard for the functional areas
> listed below.
> The IEEE Std 1003.1-2001 POSIX System Interfaces, Issue 6 delineates
> functional areas using margin codes. This requirements document
> identifies those margin codes which are required or optional for a
> POSIX distribution. The POSIX functionality required by OSDL CGL is:
> 1. Core POSIX functionality
> 2. POSIX Timers functionality
> 3. POSIX Signals functionality
> 4. POSIX Threads functionality
Without really big kernel changes it's hard to get full POSIX thread
semantics. e.g. we still don't have credential sharing for tasks. And
it doesn't lool like this makes 2.6. I'd rather remove this one..
> Reference projects:
> * Implemented in NGPT: http://www-124.ibm.com/pthreads/.
Well, NGPT is maintaince only mode and I doubt there's much chance to see
this ever in glibc/ngpt. I'd rather check this with Ullrich before adding
it to the spec..
> 8.aem Low-level Asynchronous Events 2 Started Scalability Core
> 8.aem Description:
> OSDL CGL WG specifies that Carrier-Grade Linux 2.0 shall provide a
> very efficient capability for handling a large number of essentially
> simultaneous asynchronous events arriving on multiple channels (e.g.,
> multiple sockets or other similar paths.)
> CGL needs to have an efficient mechanism that provides the Linux
> kernel with advanced carrier-grade capabilities. The motivation of
> this mechanism is to enforce the system scalability and soft real-time
> responsiveness by reducing contentions appearing at the kernel level
> especially under high load.
> 8.aem POC Referrals:
> Reference projects:
> * Ericsson AEM (Asynchronous Event Mechanism):
AEM seems like a very bad idea to add to any spec. The code is a mess and
does about three different things that don't belong together. Better
don't even mention it :)
> Keeping it separate from the base kernel (i.e. using LIS) also would
> be the prudent thing to do, as providing streams in the kernel got an
> unfavorable reception in the past in the LKML.
Code doesn't get any better by keeping it outside the tree. This only means
issues don't get fixed - LiS is the best example for this.
More information about the cgl_discussion