|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v3 1/3] x86/APIC: include full string with error_interrupt() error messages
On Thu, Jul 13, 2023 at 03:08:56PM +0200, Jan Beulich wrote:
> On 17.03.2023 20:45, Elliott Mitchell wrote:
> > Rather than adding ", " with each printf(), simply include them in the
> > string initially. This allows converting to strlcat() or other methods
> > which strictly concatenate, rather than formatting.
> >
> > Signed-off-by: Elliott Mitchell <ehem+xen@xxxxxxx>
>
> Acked-by: Jan Beulich <jbeulich@xxxxxxxx>
>
> Nevertheless I wonder ...
> > @@ -1423,7 +1423,7 @@ static void cf_check error_interrupt(struct
> > cpu_user_regs *regs)
> > smp_processor_id(), v , v1);
> > for ( i = 7; i >= 0; --i )
> > if ( v1 & (1 << i) )
> > - printk(", %s", esr_fields[i]);
> > + printk("%s", esr_fields[i]);
>
> ... whether the extra level of indirection (by using %s) is then still
> necessary: There are no % characters in any of the individual strings.
> Then again iirc this goes away anyway in the next patch ...
I suspect most development guidelines generally discourage this. Too
easy for someone to later add a '%' to the string, or make it a dynamic
string coming from some random location.
More notable is that last point. Emphasis here is the ", " being merged
into the strings and the line is being completely replaced in the next
patch. v0 was to strcpy() into a buffer, but this is simpler.
I also suspect "%s" may be faster if the string is sufficiently long,
as this amounts to a strcpy() info printk's buffer. Whereas avoiding the
indirection causes the string to be scanned for '%' which will be slower
than strcpy().
--
(\___(\___(\______ --=> 8-) EHM <=-- ______/)___/)___/)
\BS ( | ehem+sigmsg@xxxxxxx PGP 87145445 | ) /
\_CS\ | _____ -O #include <stddisclaimer.h> O- _____ | / _/
8A19\___\_|_/58D2 7E3D DDF4 7BA6 <-PGP-> 41D1 B375 37D0 8714\_|_/___/5445
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |