Re: restart_syscall: use freezable blocking call

From: Peter Zijlstra
Date: Tue Mar 31 2015 - 11:07:48 EST


On Tue, Mar 31, 2015 at 01:39:07AM +0200, Rafael J. Wysocki wrote:
> > From: Maninder Singh <maninder1.s@xxxxxxxxxxx>
> > Subject: kernel/time/hrtimer.c: restart_syscall: use freezable blocking call
> >
> > Avoid waking up every thread sleeping in a restart_syscall call during
> > suspend and resume by calling a freezable blocking call. Previous patches
> > modified the freezer to avoid sending wakeups to threads that are blocked
> > in freezable blocking calls.

This is what, no why mentioned.

> >
> > Signed-off-by: Yogesh Gaur <yn.gaur <at> samsung.com>
> > Signed-off-by: Amit Arora <amit.arora <at> samsung.com>

This SoB chain is garbage. Most important, note that the author (From by
lack of Author) didn't actually sign off on it.

> > Reviewed-by : Ajeet Yadav <ajeet.y <at> samsung.com>
> > Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
> > Cc: "Rafael J. Wysocki" <rjw@xxxxxxxxxxxxx>
> > Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
> > ---
> >
> > kernel/time/hrtimer.c | 4 ++--
> > 1 file changed, 2 insertions(+), 2 deletions(-)
> >
> > diff -puN kernel/time/hrtimer.c~restart_syscall-use-freezable-blocking-call kernel/time/hrtimer.c
> > --- a/kernel/time/hrtimer.c~restart_syscall-use-freezable-blocking-call
> > +++ a/kernel/time/hrtimer.c
> > @@ -1767,7 +1767,7 @@ schedule_hrtimeout_range_clock(ktime_t *
> > * A NULL parameter means "infinite"
> > */
> > if (!expires) {
> > - schedule();
> > + freezable_schedule();
> > return -EINTR;
> > }
> >
> > @@ -1781,7 +1781,7 @@ schedule_hrtimeout_range_clock(ktime_t *
> > t.task = NULL;
> >
> > if (likely(t.task))
> > - schedule();
> > + freezable_schedule();
> >
> > hrtimer_cancel(&t.timer);
> > destroy_hrtimer_on_stack(&t.timer);

Not a single word on why this would be correct. At the very least show
us you've thought about it.
--
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/