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

From: Ira Weiny
Date: Mon Oct 21 2024 - 15:04:50 EST


Petr Mladek wrote:
> 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.

Works for me. I added a patch to enhance %pr and left in the %pra doc.

Ira