Re: [PATCH v6 01/24] erofs: add on-disk layout

David Sterba
2019-09-02T14:06:57Z

On Mon, Sep 02, 2019 at 10:43:03AM +0200, Pavel Machek wrote:
> > > > Rather than they didn't run "gdb" or "pahole" and change it by mistake.
> > >
> > > I think Christoph is not right here.
> > >
> > > Using external tools for validation is extra work
> > > when necessary for understanding the code.
> >
> > The advantage of using the external tools that the information about
> > offsets is provably correct ...
>
> No. gdb tells you what the actual offsets _are_.

Ok, reading your reply twice, I think we have different perspectives. I
don't trust the comments.

The tool I had in mind is pahole that parses dwarf information about the
structures, the same as gdb does. The actual value of the struct members
is the thing that needs to be investigated in memory dumps or disk image
dumps.

> > > The expected offset is somewhat valuable, but
> > > perhaps the form is a bit off given the visual
> > > run-in to the field types.
> > >
> > > The extra work with this form is manipulating all
> > > the offsets whenever a structure change occurs.
> >
> > ... while this is error prone.
>
> While the comment tells you what they _should be_.

That's exactly the source of confusion and bugs. For me an acceptable
way of asserting that a value has certain offset is a build check, eg.
like

BUILD_BUG_ON(strct my_superblock, magic, 16);