dumping large buffers to file
Hi. I'm currently debugging a ISP DMA issue in a kernel module. For debugging, I would like to dump buffers to a file on run time. The buffers are quite big, 1MB at least. As saving a file directly from kernel is discouraged, is there any available framework for doing such a thing ? I can think of numerous ways of transferring the buffer to user space and saving it by a dedicated user process (Netlink, sysfs, char device, etc.) I just don't want to invent the wheel. How do you do it ? Thanks. Ramon
On Tue, Nov 24, 2015 at 1:30 AM, Ramon Fried <ramon.fried@tandemg.com> wrote:
Hi.
I'm currently debugging a ISP DMA issue in a kernel module.
For debugging, I would like to dump buffers to a file on run time.
The buffers are quite big, 1MB at least.
As saving a file directly from kernel is discouraged, is there any available framework for doing such a thing ?
I can think of numerous ways of transferring the buffer to user space and saving it by a dedicated user process (Netlink, sysfs, char device, etc.)
I just don't want to invent the wheel. How do you do it ?
Thanks.
Ramon
_______________________________________________ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
If you can use printk just switch the log level to a log level that prints to the syslog buffer for kernel messages. If you have enough space on your partition for root this shouldn't be a problem, however if it is them I would recommend sysfs or procfs exporting as there better suited for debugging as the others are for user space applications needing access to kernel resources indirectly or device driver user space interaction. Hope this Helps, Nick
On Tue, 24 Nov 2015 06:30:22 +0000, Ramon Fried said:
I'm currently debugging a ISP DMA issue in a kernel module. For debugging, I would like to dump buffers to a file on run time. The buffers are quite big, 1MB at least.
The *other* question is how *often* you plan to do this. Doing it once a second is one thing, doing it once a millisecond is another.
I can think of numerous ways of transferring the buffer to user space and saving it by a dedicated user process (Netlink, sysfs, char device, etc.)
sysfs is probably a bad choice due to its 'one attribute per file' rule, debugfs would be a better approach. netlink is probably an option, and it's hard to argue with the simplicity of a char device with a plain old 'tail -f /dev/my-debug-file > /tmp/debug.out' or similar...
participants (3)
-
Nick Krause -
Ramon Fried -
Valdis.Kletnieks@vt.edu