On Friday, February 12th, 2021 at 1:57 PM, Emil Velikov emil.l.velikov@gmail.com wrote:
On Fri, 5 Feb 2021 at 22:01, Chris Wilson chris@chris-wilson.co.uk wrote:
Userspace has discovered the functionality offered by SYS_kcmp and has started to depend upon it. In particular, Mesa uses SYS_kcmp for os_same_file_description() in order to identify when two fd (e.g. device or dmabuf)
As you rightfully point out, SYS_kcmp is a bit of a two edged sword. While you mention the CONFIG issue, there is also a portability aspect (mesa runs on more than just linux) and as well as sandbox filtering of the extra syscall.
Last time I looked, the latter was still an issue and mesa was using SYS_kcmp to compare device node fds. A far shorter and more portable solution is possible, so let me prepare a Mesa patch.
Comparing two DMA-BUFs can be done with their inode number, I think.
Comparing two device FDs is more subtle, because of GEM handle ref'counting. You sometimes really want to check whether two FDs are backed by the same file *description*. See [1] for details.
[1]: https://gitlab.freedesktop.org/mesa/drm/-/merge_requests/110