sleep queue



crash> ps | grep udp-server
  23260   2174   2  ffff8ae0f3751e80  IN   0.0    4352   1368  udp-server
crash> task_struct.files ffff8ae0f3751e80
  files = 0xffff8ae121916940
crash> files_struct.fdt 0xffff8ae121916940
  fdt = 0xffff8ae12ddcd300
crash> fdtable 0xffff8ae12ddcd300
struct fdtable {
  max_fds = 0x100,
  fd = 0xffff8ae121ba1000,
  close_on_exec = 0xffff8ae0f55b8b00,
  open_fds = 0xffff8ae0f55b8ae0,
  full_fds_bits = 0xffff8ae0f55b8b20,
  rcu = {
    next = 0xffff8ae121f36800,
    func = 0x28
  }
}
crash> rd 0xffff8ae121ba1000 5
ffff8ae121ba1000:  ffff8ae133967d00 ffff8ae133967d00   .}.3.....}.3....
ffff8ae121ba1010:  ffff8ae133967d00 ffff8ae10fcec400   .}.3............
ffff8ae121ba1020:  0000000000000000                    ........
crash> file ffff8ae10fcec400 | grep private_data
  private_data = 0xffff8ae10f85b980,
crash> socket 0xffff8ae10f85b980
struct socket {
  state = SS_UNCONNECTED,
  type = 0x2,
  flags = 0x0,
  wq = 0xffff8ae0f4c23d80,
  file = 0xffff8ae10fcec400,
  sk = 0xffff8ae0f1531980,
  ops = 0xffffffffbeef4660
}
crash> socket_wq 0xffff8ae0f4c23d80 -o
struct socket_wq {
  [ffff8ae0f4c23d80] wait_queue_head_t wait;
  [ffff8ae0f4c23d98] struct fasync_struct *fasync_list;
  [ffff8ae0f4c23da0] unsigned long flags;
  [ffff8ae0f4c23da8] struct callback_head rcu;
}
SIZE: 0x40
crash> wait_queue_head_t ffff8ae0f4c23d80 -o
typedef struct wait_queue_head {
  [ffff8ae0f4c23d80] spinlock_t lock;
  [ffff8ae0f4c23d88] struct list_head head;
} wait_queue_head_t;
SIZE: 0x18
crash> list -H ffff8ae0f4c23d88 -s wait_queue_entry -o wait_queue_entry.entry
ffff9b9283f53c98
struct wait_queue_entry {
  flags = 0x1,
  private = 0xffff8ae0f3751e80,
  func = 0xffffffffbe79c570,
  entry = {
    next = 0xffff8ae0f4c23d88,
    prev = 0xffff8ae0f4c23d88
  }
}
crash> dis 0xffffffffbe79c570
0xffffffffbe79c570 <receiver_wake_function>:    nopl   0x0(%rax,%rax,1) [FTRACE NOP]
0xffffffffbe79c575 <receiver_wake_function+0x5>:        test   %rcx,%rcx
0xffffffffbe79c578 <receiver_wake_function+0x8>:        je     0xffffffffbe79c57f <receiver_wake_function+0xf>
0xffffffffbe79c57a <receiver_wake_function+0xa>:        test   $0x9,%cl
0xffffffffbe79c57d <receiver_wake_function+0xd>:        je     0xffffffffbe79c584 <receiver_wake_function+0x14>
0xffffffffbe79c57f <receiver_wake_function+0xf>:        jmpq   0xffffffffbe0c96c0 <autoremove_wake_function>
0xffffffffbe79c584 <receiver_wake_function+0x14>:       xor    %eax,%eax
0xffffffffbe79c586 <receiver_wake_function+0x16>:       retq
0xffffffffbe79c587 <receiver_wake_function+0x17>:       nopw   0x0(%rax,%rax,1)
crash>



 0xffffffffbe79c570 : receiver_wake_function+0x0/0x20 [kernel]
 0xffffffffbe0c8fc6 : __wake_up_common+0x86/0x120 [kernel]
 0xffffffffbe0c922a : __wake_up_common_lock+0x6a/0x90 [kernel]
 0xffffffffbe78f66c : sock_def_readable+0x3c/0x60 [kernel]
 0xffffffffbe831668 : __udp_enqueue_schedule_skb+0x198/0x1b0 [kernel]
 0xffffffffbe831ba6 : udp_queue_rcv_skb+0x1a6/0x430 [kernel]
 0xffffffffbe831ea6 : udp_unicast_rcv_skb+0x76/0x90 [kernel]
 0xffffffffbe833116 : __udp4_lib_rcv+0x446/0xa90 [kernel]
 0xffffffffbe7fee82 : ip_local_deliver_finish+0x92/0x1d0 [kernel]
 0xffffffffbe7ff41b : ip_local_deliver+0x5b/0xc0 [kernel]
 0xffffffffbe7ff4c2 : ip_rcv+0x42/0xb0 [kernel]
 0xffffffffbe7ae880 : __netif_receive_skb_one_core+0x40/0x50 [kernel]
 0xffffffffbe7adc94 : netif_receive_skb_internal+0x24/0xb0 [kernel]
 0xffffffffc0b84d69 : tun_get_user+0xd29/0xe70 [tun]
 0xffffffffc0b84eff : tun_chr_write_iter+0x4f/0x70 [tun]
 0xffffffffbe25eea5 : __vfs_write+0xe5/0x170 [kernel]
 0xffffffffbe25f0cd : vfs_write+0xad/0x1a0 [kernel]
 0xffffffffbe25f312 : ksys_write+0x42/0x90 [kernel]
 0xffffffffbe003ddf : do_syscall_64+0x4f/0x100 [kernel]
 0xffffffffbea0008c : entry_SYSCALL_64_after_hwframe+0x44/0xa9 [kernel]
parms: wait=0xffff9b9283f53c98 mode=0x1 sync=0x1 key=0xc3
execname: tun
ts: 2, 3
 0x7fe4f79d62c0 : __write_nocancel+0x7/0x57 [/lib/x86_64-linux-gnu/libc-2.23.so]
 0x400fea : cwrite+0x29/0x4b [/home/mishuang/prg/c/tun/tun]
 0x401b81 : main+0x88f/0x8de [/home/mishuang/prg/c/tun/tun]
 0x7fe4f78ff830 : __libc_start_main+0xf0/0x1d0 [/lib/x86_64-linux-gnu/libc-2.23.so]
 0x400db9 : _start+0x29/0x30 [/home/mishuang/prg/c/tun/tun]

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值