2019-10-01 17:41:09

by Alan Stern

[permalink] [raw]
Subject: [PATCH 1/3] tools/memory-model/Documentation: Fix typos in explanation.txt

This patch fixes a few minor typos and improves word usage in a few
places in the Linux Kernel Memory Model's explanation.txt file.

Signed-off-by: Alan Stern <[email protected]>

---

tools/memory-model/Documentation/explanation.txt | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)

Index: usb-devel/tools/memory-model/Documentation/explanation.txt
===================================================================
--- usb-devel.orig/tools/memory-model/Documentation/explanation.txt
+++ usb-devel/tools/memory-model/Documentation/explanation.txt
@@ -206,7 +206,7 @@ goes like this:
P0 stores 1 to buf before storing 1 to flag, since it executes
its instructions in order.

- Since an instruction (in this case, P1's store to flag) cannot
+ Since an instruction (in this case, P0's store to flag) cannot
execute before itself, the specified outcome is impossible.

However, real computer hardware almost never follows the Sequential
@@ -419,7 +419,7 @@ example:

The object code might call f(5) either before or after g(6); the
memory model cannot assume there is a fixed program order relation
-between them. (In fact, if the functions are inlined then the
+between them. (In fact, if the function calls are inlined then the
compiler might even interleave their object code.)


@@ -499,7 +499,7 @@ different CPUs (external reads-from, or

For our purposes, a memory location's initial value is treated as
though it had been written there by an imaginary initial store that
-executes on a separate CPU before the program runs.
+executes on a separate CPU before the main program runs.

Usage of the rf relation implicitly assumes that loads will always
read from a single store. It doesn't apply properly in the presence
@@ -955,7 +955,7 @@ atomic update. This is what the LKMM's
THE PRESERVED PROGRAM ORDER RELATION: ppo
-----------------------------------------

-There are many situations where a CPU is obligated to execute two
+There are many situations where a CPU is obliged to execute two
instructions in program order. We amalgamate them into the ppo (for
"preserved program order") relation, which links the po-earlier
instruction to the po-later instruction and is thus a sub-relation of
@@ -1572,7 +1572,7 @@ and there are events X, Y and a read-sid

2. X comes "before" Y in some sense (including rfe, co and fr);

- 2. Y is po-before Z;
+ 3. Y is po-before Z;

4. Z is the rcu_read_unlock() event marking the end of C;




2019-10-02 04:50:22

by Joel Fernandes

[permalink] [raw]
Subject: Re: [PATCH 1/3] tools/memory-model/Documentation: Fix typos in explanation.txt

On Tue, Oct 01, 2019 at 01:39:47PM -0400, Alan Stern wrote:
> This patch fixes a few minor typos and improves word usage in a few
> places in the Linux Kernel Memory Model's explanation.txt file.
>
> Signed-off-by: Alan Stern <[email protected]>
>

Reviewed-by: Joel Fernandes (Google) <[email protected]>

thanks,

- Joel


> ---
>
> tools/memory-model/Documentation/explanation.txt | 10 +++++-----
> 1 file changed, 5 insertions(+), 5 deletions(-)
>
> Index: usb-devel/tools/memory-model/Documentation/explanation.txt
> ===================================================================
> --- usb-devel.orig/tools/memory-model/Documentation/explanation.txt
> +++ usb-devel/tools/memory-model/Documentation/explanation.txt
> @@ -206,7 +206,7 @@ goes like this:
> P0 stores 1 to buf before storing 1 to flag, since it executes
> its instructions in order.
>
> - Since an instruction (in this case, P1's store to flag) cannot
> + Since an instruction (in this case, P0's store to flag) cannot
> execute before itself, the specified outcome is impossible.
>
> However, real computer hardware almost never follows the Sequential
> @@ -419,7 +419,7 @@ example:
>
> The object code might call f(5) either before or after g(6); the
> memory model cannot assume there is a fixed program order relation
> -between them. (In fact, if the functions are inlined then the
> +between them. (In fact, if the function calls are inlined then the
> compiler might even interleave their object code.)
>
>
> @@ -499,7 +499,7 @@ different CPUs (external reads-from, or
>
> For our purposes, a memory location's initial value is treated as
> though it had been written there by an imaginary initial store that
> -executes on a separate CPU before the program runs.
> +executes on a separate CPU before the main program runs.
>
> Usage of the rf relation implicitly assumes that loads will always
> read from a single store. It doesn't apply properly in the presence
> @@ -955,7 +955,7 @@ atomic update. This is what the LKMM's
> THE PRESERVED PROGRAM ORDER RELATION: ppo
> -----------------------------------------
>
> -There are many situations where a CPU is obligated to execute two
> +There are many situations where a CPU is obliged to execute two
> instructions in program order. We amalgamate them into the ppo (for
> "preserved program order") relation, which links the po-earlier
> instruction to the po-later instruction and is thus a sub-relation of
> @@ -1572,7 +1572,7 @@ and there are events X, Y and a read-sid
>
> 2. X comes "before" Y in some sense (including rfe, co and fr);
>
> - 2. Y is po-before Z;
> + 3. Y is po-before Z;
>
> 4. Z is the rcu_read_unlock() event marking the end of C;
>
>
>

2019-10-02 06:02:15

by Paul E. McKenney

[permalink] [raw]
Subject: Re: [PATCH 1/3] tools/memory-model/Documentation: Fix typos in explanation.txt

On Tue, Oct 01, 2019 at 05:01:23PM -0400, Joel Fernandes wrote:
> On Tue, Oct 01, 2019 at 01:39:47PM -0400, Alan Stern wrote:
> > This patch fixes a few minor typos and improves word usage in a few
> > places in the Linux Kernel Memory Model's explanation.txt file.
> >
> > Signed-off-by: Alan Stern <[email protected]>
> >
>
> Reviewed-by: Joel Fernandes (Google) <[email protected]>

I queued all three for further review, and added Joel's Reviewed-by
to the first one. Thank you both!

Thanx, Paul

> thanks,
>
> - Joel
>
>
> > ---
> >
> > tools/memory-model/Documentation/explanation.txt | 10 +++++-----
> > 1 file changed, 5 insertions(+), 5 deletions(-)
> >
> > Index: usb-devel/tools/memory-model/Documentation/explanation.txt
> > ===================================================================
> > --- usb-devel.orig/tools/memory-model/Documentation/explanation.txt
> > +++ usb-devel/tools/memory-model/Documentation/explanation.txt
> > @@ -206,7 +206,7 @@ goes like this:
> > P0 stores 1 to buf before storing 1 to flag, since it executes
> > its instructions in order.
> >
> > - Since an instruction (in this case, P1's store to flag) cannot
> > + Since an instruction (in this case, P0's store to flag) cannot
> > execute before itself, the specified outcome is impossible.
> >
> > However, real computer hardware almost never follows the Sequential
> > @@ -419,7 +419,7 @@ example:
> >
> > The object code might call f(5) either before or after g(6); the
> > memory model cannot assume there is a fixed program order relation
> > -between them. (In fact, if the functions are inlined then the
> > +between them. (In fact, if the function calls are inlined then the
> > compiler might even interleave their object code.)
> >
> >
> > @@ -499,7 +499,7 @@ different CPUs (external reads-from, or
> >
> > For our purposes, a memory location's initial value is treated as
> > though it had been written there by an imaginary initial store that
> > -executes on a separate CPU before the program runs.
> > +executes on a separate CPU before the main program runs.
> >
> > Usage of the rf relation implicitly assumes that loads will always
> > read from a single store. It doesn't apply properly in the presence
> > @@ -955,7 +955,7 @@ atomic update. This is what the LKMM's
> > THE PRESERVED PROGRAM ORDER RELATION: ppo
> > -----------------------------------------
> >
> > -There are many situations where a CPU is obligated to execute two
> > +There are many situations where a CPU is obliged to execute two
> > instructions in program order. We amalgamate them into the ppo (for
> > "preserved program order") relation, which links the po-earlier
> > instruction to the po-later instruction and is thus a sub-relation of
> > @@ -1572,7 +1572,7 @@ and there are events X, Y and a read-sid
> >
> > 2. X comes "before" Y in some sense (including rfe, co and fr);
> >
> > - 2. Y is po-before Z;
> > + 3. Y is po-before Z;
> >
> > 4. Z is the rcu_read_unlock() event marking the end of C;
> >
> >
> >

2019-10-02 14:16:26

by Alan Stern

[permalink] [raw]
Subject: Re: [PATCH 1/3] tools/memory-model/Documentation: Fix typos in explanation.txt

On Tue, 1 Oct 2019, Joel Fernandes wrote:

> On Tue, Oct 01, 2019 at 01:39:47PM -0400, Alan Stern wrote:
> > This patch fixes a few minor typos and improves word usage in a few
> > places in the Linux Kernel Memory Model's explanation.txt file.
> >
> > Signed-off-by: Alan Stern <[email protected]>
> >
>
> Reviewed-by: Joel Fernandes (Google) <[email protected]>

Joel, if you're sufficiently interested in all this stuff, would you
like to add yourself as a maintainer for the LKMM?

Alan

2019-10-02 16:07:31

by Joel Fernandes

[permalink] [raw]
Subject: Re: [PATCH 1/3] tools/memory-model/Documentation: Fix typos in explanation.txt

On Wed, Oct 02, 2019 at 10:13:43AM -0400, Alan Stern wrote:
> On Tue, 1 Oct 2019, Joel Fernandes wrote:
>
> > On Tue, Oct 01, 2019 at 01:39:47PM -0400, Alan Stern wrote:
> > > This patch fixes a few minor typos and improves word usage in a few
> > > places in the Linux Kernel Memory Model's explanation.txt file.
> > >
> > > Signed-off-by: Alan Stern <[email protected]>
> > >
> >
> > Reviewed-by: Joel Fernandes (Google) <[email protected]>
>
> Joel, if you're sufficiently interested in all this stuff, would you
> like to add yourself as a maintainer for the LKMM?

Absolutely I am quite interested. I will submit a patch for this. Thanks for
the suggestion, Alan!

thanks,

- Joel