From: Hefty, S. <sea...@in...> - 2004-05-27 15:09:00
|
>I'm trying to release the memory from a CQ callback function. This command >runs after running cl_spinlock_acquire. >However, this code was released as a part of the SF project code (SRP), so >I assumed that it should work fine... That call should not have been made from a CQ callback. Memory registration/deregistration needs to be done without holding a spinlock. Note that this is a general issue with the Mellanox HCA, and the reason that most of the IBAL destruction APIs work asynchronously is to allow destroy calls to be made from any callback. We made a design decision not to use asynchronous memory deregistration for security purposes, but migrating the deregistration call to be asynchronous wouldn't be difficult. |