Re: [patch 00/13] Syslets, "Threadlets", generic AIO support, v3

From: Davide Libenzi
Date: Wed Feb 28 2007 - 14:42:49 EST


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];
};



- Davide


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/