A set of call stacks when a scheduler switches task. The related kernel source is Quark X1000 Linux kernel
Stack 1:
#0 __dequeue_entity (se=0xce2edfac, cfs_rq=0xc14d4700 <runqueues+64>) at kernel/sched/fair.c:531
#1 set_next_entity (cfs_rq=cfs_rq@entry=0xc14d4700 <runqueues+64>, se=se@entry=0xce2edfac) at kernel/sched/fair.c:1868
#2 pick_next_task_fair (rq=0xc14d46c0 <runqueues>) at kernel/sched/fair.c:3608
#3 pick_next_task (rq=0xc14d46c0 <runqueues>) at kernel/sched/core.c:2832
#4 __schedule () at kernel/sched/core.c:2934
#5 schedule () at kernel/sched/core.c:2979
#6 cpu_idle () at arch/x86/kernel/process.c:367
#7 rest_init () at init/main.c:385
#8 start_kernel () at init/main.c:643
#9 i386_start_kernel () at arch/x86/kernel/head32.c:66
Stack 2:
#0 __dequeue_entity (se=0xc00623fc, cfs_rq=0xc14d4700 <runqueues+64>) at kernel/sched/fair.c:531
#1 set_next_entity (cfs_rq=cfs_rq@entry=0xc14d4700 <runqueues+64>, se=se@entry=0xc00623fc) at kernel/sched/fair.c:1868
#2 pick_next_task_fair (rq=0xc14d46c0 <runqueues>) at kernel/sched/fair.c:3608
#3 pick_next_task (rq=0xc14d46c0 <runqueues>) at kernel/sched/core.c:2832
#4 __schedule () at kernel/sched/core.c:2934
#5 schedule () at kernel/sched/core.c:2979
#6 schedule_hrtimeout_range_clock (expires=expires@entry=0xce30ff7c, delta=delta@entry=999997,
mode=mode@entry=HRTIMER_MODE_ABS, clock=clock@entry=1) at kernel/hrtimer.c:1809
#7 schedule_hrtimeout_range (expires=expires@entry=0xce30ff7c, delta=delta@entry=999997, mode=mode@entry=HRTIMER_MODE_ABS)
at kernel/hrtimer.c:1850
#8 ep_poll (timeout=1000, maxevents=<optimised out>, events=0x97062b8, ep=<optimised out>) at fs/eventpoll.c:1546
#9 sys_epoll_wait (epfd=6, events=0x97062b8, maxevents=1025, timeout=1000) at fs/eventpoll.c:1892
#10 <signal handler called>
Stack 3:
#0 __dequeue_entity (se=0xce288c1c, cfs_rq=0xc14d4700 <runqueues+64>) at kernel/sched/fair.c:531
#1 set_next_entity (cfs_rq=cfs_rq@entry=0xc14d4700 <runqueues+64>, se=se@entry=0xce288c1c) at kernel/sched/fair.c:1868
#2 pick_next_task_fair (rq=0xc14d46c0 <runqueues>) at kernel/sched/fair.c:3608
#3 pick_next_task (rq=0xc14d46c0 <runqueues>) at kernel/sched/core.c:2832
#4 __schedule () at kernel/sched/core.c:2934
#5 schedule () at kernel/sched/core.c:2979
#6 worker_thread (__worker=0xcc4f9c40) at kernel/workqueue.c:2407
#7 kthread (_create=0xcea53ec4) at kernel/kthread.c:168
#8 ret_from_kernel_thread () at arch/x86/kernel/entry_32.S:311
#9 ?? () at kernel/kthread.c:420
Stack 4:
#0 __dequeue_entity (se=0xce9f3bdc, cfs_rq=0xc14d4700 <runqueues+64>) at kernel/sched/fair.c:531
#1 set_next_entity (cfs_rq=cfs_rq@entry=0xc14d4700 <runqueues+64>, se=se@entry=0xce9f3bdc) at kernel/sched/fair.c:1868
#2 pick_next_task_fair (rq=0xc14d46c0 <runqueues>) at kernel/sched/fair.c:3608
#3 pick_next_task (rq=0xc14d46c0 <runqueues>) at kernel/sched/core.c:2832
#4 __schedule () at kernel/sched/core.c:2934
#5 schedule () at kernel/sched/core.c:2979
#6 futex_wait_queue_me (hb=<optimised out>, q=q@entry=0xce183e6c, timeout=timeout@entry=0xce183ea4) at kernel/futex.c:1808
#7 futex_wait (uaddr=uaddr@entry=0x807f524, flags=flags@entry=2, val=val@entry=4733, abs_time=abs_time@entry=0xce183f98,
bitset=4294967295) at kernel/futex.c:1923
#8 do_futex (uaddr=uaddr@entry=0x807f524, op=op@entry=393, val=val@entry=4733, timeout=0xce183f98,
uaddr2=uaddr2@entry=0x807f550, val2=0, val3=<optimised out>, val3@entry=4294967295) at kernel/futex.c:2669
#9 sys_futex (uaddr=0x807f524, op=393, val=4733, utime=0x8081d5c, uaddr2=0x807f550, val3=4294967295) at kernel/futex.c:2727
#10 <signal handler called>
No comments:
Post a Comment