Re: [PATCH] ext4: change the type of ext4 cache stats to percpu_counter to improve performance

From: Theodore Y. Ts'o
Date: Sat Aug 24 2019 - 23:26:00 EST


On Fri, Aug 23, 2019 at 10:47:34AM +0800, Shaokun Zhang wrote:
> From: Yang Guo <guoyang2@xxxxxxxxxx>
>
> @es_stats_cache_hits and @es_stats_cache_misses are accessed frequently in
> ext4_es_lookup_extent function, it would influence the ext4 read/write
> performance in NUMA system.
> Let's optimize it using percpu_counter, it is profitable for the
> performance.
>
> The test command is as below:
> fio -name=randwrite -numjobs=8 -filename=/mnt/test1 -rw=randwrite
> -ioengine=libaio -direct=1 -iodepth=64 -sync=0 -norandommap -group_reporting
> -runtime=120 -time_based -bs=4k -size=5G
>
> And the result is better 10% than the initial implement:
> without the patchïIOPS=197k, BW=770MiB/s (808MB/s)(90.3GiB/120002msec)
> with the patch, IOPS=218k, BW=852MiB/s (894MB/s)(99.9GiB/120002msec)
>
> Cc: "Theodore Ts'o" <tytso@xxxxxxx>
> Cc: Andreas Dilger <adilger.kernel@xxxxxxxxx>
> Signed-off-by: Yang Guo <guoyang2@xxxxxxxxxx>
> Signed-off-by: Shaokun Zhang <zhangshaokun@xxxxxxxxxxxxx>

Applied with some adjustments so it would apply. I also changed the patch summary to:

ext4: use percpu_counters for extent_status cache hits/misses

- Ted