Am 27.09.2019 20:07 schrieb Ilia Mirkin imirkin@alum.mit.edu: On Thu, Sep 26, 2019 at 5:44 PM Ben Skeggs skeggsb@gmail.com wrote:
On Tue, 24 Sep 2019 at 22:19, Christian König ckoenig.leichtzumerken@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?
Yes, I would say that's exactly what would happen.
Christian.
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