[Nouveau] Is Nouveau really using the io_reserve_lru?

Ilia Mirkin imirkin at alum.mit.edu
Fri Sep 27 18:07:01 UTC 2019


On Thu, Sep 26, 2019 at 5:44 PM Ben Skeggs <skeggsb at gmail.com> wrote:
>
> On Tue, 24 Sep 2019 at 22:19, Christian König
> <ckoenig.leichtzumerken at gmail.com> wrote:
> >
> > Hi guys,
> >
> > while working through more old TTM functionality I stumbled over the
> > io_reserve_lru.
> >
> > Basic idea is that when this flag is set the driver->io_mem_reserve()
> > callback can return -EAGAIN resulting in unmapping of other BOs.
> >
> > But Nouveau doesn't seem to return -EAGAIN in the call path of
> > io_mem_reserve anywhere.
> I believe this is a bug in Nouveau.  We *should* be returning -EAGAIN
> if we fail to find space in BAR1 to map the BO into.

Could this lead to SIGBUS in userspace, esp related to resume and
similar situations? A user has been experiencing this in a
tricky-to-reproduce scenario with a ton of vram dedicated to
framebuffers and so on (3x 4K), and the nouveau ddx falls back to
memcpy in certain cases.

  -ilia


More information about the Nouveau mailing list