Re: [PATCH] Input: spear-keyboard - Add CONFIG_PM_SLEEP to suspend/resume functions

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




> -----Original Message-----
> From: Dmitry Torokhov [mailto:dmitry.torokhov@xxxxxxxxx]
> Sent: Tuesday, October 28, 2014 10:09 AM
> To: Jingoo Han
> Cc: linux-input@xxxxxxxxxxxxxxx; 'Viresh Kumar'; 'Jingoo Han'
> Subject: Re: [PATCH] Input: spear-keyboard - Add CONFIG_PM_SLEEP to suspend/resume functions
> 
> On October 27, 2014 5:53:56 PM PDT, Jingoo Han <jg1.han@xxxxxxxxxxx> wrote:
> >On Tuesday, October 28, 2014 9:11 AM, Dmitry Torokhov wrote:
> >> On Tue, Oct 28, 2014 at 09:02:44AM +0900, Jingoo Han wrote:
> >> > On Tuesday, October 28, 2014 8:38 AM, Dmitry Torokhov wrote:
> >> > > On Mon, Oct 27, 2014 at 09:32:58PM +0900, Jingoo Han wrote:
> >> > > > Add CONFIG_PM_SLEEP to suspend/resume functions
> >> > > >
> >> > > > Add CONFIG_PM_SLEEP to suspend/resume functions instead of
> >> > > > CONFIG_PM to fix the following build warning when
> >CONFIG_PM_SLEEP
> >> > > > is not selected and CONFIG_PM is selected. This is because
> >sleep
> >> > > > PM callbacks defined by SIMPLE_DEV_PM_OPS are only used when
> >the
> >> > > > CONFIG_PM_SLEEP is enabled.
> >> > >
> >> > > Recently I've become a fan of __maybe_unused markings as they
> >insulate
> >> > > us from various CONFIG changes in unrelated subsystems, I'll
> >transform
> >> > > this patch to use them instead.
> >> >
> >> > OK, I see. I have no objection.
> >> > Then, how about changing other usages of CONFIG_PM_SLEEP/CONFIG_PM
> >> > to __maybe_unused annotation? Personally, I prefer to increase
> >build
> >> > coverage than using #ifdef guards. Someone, however, argued that
> >#ifdef
> >> > guards should be used in this case because the size of binary can
> >be
> >> > reduced. How about your opinion?
> >>
> >> The optimizer is supposed to drop functions marked as
> >'__maybe_unused'
> >> if they are indeed unused so size of the binary should not change.
> >
> >Sorry for annoying you.
> >I built 'spear-keyboard' and got the binaries as below.
> >
> >spear-keyboard.o 89500 bytes, <-- CONFIG_PM_SLEEP=n
> >spear-keyboard.o 92352 bytes, <-- CONFIG_PM_SLEEP=y
> >spear-keyboard.o 92352 bytes, <-- Marked as __maybe_unused
> >
> >As presented above, when CONFIG_PM_SLEEP is used instead of
> >__maybe_unused, the size of binary is reduced. So, someone
> >complained me to use #ifdef guards. But, I agree with your
> >opinion. Personally, I DON'T want to use #ifdef guards,
> >because I prefer to increase build coverage.
> 
> What about the final kernel image size/kernel module size?

I used 'spear13xx_defconfig' with linux-next(20141027).
Then, I changed '#ifdef CONFIG_PM' into '#ifdef CONFIG_PM_SLEEP'
as below.

-#ifdef CONFIG_PM
+#ifdef CONFIG_PM_SLEEP
 static int spear_kbd_suspend(struct device *dev)
 {


Then, I got the following kernel images.

1. CONFIG_PM_SLEEP=y
    zImage 2891128 bytes
    spear-keyboard.o 88528 bytes

2. CONFIG_PM_SLEEP=n
    zImage 2842656 bytes
    spear-keyboard.o 85980 bytes

3. Marked as '__maybe_unused' for 'spear_kbd_suspend()/spear_kbd_resume()'
    instead of using '#ifdef CONFIG_PM_SLEEP',
    and CONFIG_PM_SLEEP=y
    zImage 2891160 bytes
    spear-keyboard.o 88528 bytes

4. Marked as '__maybe_unused' for 'spear_kbd_suspend()/spear_kbd_resume()'
    instead of using '#ifdef CONFIG_PM_SLEEP',
    and CONFIG_PM_SLEEP=n
    zImage 2842712 bytes
    spear-keyboard.o 85980 bytes

Oh, sorry! Your comment is right.
As you mentioned, the total sizes of the kernel and spear-keyboard.o
are reduced, when '__maybe_unused' annotation is used.
Thank you!

Best regards,
Jingoo Han

> 
> 
> Thanks.
> 
> --
> Dmitry

--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Media Devel]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Linux Wireless Networking]     [Linux Omap]

  Powered by Linux