Hi, I want to share information between two kernel modules (Kernel version 4.0 or above). What are the ways of communication between kernel modules in Linux. Please list out the available mechanisms to do this. Thanks & Regards Neil Thomas
On Thu, Feb 08, 2018 at 09:39:31AM +0530, Neil Thomas wrote:
Hi,
I want to share information between two kernel modules (Kernel version 4.0 or above). What are the ways of communication between kernel modules in Linux.
What have you tried that did not work out?
Please list out the available mechanisms to do this.
This feels like a homework question to me, are you sure you are not just asking for us to do your work for you? :) thanks, greg k-h
Hi, I am just a beginner. I have tried procfs, Netlink socket to communicate between user space and kernel space and it works fine. I am developing a monitoring utility to trace the VFS operation and find the frequency of VFS function calls. This monitoring utility runs in kernel space. We have to record the occurrence of each VFS function calls (like vfs_open(), vfs_read()). I don't know which is best mechanism to report this VFS event to the monitoring utility. Could anyone please suggest the best mechanism to transfer data frequently between kernel modules. Thank you! On Thu, Feb 8, 2018 at 7:56 PM, Greg KH <greg@kroah.com> wrote:
On Thu, Feb 08, 2018 at 09:39:31AM +0530, Neil Thomas wrote:
Hi,
I want to share information between two kernel modules (Kernel version 4.0 or above). What are the ways of communication between kernel modules in Linux.
What have you tried that did not work out?
Please list out the available mechanisms to do this.
This feels like a homework question to me, are you sure you are not just asking for us to do your work for you? :)
thanks,
greg k-h
On Thu, 08 Feb 2018 23:38:01 +0530, Neil Thomas said:
I am just a beginner. I have tried procfs, Netlink socket to communicate between user space and kernel space and it works fine.
I am developing a monitoring utility to trace the VFS operation and find the frequency of VFS function calls. This monitoring utility runs in kernel space. We have to record the occurrence of each VFS function calls (like vfs_open(), vfs_read()). I don't know which is best mechanism to report this VFS event to the monitoring utility.
Could anyone please suggest the best mechanism to transfer data frequently between kernel modules.
There's a perfectly good perf-based function trace facility that will provide this info to userspace. http://www.brendangregg.com/perf.html#StaticKernelTracing
Thanks, I will check it out. On 09-Feb-2018 12:50 AM, <valdis.kletnieks@vt.edu> wrote:
On Thu, 08 Feb 2018 23:38:01 +0530, Neil Thomas said:
I am just a beginner. I have tried procfs, Netlink socket to communicate between user space and kernel space and it works fine.
I am developing a monitoring utility to trace the VFS operation and find the frequency of VFS function calls. This monitoring utility runs in kernel space. We have to record the occurrence of each VFS function calls (like vfs_open(), vfs_read()). I don't know which is best mechanism to report this VFS event to the monitoring utility.
Could anyone please suggest the best mechanism to transfer data frequently between kernel modules.
There's a perfectly good perf-based function trace facility that will provide this info to userspace.
On Fri, Feb 9, 2018 at 12:52 AM, Neil Thomas <neilkt27@gmail.com> wrote:
Thanks, I will check it out.
On 09-Feb-2018 12:50 AM, <valdis.kletnieks@vt.edu> wrote:
On Thu, 08 Feb 2018 23:38:01 +0530, Neil Thomas said:
I am just a beginner. I have tried procfs, Netlink socket to communicate between user space and kernel space and it works fine.
I am developing a monitoring utility to trace the VFS operation and find the frequency of VFS function calls. This monitoring utility runs in kernel space. We have to record the occurrence of each VFS function calls (like vfs_open(), vfs_read()). I don't know which is best mechanism to report this VFS event to the monitoring utility.
Could anyone please suggest the best mechanism to transfer data frequently between kernel modules.
You can also use ION (CONFIG_ION) or DMABUF (DMA_SHARED_BUFFER) buffer sharing mechanism to share data between 2 drivers. Check this: https://www.kernel.org/doc/html/latest/driver-api/dma-buf.html https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/driv...
There's a perfectly good perf-based function trace facility that will provide this info to userspace.
_______________________________________________ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
Thanks a lot. I will try out this. On 10-Feb-2018 2:08 PM, "Pintu Kumar" <pintu.ping@gmail.com> wrote:
On Fri, Feb 9, 2018 at 12:52 AM, Neil Thomas <neilkt27@gmail.com> wrote:
Thanks, I will check it out.
On 09-Feb-2018 12:50 AM, <valdis.kletnieks@vt.edu> wrote:
On Thu, 08 Feb 2018 23:38:01 +0530, Neil Thomas said:
I am just a beginner. I have tried procfs, Netlink socket to
communicate
between user space and kernel space and it works fine.
I am developing a monitoring utility to trace the VFS operation and find the frequency of VFS function calls. This monitoring utility runs in kernel space. We have to record the occurrence of each VFS function calls (like vfs_open(), vfs_read()). I don't know which is best mechanism to report this VFS event to the monitoring utility.
Could anyone please suggest the best mechanism to transfer data frequently between kernel modules.
You can also use ION (CONFIG_ION) or DMABUF (DMA_SHARED_BUFFER) buffer sharing mechanism to share data between 2 drivers. Check this: https://www.kernel.org/doc/html/latest/driver-api/dma-buf.html https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/ linux.git/tree/drivers/staging/android/ion?h=v4.15
There's a perfectly good perf-based function trace facility that will provide this info to userspace.
_______________________________________________ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
On Sat, Feb 10, 2018 at 10:30:36PM +0530, Neil Thomas wrote:
Thanks a lot. I will try out this.
Please don't top post. It upsets people. Good luck, Tobin.
On 10-Feb-2018 2:08 PM, "Pintu Kumar" <pintu.ping@gmail.com> wrote:
On Fri, Feb 9, 2018 at 12:52 AM, Neil Thomas <neilkt27@gmail.com> wrote:
Thanks, I will check it out.
On 09-Feb-2018 12:50 AM, <valdis.kletnieks@vt.edu> wrote:
On Thu, 08 Feb 2018 23:38:01 +0530, Neil Thomas said:
I am just a beginner. I have tried procfs, Netlink socket to
communicate
between user space and kernel space and it works fine.
I am developing a monitoring utility to trace the VFS operation and find the frequency of VFS function calls. This monitoring utility runs in kernel space. We have to record the occurrence of each VFS function calls (like vfs_open(), vfs_read()). I don't know which is best mechanism to report this VFS event to the monitoring utility.
Could anyone please suggest the best mechanism to transfer data frequently between kernel modules.
You can also use ION (CONFIG_ION) or DMABUF (DMA_SHARED_BUFFER) buffer sharing mechanism to share data between 2 drivers. Check this: https://www.kernel.org/doc/html/latest/driver-api/dma-buf.html https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/ linux.git/tree/drivers/staging/android/ion?h=v4.15
There's a perfectly good perf-based function trace facility that will provide this info to userspace.
_______________________________________________ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
_______________________________________________ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
participants (5)
-
Greg KH -
Neil Thomas -
Pintu Kumar -
Tobin C. Harding -
valdis.kletnieks@vt.edu