Re: [RFC PATCH 1/3] timer: fix comments of try_to_del_timer_sync()

From: Yong Zhang
Date: Tue Aug 24 2010 - 21:56:13 EST


On Wed, Aug 25, 2010 at 12:31 AM, Oleg Nesterov <oleg@xxxxxxxxxx> wrote:
> Ah, indeed, I forgot. This was another reason for the comment.
>
>> > Please remove "#ifdef CONFIG_SMP" from set_running_timer(), then iirc
>> > it can be used from irq.
>>
>> I have noticed your comments in the commit log, but I think it's about
>> introducing the same semantic of try_to_del_timer_sync() on UP as well
>> as SMP. But this patch is focusing on the current code(SMP special).
>> Not about realizing try_to_del_timer_sync() on UP case. Do we need
>> to do that?
>
> I dunno.
>
> But look, currently try_to_del_timer_sync() is not allowed from interrupt
> even if it works with CONFIG_SMP.
>
> If we "officially" allow it to use from irq, it should work on UP too

OK. I see.

> but
> it doesn't. del_timer() can't hang, but it can never return -1 to indicate
> we hit the running timer.
>
> Consider:
>
> Â Â Â Â// runs in interrup context
>
> Â Â Â Âif (try_do_del_timer_sync(&TIMER) > 0)
> Â Â Â Â Â Â Â Âkfree(something_which_can_be_used_by_TIMER_func);
>
> This is unsafe on UP.

You are right. It's unsafe here.

I will try to update this patch which introduce try_do_del_timer_sync()
on UP case.

Thanks,
Yong
--
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/