lkml.org 
[lkml]   [2013]   [Jul]   [4]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH 1/3] clocksource: clean up clocksource_select
On Thu, 4 Jul 2013, Alex Shi wrote:

> After clocksource_find_best() introduced, it is impossible to get into
> some code path. so clean them up.

That's wrong.

> Signed-off-by: Alex Shi <alex.shi@intel.com>
> ---
> kernel/time/clocksource.c | 16 +---------------
> 1 file changed, 1 insertion(+), 15 deletions(-)
>
> diff --git a/kernel/time/clocksource.c b/kernel/time/clocksource.c
> index e713ef7..021c159 100644
> --- a/kernel/time/clocksource.c
> +++ b/kernel/time/clocksource.c
> @@ -582,26 +582,12 @@ static void __clocksource_select(bool skipcur)
> if (!best)
> return;
>
> - /* Check for the override clocksource. */
> list_for_each_entry(cs, &clocksource_list, list) {
> if (skipcur && cs == curr_clocksource)
> continue;
> if (strcmp(cs->name, override_name) != 0)
> continue;

We need this check and it is completely unrelated to the problem
you're trying to solve.

Assume the following:

System boots with clocksource A and switches into highres mode.
Now clocksource B gets registered and B is not highres capable.

clocksource_find_best() selects again A, but we have
clocksource=B on the kernel command line to override the kernel
decision.

By removing the check, you install he non highres capable clocksource
B and kill the machine.

> - /*
> - * Check to make sure we don't switch to a non-highres
> - * capable clocksource if the tick code is in oneshot
> - * mode (highres or nohz)
> - */
> - if (!(cs->flags & CLOCK_SOURCE_VALID_FOR_HRES) && oneshot) {
> - /* Override clocksource cannot be used. */
> - printk(KERN_WARNING "Override clocksource %s is not "
> - "HRT compatible. Cannot switch while in "
> - "HRT/NOHZ mode\n", cs->name);
> - override_name[0] = 0;
> - } else
> - /* Override clocksource can be used. */
> - best = cs;
> + best = cs;
> break;
> }

Thanks,

tglx


\
 
 \ /
  Last update: 2013-07-04 12:41    [W:0.272 / U:0.076 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site