Re: [PATCH] drm: Reduce object size of DRM_ERROR and DRM_DEBUG uses

From: Joe Perches
Date: Thu Mar 15 2018 - 11:44:19 EST


On Thu, 2018-03-15 at 17:37 +0200, Ville Syrjälä wrote:
> On Thu, Mar 15, 2018 at 08:17:53AM -0700, Joe Perches wrote:
> > On Thu, 2018-03-15 at 17:05 +0200, Ville Syrjälä wrote:
> > > On Thu, Mar 15, 2018 at 03:04:52PM +0100, Maarten Lankhorst wrote:
> > > > Op 15-03-18 om 14:30 schreef Ville Syrjälä:
> > > > > On Tue, Mar 13, 2018 at 03:02:15PM -0700, Joe Perches wrote:
> > > > > > drm_printk is used for both DRM_ERROR and DRM_DEBUG with unnecessary
> > > > > > arguments that can be removed by creating separate functins.
> > > > > >
> > > > > > Create specific functions for these calls to reduce x86/64 defconfig
> > > > > > size by ~20k.
> > > > > >
> > > > > > Modify the existing macros to use the specific calls.
> > > > > >
> > > > > > new:
> > > > > > $ size -t drivers/gpu/drm/built-in.a | tail -1
> > > > > > 1876562 44542 995 1922099 1d5433 (TOTALS)
> > > > > >
> > > > > > old:
> > > > > > $ size -t drivers/gpu/drm/built-in.a | tail -1
> > > > > > 1897565 44542 995 1943102 1da63e (TOTALS)
> > > > > >
> > > > > > Miscellanea:
> > > > > >
> > > > > > o intel_display requires a change to use the specific calls.
> > > > >
> > > > > How much would we lose if we move the (drm_debug&FOO) outside the
> > > > > functions again?
> >
> > again?
>
> We used to do that. Someone changed it a while back, unintentially
> I believe.
>
> >
> > > > > I'm somewhat concerned about all the function call
> > > > > overhead when debugs aren't even enabled.
> >
> > Perhaps better to have compilation elimination
> > of the entire debug output instead.
>
> That would require every bug reporter to recompile the kernel first.
> So this is not a solution we would ever seriously consider.
>
> Not sure if it would be possible to use the alternatives thing to
> eliminate the function calls unless the user boots wih drm.debug!=0?
>
> >
> > I think you are discussing a different issue and
> > this discussion should not block this patch as
> > this patch has no impact other than code size
> > reduction.
>
> But what is the goal of the code size reduction?

Smaller code.

> I assume the main
> goal is to make better use of the instruction cache to make the
> code faster. If there's a tradeoff between smaller and slightly
> faster vs. larger and a singificantly faster I tend to think we
> should go for the latter option.

There's no trade-off in this patch for faster/larger.
This patch is simply smaller. Smaller is better.

Your faster/larger should be a different patch proposal.