[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20140416002804.GB17350@js1304-P5Q-DELUXE>
Date: Wed, 16 Apr 2014 09:28:04 +0900
From: Joonsoo Kim <iamjoonsoo.kim@....com>
To: Richard Yao <ryao@...too.org>
Cc: Andrew Morton <akpm@...ux-foundation.org>,
Zhang Yanfei <zhangyanfei.yes@...il.com>,
Wanpeng Li <liwanp@...ux.vnet.ibm.com>,
Johannes Weiner <hannes@...xchg.org>,
HATAYAMA Daisuke <d.hatayama@...fujitsu.com>,
linux-mm@...ck.org, linux-kernel@...r.kernel.org,
kernel@...too.org, Matthew Thode <mthode@...ode.org>
Subject: Re: [PATCH] mm/vmalloc: Introduce DEBUG_VMALLOCINFO to reduce
spinlock contention
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 from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists