Re: mysqld prevents s2ram [Re: 2.6.23-mm1]

Rafael J. Wysocki
2007-10-21T11:37:55Z

On Sunday, 21 October 2007 11:58, Pavel Machek wrote:
> Hi!
>
> > On Thu, Oct 11, 2007 at 09:31:26PM -0700, Andrew Morton wrote:
> > >
> > > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.23/2.6.23-mm1/
> >
> > Ok, now that it boots let's go for more.
> >
> > I cannot suspend if mysqld is running. mysql isn't atually doing
> > anything useful anyway.
>
> I believe this is known and rafael already has a fix somewhere. The
> "guilty" patch already hit mainline, not sure about the "fix" patch.

The fix has not been merged yet, but
freezer-use-wait-queue-instead-of-busy-looping.patch has been dropped for
another reason.

The mysqld problem seems to have been caused by another patch, though, and the
fix is appended.

Greetings,
Rafael

---
From: Rafael J. Wysocki <rjw@sisk.pl>

Do not allow processes to clear their TIF_SIGPENDING if TIF_FREEZE is set,
so that they will not race with the freezer (like mysqld, for example).

Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
---
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);

}