Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 13 Jul 2024 20:58:07 -0700
From:      Rick Macklem <rick.macklem@gmail.com>
To:        Garrett Wollman <wollman@bimajority.org>
Cc:        freebsd-stable@freebsd.org
Subject:   Re: Possible bug in zfs send or pipe implementation?
Message-ID:  <CAM5tNy5Lg8YZ=ad8YP69tzDFYroFy=UTL=K=J592JSG%2Bf5hyKA@mail.gmail.com>
In-Reply-To: <CAM5tNy5m9-rqNTWJP5wAs9FewB6=FW9XbAe4V7qLgnrYJkSFKA@mail.gmail.com>
References:  <26259.12713.114036.564205@hergotha.csail.mit.edu> <CAM5tNy4pPF9mHdXM5W6gjztm4_TtFfXnOLu3cdkqvaRf3Ab5uA@mail.gmail.com> <26259.17366.276955.824313@hergotha.csail.mit.edu> <CAM5tNy5m9-rqNTWJP5wAs9FewB6=FW9XbAe4V7qLgnrYJkSFKA@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, Jul 13, 2024 at 8:50=E2=80=AFPM Rick Macklem <rick.macklem@gmail.co=
m> wrote:
>
> On Sat, Jul 13, 2024 at 8:19=E2=80=AFPM Garrett Wollman <wollman@bimajori=
ty.org> wrote:
> >
> > <<On Sat, 13 Jul 2024 19:42:32 -0700, Rick Macklem <rick.macklem@gmail.=
com> said:
> >
> > > # ps axHl
> > > should show you what wchan's the processes are waiting on and that mi=
ght
> > > give you a clue w.r.t. what is happening?
> >
> > zfs is waiting to write into the pipe and pv (the progress meter) is
> > waiting in select.
> Just to clarify it, are you saying zfs is sleeping on "pipewr"?
If I am reading the code correctly, if it sleeping on "pipewr", it is
out of space
and that is controlled via:
kern.ipc.maxpipekva
and you can see what it is using by looking at
kern.ipc.pipekva
(Unfortunately, I don't think you can change kern.ipc.maxpipekva on the fly=
.
It looks like it is a loader tunable, so you'd need to reboot to make
it larger.)

Anyhow, you can take a look at the sysctls. They might help?

There is quite a detailed comment in sys/kern/sys_pipe.c related to this.

rick

> (There is also a msleep() for "pipbww" in pipe_write().)
>
> rick
>
> >
> > > If is easy to build a kernel from sources and boot that, you could tr=
y defining
> > > PIPE_NODIRECT in sys/kern/sys_pipe.c and see if that avoids the hangs=
?
> >
> > It's easy to build a kernel from sources, but not easy to reboot the
> > server -- it's being retired shortly, and because of time constraints
> > I need to get it drained before the next scheduled outage.
> >
> > -GAWollman
> >



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAM5tNy5Lg8YZ=ad8YP69tzDFYroFy=UTL=K=J592JSG%2Bf5hyKA>