Re: rcu kernel-doc issues (4.14-rc1)

From: Paul E. McKenney
Date: Mon Oct 16 2017 - 19:35:34 EST


On Mon, Oct 16, 2017 at 02:46:15PM -0700, Randy Dunlap wrote:
> On 10/16/17 13:26, Paul E. McKenney wrote:
> > On Mon, Oct 16, 2017 at 01:18:14PM -0700, Randy Dunlap wrote:
> >> On 10/16/17 13:07, Paul E. McKenney wrote:
> >>> On Mon, Oct 16, 2017 at 12:58:28PM -0700, Randy Dunlap wrote:
> >>>> Hi Jonathan and Paul,
> >>>>
> >>>> Please include these fixes before 4.14 final.
> >>>
> >>> Hello, Randy,
> >>>
> >>> I currently have them queued up for the 4.15 merge window. Will that
> >>> work for you?
> >>
> >> They should be fixed in 4.14 final IMO.
> >
> > OK, how about if I submit them to the 4.15 merge window, but add the
> > appropriate -stable tags to get them backported? Yes, these are bugs,
> > but I cannot in good conscience claim that they are v4.14 regressions.
> >
> > But if Jon agrees with you, I will of course create a patch series,
> > pull request, or whatever and send it along to him.
>
> You or Jon could just revert this commit then:
>
> commit 764f80798b958f74dbf0c6e76a8294d183dd9c16
> Author: Paul E. McKenney <paulmck@xxxxxxxxxxxxxxxxxx>
> Date: Tue Jul 4 14:42:20 2017 -0700
>
> doc: Add RCU files to docbook-generation files
>
> Suggested-by: Jonathan Corbet <corbet@xxxxxxx>
> Signed-off-by: Paul E. McKenney <paulmck@xxxxxxxxxxxxxxxxxx>
>
> But the current condition is bad.

Jon, what would you prefer?

Thanx, Paul

