Re: [PATCH] kernel:async function call:introduce async_run

From: Ming Lei
Date: Wed May 13 2009 - 10:35:28 EST


2009/5/13 Cornelia Huck <cornelia.huck@xxxxxxxxxx>:
> On Wed, 13 May 2009 20:56:40 +0800,
> Ming Lei <tom.leiming@xxxxxxxxx> wrote:
>
>> 2009/5/13 Cornelia Huck <cornelia.huck@xxxxxxxxxx>:
>> > On Wed, 13 May 2009 08:33:49 +0800,
>> > tom.leiming@xxxxxxxxx wrote:
>
>> >>  /**
>> >> + * async_run - schedule a function for asynchronous execution
>> >> + * @ptr: function to execute asynchronously
>> >> + * @data: data pointer to pass to the function
>> >> + *
>> >> + * Note:we do not allocate a cookie for this kind of aysnchronous
>> >> + * function to decrease the wait time of async_synchronize_full().
>> >
>> > But async_synchronize_full() still waits for list_empty(&async_running)
>> > - so what does this buy us?
>>
>> I mean it can decrease the wait time for other async function.
>> async_schedule() still can be used to do such thing, but may lead to a
>> slower boot.  It is the main
>> purpose of the patch.
>
> I see how this can affect places calling async_synchronize_cookie(),
> but the function will still end up on async_running. If you don't want
> async_synchronize_full() waiting for these functions, couldn't you use
> your own running list?
>
> (Oh, and I just thought about it a bit further:
> - somebody calls async_run() -> function with cookie = MAX_COOKIE will be
>  lowest_in_progress at some point in time
> - somebody else calls async_schedule() -> cookie = n
> - we wait with async_synchronize_cookie(n) - which returns since
>  MAX_COOKIE >= n, which is probably not what we want)
>
yes , you are right, I'll think about it.



--
Lei Ming
--
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/