I wanted to enquire on what would be the optimal and good implementation of the user-kernel communication in the Linux operating system.
I need to pass down some data from my application to a driver in the kernel environment. The traditional mechanism is to use the ioctl interface but in our case, the driver that we are developing does not expose any interface which can be used by the open system call in the user space.
As such we thought of other IPC mechanisms to pass the required data from the user to the kernel like sockets, pipes and the likes.
Can anyone suggest which one would be a better implementation to go about among these IPC mechanisms? Is there any constraint in the amount of data that can be sent across to the driver when using any of these IPC mechanisms?
Is there any means by which a particular user space memory page can be locked and the same accessed in the kernel environment in Linux?
Please help provide me with the info, if you have any.