Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1294675

Re: futex(3) man page, final draft for pre-release review

From Torvald Riegel <triegel@redhat.com>
Newsgroups linux.kernel
Subject Re: futex(3) man page, final draft for pre-release review
Date 2015-12-18 12:20 +0100
Message-ID <qH1eO-4T3-17@gated-at.bofh.it> (permalink)
References <qFY9k-4Mo-27@gated-at.bofh.it> <qG5aN-18t-5@gated-at.bofh.it> <qGmEG-3Gn-13@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


On Wed, 2015-12-16 at 16:54 +0100, Michael Kerrisk (man-pages) wrote:
> Hello Darren,
> 
> On 12/15/2015 10:18 PM, Darren Hart wrote:
> > On Tue, Dec 15, 2015 at 02:43:50PM +0100, Michael Kerrisk (man-pages) wrote:
> 
> [...]
> 
> >>        When executing a futex operation that requests to block a thread,
> >>        the kernel will block only if the futex word has the  value  that
> >>        the  calling  thread  supplied  (as  one  of the arguments of the
> >>        futex() call) as the expected value of the futex word.  The load‐
> >>        ing  of the futex word's value, the comparison of that value with
> >>        the expected value, and the actual blocking  will  happen  atomi‐
> >>
> >> FIXME: for next line, it would be good to have an explanation of
> >> "totally ordered" somewhere around here.
> >>
> >>        cally  and totally ordered with respect to concurrently executing
> > 
> > Totally ordered with respect futex operations refers to semantics of the
> > ACQUIRE/RELEASE operations and how they impact ordering of memory reads and
> > writes. The kernel futex operations are protected by spinlocks, which ensure
> > that that all operations are serialized with respect to one another.
> > 
> > This is a lot to attempt to define in this document. Perhaps a reference to
> > linux/Documentation/memory-barriers.txt as a footnote would be sufficient? Or
> > perhaps for this manual, "serialized" would be sufficient, with a footnote
> > regarding "totally ordered" and a pointer to the memory-barrier documentation?
> 
> I think I'll just settle for writing serialized in the man page, and be 
> done with it :-).

I'd prefer if you'd not just use "serialized" :)  Eventually, I'd prefer
if we can explain the semantics for the user in terms of the terminology
and semantics of the memory model of the programming language that users
will likely use to call futex ops (ie, C11 / C++11).

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

Re: futex(3) man page, final draft for pre-release review Darren Hart <dvhart@infradead.org> - 2015-12-15 22:20 +0100
  Re: futex(3) man page, final draft for pre-release review "Michael Kerrisk (man-pages)" <mtk.manpages@gmail.com> - 2015-12-16 17:00 +0100
    Re: futex(3) man page, final draft for pre-release review Torvald Riegel <triegel@redhat.com> - 2015-12-18 12:20 +0100
      Re: futex(3) man page, final draft for pre-release review Jonathan Wakely <jwakely@redhat.com> - 2015-12-18 16:40 +0100
      Re: futex(3) man page, final draft for pre-release review "Michael Kerrisk (man-pages)" <mtk.manpages@gmail.com> - 2015-12-19 08:00 +0100
  Re: futex(3) man page, final draft for pre-release review Torvald Riegel <triegel@redhat.com> - 2015-12-18 12:30 +0100
    Re: futex(3) man page, final draft for pre-release review "Michael Kerrisk (man-pages)" <mtk.manpages@gmail.com> - 2015-12-19 08:00 +0100

csiph-web