Re: [PATCH] Reduce vm_stat cacheline contention in__vm_enough_memory

From: Tim Chen
Date: Wed Oct 12 2011 - 20:07:13 EST


Andrew Morton wrote:

> Yes, the global vm_stat[] array is a problem - I'm surprised it's hung
> around for this long. Altering the sysctl_overcommit_memory mode will
> hide the problem, but that's no good.
>
> I think we've discussed switching vm_stat[] to a contention-avoiding
> counter scheme. Simply using <percpu_counter.h> would be the simplest
> approach. They'll introduce inaccuracies but hopefully any problems
> from that will be minor for the global page counters.
>
> otoh, I think we've been round this loop before and I don't recall why
> nothing happened.

Yeah, we have had this discussion on vm_enough_memory before.

https://lkml.org/lkml/2011/1/26/473

The current version of per cpu counter was not really suitable because
the batch size is not appropriate. I've tried to use per cpu counter
with batch size adjusted in my attempt. Andrew has suggested having an
elastic batch size that's proportional to the size of the central
counter but I haven't gotten around to try that out.

Tim

--
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/