Re: [PATCH v4 -next] cgroup/misc: Introduce misc.peak
From: Tejun Heo
Date: Tue Jul 02 2024 - 12:45:37 EST
Hello,
On Tue, Jul 02, 2024 at 07:57:18AM +0000, Xiu Jianfeng wrote:
> struct misc_res {
> u64 max;
> + u64 watermark;
atomic64_t is probably better here.
> atomic64_t usage;
> atomic64_t events;
> };
...
> +static void misc_cg_update_watermark(struct misc_res *res, u64 new_usage)
> +{
> + u64 old;
> +
How about just while (true)?
> + do {
> + old = READ_ONCE(res->watermark);
here, you can use atomic64_read().
> + if (new_usage <= old)
> + break;
> + if (cmpxchg(&res->watermark, old, new_usage) == old)
and atomic64_cmpxchg().
> + break;
> + } while (1);
> +}
Thanks.
--
tejun