On Fri, Dec 04, 2015 at 04:34:43PM -0800, Josh Triplett wrote:
> The content of the document seems fine; a few comments below on
> meta-issues.
> 
> On Fri, Dec 04, 2015 at 03:50:19PM -0800, Paul E. McKenney wrote:
> > --- /dev/null
> > +++ b/Documentation/RCU/Design/Requirements/Requirements.html
> > @@ -0,0 +1,2799 @@
> > +<!-- DO NOT HAND EDIT. -->
> > +<!-- Instead, edit Requirements.htmlx and run 'sh htmlqqz.sh Requirements' 
> > -->
> > +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
> > +        "http://www.w3.org/TR/html4/loose.dtd";>
> 
> Nit: these days, this should just be:
> <!doctype html>

Will making this change mean that https://validator.w3.org/ will
then require me to make a huge quantity of other changes?

> > +        <html>
> > +        <head><title>A Tour Through RCU's Requirements [LWN.net]</title>
> > +        <meta HTTP-EQUIV="Content-Type" CONTENT="text/html; 
> > charset=iso-8859-1">
> 
> Is there a good reason to not use charset=utf-8 here?

Beats me.  Cargo-culted that one.  ;-)

> > +
> > +<h1>A Tour Through RCU's Requirements</h1>
> > +
> > +<p>Copyright IBM Corporation, 2015</p>
> 
> If you're aiming for a properly formatted copyright notice, the year
> typically comes first, followed by the copyright holder.  That said,
> your corporate guidelines presumably have a specific format; is this
> that format?

Indeed it is.  Between you and IBM Legal, I unfortunately must follow
IBM Legal's advice.  ;-)

> > +<p>Author: Paul E.&nbsp;McKenney</p>
> > +<p><i>The initial version of this document appeared in the
> > +<a href="http://lwn.net/";>LWN</a> articles
> > +<a href="http://lwn.net/Articles/652156/";>here</a>,
> > +<a href="http://lwn.net/Articles/652677/";>here</a>, and
> > +<a href="http://lwn.net/Articles/653326/";>here</a>.</i></p>
> 
> s/http/https/g

Will change.

> > +<p>
> > +All that aside, here are the categories of currently known RCU 
> > requirements:
> > +</p>
> > +
> > +<ol>
> > +<li>       <a href="#Fundamental Requirements">
> 
> Anchors don't typically have spaces in them.  This may work in some
> browsers, but it doesn't validate.  You should either use %20 or
> (better) use a '-'.

It did when I validated it via https://validator.w3.org/.

Which is why I questioned your changes to the doctype directive.

Alternatively, what are you using to validate this?

> > +<p>
> > +This is followed by a <a href="#Summary">summary</a>,
> > +which is in turn followed by the inevitable
> > +<a href="#Answers to Quick Quizzes">answers to the quick quizzes</a>.
> 
> (Note: when editing anchors, don't forget to handle the target of this
> in the generation script.)

Good point!

> > +<p>
> > +This scenario resembles one of the first uses of RCU in
> > +<a href="http://en.wikipedia.org/wiki/DYNIX";>DYNIX/ptx</a>,
> 
> s/http/https/

Will change globally.

> > +<p>
> > +However, this temptation must be resisted because there are a
> > +surprisingly large number of ways that the compiler
> > +(to say nothing of
> > +<a href="http://www.openvms.compaq.com/wizard/wiz_2637.html";>DEC Alpha 
> > CPUs</a>)
> 
> This link sadly doesn't seem to work anymore; it redirects to HP's
> general page on OpenVMS, not a copy of that specific article.o
> Use this instead, assuming no current live version exists:
> https://web.archive.org/web/20120720095054/http://www.openvms.compaq.com/wizard/wiz_2637.html

Good catch!  Its new home is http://h71000.www7.hp.com/wizard/wiz_2637.html.

> > +<li>       It is also easy to forget to use <tt>rcu_assign_pointer()</tt>
> > +   and <tt>rcu_dereference()</tt>, perhaps (incorrectly)
> > +   substituting a simple assignment.
> > +   To catch this sort of error, a given RCU-protected pointer may be
> > +   tagged with <tt>__rcu</tt>, after which running sparse
> > +   with <tt>CONFIG_SPARSE_RCU_POINTER=y</tt> will complain
> > +   about simple-assignment accesses to that pointer.
> > +   Arnd Bergmann made me aware of this requirement, and also
> > +   supplied the needed
> > +   <a href="http://lwn.net/Articles/376011/";>patch series</a>.
> 
> s/http/https/
> 
> > +<li>       Open-coded use of <tt>rcu_assign_pointer()</tt> and
> > +   <tt>rcu_dereference()</tt> to create typical linked
> > +   data structures can be surprisingly error-prone.
> > +   Therefore, RCU-protected
> > +   <a href="http://lwn.net/Articles/609973/#RCU List APIs">linked lists</a>
> 
> s/http/https/

Will fix these.

> > +<p>
> > +This all should be quite obvious, but the fact remains that
> > +Linus Torvalds recently had to
> > +<a href="http://marc.info/?l=linux-kernel&amp;m=142905739823385";>remind</a>
> > +me of this requirement.
> 
> I'd suggest using the lkml.kernel.org redirector for this link, along
> with a Message-Id.
> 
> > +<p>
> > +The name notwithstanding, some Linux-kernel architectures
> > +can have nested NMIs, which RCU must handle correctly.
> > +Andy Lutomirski
> > +<a href="https://lkml.org/lkml/2014/11/21/642";>surprised me</a>
> > +with this requirement;
> > +he also kindly surprised me with
> > +<a href="https://lkml.org/lkml/2014/11/22/1";>an algorithm</a>
> > +that meets this requirement.
> 
> These links should both use lkml.kernel.org as well.  Doubly important
> because lkml.org is often down or has broken messages in its archive.

Good point, will look into finding the Message-IDs...

> > +<p>
> > +RCU therefore provides
> > +<tt><a href="http://lwn.net/Articles/217484/";>rcu_barrier()</a></tt>,
> 
> s/http/https/
> 
> > +<p>
> > +This pair of mutual scheduler-RCU requirements came as a
> > +<a href="http://lwn.net/Articles/453002/";>complete surprise</a>.
> 
> s/http/https/
> 
> > +This requirement made its presence known after users made it
> > +clear that an earlier
> > +<a href="http://lwn.net/Articles/107930/";>real-time patch</a>
> 
> s/http/https/

Will fix these.

> > +did not meet their needs, in conjunction with some
> > +<a href="https://lkml.org/lkml/2005/3/17/199";>RCU issues</a>
> 
> lkml.kernel.org

As above.

> > +<p>
> > +The
> > +<a href="http://lwn.net/Articles/609973/#RCU Per-Flavor API Table">RCU-bh 
> > API</a>
> 
> s/http/https/ (and the same for all later lwn links in the document)

Will fix.

                                                        Thanx, Paul

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

Reply via email to