Re: [PATCH] x86 microcode: work_on_cpu and cleanup of thesynchronization logic

From: Ingo Molnar
Date: Wed Apr 22 2009 - 06:36:56 EST



* Dmitry Adamushko <dmitry.adamushko@xxxxxxxxx> wrote:

> 2009/4/22 Ingo Molnar <mingo@xxxxxxx>:
> >
> > * Dmitry Adamushko <dmitry.adamushko@xxxxxxxxx> wrote:
> >
> >> +static long collect_cpu_info_local(void *arg)
> >> +{
> >> + struct collect_for_cpu *cfc = arg;
> >> +
> >> + BUG_ON(cfc->cpu != raw_smp_processor_id());
> >> +
> >> + return microcode_ops->collect_cpu_info(cfc->cpu, cfc->cpu_sig);
> >> +}
> >> +
> >> +static int collect_cpu_info_on_target(int cpu, struct cpu_signature *cpu_sig)
> >> +{
> >> + struct collect_for_cpu cfc = { .cpu_sig = cpu_sig, .cpu = cpu };
> >> +
> >> + return work_on_cpu(cpu, collect_cpu_info_local, &cfc);
> >> +}
> >
> > Couldnt this be done without work_on_cpu(), by using
> > smp_call_function()?
>
> It should be definitely possible. Will send an updated version.
>
> p.s. grrr... this idea should have come into my mind in the first place :-/

well you made all the hard work of tightening all the locking to
make this all real easy, right?

Ingo
--
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/