Re: [PATCH V1 Resend 2/5] tick-common: don't check tick_oneshot_mode_active() from tick_check_preferred()

From: Viresh Kumar
Date: Wed Apr 16 2014 - 00:07:19 EST


On 16 April 2014 00:00, Thomas Gleixner <tglx@xxxxxxxxxxxxx> wrote:
> On Tue, 15 Apr 2014, Viresh Kumar wrote:
>
>> If 'curdev' passed to tick_check_preferred() is the current clock_event_device
>> then these two checks look exactly same, because td->mode is set to
>> TICKDEV_MODE_ONESHOT only when the event device has ONESHOT feature.
>>
>> if (curdev && (curdev->features & CLOCK_EVT_FEAT_ONESHOT))
>> return false;
>>
>> if (tick_oneshot_mode_active())
>> return false;
>>
>> Now left the case where 'curdev' is not the current clock_event_device. This can
>> happen from the sequence started from clockevents_replace(). Here we are trying
>> to find the best possible device that we should choose. And so even in this case
>> we don't need the above check as we aren't really worried about the current
>> device.
>
> Wrong. If curdev is NULL, you might select a device w/o ONESHOT if the
> system is in oneshot mode. Go figure.

Okay, so the logs must have another case where curdev is NULL. But codewise
we are already taking care of that here:

return !curdev ||
newdev->rating > curdev->rating ||
!cpumask_equal(curdev->cpumask, newdev->cpumask);

And so this patch wouldn't harm. And this is preserved in the next patch (3/5)
as well, which adds checks for other cases as well.
--
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/