Re: [PATCH v2 01/17] bcache: add comments to mark member offset of struct cache_sb_disk

Johannes Thumshirn
2020-07-15T09:08:51Z

On 15/07/2020 11:03, Coly Li wrote:
> On 2020/7/15 14:02, Hannes Reinecke wrote:
>> On 7/15/20 7:45 AM, Coly Li wrote:
>>> This patch adds comments to mark each member of struct cache_sb_disk,
>>> it is helpful to understand the bcache superblock on-disk layout.
>>>
>>> Signed-off-by: Coly Li <colyli@suse.de>
>>> ---
>>>   include/uapi/linux/bcache.h | 39 +++++++++++++++++++------------------
>>>   1 file changed, 20 insertions(+), 19 deletions(-)
>>>
>>> diff --git a/include/uapi/linux/bcache.h b/include/uapi/linux/bcache.h
>>> index 9a1965c6c3d0..afbd1b56a661 100644
>>> --- a/include/uapi/linux/bcache.h
>>> +++ b/include/uapi/linux/bcache.h
>>> @@ -158,33 +158,33 @@ static inline struct bkey *bkey_idx(const struct
>>> bkey *k, unsigned int nr_keys)
>>>   #define BDEV_DATA_START_DEFAULT        16    /* sectors */
>>>     struct cache_sb_disk {
>>> -    __le64            csum;
>>> -    __le64            offset;    /* sector where this sb was written */
>>> -    __le64            version;
>>> +/*000*/    __le64            csum;
>>> +/*008*/    __le64            offset;    /* sector where this sb was
>>> written */
>>> +/*010*/    __le64            version;
>>>   -    __u8            magic[16];
>>> +/*018*/    __u8            magic[16];
>>>   -    __u8            uuid[16];
>>> +/*028*/    __u8            uuid[16];
>>>       union {
>>> -        __u8        set_uuid[16];
>>> +/*038*/        __u8        set_uuid[16];
>>>           __le64        set_magic;
>>>       };
>>> -    __u8            label[SB_LABEL_SIZE];
>>> +/*048*/    __u8            label[SB_LABEL_SIZE];
>>>   -    __le64            flags;
>>> -    __le64            seq;
>>> -    __le64            pad[8];
>>> +/*068*/    __le64            flags;
>>> +/*070*/    __le64            seq;
>>> +/*078*/    __le64            pad[8];
>>>         union {
>>>       struct {
>>>           /* Cache devices */
>>> -        __le64        nbuckets;    /* device size */
>>> +/*0b8*/        __le64        nbuckets;    /* device size */
>>>   -        __le16        block_size;    /* sectors */
>>> -        __le16        bucket_size;    /* sectors */
>>> +/*0c0*/        __le16        block_size;    /* sectors */
>>> +/*0c2*/        __le16        bucket_size;    /* sectors */
>>>   -        __le16        nr_in_set;
>>> -        __le16        nr_this_dev;
>>> +/*0c4*/        __le16        nr_in_set;
>>> +/*0c6*/        __le16        nr_this_dev;
>>>       };
>>>       struct {
>>>           /* Backing devices */
>>> @@ -198,14 +198,15 @@ struct cache_sb_disk {
>>>       };
>>>       };
>>>   -    __le32            last_mount;    /* time overflow in y2106 */
>>> +/*0c8*/    __le32            last_mount;    /* time overflow in y2106 */
>>>   -    __le16            first_bucket;
>>> +/*0cc*/    __le16            first_bucket;
>>>       union {
>>> -        __le16        njournal_buckets;
>>> +/*0ce*/        __le16        njournal_buckets;
>>>           __le16        keys;
>>>       };
>>> -    __le64            d[SB_JOURNAL_BUCKETS];    /* journal buckets */
>>> +/*0d0*/    __le64            d[SB_JOURNAL_BUCKETS];    /* journal
>>> buckets */
>>> +/*8d0*/
>>>   };
>>>     struct cache_sb {
>>>
>> Common practice is to place comments at the end; please don't use the
>> start of the line here.
>
> Hi Hannes,
>
> When I try to move the offset comment to the line end, I find it
> conflicts with normal code comment, e.g.
> __le64 d[SB_JOURNAL_BUCKETS]; /* journal buckets */
>
> I have to add the offset comment to the line start. I guess this is why
> ocfs2 code adds the offset comment at the line start.
>
> So finally I have to keep the offset comment on line start still...

Why at them at all? pahole -C or crash/gdb will show them for you if you're
interested and if you need it in the code you can use offsetof().

I don't really see a good reason to add these comments.