Re: [PATCH 03/10] freezer: add new freezable helpers usingfreezer_do_not_count()
From: Pavel Machek
Date: Thu May 02 2013 - 08:48:36 EST
On Mon 2013-04-29 14:45:39, Colin Cross wrote:
> Freezing tasks will wake up almost every userspace task from
> where it is blocking and force it to run until it hits a
> call to try_to_sleep(), generally on the exit path from the syscall
> it is blocking in. On resume each task will run again, usually
> restarting the syscall and running until it hits the same
> blocking call as it was originally blocked in.
Ok, so you are optimizing suspend at the cost of runtime operations,
right?
Would it make sense to do suspends entirely without freezer in your
configurations? With the right drivers, it should work ok.
Actually, would it make sense to simply enter deep idle and do runtime
powersaving in the drivers... n900 does that rather successfully and
it is certainly cleaner design.
> +/* Like schedule_timeout(), but should not block the freezer. */
> +#define freezable_schedule_timeout(timeout) \
> +({ \
> + long __retval; \
> + freezer_do_not_count(); \
> + __retval = schedule_timeout(timeout); \
> + freezer_count(); \
> + __retval; \
> +})
You plan to use this a lot during normal operation, right? Is it going
to have some measureable impact?
Also, why not static inline?
Pavel
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/