[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[nptl] Re: OSDL Bug 3770



Hello Nick!
Hello NPTL Mailing List!

>> Ah, the problem is that when the driver thread has a higher
>> priority than the worker threads, so when the driver goes into an
>> infinite loop  waiting, the able to schedule, however.

Although POSIX legally permits such implementation for realtime policy 
on SMP machines, this implementation is clearly *NOT* REASONABLE.

The reason is extremely simple: the application *CANNOT* necessarily 
known that it gets stuck behind a higher-priority thread (though it 
could had run on another CPU if the scheduler had decided otherwise). 
That's *NOT* doable to program in a deterministic fashion in such 
"realtime"-environement

[
"Realtime" put into quote. I am speaking here of soft realtime, that is 
an environment whose tasks scheduling follow a specific deterministic 
order. I am not speaking about hard-realtime that have additional timing 
constraints. Following that definition, we can say that Linux offers 
(soft) "Realtime".
]


> > The driver really needs to sleep, use a mutex, use a lower priority,
>> or  something in order for it to work.

NO! It is not the responsability of the application to fix that 
behavior! We can in our case because 'we know', but some applications 
don't!!!


The mistake done here is interesting. When you have a pool of servers, 
you can proceed in two ways to serve the clients:

     (1) make a FIFO queue for each server. When a client arrives, it
         chooses the queue that is the shortest.

     (2) make an unique FIFO queue for all servers. All clients are
         queued, and when a server is done it takes the first client
         waiting on that big queue.

Queuing theory proves that (2) is better. Exactly due to the reason we 
have here. With (1), the guys in the queue might get stuck if the 
corresponding server is blocked by a client. With (2), when a server is 
blocked by a client, it doesn't prevent the other clients to be served 
by other servers.

[
An historical note. USA had implemented (2) in offices, supermarkets and 
such long before Europa. Because in Europe, customers were convinced 
that model (2) took more time, because the queue was longer.
]
Liste de diffusion nptl
Pour se désinscrire : mailto:nptl_request@bullopensource.org?subject=unsubscribe