Re: [PATCH 0/3] tools/memory-model, Documentation/litmus-test: Sort out location of litmus test and README
From: Akira Yokosawa
Date: Tue May 12 2020 - 07:50:54 EST
On Mon, 11 May 2020 22:13:09 -0400, Joel Fernandes wrote:
> On Mon, May 11, 2020 at 10:33:48AM -0700, Paul E. McKenney wrote:
>> On Sun, May 10, 2020 at 04:21:02PM +0900, Akira Yokosawa wrote:
>>> On Sat, 9 May 2020 12:43:30 +0900, Akira Yokosawa wrote:
>>>> Hi Joel,
>>>>
>>>> Sorry for the late response but I've noticed some glitches.
>>>>
>>>> On Sun, 22 Mar 2020 21:57:32 -0400, Joel Fernandes (Google) wrote:
>>>>> Move MP+onceassign+derefonce to the new Documentation/litmus-tests/rcu/
>>>>> directory.
>>>>
>>>> MP+onceassign+derefonce.litmus is called out in
>>>> tools/memory-model/Documentation/recipes.txt as a representative example
>>>> of RCU related litmus test.
>>>>
>>>> So I think it should be kept under tools/memory-model/litmus-tests.
>>>>
>>>> Further RCU-related litmus tests can be added under Documentation/litmus-tests/.
>>>>
>>>> IIUC, this change is not picked up by tip tree yet. So we have time to respin
>>>> the series targeting v5.9.
>>>>
>>>>>
>>>>> More RCU-related litmus tests would be added here.
>>>>>
>>>>> Signed-off-by: Joel Fernandes (Google) <joel@xxxxxxxxxxxxxxxxx>
>>>>>
>>>>> ---
>>>>> Cc: vpillai@xxxxxxxxxxxxxxxx
>>>>>
>>>>> Documentation/litmus-tests/README | 9 +++++++++
>>>>
>>>> Please note that later patches to add atomic litmus tests under
>>>> Documentation/litmus-tests/ by Boqun put README as
>>>> Documentation/litums-tests/atomic/README.
>>>>
>>>> This patch's location of RCU's README as Documentation/litmus-tests/README
>>>> looks asymmetric to me.
>>>>
>>>> I'm OK with either merging atomic's README with the top-level one or
>>>> moving RCU's README to under Documentation/litmus-tests/rcu.
>>>>
>>>> Joel, Boqum, can you sort out the location of README?
>>>
>>> So something like this?
>>>
>>> Patch 1/3 is an independent typo fix in recipes.txt.
>>> Patch 2/3 reverts the MP+onceassign+derefonce relocation.
>>> Patch 3/3 merges atomic's README into the top-level one.
>>>
>>> This is relative to -rcu's lkmm branch.
>>>
>>> Thoughts?
>>
>> Looks plausible to me, and thank you for reviewing this.
>>
>> Joel, thoughts?
>
> Sorry for the delays (OSPM conference in progress). I'm Ok with moving it
> back to tools/memory-model/.
>
> I think on top of this patch, I'd like to add a reference to the to the
> litmus test in tools/memory-model/ from Documentation/rcu/.
Sounds reasonable to me. But for most people, it never changes its location.
Please find inline comments below.
>
> Just to mention my rationale for Documentation/litmus-tests/rcu/, I was
> basically looking for a central place for RCU related litmus tests in the
> kernel sources and the idea of this new directory came up.
>
> For Akira's series,
> Acked-by: Joel Fernandes (Google) <joel@xxxxxxxxxxxxxxxxx>
Thank you!
>
> And could we add the following patch on top of Akira's series so we still
> maintain a reference to the moved RCU test?>
> ---8<-----------------------
>
> From 52fdb57551cc769d8bd690f4f2b22de36ddece99 Mon Sep 17 00:00:00 2001
> From: "Joel Fernandes (Google)" <joel@xxxxxxxxxxxxxxxxx>
> Date: Mon, 11 May 2020 22:06:46 -0400
> Subject: [PATCH] docs: litmus-tests: Clarify about the RCU pre-initialization
> test
>
> Since this test was moved to tools/memory-model/, make sure that it is
> at least referenced from Documentation/litmus-tests/'s README.
>
> Signed-off-by: Joel Fernandes (Google) <joel@xxxxxxxxxxxxxxxxx>
> ---
> Documentation/litmus-tests/README | 6 ++++--
> 1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/Documentation/litmus-tests/README b/Documentation/litmus-tests/README
> index ac0b270b456c1..53f09e74734a4 100644
> --- a/Documentation/litmus-tests/README
> +++ b/Documentation/litmus-tests/README
> @@ -11,7 +11,6 @@ tools/memory-model/README.
>
> atomic (/atomic derectory)
> --------------------------
> -
> Atomic-RMW+mb__after_atomic-is-stronger-than-acquire.litmus
> Test that an atomic RMW followed by a smp_mb__after_atomic() is
> stronger than a normal acquire: both the read and write parts of
> @@ -23,8 +22,11 @@ Atomic-RMW-ops-are-atomic-WRT-atomic_set.litmus
>
> RCU (/rcu directory)
> --------------------
> -
I loosely followed the convention of ReST documents in putting these empty
lines. But I don't mind if they are removed.
> RCU+sync+read.litmus
> RCU+sync+free.litmus
> Both the above litmus tests demonstrate the RCU grace period guarantee
> that an RCU read-side critical section can never span a grace period.
> +
> +MP+onceassign+derefonce.litmus (moved to tools/memory-model/litmus-tests/)
As I said above, for those who don't follow developments in the lkmm branch,
MP+onceassign+derefonce.litmus stays in tools/memory-model/litmus-tests/.
So,
+MP+onceassign+derefonce.litmus (under tools/memory-model/litmus-tests/)
looks better to me.
Thanks, Akira
> + Demonstrates that rcu_assign_pointer() and rcu_dereference() to
> + ensure that an RCU reader will not see pre-initialization garbage.
>