-----Original Message----- From: Leon Romanovsky leon@kernel.org Sent: Tuesday, February 02, 2021 10:03 PM To: Daniel Vetter daniel@ffwll.ch Cc: Xiong, Jianxin jianxin.xiong@intel.com; Jason Gunthorpe jgg@ziepe.ca; Gal Pressman galpress@amazon.com; Yishai Hadas yishaih@nvidia.com; linux-rdma linux-rdma@vger.kernel.org; Edward Srouji edwards@nvidia.com; dri-devel <dri- devel@lists.freedesktop.org>; Christian Koenig christian.koenig@amd.com; Doug Ledford dledford@redhat.com; Vetter, Daniel daniel.vetter@intel.com Subject: Re: [PATCH rdma-core v7 4/6] pyverbs: Add dma-buf based MR support
<...>
> > +#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.
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 test
should check that and use proper path.
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 cmake find_path() command is more suitable here.
Thanks
-Daniel
Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch