> The driver will create the cq with an allocated vector, but it's not activated > until after the driver wires it up to a handler. I think that's what you're > observing with the incomplete MSIx table entry on creation.
Also, I'm wondering if this is inconsistent with the NVMe spec. In Section 7.6.1 of the 1.4 spec, it says "After determining the number of I/O Queues, the MSI and/or MSI-X registers should be configured;" in Step 8, and CQ creation happens in Step 9. Now the driver changes MSI-X registers after CQ creation, is it a violation of the spec?