Re: [PATCH 00/32] [RFC] nohz/cpuset: Start discussions on nohz CPUs

From: David Nyström
Date: Fri Nov 02 2012 - 10:50:34 EST


On 11/02/2012 03:37 PM, Steven Rostedt wrote:
On Fri, 2012-11-02 at 14:23 +0000, Christoph Lameter wrote:
On Mon, 29 Oct 2012, Steven Rostedt wrote:

A while ago Frederic posted a series of patches to get an idea on
how to implement nohz cpusets. Where you can add a task to a cpuset
and mark the set to be 'nohz'. When the task runs on a CPU and is
the only task scheduled (nr_running == 1), the tick will stop.
The idea is to give the task the least amount of kernel interference
as possible. If the task doesn't do any system calls (and possibly
even if it does), no timer interrupt will bother it. By using
isocpus and nohz cpuset, a task would be able to achieve true cpu
isolation.


One other aspect that this patch probably needs to address is the cache localization of irq spinlocks.

At least in 3.6, with !CONFIG_SPARSE_IRQ
--
struct irq_desc irq_desc[NR_IRQS] __cacheline_aligned_in_smp = {
[0 ... NR_IRQS-1] = {
.handle_irq = handle_bad_irq,
.depth = 1,
.lock = __RAW_SPIN_LOCK_UNLOCKED(irq_desc->lock),
}
};
--

You are likely to get a cache miss in the top half of your low latency CPU anytime some other CPU has taken a spinlock which lies within the same cache line.

Or is my understanding of the __cacheline_aligned_in_smp declaration wrong ?

Br,
David

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