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