On Thu, Apr 10, 2014 at 12:40:58PM -0400, Richard Yao wrote: > Performance analysis of software compilation by Gentoo portage on an > Intel E5-2620 with 64GB of RAM revealed that a sizeable amount of time, > anywhere from 5% to 15%, was spent in get_vmalloc_info(), with at least > 40% of that time spent in the _raw_spin_lock() invoked by it. > > The spinlock call is done on vmap_area_lock to protect vmap_area_list, > but changes to vmap_area_list are made under RCU. The only consumer that > requires a spinlock on an RCU-ified list is /proc/vmallocinfo. That is Why only '/proc/vmallocinfo' needs the spinlock? List iterators which access va->vm such as vread() and vwrite() needs the spinlock too. But, I think that get_vmalloc_info() doesn't need it, so you can use rcu list iteration on that function and it would fix your problem. Thanks. -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>