Mathieu Desnoyers <[EMAIL PROTECTED]> 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 [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/