Fwd: Need Help regarding Reading and Writting to a file from kernel function file
Dear Sir, Hope you are doing well. Actually, I have one problem metioned in the subject line. The problem is: I am trying to write/read page faulted physical addresses to a file in a kernel (v5.3-1) function, i.e., handle_ept_violation() which is present in vmx.c. I have followed this <https://stackoverflow.com/questions/1184274/read-write-files-within-a-linux-...>, it's working as a standalone kernel module when I load/unload this kernel module, but when I try to use this code in the handle_ept_violation() function, I can't able to open the file and get the error codes, i.e., -2, -3, or -13. It's compiled successfully but generate the error at runtime. I searched for error codes online but I didn't find any help. Can anyone please provide me with any good guidlines, or links where I can start and solve this problem in a fast way. Thank you very much -- Regards, *Mr. Irfan Ullah* PhD Candidate Data and Knowledge Engineering(DKE) Lab Department of Computer Science and Engineering Kyung Hee University, South Korea. +82-010-591-51651 <+82%2010-3877-8867> sahibzada.iu@gmail.com sahibzada_irfanullah -- Regards, *Mr. Irfanullah*
On Tue, Sep 24, 2019 at 04:10:07PM +0900, Sahibzada Irfanullah wrote:
Dear Sir, Hope you are doing well. Actually, I have one problem metioned in the subject line. The problem is: I am trying to write/read page faulted physical addresses to a file in a kernel (v5.3-1) function, i.e., handle_ept_violation() which is present in vmx.c. I have followed this <https://stackoverflow.com/questions/1184274/read-write-files-within-a-linux-...>, it's working as a standalone kernel module when I load/unload this kernel module, but when I try to use this code in the handle_ept_violation() function, I can't able to open the file and get the error codes, i.e., -2, -3, or -13. It's compiled successfully but generate the error at runtime. I searched for error codes online but I didn't find any help. Can anyone please provide me with any good guidlines, or links where I can start and solve this problem in a fast way.
Please do not try to read or write a file from within the kernel, that way almost always lies madness and major problems. Step back and try to describe the problem you are attempting to solve here first. Odds are it can be done in a much better way. Also, do you have a pointer to your code anywhere? thanks, greg k-h
On Tue, 24 Sep 2019 16:10:07 +0900, Sahibzada Irfanullah said:
subject line. The problem is: I am trying to write/read page faulted physical addresses to a file in a kernel (v5.3-1) function, i.e., handle_ept_violation() which is present in vmx.c. I have followed this <https://stackoverflow.com/questions/1184274/read-write-files-within-a-linux-...>,
Just because somebody on stackoverflow gave a guide doesn't mean it's a good idea. What problem are you trying to solve here? Are you trying to write the faulted pages themselves to a file? In that case, just creating the file, using something like 'dd if=/dev/zero of=/your/file/here bs=1M count=4096' and then using mkswap and swapon will probably work much better. If you're trying to produce a trace of what pages are being faulted, you can probably do a better job by using 'perf' to produce trace events with a lot of added data for you, or use debugfs or netlink and a userspace program to read the data and write it to disk from userspace.
Hi, I am sorry but I am really tempted to share - https://www.linuxjournal.com/article/8110 But as suggested, you should never try this. Regards, Saket Sinha On Tue, Sep 24, 2019 at 10:50 AM Valdis Klētnieks <valdis.kletnieks@vt.edu> wrote:
On Tue, 24 Sep 2019 16:10:07 +0900, Sahibzada Irfanullah said:
subject line. The problem is: I am trying to write/read page faulted physical addresses to a file in a kernel (v5.3-1) function, i.e., handle_ept_violation() which is present in vmx.c. I have followed this <https://stackoverflow.com/questions/1184274/read-write-files-within-a-linux-...>,
Just because somebody on stackoverflow gave a guide doesn't mean it's a good idea.
What problem are you trying to solve here? Are you trying to write the faulted pages themselves to a file? In that case, just creating the file, using something like 'dd if=/dev/zero of=/your/file/here bs=1M count=4096' and then using mkswap and swapon will probably work much better.
If you're trying to produce a trace of what pages are being faulted, you can probably do a better job by using 'perf' to produce trace events with a lot of added data for you, or use debugfs or netlink and a userspace program to read the data and write it to disk from userspace.
_______________________________________________ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
On Tue, Sep 24, 2019 at 11:51:57AM +0200, Saket Sinha wrote:
Hi,
I am sorry but I am really tempted to share - https://www.linuxjournal.com/article/8110
That's out of date, and the stack overflow link points to it. Maybe someday I'll update that article somewhere else, as it's actually much simpler to do this now than it was when I wrote that article. But it still doesn't make it something that anyone should do :) thanks, greg k-h
Just because somebody on stackoverflow gave a guide doesn't mean it's a good idea.
I'll put that on my quotation list. ;-) Regards, Martin -- Dipl.-Inf. Martin Christian Senior Berater Entwicklung Hardware Division Verteidigung secunet Security Networks AG Tel.: +49 201 5454-3612, Fax +49 201 5454-1323 E-Mail: martin.christian@secunet.com Ammonstraße 74, 01067 Dresden www.secunet.com __________________________________________________________________________ secunet Security Networks AG Sitz: Kurfürstenstraße 58, 45138 Essen, Deutschland Amtsgericht Essen HRB 13615 Vorstand: Axel Deininger (Vors.), Torsten Henn, Dr. Kai Martius, Thomas Pleines Aufsichtsratsvorsitzender: Ralf Wintergerst __________________________________________________________________________
participants (5)
-
Greg KH -
Martin Christian -
Sahibzada Irfanullah -
Saket Sinha -
Valdis Klētnieks