Menu

#10 The open_ca() enhancements flow for the verbs provider

open
5
2003-11-12
2003-11-12
No

The open_ca() flow. Upon _init() of the AL dynamic
library linked with the user process (lately, we discussed
moving that to ib_open_al()), UAL performs the
ual_open_ca() ioctl that allocates the kernel context for
the process. This call is “padded” with the pre_ and
post_ UVP calls with the regular semantics, where the
vendor-specific user context for the CA can be
established. However, the KAL code that serves the ioctl
does not provide a hook to the KVP that could be used
for setting up the CA resources for the user context in
the kernel. Instead, the AL expects the kernel to
perform the vendor specific resource setup upon the PD
allocation.
Therefore, every KVP that has a notion of per-CA-per-
process resources is forced to defer the setup of those
to the first PD allocation, which is tricky, requires extra
synchronization, and overloads the ib_alloc_pd() call
with non-natural semantics. Moreover, we are not sure
that we can support this for long in the new FW versions
and HW revisions. The other solutions, like performing an
ioctl to the KVP from the post_ call, are even more
hacky.
The funny thing is that your design has gone more than
half-way in defining the user-space plugins for the UVP,
so you do acknowledge that the user process might
want to setup some context with the first open_ca().
However, we have no hook for the KVP in this process.
It will be more than valuable if you extended the KVP API
with this one call.

Discussion


Log in to post a comment.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.