On Mon, 8 Dec 2008, Tim Blechmann wrote: > > > the lru_lock of struct mem_group_per_zone is used to avoid preemption > > > during the __mem_cgroup_stat_add_safe function. > > > therefore, a raw_spinlock_t should be used. > > > > What is the reason that this must avoid preemption? > > it guards a call to smp_processor_id() in __mem_cgroup_stat_add_safe(). > see http://article.gmane.org/gmane.linux.rt.user/3690 We could simply create a preempt_disable_rt(); that will only disable preemption when CONFIG_PREEMPT_RT is set. and then we could add int cpu; preempt_disable_rt(); cpu = smp_processor_id(); stat->cpustat[cpu].count[idx] += val; preempt_enable_rt(); Or something similar. -- Steve > > > Is there another > > way to solve this? I rather not just add a raw spinlock if we can > > help it. > > not sure, maybe one can disable preemption for that specific function? > > tim > > -- > tim@xxxxxxxxxx > http://tim.klingt.org > > Art is either a complaint or do something else > John Cage quoting Jasper Johns > -- To unsubscribe from this list: send the line "unsubscribe linux-rt-users" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html