Re: [PATCH] sched/fair: provide u64 read for 32-bits arch helper
From: Vincent Donnefort
Date: Mon Jul 27 2020 - 11:23:12 EST
On Mon, Jul 27, 2020 at 02:38:01PM +0200, peterz@xxxxxxxxxxxxx wrote:
> On Mon, Jul 27, 2020 at 11:59:24AM +0100, vincent.donnefort@xxxxxxx wrote:
> > From: Vincent Donnefort <vincent.donnefort@xxxxxxx>
> > Introducing two macro helpers u64_32read() and u64_32read_set_copy() to
> > factorize the u64 vminruntime and last_update_time read on a 32-bits
> > architecture. Those new helpers encapsulate smp_rmb() and smp_wmb()
> > synchronization and therefore, have a small penalty in set_task_rq_fair()
> > and init_cfs_rq().
> > The choice of using a macro over an inline function is driven by the
> > conditional u64 variable copy declarations.
> > #ifndef CONFIG_64BIT
> > u64 [vminruntime|last_update_time]_copy;
> > #endif
> This lacks a *why*... why did you get up this morning and wrote us this
For 32-bit architectures, both min_vruntime and last_update_time are using
similar access. This patch is simply an attempt to unify their usage by
introducing two macros to rely on when accessing those. At the same time, it
brings a comment regarding the barriers usage, as per the kernel policy. So
overall this is just a clean-up without any functional changes.