lkml.org 
[lkml]   [2007]   [Mar]   [1]   [last100]   RSS Feed
Views: [more markup]  [less markup]  [headers]  [forward] 
 
Messages in this thread
    /
    DateThu, 1 Mar 2007 11:38:06 +0300
    FromEvgeniy Polyakov <>
    SubjectRe: [patch 00/13] Syslets, "Threadlets", generic AIO support, v3
    On Wed, Feb 28, 2007 at 11:42:24AM -0800, Davide Libenzi (davidel@xmailserver.org) wrote:
    > On Wed, 28 Feb 2007, Chris Friesen wrote:
    > 
    > > Davide Libenzi wrote:
    > > 
    > > > struct async_syscall {
    > > > 	unsigned long nr_sysc;
    > > > 	unsigned long params[8];
    > > > 	long *result;
    > > > };
    > > > 
    > > > And what would async_wait() return bak? Pointers to "struct async_syscall"
    > > > or pointers to "result"?
    > > 
    > > Either one has downsides.  Pointer to struct async_syscall requires that the
    > > caller keep the struct around.  Pointer to result requires that the caller
    > > always reserve a location for the result.
    > > 
    > > Does the kernel care about the (possibly rare) case of callers that don't want
    > > to pay attention to result?  If so, what about adding some kind of
    > > caller-specified handle to struct async_syscall, and having async_wait()
    > > return the handle?  In the case where the caller does care about the result,
    > > the handle could just be the address of result.
    > 
    > Something like this (with async_wait() returning asynid's)?
    > 
    > struct async_syscall {
    > 	long *result;
    > 	unsigned long asynid;
    > 	unsigned long nr_sysc;
    > 	unsigned long params[8];
    > };
    
    Having result pointer as NULL might imply that result is not interested
    in and thus it can be discarded and event async syscall will not be
    returned through aync_wait().
    More flexible is having request flags field in the structure.
    
    > - Davide
    > 
    
    -- 
    	Evgeniy Polyakov
    -
    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/
    
    
    \
     
     \ /
      Last update: 2007-03-01 09:43    [from the cache]
    ©2003-2008