RE: [PATCH rdma-core v7 4/6] pyverbs: Add dma-buf based MR support
From: Xiong, Jianxin <hidden>
Date: 2021-02-03 17:58:55
Also in:
dri-devel
-----Original Message----- From: Daniel Vetter <redacted> Sent: Wednesday, February 03, 2021 9:53 AM To: Xiong, Jianxin <redacted> Cc: Leon Romanovsky <leon@kernel.org>; Jason Gunthorpe <jgg@ziepe.ca>; Gal Pressman <redacted>; Yishai Hadas [off-list ref]; linux-rdma [off-list ref]; Edward Srouji [off-list ref]; dri-devel <dri- devel@lists.freedesktop.org>; Christian Koenig [off-list ref]; Doug Ledford [off-list ref]; Vetter, Daniel [off-list ref] Subject: Re: [PATCH rdma-core v7 4/6] pyverbs: Add dma-buf based MR support On Wed, Feb 3, 2021 at 5:57 PM Xiong, Jianxin [off-list ref] wrote:quoted
quoted
-----Original Message----- From: Leon Romanovsky <leon@kernel.org> Sent: Tuesday, February 02, 2021 10:03 PM To: Daniel Vetter <redacted> Cc: Xiong, Jianxin <redacted>; Jason Gunthorpe [off-list ref]; Gal Pressman [off-list ref]; Yishai Hadas [off-list ref]; linux-rdma [off-list ref]; Edward Srouji [off-list ref]; dri-devel <dri- devel@lists.freedesktop.org>; Christian Koenig [off-list ref]; Doug Ledford [off-list ref]; Vetter, Daniel [off-list ref] Subject: Re: [PATCH rdma-core v7 4/6] pyverbs: Add dma-buf based MR support<...>quoted
quoted
quoted
quoted
quoted
quoted
quoted
quoted
+#include <drm/drm.h> +#include <drm/i915_drm.h> #include <drm/amdgpu_drm.h> +#include <drm/radeon_drm.h>I assume these should come from the kernel headers package, right?This is gross, all kernel headers should be placed in kernel-headers/* and "update" script needs to be extended to take drm/* files too :(.drm kernel headers are in the libdrm package. You need that anyway for doing the ioctls (if you don't hand-roll the restarting yourself). Also our userspace has gone over to just outright copying the driver headers. Not the generic headers, but for the rendering side of gpus, which is the topic here, there's really not much generic stuff.quoted
Jianxin, are you fixing it?So fix is either to depend upon libdrm for building, or have copies of the headers included in the package for the i915/amdgpu/radeon headers (drm/drm.h probably not so good idea).We should have a cmake test to not build the drm parts if it can't be built, and pyverbs should skip the tests.Yes, I will add a test for that. Also, on SLES, the headers could be under /usr/include/libdrm instead of /usr/include/drm. The make testshould check that and use proper path.quoted
Please use pkgconfig for this, libdrm installs a .pc file to make sure you can find the right headers.rdma-core uses cmake build system and in our case cmake find_library() is preferable over pkgconfig.Only the headers are needed, and they could be installed via either the libdrm-devel package or the kernel-headers package. The cmakefind_path() command is more suitable here. Except if your distro is buggy (or doesn't support any gpu drivers at all) they will never be installed as part of kernel-headers.
Right, that's why we want to check for the existence of the header file (find_path() does just that) instead of the existence of the package(s).
-Daniel -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch