Thread (7 messages) 7 messages, 2 authors, 2024-08-09

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

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 per
cpu
quoted
 * data is used [in a non preemptable context])
 *
 *   spin_lock_bh(...) or other synchronization to get exclusive
access
quoted
 *   ...
 *   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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help