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.
So is this unused or am I missing something?
Regards, Christian.
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.
Ben.
So is this unused or am I missing something?
Regards, Christian. _______________________________________________ Nouveau mailing list Nouveau@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/nouveau
Am 26.09.19 um 23:44 schrieb Ben Skeggs:
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.
Yeah, thought that this is rather odd. But I can't fix it since I don't really know the code.
On the other hand do you have any objections that I move the remaining io_reserve_lru functionality into Nouveau then?
It's only used by this driver and since Thomas cleaned up the VM handling that shouldn't be a problem any more.
Thanks, Christian.
Ben.
So is this unused or am I missing something?
Regards, Christian. _______________________________________________ Nouveau mailing list Nouveau@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/nouveau
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? 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
dri-devel@lists.freedesktop.org