Re: [PATCH v4] blk-cgroup: Replace u64 sync with spinlock for iostat
From: Boy Wu (吳勃誼) <hidden>
Date: 2024-08-09 07:50:55
Also in:
cgroups, linux-block, linux-mediatek, lkml
From: Boy Wu (吳勃誼) <hidden>
Date: 2024-08-09 07:50:55
Also in:
cgroups, linux-block, linux-mediatek, lkml
On Tue, 2024-07-30 at 09:49 -1000, tj@kernel.org wrote:
External email : Please do not click links or open attachments until you have verified the sender or the content. Hello, Boy. On Fri, Jul 26, 2024 at 03:43:27AM +0000, Boy Wu (吳勃誼) wrote: ...quoted
The use of a spinlock with u64 sync is suggested in include/linux/u64_stats_sync.h:33. * Usage : * * Stats producer (writer) should use following template granted it already got * an exclusive access to counters (a lock is already taken, or percpuquoted
* data is used [in a non preemptable context]) * * spin_lock_bh(...) or other synchronization to get exclusiveaccessquoted
* ... * u64_stats_update_begin(&stats->syncp); * u64_stats_add(&stats->bytes64, len); // non atomic operation * u64_stats_inc(&stats->packets64); // non atomic operation * u64_stats_update_end(&stats->syncp); Is this a incorrect statment?That's not incorrect and it'd make sense if we really want to use u64_sync - e.g. the reader is hot path. Here, just a spinlock would be simpler and do fine. Thanks. -- tejun
u64_sync with spin lock has the benefit of locking only when writing iostat, but replacing u64_sync with spin lock will lock not only when writing iostat but also when reading iostat. Does it have enough benefit to replace u64_sync and add the cost of locking when reading iostat? -- Boy.Wu