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-ext4" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html