> >>>> Thanks.
> >>>>
> >>>> On 09/17/17 12:49, Paul E. McKenney wrote:
> >>>>> On Sun, Sep 17, 2017 at 10:57:42AM -0700, Randy Dunlap wrote:
> >>>>>> On 09/17/17 10:47, Paul E. McKenney wrote:
> >>>>>>> On Sat, Sep 16, 2017 at 09:41:45PM -0700, Paul E. McKenney wrote:
> >>>>>>>> On Sat, Sep 16, 2017 at 06:26:04PM -0700, Randy Dunlap wrote:
> >>>>>>>>> On 4.14-rc1, I am seeing lots of warnings on rcu kernel-doc:
> >>>>>>>>>
> >>>>>>>>> .. kernel-doc:: include/linux/rcupdate.h
> >>>>>>>>> :external:
> >>>>>>>>> ./Documentation/core-api/kernel-api.rst:357: ERROR: Error in "kernel-doc" directive:
> >>>>>>>>> unknown option: "external".
> >>>>>>>>
> >>>>>>>> $ grep external include/linux/rcupdate.h
> >>>>>>>> * by a single external-to-structure RCU-protected pointer, then you may
> >>>>>>>> * external-to-structure pointer -after- you have completely initialized
> >>>>>>>>
> >>>>>>>> Do these comments somehow qualify as an "external" option? If so, how
> >>>>>>>> do I tell kernel-doc to ignore them? Or must I reword them to avoid
> >>>>>>>> the word "external"?
> >>>>>>>>
> >>>>>>>>> .. kernel-doc:: include/linux/rcupdate_wait.h
> >>>>>>>>> :external:
> >>>>>>>>> ./Documentation/core-api/kernel-api.rst:360: ERROR: Error in "kernel-doc" directive:
> >>>>>>>>> unknown option: "external".
> >>>>>>>>
> >>>>>>>> $ grep external include/linux/rcupdate_wait.h
> >>>>>>>>
> >>>>>>>> There is no occurrence of the string "external" in this file. So this
> >>>>>>>> "external" option is unknown to me as well. So, any hints on how I
> >>>>>>>> should interpret these error messages?
> >>>>>>>
> >>>>>>> And thanks to Akira Yokosawa for pointing out my confusion in reading
> >>>>>>> these error messages. The line numbers of course apply to the file
> >>>>>>> Documentation/core-api/kernel-api.rst rather than the various RCU
> >>>>>>> C-language source files.
> >>>>>>>
> >>>>>>> The patch below removes the error messages for me. Is this what you
> >>>>>>> had in mind? (Might need other options at some point, but somewhere
> >>>>>>> to start.)
> >>>>>>>
> >>>>>>
> >>>>>> Yes, much better. Thanks.
> >>>>>>
> >>>>>> Just some missing kernel-doc on parameters mostly remaining:
> >>>>>
> >>>>> I have now fixed a number of these, thank you.
> >>>>>
> >>>>> Any hints for how to represent code samples within a "/**" comment?
> >>>>>
> >>>>> /home/git/linux-2.6-tip/include/linux/rcupdate.h:559: ERROR: Unexpected indentation.
> >>>>> /home/git/linux-2.6-tip/include/linux/rcupdate.h:563: WARNING: Block quote ends without a blank line; unexpected unindent.
> >>>>> /home/git/linux-2.6-tip/include/linux/rcupdate.h:777: ERROR: Unexpected indentation.
> >>>>> /home/git/linux-2.6-tip/include/linux/rcupdate.h:778: WARNING: Block quote ends without a blank line; unexpected unindent.
> >>>>>
> >>>>> Thanx, Paul
> >>>>>
> >>>>>> ../include/linux/rcupdate.h:818: warning: No description found for parameter 'p'
> >>>>>> ../include/linux/rcupdate.h:818: warning: No description found for parameter 'v'
> >>>>>> ../include/linux/rcupdate.h:826: warning: No description found for parameter 'p'
> >>>>>> ../include/linux/rcupdate.h:826: warning: No description found for parameter 'v'
> >>>>>> ../include/linux/srcu.h:95: warning: No description found for parameter 'sp'
> >>>>>> ../kernel/rcu/srcutree.c:873: warning: No description found for parameter 'rhp'
> >>>>>> ../kernel/rcu/srcutree.c:873: warning: Excess function parameter 'head' description in 'call_srcu'
> >>>>>> ../include/linux/rculist.h:302: warning: Incorrect use of kernel-doc format: * list_first_or_null_rcu - get the first element from a list
> >>>>>> ../include/linux/rculist.h:317: warning: No description found for parameter 'ptr'
> >>>>>> ../include/linux/rculist.h:317: warning: No description found for parameter 'type'
> >>>>>> ../include/linux/rculist.h:317: warning: No description found for parameter 'member'
> >>>>>> ../kernel/rcu/sync.c:94: warning: No description found for parameter 'rsp'
> >>>>>> ../kernel/rcu/sync.c:162: warning: No description found for parameter 'rcu'
> >>>>>> ../kernel/rcu/sync.c:162: warning: Excess function parameter 'rsp' description in 'rcu_sync_func'
> >>>>>>
> >>>>>>>
> >>>>>>> ------------------------------------------------------------------------
> >>>>>>>
> >>>>>>> diff --git a/Documentation/core-api/kernel-api.rst b/Documentation/core-api/kernel-api.rst
> >>>>>>> index 8282099e0cbf..30b2666bf494 100644
> >>>>>>> --- a/Documentation/core-api/kernel-api.rst
> >>>>>>> +++ b/Documentation/core-api/kernel-api.rst
> >>>>>>> @@ -352,44 +352,44 @@ Read-Copy Update (RCU)
> >>>>>>> ----------------------
> >>>>>>>
> >>>>>>> .. kernel-doc:: include/linux/rcupdate.h
> >>>>>>> - :external:
> >>>>>>> + :export
> >>>>>>>
> >>>>>>> .. kernel-doc:: include/linux/rcupdate_wait.h
> >>>>>>> - :external:
> >>>>>>> + :export
> >>>>>>>
> >>>>>>> .. kernel-doc:: include/linux/rcutree.h
> >>>>>>> - :external:
> >>>>>>> + :export
> >>>>>>>
> >>>>>>> .. kernel-doc:: kernel/rcu/tree.c
> >>>>>>> - :external:
> >>>>>>> + :export
> >>>>>>>
> >>>>>>> .. kernel-doc:: kernel/rcu/tree_plugin.h
> >>>>>>> - :external:
> >>>>>>> + :export
> >>>>>>>
> >>>>>>> .. kernel-doc:: kernel/rcu/tree_exp.h
> >>>>>>> - :external:
> >>>>>>> + :export
> >>>>>>>
> >>>>>>> .. kernel-doc:: kernel/rcu/update.c
> >>>>>>> - :external:
> >>>>>>> + :export
> >>>>>>>
> >>>>>>> .. kernel-doc:: include/linux/srcu.h
> >>>>>>> - :external:
> >>>>>>> + :export
> >>>>>>>
> >>>>>>> .. kernel-doc:: kernel/rcu/srcutree.c
> >>>>>>> - :external:
> >>>>>>> + :export
> >>>>>>>
> >>>>>>> .. kernel-doc:: include/linux/rculist_bl.h
> >>>>>>> - :external:
> >>>>>>> + :export
> >>>>>>>
> >>>>>>> .. kernel-doc:: include/linux/rculist.h
> >>>>>>> - :external:
> >>>>>>> + :export
> >>>>>>>
> >>>>>>> .. kernel-doc:: include/linux/rculist_nulls.h
> >>>>>>> - :external:
> >>>>>>> + :export
> >>>>>>>
> >>>>>>> .. kernel-doc:: include/linux/rcu_sync.h
> >>>>>>> - :external:
> >>>>>>> + :export
> >>>>>>>
> >>>>>>> .. kernel-doc:: kernel/rcu/sync.c
> >>>>>>> - :external:
> >>>>>>> + :export
>
>
> --
> ~Randy
>