Track execution of close() system call in kernel
Harsh Jain
harshjain.prof at gmail.com
Fri Dec 18 02:39:00 EST 2015
Hi,
How to track the code flow of close() system call for socket fds.
In working case I am getting following debug traces in dmesg
inet_release sk ffff88040e376000 sk->sk_prot->close ffffffffa0774a50
chelsio_close Entered
CPU: 3 PID: 10108 Comm: openssl Tainted: G O
3.17.8_harsh_cry_test_dis #28
Hardware name: Supermicro X8ST3/X8ST3, BIOS 2.0 07/29/10
0000000000000000 ffff8800d87ebde8 ffffffff815e8356 ffffffff81dc21a0
ffff88040e376000 ffff8800d87ebe28 ffffffffa0774a91 ffff88040646f880
ffff88040e376000 0000000000000000 ffff8803fef299c0 ffff8803fef299f0
Call Trace:
[<ffffffff815e8356>] dump_stack+0x51/0x6b
[<ffffffffa0774a91>] chelsio_close+0x41/0x340 [t4_tom]
[<ffffffff815966c0>] inet_release+0xc0/0xd0
[<ffffffff815030b9>] sock_release+0x29/0xa0
[<ffffffff81503582>] sock_close+0x12/0x20
[<ffffffff811bf1b0>] __fput+0xd0/0x260
[<ffffffff811bf3ee>] ____fput+0xe/0x10
[<ffffffff81089e5d>] task_work_run+0xad/0xe0
[<ffffffff81003d74>] do_notify_resume+0x84/0x90
[<ffffffff815ed8da>] int_signal+0x12/0x17
chelsio_close Exit
After doing changes in kernel module dumpstack is not getting printed
from "chelsio_close" function. I added function entry/exit trace in
"sock_release" also. Return value of close() system call is also zero.
Its executing successfully but where in kernel code?
Regards
Harsh Jain
More information about the Kernelnewbies
mailing list