Hi Jiri, Jakub, I've been asked to investigate using devlink as a mechanism for reporting asynchronous events/messages from firmware including diagnostic messages, etc.
Essentially, the ice firmware can report various status or diagnostic messages which are useful for debugging internal behavior. We want to be able to get these messages (and relevant data associated with them) in a format beyond just "dump it to the dmesg buffer and recover it later". It seems like this would be an appropriate use of devlink. I thought maybe this would work with devlink health: i.e. we create a devlink health reporter, and then when firmware sends a message, we use devlink_health_report. But when I dug into this, it doesn't seem like a natural fit. The health reporters expect to see an "error" state, and don't seem to really fit the notion of "log a message from firmware" notion. One of the issues is that the health reporter only keeps one dump, when what we really want is a way to have a monitoring application get the dump and then store its contents. Thoughts on what might make sense for this? It feels like a stretch of the health interface... I mean basically what I am thinking of having is using the devlink_fmsg interface to just send a netlink message that then gets sent over the devlink monitor socket and gets dumped immediately. Thanks, Jake