Subject: Re: [PATCH v2 5/8] fwctl: FWCTL_RPC to execute a Remote Procedure Call to device firmware

From: Jason Gunthorpe <[email-masked]>
Date: Thu, 8 Aug 2024 08:46:22 -0300

On Wed, Aug 07, 2024 at 10:44:21AM +0300, Oded Gabbay wrote:
> Disconnecting the RPCs from the drivers and providing a generic interface will
> allow to have a single user-space library which will be able to communicate
> with the firmware for all the IPs in the device. In Habana's case, it was
> mainly for monitoring and debugging purposes.

Yeah, monitoring and debugging is definately a key use case.
 
> I do have one question about the rpc ioctl. Are you assuming that the rpc
> is synchronous (we send a message to the firmware and block until we get the
> reply)? If so, what happen if we have an async RPC implementation
> inside the driver? How would you recommend to handle it?

Yes, this is all simplified so the ioctl system call is
synchronous. mlx5 is async under the hood too, it just launches an
async work and waits on a completion before returning from the system
call.

Userspace could multi-thread it, and If people were really keen maybe
there is some io_uring approach.

Thanks,
Jason