Re: [PATCH 1/2] mem_cgroup: optimize the atomic count of wb_completion

From: brookxu.cn
Date: Fri Sep 24 2021 - 11:21:26 EST


Thanks for your time.

On 2021/9/24 10:01 PM, Michal Hocko wrote:
On Fri 24-09-21 21:02:52, brookxu wrote:
Thanks for your time.

Michal Hocko wrote on 2021/9/24 17:34:
On Fri 24-09-21 14:46:22, brookxu wrote:
From: Chunguang Xu <brookxu@xxxxxxxxxxx>

In order to track inflight foreign writeback, we init
wb_completion.cnt to 1. For normal writeback, this cause
wb_wait_for_completion() to perform meaningless atomic
operations. Since foreign writebacks rarely occur in most
scenarios, we can init wb_completion.cnt to 0 and set
frn.done.cnt to 1. In this way we can avoid unnecessary
atomic operations.

Does this lead to any measurable differences?

I created multiple cgroups that performed IO on multiple disks,
then flushed the cache with sync command, and no measurable
differences have been observed so far.

OK, so why do we want to optimize this code?

Just a optimization point discovered during the diagnosis, no
behavior change.