Re: + work_on_cpu-rewrite-it-to-create-a-kernel-thread-on-demand.patch added to -mm tree

From: Frédéric Weisbecker
Date: Tue Feb 03 2009 - 11:58:28 EST


2009/2/3 Ingo Molnar <mingo@xxxxxxx>:
>
> * akpm@xxxxxxxxxxxxxxxxxxxx <akpm@xxxxxxxxxxxxxxxxxxxx> wrote:
>
>> ------------------------------------------------------
>> Subject: work_on_cpu(): rewrite it to create a kernel thread on demand
>> From: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
>>
>> The various implemetnations and proposed implemetnations of work_on_cpu()
>> are vulnerable to various deadlocks because they all used queues of some
>> form.
>>
>> Unrelated pieces of kernel code thus gained dependencies wherein if one
>> work_on_cpu() caller holds a lock which some other work_on_cpu() callback
>> also takes, the kernel could rarely deadlock.
>>
>> Fix this by creating a short-lived kernel thread for each work_on_cpu()
>> invokation.
>>
>> This is not terribly fast, but the only current caller of work_on_cpu() is
>> pci_call_probe().
>
> hm, it's quite ugly as well, and wasteful with resources.


Sorry I don't see the patch but only the changelog.
So perhaps my answer will be a bit out of sync.

But if pci_call_probe() is the only caller, so it is supposed to be
called only on boot.
Perhaps the work_on_cpu thread can be killed after boot up and then
become a thread created
on the fly after that if needed....

Or perhaps it's too much complex.....
--
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/