From: Andrew Morton <akpm@osdl.org>
To: Oleg Nesterov <oleg@tv-sign.ru>
Cc: linux-kernel@vger.kernel.org, maneesh@in.ibm.com,
jk@blackdown.de, benh@kernel.crashing.org
Subject: Re: [PATCH] fix __mod_timer vs __run_timers deadlock.
Date: Sun, 1 May 2005 02:31:49 -0700 [thread overview]
Message-ID: <20050501023149.6908c573.akpm@osdl.org> (raw)
In-Reply-To: <42748B75.D6CBF829@tv-sign.ru>
Oleg Nesterov <oleg@tv-sign.ru> wrote:
>
> When __mod_timer() changes timer's base it waits for the completion
> of timer->function. It is just stupid: the caller of __mod_timer()
> can held locks which would prevent completion of the timer's handler.
>
> Solution: do not change the base of the currently running timer.
OK, fingers crossed. Juergen, it would be great if you could test Oleg's
patch sometime.
Oleg, could you please review the changelog in
timers-fixes-improvements.patch sometime, make sure that it's all accurate
and complete?
Also, please review the comments in timer.c - some of the info which you
placed in that changelog really should be brought into the code itself so
people can understand the data structures and their interactions without
having to trawl the changelogs and mailing list archives.
For example, in __mod_timer:
if (timer_pending(timer)) {
detach_timer(timer, 0);
ret = 1;
}
new_base = &__get_cpu_var(tvec_bases);
if (base != &new_base->t_base) {
/*
* We really need a comment here explaining what
* (base != &new_base->t_base) *means*
*/
if (unlikely(base->running_timer == timer)) {
/*
next prev parent reply other threads:[~2005-05-01 9:32 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-05-01 7:55 [PATCH] fix __mod_timer vs __run_timers deadlock Oleg Nesterov
2005-05-01 9:31 ` Andrew Morton [this message]
2005-05-02 22:50 ` Juergen Kreileder
2005-05-03 0:13 ` Benjamin Herrenschmidt
2005-05-03 1:24 ` Lee Revell
2005-05-03 1:28 ` Benjamin Herrenschmidt
2005-05-03 1:33 ` Zwane Mwaikambo
2005-05-03 1:35 ` Juergen Kreileder
2005-05-03 2:48 ` Paul Mackerras
2005-05-03 18:51 ` David S. Miller
2005-05-03 23:44 ` Benjamin Herrenschmidt
2005-05-03 23:39 ` David S. Miller
2005-05-04 0:05 ` Benjamin Herrenschmidt
2005-05-02 4:08 ` Maneesh Soni
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20050501023149.6908c573.akpm@osdl.org \
--to=akpm@osdl.org \
--cc=benh@kernel.crashing.org \
--cc=jk@blackdown.de \
--cc=linux-kernel@vger.kernel.org \
--cc=maneesh@in.ibm.com \
--cc=oleg@tv-sign.ru \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox