From: Randy Dunlap <rdunlap@infradead.org>
To: Dave Chinner <david@fromorbit.com>
Cc: Bagas Sanjaya <bagasdotme@gmail.com>,
Luis Chamberlain <mcgrof@kernel.org>,
corbet@lwn.net, jake@lwn.net, hch@infradead.org,
djwong@kernel.org, dchinner@redhat.com, ritesh.list@gmail.com,
rgoldwyn@suse.com, jack@suse.cz, linux-doc@vger.kernel.org,
linux-xfs@vger.kernel.org, linux-fsdevel@vger.kernel.org,
linux-block@vger.kernel.org, p.raghav@samsung.com,
da.gomez@samsung.com, rohan.puri@samsung.com
Subject: Re: [PATCH] Documentation: add initial iomap kdoc
Date: Sun, 21 May 2023 09:43:17 -0700 [thread overview]
Message-ID: <45792779-dab2-ae63-470b-3c24ab02e1ca@infradead.org> (raw)
In-Reply-To: <ZGgFbmdCrlXtNFYS@dread.disaster.area>
Hi Dave,
On 5/19/23 16:25, Dave Chinner wrote:
> On Fri, May 19, 2023 at 08:13:50AM -0700, Randy Dunlap wrote:
>>
>>
>> On 5/19/23 02:28, Bagas Sanjaya wrote:
>>>> +/**
>>>> + * DOC: Flags reported by the file system from iomap_begin
>>>> *
>>>> - * IOMAP_F_NEW indicates that the blocks have been newly allocated and need
>>>> - * zeroing for areas that no data is copied to.
>>>> + * * IOMAP_F_NEW: indicates that the blocks have been newly allocated and need
>>>> + * zeroing for areas that no data is copied to.
>>>> *
>>>> - * IOMAP_F_DIRTY indicates the inode has uncommitted metadata needed to access
>>>> - * written data and requires fdatasync to commit them to persistent storage.
>>>> - * This needs to take into account metadata changes that *may* be made at IO
>>>> - * completion, such as file size updates from direct IO.
>>>> + * * IOMAP_F_DIRTY: indicates the inode has uncommitted metadata needed to access
>>>> + * written data and requires fdatasync to commit them to persistent storage.
>>>> + * This needs to take into account metadata changes that *may* be made at IO
>>>> + * completion, such as file size updates from direct IO.
>>>> *
>>>> - * IOMAP_F_SHARED indicates that the blocks are shared, and will need to be
>>>> - * unshared as part a write.
>>>> + * * IOMAP_F_SHARED: indicates that the blocks are shared, and will need to be
>>>> + * unshared as part a write.
>>>> *
>>>> - * IOMAP_F_MERGED indicates that the iomap contains the merge of multiple block
>>>> - * mappings.
>>>> + * * IOMAP_F_MERGED: indicates that the iomap contains the merge of multiple block
>>>> + * mappings.
>>>> *
>>>> - * IOMAP_F_BUFFER_HEAD indicates that the file system requires the use of
>>>> - * buffer heads for this mapping.
>>>> + * * IOMAP_F_BUFFER_HEAD: indicates that the file system requires the use of
>>>> + * buffer heads for this mapping.
>>>> *
>>>> - * IOMAP_F_XATTR indicates that the iomap is for an extended attribute extent
>>>> - * rather than a file data extent.
>>>> + * * IOMAP_F_XATTR: indicates that the iomap is for an extended attribute extent
>>>> + * rather than a file data extent.
>>>> */
>>> Why don't use kernel-doc comments to describe flags?
>>>
>>
>> Because kernel-doc handles functions, structs, unions, and enums.
>> Not defines.
>
> So perhaps that should be fixed first?
>
> I seriously dislike the implication here that we should accept
> poorly/inconsistently written comments and code just to work around
> deficiencies in documentation tooling.
>
> Either modify the code to work cleanly and consistently with the
> tooling (e.g. change the code to use enums rather than #defines), or
> fix the tools that don't work with macro definitions in a way that
> matches the existing code documentation standards.
>
> Forcing developers, reviewers and maintainers to understand, accept
> and then maintain inconsistent crap in the code just because some
> tool they never use is deficient is pretty much my definition of an
> unacceptible engineering process.
I started looking into this. It looks like Mauro added more support
to scripts/kernel-doc for typedefs and macros while I wasn't looking.
I don't know how well it works, but it's not clear to me how we
would want this to look.
For example, take the first set of defines from <linux/iomap.h> that
Luis modified:
/*
* Types of block ranges for iomap mappings:
*/
#define IOMAP_HOLE 0 /* no blocks allocated, need allocation */
#define IOMAP_DELALLOC 1 /* delayed allocation blocks */
#define IOMAP_MAPPED 2 /* blocks allocated at @addr */
#define IOMAP_UNWRITTEN 3 /* blocks allocated at @addr in unwritten state */
#define IOMAP_INLINE 4 /* data inline in the inode */
and Luis changed that to:
/**
* DOC: iomap block ranges types
*
* * IOMAP_HOLE - no blocks allocated, need allocation
* * IOMAP_DELALLOC - delayed allocation blocks
* * IOMAP_MAPPED - blocks allocated at @addr
* * IOMAP_UNWRITTEN - blocks allocated at @addr in unwritten state
* * IOMAP_INLINE - data inline in the inode
*/
How would we want that to look? How would we express it in kernel-doc
format? Currently it would have to be one macro at a time I think.
/*
* Types of block ranges for iomap mappings:
*/
/**
* IOMAP_HOLE - no blocks allocated, need allocation
*/
#define IOMAP_HOLE 0
/**
* IOMAP_DELALLOC - delayed allocation blocks
*/
#define IOMAP_DELALLOC 1
/**
* IOMAP_MAPPED - blocks allocated at @addr
*/
#define IOMAP_MAPPED 2
/**
* IOMAP_UNWRITTEN - blocks allocated at @addr in unwritten state
*/
#define IOMAP_UNWRITTEN 3
/**
* IOMAP_INLINE - data inline in the inode
*/
#define IOMAP_INLINE 4
That's ugly to my eyes. And it doesn't collect the set of macros
together in any manner.
The modification that Luis made looks pretty good to me ATM.
--
~Randy
prev parent reply other threads:[~2023-05-21 16:49 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-05-18 14:40 [PATCH] Documentation: add initial iomap kdoc Luis Chamberlain
2023-05-18 14:48 ` Christoph Hellwig
2023-05-18 14:50 ` Luis Chamberlain
2023-05-18 14:51 ` Christoph Hellwig
2023-05-18 14:54 ` Jonathan Corbet
2023-05-19 3:15 ` Theodore Ts'o
2023-05-19 9:28 ` Bagas Sanjaya
2023-05-19 15:13 ` Randy Dunlap
2023-05-19 23:25 ` Dave Chinner
2023-05-21 16:43 ` Randy Dunlap [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=45792779-dab2-ae63-470b-3c24ab02e1ca@infradead.org \
--to=rdunlap@infradead.org \
--cc=bagasdotme@gmail.com \
--cc=corbet@lwn.net \
--cc=da.gomez@samsung.com \
--cc=david@fromorbit.com \
--cc=dchinner@redhat.com \
--cc=djwong@kernel.org \
--cc=hch@infradead.org \
--cc=jack@suse.cz \
--cc=jake@lwn.net \
--cc=linux-block@vger.kernel.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-xfs@vger.kernel.org \
--cc=mcgrof@kernel.org \
--cc=p.raghav@samsung.com \
--cc=rgoldwyn@suse.com \
--cc=ritesh.list@gmail.com \
--cc=rohan.puri@samsung.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).