Re: [PATCH 2/3] printf: Add print format (%pra) for struct range

From: Petr Mladek
Date: Mon Oct 21 2024 - 10:31:03 EST


On Sun 2024-10-20 21:49:50, Ira Weiny wrote:
> Dan Williams wrote:
> > Ira Weiny wrote:
>
> [snip]
>
> > > diff --git a/Documentation/core-api/printk-formats.rst b/Documentation/core-api/printk-formats.rst
> > > index 14e093da3ccd..e1ebf0376154 100644
> > > --- a/Documentation/core-api/printk-formats.rst
> > > +++ b/Documentation/core-api/printk-formats.rst
> > > @@ -231,6 +231,19 @@ width of the CPU data path.
> > >
> > > Passed by reference.
> > >
> > > +Struct Range
> > > +------------
> > > +
> > > +::
> > > +
> > > + %pra [range 0x0000000060000000-0x000000006fffffff]
> > > + %pra [range 0x0000000060000000]
> > > +
> > > +For printing struct range. struct range holds an arbitrary range of u64
> > > +values. If start is equal to end only print the start value.
> >
> > I was going to say "why this special case that does not exist for the
> > %pr case?", but then checked the code and found it *does* do this for %pr.
> > So if you're going to document this special case for %pra might as well
> > update the documentation for %pr too.
> >
> > Alternatively, drop the new %pra documentation for this corner case as
> > accommodating the U64_MAX size range case is arguably a mistake in the
> > caller.
> >
> > Either way, just make it consistent.
>
> I've dropped the special case in the documentation.

I would actually prefer the opposite and update the %pr documentation.

The behavior might be surprising and people should beware of it,
for example when writing a parser for the output.

Best Regards,
Petr