Re: [PATCHv12 1/3] rdmacg: Added rdma cgroup controller
From: Jason Gunthorpe <hidden>
Date: 2016-09-11 17:52:58
Also in:
linux-rdma, lkml
On Sun, Sep 11, 2016 at 07:24:45PM +0200, Christoph Hellwig wrote:
quoted
quoted
quoted
I've posted some initial work toward a) a while ago, and once weDid it get merged? Do you have a pointer?http://www.spinics.net/lists/linux-rdma/msg31958.html
Right, I remember that. Certainly the right direction
quoted
However, everything under verbs is not straightforward. The files in userspace are not copies... user: struct ibv_query_device { __u32 command; __u16 in_words; __u16 out_words; __u64 response; __u64 driver_data[0]; }; kernel: struct ib_uverbs_query_device { __u64 response; __u64 driver_data[0]; };We'll obviously need different strutures for the libibvers API and the kernel interface in this case, and we'll need to figure out how to properly translate them. I think a cast, plus compile time type checking ala BUILD_BUG_ON is the way to go.
I'm not sure I follow, which would I cast?
BUILD_BUG_ON(sizeof(ibv_query_device) == sizeof(ib_uverbs_cmd_hdr) +
sizeof(ib_uverbs_query_device))
?
quoted
I'm thinking the best way forward might be to use a script and transform userspace into: struct ibv_query_device { struct ib_uverbs_cmd_hdr hdr; struct ib_uverbs_query_device cmd; };That would break the users of the interface.
Sorry, I mean doing this inside rdma-plumbing. Since the change is ABI identical the modified libibverbs would still be binary compatible with all providers but not source compatible. Since all kernel supported providers are in rdma-plumbing we can add the '.cmd.' at the same time. The kernel uapi header would stay the same.
However automatically generating the user ABI from the kernel one might still be a good idea in the long run.
My preference would be to try and use the kernel headers directly. Jason