Re: [PATCHSET] cpuhog: implement and use cpuhog

From: Tejun Heo
Date: Thu Mar 11 2010 - 22:14:18 EST


Hello, Peter.

On 03/11/2010 04:25 AM, Peter Zijlstra wrote:
> cpuhog as a name doesn't work for me, stop-machine had a name that
> described its severity and impact, cpuhog makes me think of while(1);.
>
> Can't we keep the stop_machine name and make that a workqueue interface
> like you propose?
>
> That way we'd end up with something like:
>
> kernel/stop_machine.c
> int stop_cpu(int cpu, stop_fn_t fn, void *arg)
> int stop_machine(struct cpumask *mask, stop_fn_t fn, void *arg)

The distinction would be diabling of IRQ on each CPU.
hog_[one_]cpu[s]() schedule highest priority task to, well, hog the
cpu but doesn't affect contextless part of the cpu (irq, bh, whatnot).
In that sense, it is the lowest bottom of upper half but not quite
stopping the cpu and I think the distinction is rather important to
make. With the proposed preemption disabling around the callback, it
pretty much behaves like a complete hog too.

> alternatively, something like schedule_primary_work*() might work I
> guess.

I wanted to avoid verbs associatffed with the traditional workqueue -
schedule and queue, while emphasizing that this is something that you
don't want to abuse - so the verb hog. monopolize_cpu() was the
second choice but hog is shorter, sweeter and can also be used as a
noun as-is, so I chose hog.

So, those were my rationales. What do you think?

Thanks.

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