Open haogroot opened 4 years ago
Reference to kthread_in_kthread branch.
kthread_in_kthread
Reproduce Step
$ sudo insmod kthread_test.ko
$ sudo rmmod kthread_test.ko
kernel page fault log:
[243007.808061] kthread_in_kthread: alive. smp_processor_id 1 [243007.808062] ========================================= [243012.928049] kthread_in_kthread: alive. smp_processor_id 1 [243012.928055] ========================================= [243012.928062] my_kthread: alive. smp_processor_id 1 [243012.928064] ========================================= [243016.998062] kthread_exit() start. [243016.998064] smp_processor_id 7 [243016.998065] stop kthread [243017.952062] my_kthread: alive. smp_processor_id 1 [243017.952068] ========================================= [243017.952072] my kthread: stop [243017.952137] kthread_exit() finish. [243017.952142] ========================================= [243018.048084] BUG: unable to handle page fault for address: ffffffffc0f7b03e [243018.048092] #PF: supervisor instruction fetch in kernel mode [243018.048095] #PF: error_code(0x0010) - not-present page [243018.048098] PGD 38ea0e067 P4D 38ea0e067 PUD 38ea10067 PMD 467787067 PTE 0 [243018.048106] Oops: 0010 [#18] SMP NOPTI [243018.048111] CPU: 1 PID: 6907 Comm: demo-child Tainted: G D OE 5.3.0-46-generic #38-Ubuntu [243018.048119] RIP: 0010:0xffffffffc0f7b03e [243018.048126] Code: Bad RIP value. [243018.048128] RSP: 0000:ffffacd7c0757f00 EFLAGS: 00010246 [243018.048132] RAX: 0000000000000000 RBX: ffff926d63a34680 RCX: 0000000000000000 [243018.048135] RDX: 0000000000000000 RSI: 0000000000000246 RDI: 0000000000000000 [243018.048138] RBP: ffffacd7c0757f00 R08: 0000000000000002 R09: 0000000000018577 [243018.048140] R10: 0000dd06407ef260 R11: 0000dd06407ef260 R12: ffff926d3aff2960 [243018.048143] R13: ffff926d68ca6340 R14: ffffffffc0f7c1c8 R15: ffffacd7c073fe28 [243018.048146] FS: 0000000000000000(0000) GS:ffff926d70440000(0000) knlGS:0000000000000000 [243018.048149] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [243018.048152] CR2: ffffffffc0f7b014 CR3: 000000038ea0a001 CR4: 00000000003606e0 [243018.048154] Call Trace: [243018.048166] kthread+0x104/0x140 [243018.048172] ? kthread_park+0x80/0x80 [243018.048180] ret_from_fork+0x1f/0x40 [243018.048184] Modules linked in: rfcomm acpi_call(OE) ccm cmac ... pinctrl_intel video [last unloaded: kthread_test] [243018.048279] CR2: ffffffffc0f7b03e [243018.048283] ---[ end trace bb782952598375a6 ]--- [243018.048287] RIP: 0010:0xffffffffc0f744a5 [243018.048292] Code: Bad RIP value. [243018.048294] RSP: 0018:ffffacd7c3f6fd60 EFLAGS: 00010282 [243018.048297] RAX: 0000000000000118 RBX: ffff926d6dccaf00 RCX: 0000000000000002 [243018.048299] RDX: 0000000000000000 RSI: 00000000fffffe01 RDI: ffffffffbd6e602f [243018.048302] RBP: ffffacd7c3f6fdd0 R08: 0000000000000218 R09: 0000000000024029 [243018.048304] R10: 0000000000012014 R11: 0000000000000001 R12: ffff926bbb002000 [243018.048307] R13: ffff926d41849380 R14: ffff926d41849380 R15: ffffacd7c10a3e10 [243018.048310] FS: 0000000000000000(0000) GS:ffff926d70440000(0000) knlGS:0000000000000000 [243018.048312] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [243018.048315] CR2: ffffffffc0f7447b CR3: 000000038ea0a001 CR4: 00000000003606e0
請思考誰去使用 kernel page
Reference to
kthread_in_kthread
branch.Reproduce Step
$ sudo insmod kthread_test.ko
$ sudo rmmod kthread_test.ko
kernel page fault log: