I’m new in working with kernel. I want to add a linked list to my kernel, and I try to fix it like this link : Linux Kernel Programming–Linked List here is code’s that I added to sys.c : syscall defenition: and my struct for linked list: and when I compile the kernel, I saw this error: thanks for …
Tag: kernel
How to find out which kernel spinlock eat up most of CPU?
I’m doing performance tuning of a crypto software, which is run on Linux and utilizes hardware crypto acceleration device. When the load is given over some threshold, kernel _spn_lock begin to eat most of the CPU’s time. The following perf top screenshot shows ~30% of CPU is taken by _spin_lock, b…
Using sysctl interface from kernel module
I am trying to access tcp_pacing_ss_ratio defined in tcp_input.c from a kernel module. The variable can be modified using the sysctl command in user space. It is however not exported and cannot be referenced directly from the module. What is the simplest way to access a sysctl entry from a kernel module? Answ…
lm75 kernel module available in userspace
I’m using the lm75 kernel module to interact with a sensor on a custom board. Every things works fine, I have my device mounted in /sys/bus/i2c/devices/5-0048. But I would like to let the user set the max temp hysteresis so in other words let the user write into the temp_max_hyst file. The permission fo…
Writing to Linux device driver causes infinite loop
I have been writing a kernel space device driver that can be read from and written to from user space. The open, read, release operations all work perfectly. The problem I am having is with the user-space code that should access the device driver and and write something to it. The user-space program writes to…
where is the __init function of ext4?
As every module that is to be inserted in the kernel needs an __init function. where can I find the __init function of the original ext4 module written by linus torvalds? I want to make some changes in it. Answer I suppose you’re looking for this method : https://github.com/torvalds/linux/blob/master/fs…
Kernel debugging – gdb step jumps out of function
I’m trying to do understand the kernel network stack for a security research for my university. That’s why I try to debug the linux kernel. So far I’m doing quite well but I ran in a problem when trying to use qemu and gdb for debugging. The problem is as follows: I boot my linux system: mak…
How to add a member to task_struct to bypass “compiletime_assert”
I need to add members to task_struct in Linux kernel 4.8.0. However, when I did it and tried to build the kernel, the error message shows: How to get rid of such errors and build my kernel successfully? Answer The assertion you’re encountering is triggered by a macro (CHECK_MEMBER_AT_END_OF) that checks…
implement a read operation list in debugfs
i’m implementing a kernel module. using several techniques. 1 of them is to give read/write to different module variables. i was able to read/write all variables except the list i have in my module. the linked list: i would like to have a corresponding file in debugfs that will print the full list. i tr…
Receiving socket information from netfilter NF_INET_PRE_ROUTING hook function in linux kernel
I wrote a netfilter hook function for incoming packets in linux kernel. Is there a way to get the receiving socket information from the hook function. The code is Lets assume I have a udp socket open at port 15000 and a udp packet arrives at port 15000. In the above written hook function how can I access the …