mi: Introduce asynchronous event message handling#967
Conversation
|
@jk-ozlabs, there's something funky going on with the existing mi-mctp tests. I was hoping you might shed some light here. Also looking for guidance on how we can add new tests to handle these changes. |
|
@igaw, it seems we have build checks that have been added since the last time I upstreamed something. But they're all failing for me here. Any guidance you can provide? |
ac53516 to
90ad63d
Compare
|
Neat, I'll take a look! |
|
I think the overall concept here is sound, but we are missing a few implementation details for an overall feasibility check too. There are some style things, but we can address those once the general framework is settled. I have added some comments in a review. I've been thinking about how we should be handling the multiple-endpoint cases, as we can only have one socket listening on incoming NVMe-MI message types. A couple of options there:
or:
I figure the latter is probably best, so will take a look at what's required for that. |
|
(BTW, I would suggest converting to a draft while still working out details) |
The build container cleanup task eagerly removed containers. |
@jk-ozlabs , I wasn't aware of this limitation. I think the kernel changes are probably the best solution here, but the case we are talking about is probably not going to be a primary use case. I was wondering if we can come up with a good strategy here to solve this multi-endpoint AEM issue without holding up the initial PR. Some thought's I had were:
|
9213c29 to
a0155f1
Compare
|
@igaw , I've addressed most of the checkpatch issues, but I can't resolve the packed ones. When I add __packed the structures aren't actually getting packed correctly. I also see plenty of usage in the codebase in the style I'm using. I also see kdoc failure. What's the best way for me to dig into what's going on here? Is there a way to build the documentation locally? @jk-ozlabs , I believe the mi-mctp tests are failing due to issue I flagged for you earlier. |
a0155f1 to
9025c6f
Compare
e9bd028 to
a7826d5
Compare
a7826d5 to
638045b
Compare
Alrighty! I was able to build our QEMU today and test with your commits on top. I did two tests: #1) Without your changes, ran with the new peer-bind code in libnvme-mi, and verified an error is returned in the example app since this is not supported yet What I'm not able to test is multiple endpoints with AEs because that's just not something this QEMU setup will allow at this point, but if you are confident in your kernel changes, or can test that bit on your end, I think we're good to go! Cheers and have a great weekend! |
ae38ff9 to
dd1bd0f
Compare
|
nice one! The multiple-endpoints functionality (at the MCTP level) is something we have tests for, so I'm fine to cover that on our side. [We have a facility for multiple NVMe-MI-device emulation under qemu, but the device-side doesn't support AEs at present. I'll give this a go once that is implemented though] |
|
@jk-ozlabs are we good to complete this, then? |
jk-ozlabs
left a comment
There was a problem hiding this comment.
Looking good!
I have done a bit of a nit-picky review here; most is not super important.
However: we will want to make sure we have the mi.h changes correct, as they'll become very difficult to modify once merged. If nothing else take a look through those and let me know if you disagree on any points there.
Thanks for all the work on this!
114aa22 to
945c5f6
Compare
jk-ozlabs
left a comment
There was a problem hiding this comment.
The API all looks good to me!
|
@igaw , this is ready to merge. |
|
Oh, it's a non trivial rebase. @chorkin could you rebase it against the current master, I think I'll break a thing or two if I do it myself. Sorry. |
945c5f6 to
cfdff5d
Compare
|
I need to do one final check, @igaw . Will post here when done. |
Added new functionality to mi.c and mi-mctp.c to handle AEMs. Included new example mi-mctp-ae.c for usage. Added tests for mi-mctp. Signed-off-by: Chuck Horkin <[email protected]>
cfdff5d to
e9bd17c
Compare
|
just updated the map file, sorted the lines alphabetically. |
|
Thanks! |
|
🥳 |
|
Thanks everyone! This is such a cool new feature; I'm glad we could get it in! |
Added new functionality to mi.c and mi-mctp.c to handle AEMs. Included new example mi-mctp-ae.c for usage.