Re: [PATCH v2 2/2] docs-rst: userspace: update verbs API details

From: Joel Nider
Date: Tue Jan 15 2019 - 15:37:14 EST


Jonathan Corbet <corbet@xxxxxxx> wrote on 01/15/2019 08:08:54 PM:

> From: Jonathan Corbet <corbet@xxxxxxx>
> To: "Joel Nider" <JOELN@xxxxxxxxxx>
> Cc: Matthew Wilcox <willy@xxxxxxxxxxxxx>, Doug Ledford
<dledford@xxxxxxxxxx>,
> Jason Gunthorpe <jgg@xxxxxxxx>, Leon Romanovsky <leon@xxxxxxxxxx>,
linux-
> doc@xxxxxxxxxxxxxxx, linux-kernel@xxxxxxxxxxxxxxx, Mike Rapoport
<rppt@xxxxxxxxxxxxx>
> Date: 01/15/2019 08:09 PM
> Subject: Re: [PATCH v2 2/2] docs-rst: userspace: update verbs API
details
>
> On Tue, 15 Jan 2019 18:29:59 +0200
> "Joel Nider" <JOELN@xxxxxxxxxx> wrote:
>
> > > I think this is a horrible direction to take. The current document
is
> > > clearly for _users_. All this documentation you've added is for
kernel
> > > hackers. It needs to go in a different file, or not be added at
all.
> > >
> > Hmm, that's a bit heavy-handed in my opinion. If you look at what is
> > currently under "Userspace API", there are a total of 4 files - not
> > exactly what I would call comprehensive documentation of the Linux
kernel
> > interface.
>
> One has to start somewhere - I'm glad to see you adding to it.
>
> > So the option of not adding more documentation simply because
> > it is in the wrong section seems a bit defeatist (I think we can all
agree
> > more kernel docs is a good thing). So let's assume for the moment that
it
> > _should_ be added, and that we are discussing _where_.
>
> I think we definitely want to add it.
>
> > Yes, the document I
> > am modifying has a bit of a mash of pure userspace API - functions and

> > details that application developers must know - and the lower level
> > details that are more useful for someone who wishes to extend this
> > interface. The existing documentation (specifically unshare) also
suffers
> > from the same problem. There is a section (7) called "Low Level
Design"
> > which documents very much the same level of detail as the Infiniband
doc,
> > so this seems to be at least consistent.
> > I think there is a deeper issue - as an application developer, I would

> > only look at this kernel documentation as a last resort. #1 is the
'man'
> > pages, #2 is web search for an example (I know for many it's the other
way
> > around). So who really looks at this documentation? I say the vast
> > majority is kernel hackers. So yes, this is about the user-facing API,
but
> > not from the application writer's perspective - it should be about how
to
> > create a consistent API for users, from the kernel hacker's
perspective.
>
> The intent behind the user-space API manual is to document the
user-space
> API; it's meant to be read by people writing applications and such.
> Perhaps they find it with a web search, but it will be there for them,
one
> hopes, when they want it.

So is the intent then to duplicate what is already in 'man'? Why would we
want 2 different locations for basically the same information? Wouldn't it
make more sense to just put these few details into appropriate 'man'
pages?

> The project of reworking the kernel documentation to be more
comprehensive
> and more focused on its readers, rather than, as Rob Landley once put
it,
> "a gigantic mess, currently organized based on where random passers-by
put
> things down last" is still in an early stage. But that doesn't mean
that
> we shouldn't try to always move in the right direction.

It looks like I misunderstood the purpose of the "userspace API" section
then. So is there a section that is meant for a guide on how to write an
interface function?

> So I agree with
> Willy that this particular text is better suited to the driver-API
> manual. Even if a bare bit of information on its own there for now,
it's
> a starting place. Can I ask you to do that, please?

OK, just to be clear - you are asking me to leave the original file as-is
(well, after .rst conversion) but move it to the new location
(Documentation/userspace-api), and put my new content into a new file in
the old location (Documentation/infiniband)?

> Thanks,
>
> jon
>