Re: ext4 extent status tree LRU locking

From: Zheng Liu
Date: Fri Jun 14 2013 - 12:53:14 EST


On Fri, Jun 14, 2013 at 08:57:44AM -0700, Dave Hansen wrote:
> On 06/14/2013 07:09 AM, Zheng Liu wrote:
> > - INIT_LIST_HEAD(&scanned);
> > -
> > spin_lock(&sbi->s_es_lru_lock);
> > + list_sort(NULL, &sbi->s_es_lru, ext4_inode_touch_time_cmp);
> > list_for_each_safe(cur, tmp, &sbi->s_es_lru) {
>
> How long can this list get? I have the feeling this might get a bit
> painful, especially on a NUMA machine.

I guess that you worry about the time of sorting a lru list, right?
Ted and I also worry about this, especially when shrinker is called()
very frequently. Ted has presented a solution. I will give it a try.

>
> But, it definitely eliminates the spinlock contention that I was seeing.
> The top ext4 function in my profiles is way down under 1% of CPU time
> now. Thanks for the quick response, and please let me know if you need
> any further testing.

Thanks for your help. As I said above, I will try to improve this patch
later. My server's numa has been turned off in BIOS and I haven't a
privilege to turn it on. So that would be great if you could help me to
do some further testing.

Thanks in advance,
- Zheng
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/