On Wed, 4 Feb 2009 14:28:11 +1030 Rusty Russell <rusty@xxxxxxxxxxxxxxx> wrote: > On Wednesday 04 February 2009 05:55:29 Andrew Morton wrote: > > On Tue, 3 Feb 2009 17:58:13 +0100 > > Fr__d__ric Weisbecker <fweisbec@xxxxxxxxx> wrote: > > > > > 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 > > > > No it isn't. > > > > It's no less ugly than the current code. > > > > It's less buggy than the current code. > > Whatever, I like your version. Careful, or you'll own it ;) > Tho making it a series of 5 and exposing rdmsr_on_cpu/wrmsr_on_cpu for other > uses would be even better. These: int rdmsr_on_cpu(unsigned int cpu, u32 msr_no, u32 *l, u32 *h); int wrmsr_on_cpu(unsigned int cpu, u32 msr_no, u32 l, u32 h); int rdmsr_safe_on_cpu(unsigned int cpu, u32 msr_no, u32 *l, u32 *h); int wrmsr_safe_on_cpu(unsigned int cpu, u32 msr_no, u32 l, u32 h); already exist. I don't think anything else needs to be done here? -- To unsubscribe from this list: send the line "unsubscribe mm-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html