Ingo Molnar wrote: > * Davide Libenzi <davidel@xxxxxxxxxxxxxxx> wrote: > >> On Sun, 23 Nov 2008, Tejun Heo wrote: >> >>> +static int pollwake(wait_queue_t *wait, unsigned mode, int sync, void *key) >>> +{ >>> + struct poll_wqueues *pwq = wait->private; >>> + DECLARE_WAITQUEUE(dummy_wait, pwq->polling_task); >>> + >>> + set_mb(pwq->triggered, 1); >>> + >>> + /* perform the default wake up operation */ >>> + return default_wake_function(&dummy_wait, mode, sync, key); >>> +} >> Wouldn't it be nicer to un-static try_to_wake_up() (or a wrapper) >> instead of setting up a fake wait queue just to use >> default_wake_function(), just to wake up a task? > > the already existing single-task-wakeup shortcut method made available > by the scheduler is wake_up_process(). A number of primitives where > waitqueue overhead is of concern already make use of it. > (mutexes/rtmutexes and more) > > if you need a different mode flag, then please extend the > wake_up_process() family of APIs. Well, the problem is that for wait wake up functions @mode and @sync are passed as parameter and should be passed over to actual wake up function as-is, if I add @mode and @sync to wake_up_process() family of APIs, it's just try_to_wake_up(). Thanks. -- tejun -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html