Messages in this thread | | | From | "Rafael J. Wysocki" <> | Subject | Re: [PATCH] PM: save 8bytes in 'struct dev_pm_info' | Date | Tue, 7 Aug 2012 13:27:19 +0200 |
| |
On Tuesday, August 07, 2012, Ming Lei wrote: > On ARMv7, sizeof(struct dev_pm_info) becomes 344Bytes from 352Bytes > after applying the patch which only changes fields' order, so we can > save 8bytes per device. Nothing in behaviour changed. > > GCC: gcc version 4.5.1 > > Signed-off-by: Ming Lei <ming.lei@canonical.com>
While I have no fundamental objections against this patch, I see that it will conflict with some other patches changing struct dev_pm_info.
For this reason, if I apply it at all, I'll do that when my pull request for v3.7 is practically ready.
Thanks, Rafael
> --- > include/linux/pm.h | 22 +++++++++++----------- > 1 file changed, 11 insertions(+), 11 deletions(-) > > diff --git a/include/linux/pm.h b/include/linux/pm.h > index f067e60..f116d40 100644 > --- a/include/linux/pm.h > +++ b/include/linux/pm.h > @@ -505,11 +505,6 @@ struct pm_subsys_data { > > struct dev_pm_info { > pm_message_t power_state; > - unsigned int can_wakeup:1; > - unsigned int async_suspend:1; > - bool is_prepared:1; /* Owned by the PM core */ > - bool is_suspended:1; /* Ditto */ > - bool ignore_children:1; > spinlock_t lock; > #ifdef CONFIG_PM_SLEEP > struct list_head entry; > @@ -519,13 +514,12 @@ struct dev_pm_info { > #else > unsigned int should_wakeup:1; > #endif > + unsigned int can_wakeup:1; > + unsigned int async_suspend:1; > + bool is_prepared:1; /* Owned by the PM core */ > + bool is_suspended:1; /* Ditto */ > + bool ignore_children:1; > #ifdef CONFIG_PM_RUNTIME > - struct timer_list suspend_timer; > - unsigned long timer_expires; > - struct work_struct work; > - wait_queue_head_t wait_queue; > - atomic_t usage_count; > - atomic_t child_count; > unsigned int disable_depth:3; > unsigned int idle_notification:1; > unsigned int request_pending:1; > @@ -538,6 +532,12 @@ struct dev_pm_info { > unsigned int timer_autosuspends:1; > enum rpm_request request; > enum rpm_status runtime_status; > + struct timer_list suspend_timer; > + unsigned long timer_expires; > + struct work_struct work; > + wait_queue_head_t wait_queue; > + atomic_t usage_count; > + atomic_t child_count; > int runtime_error; > int autosuspend_delay; > unsigned long last_busy; >
| |