Re: [rfc][patch] futex: restartable futex_wait?

From: Nick Piggin
Date: Fri Mar 09 2007 - 07:24:48 EST


On Fri, Mar 09, 2007 at 10:38:35AM +0100, Thomas Gleixner wrote:
> On Fri, 2007-03-09 at 06:10 +0100, Nick Piggin wrote:
> > > i think that's quite right. I'm wondering why this never came up before?
> > > But your fix is not complete i think:
> > >
> > > > + restart->arg2 = time;
> > > > + return -ERESTART_RESTARTBLOCK;
> > > > + }
> > >
> > > 'time' here is relative, so the restarted syscall will do a /full/ wait
> > > again.
> >
> > But it has been modified by schedule_timeout?
>
> But this does not change the syscall registers, so it is restarted in
> the same way. We need a new futex OP for this, which takes absolute time
> like the PI futex op does.

Forgive me if I'm missing something here, but I'm using the restart block
and saving the updated value of time in ->arg2, and using that as the new
time parameter passed into futex_wait from futex_wait_restart.

-
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/