On 07/02/2015 02:52, Weiny, Ira wrote:
quoted
On 05/02/2015 04:54, Weiny, Ira wrote:
quoted
quoted
On Thu, Jan 29, 2015 at 09:50:38PM +0100, Yann Droneaud wrote:
quoted
Anyway, I recognize that uverb way of abusing write() syscall is
borderline (at best) regarding other Linux subsystems and Unix
paradigm in general. But it's not enough to screw it more.
Then we must return the correct output size explicitly in the struct.
I was thinking this very same thing as I read through this thread.
I too would like to avoid the use of comp_masks if at all possible. The query
call seems to be a verb where the structure size is all you really need to know
the set of values returned.
quoted
As Jason says, other calls may require the comp_mask where 0 is not
sufficient to indicate "missing".
...
quoted
However, the only other alternative I see is to add it explicitly to every uverb
response struct.
I think this is the best solution. There is a 32 bit reserved field in ib_uverbs_ex_query_device_resp. Could we use all or part of that to be the size?
Yes, I think 32-bit for the response length are more than enough.
I will send patches for 3.20 to re-introduce ib_uverbs_ex_query_device
with the response size instead of the reserved field, and with Yann's
changes.
Thanks,
Haggai