Messages in this thread | | | Subject | Re: [RFC] Thread Migration Preemption | From | Andi Kleen <> | Date | 06 Jul 2007 13:59:33 +0200 |
| |
Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca> writes:
> Thread Migration Preemption > > This patch adds the ability to protect critical sections from migration to > another CPU without disabling preemption.
Good idea.
I sometimes think we could have avoided _much_ trouble if that had been always default for processes running in kernel space.
> This will be useful to minimize the amount of preemption disabling for the -rt > patch. It will help leveraging improvements brought by the local_t types in > asm/local.h (see Documentation/local_ops.txt). Note that the updates done to > variables protected by migration_disable must be either atomic or protected from > concurrent updates done by other threads. > > Typical use: > > migration_disable(); > local_inc(&__get_cpu_var(&my_local_t_var)); > migration_enable();
It seems strange to have a new interface for this. We already have get_cpu()/put_cpu(). So why not use that?
> unsigned long flags; /* low level flags */ > __u32 cpu; > __s32 preempt_count; /* 0 => preemptable, <0 => BUG */ > + int migration_count;/* 0: can migrate, <0 => BUG */
Can you turn preempt_count into a short first and use a short? That should be enough and cache line usage wouldn't be increased. That's ok on x86; on RISCs int might be faster
-Andi - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |