[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [Nbd] NBD Super Size io operations



On Mon, Apr 08, 2013 at 05:19:02PM -0400, Paul Clements wrote:
> On Mon, Apr 8, 2013 at 4:17 PM, Paul Clements <paul.clements@...856...> wrote:
> > On Sun, Apr 7, 2013 at 5:59 PM, Michal Belczyk <belczyk@...1274...> wrote:
> >
> >> Paul, is there a chance for this and _the_ ERESTARTSYS patches got into
> >> 3.9?
> >
> > You were copied on the submit to Andrew for the max_sectors change.
> > That one's still pending.
> >
> > The ERESTARTSYS one we were discussing here. I don't think that just
> > restarting the wait_event when we get a signal is the right approach.
> > It wouldn't allow the signal to be handled in all cases -- it happens
> > to work in the SIGCHLD case that we saw, since we don't really need to
> > handle that. But if nbd-client is sent a SIGKILL, for instance, it
> > should die. Just restarting the wait_event_interruptible doesn't allow
> > that. I think masking signals before we enter the NBD_DO_IT ioctl is
> > probably a better approach.
> 
> If you do something like the following in nbd-client just before the
> call to NBD_DO_IT, does this fix the problem:
> 
> 
> +       sigfillset(&block);
> +       sigdelset(&block, SIGKILL);
> +       sigprocmask(SIG_SETMASK, &block, &old);
>          if (ioctl(nbd, NBD_DO_IT) < 0)
> 
> (block and old are sigset_t).
> 
> Could anyone who's seeing the problem test that?

I ran some benchmarks which were previously triggering this bug with
this patch applied and the driver patch reverted and it does seem to be working
fine.
Folkert, you had a repro to trigger this failure set up, right?
Could you confirm?
Thanks!

-- 
Michal Belczyk Sr.



Reply to: