2007-10-18 22:06:57

by Rafael J. Wysocki

[permalink] [raw]
Subject: [RFC][PATCH -mm] Freezer: Do not allow freezing processes to clear TIF_SIGPENDING

From: Rafael J. Wysocki <[email protected]>

Do not allow processes to clear their TIF_SIGPENDING if TIF_FREEZE is set,
to prevent them from racing with the freezer (like mysqld does, for example).

Signed-off-by: Rafael J. Wysocki <[email protected]>
---
kernel/signal.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

Index: linux-2.6.23-mm1/kernel/signal.c
===================================================================
--- linux-2.6.23-mm1.orig/kernel/signal.c
+++ linux-2.6.23-mm1/kernel/signal.c
@@ -124,7 +124,7 @@ void recalc_sigpending_and_wake(struct t

void recalc_sigpending(void)
{
- if (!recalc_sigpending_tsk(current))
+ if (!recalc_sigpending_tsk(current) && !freezing(current))
clear_thread_flag(TIF_SIGPENDING);

}


2007-10-18 22:09:37

by Nigel Cunningham

[permalink] [raw]
Subject: Re: [RFC][PATCH -mm] Freezer: Do not allow freezing processes to clear TIF_SIGPENDING

Hi.

On Friday 19 October 2007 08:22:35 Rafael J. Wysocki wrote:
> From: Rafael J. Wysocki <[email protected]>
>
> Do not allow processes to clear their TIF_SIGPENDING if TIF_FREEZE is set,
> to prevent them from racing with the freezer (like mysqld does, for
example).
>
> Signed-off-by: Rafael J. Wysocki <[email protected]>

Acked-by: Nigel Cunningham <[email protected]>

> ---
> kernel/signal.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> Index: linux-2.6.23-mm1/kernel/signal.c
> ===================================================================
> --- linux-2.6.23-mm1.orig/kernel/signal.c
> +++ linux-2.6.23-mm1/kernel/signal.c
> @@ -124,7 +124,7 @@ void recalc_sigpending_and_wake(struct t
>
> void recalc_sigpending(void)
> {
> - if (!recalc_sigpending_tsk(current))
> + if (!recalc_sigpending_tsk(current) && !freezing(current))
> clear_thread_flag(TIF_SIGPENDING);
>
> }
>



--
Nigel, Michelle, Alisdair and ____________ Cunningham
5 Mitchell Street
Cobden 3266
Victoria, Australia

2007-10-19 07:56:27

by Pavel Machek

[permalink] [raw]
Subject: Re: [RFC][PATCH -mm] Freezer: Do not allow freezing processes to clear TIF_SIGPENDING

On Fri 2007-10-19 00:22:35, Rafael J. Wysocki wrote:
> From: Rafael J. Wysocki <[email protected]>
>
> Do not allow processes to clear their TIF_SIGPENDING if TIF_FREEZE is set,
> to prevent them from racing with the freezer (like mysqld does, for example).
>
> Signed-off-by: Rafael J. Wysocki <[email protected]>

ACK. We want this in 2.6.24.
Pavel

--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

2007-10-19 21:19:28

by Rafael J. Wysocki

[permalink] [raw]
Subject: Re: [RFC][PATCH -mm] Freezer: Do not allow freezing processes to clear TIF_SIGPENDING

On Friday, 19 October 2007 09:55, Pavel Machek wrote:
> On Fri 2007-10-19 00:22:35, Rafael J. Wysocki wrote:
> > From: Rafael J. Wysocki <[email protected]>
> >
> > Do not allow processes to clear their TIF_SIGPENDING if TIF_FREEZE is set,
> > to prevent them from racing with the freezer (like mysqld does, for example).
> >
> > Signed-off-by: Rafael J. Wysocki <[email protected]>
>
> ACK. We want this in 2.6.24.

Sure, we do.

Greetings,
Rafael