On Wed, Nov 25, 2015 at 10:04:44AM -0600, Christoph Lameter wrote: > > Although vmstat values aren't designed for accuracy, these are already > > used by some sensitive places so it is better to be more accurate. > > The design is to sacrifice accuracy and the time the updates occur for > performance reasons. This is not the purpose the counters were designed > for. If you put these demands on the vmstat then you will get complex > convoluted code and compromise performance.
I understand design decision, but, it is better to get value as much as accurate if there is no performance problem. My patch would not cause much performance degradation because it is just adding one this_cpu_read(). Consider about following example. Current implementation returns interesting output if someone do following things. v1 = zone_page_state(XXX); mod_zone_page_state(XXX, 1); v2 = zone_page_state(XXX); v2 would be same with v1 in most of cases even if we already update it. This situation could occurs in page allocation path and others. If some task try to allocate many pages, then watermark check returns same values until updating vmstat even if some freepage are allocated. There are some adjustments for this imprecision but why not do it become accurate? I think that this change is reasonable trade-off. Thanks. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/