Re: kernel thread as real threads..

From: Julian Elischer <julian_at_elischer.org>
Date: Mon, 23 Jan 2006 18:35:04 -0800
Peter Jeremy wrote:

>On Mon, 2006-Jan-23 16:02:01 -0800, Julian Elischer wrote:
>  
>
>>>And any others I don't remember.  We may find we need to perform an 
>>>aio drain wait there if we switch to doing AIO in the process context.
>>>      
>>>
>>I don't think so..
>>IO is really 2 stage:
>>
>>for read, data is read into the cache by standard async kernel code.
>>then the thread wakes up and writes it to the user space.
>>if the thread has died the async request is still allowed to complete.
>>    
>>
>
>Is this done as a one-off event, or will data be copied from kernel
>to userland as the data arrives in the kernel?  The former implies
>that the userland buffer is (pretty much) atomically updated - it is
>unchanged until all the available data arrives, at which point it is
>all copied into userland and the aio flagged as complete.  The latter
>implies that parts of the userland buffer will update gradually.  The
>difference primarily affects large requests (and the latter approach
>implies that less kernel resources will be tied up by the I/O).
>  
>

I sugest reading the code.. I don't know the answer.. But I'm interested 
to hear the answer.
I believe it's done in (largeish) chunks but I may be wrong.
:-)

>What about the write case?
>  
>
I believe it's symetrical with read.,

In either case. If the requestor is not around at completion of the 
physical IO
it is not much of a problem.
Received on Tue Jan 24 2006 - 01:35:05 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:51 UTC