From: Fengguang Wu <fengguang.wu@intel.com>
To: Oleg Nesterov <oleg@redhat.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>,
Peter Zijlstra <peterz@infradead.org>,
Ingo Molnar <mingo@kernel.org>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: Re: [x86] BUG: unable to handle kernel paging request at 00740060
Date: Wed, 9 Oct 2013 20:19:11 +0800 [thread overview]
Message-ID: <20131009121911.GA18770@localhost> (raw)
In-Reply-To: <20131009080459.GA2298@localhost>
[-- Attachment #1: Type: text/plain, Size: 269 bytes --]
> > Fengguang, I do not think this will help, but just in case. Could you
> > show the result of
> >
> > $ kernel/task_work.s
Update: I recompiled the kernel with gcc 4.4.7 and find it booting fine!
Attached is the new kernel/task_work.s.
Thanks,
Fengguang
[-- Attachment #2: task_work.s --]
[-- Type: text/plain, Size: 8125 bytes --]
.file "task_work.c"
# GNU C (Debian 4.4.7-4) version 4.4.7 (x86_64-linux-gnu)
# compiled by GNU C version 4.4.7, GMP version 5.1.1, MPFR version 3.1.1-p2.
# warning: GMP header version 5.1.1 differs from library version 5.0.2.
# GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
# options passed: -nostdinc -I/c/wfg/tip/arch/x86/include
# -Iarch/x86/include/generated -I/c/wfg/tip/include -Iinclude
# -I/c/wfg/tip/arch/x86/include/uapi -Iarch/x86/include/generated/uapi
# -I/c/wfg/tip/include/uapi -Iinclude/generated/uapi -I/c/wfg/tip/kernel
# -Ikernel -imultilib 32 -imultiarch i386-linux-gnu -D__KERNEL__
# -DCONFIG_AS_CFI=1 -DCONFIG_AS_CFI_SIGNAL_FRAME=1
# -DCONFIG_AS_CFI_SECTIONS=1 -DCONFIG_AS_AVX=1 -DCONFIG_AS_AVX2=1
# -DKBUILD_STR(s)=#s -DKBUILD_BASENAME=KBUILD_STR(task_work)
# -DKBUILD_MODNAME=KBUILD_STR(task_work) -isystem
# /usr/lib/gcc/x86_64-linux-gnu/4.4.7/include -include
# /c/wfg/tip/include/linux/kconfig.h -MD kernel/.task_work.s.d
# /c/wfg/tip/kernel/task_work.c -m32 -msoft-float -mregparm=3
# -mpreferred-stack-boundary=2 -march=winchip2 -maccumulate-outgoing-args
# -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-avx -auxbase-strip
# kernel/task_work.s -O2 -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs
# -Werror-implicit-function-declaration -Wno-format-security
# -Wno-sign-compare -Wframe-larger-than=1024 -Wdeclaration-after-statement
# -Wno-pointer-sign -p -fno-strict-aliasing -fno-common
# -fno-delete-null-pointer-checks -freg-struct-return -fno-pic
# -ffreestanding -fno-asynchronous-unwind-tables -fno-stack-protector
# -fno-omit-frame-pointer -fno-optimize-sibling-calls -fno-strict-overflow
# -fconserve-stack -fverbose-asm
# options enabled: -falign-loops -fargument-alias -fauto-inc-dec
# -fbranch-count-reg -fcaller-saves -fcprop-registers -fcrossjumping
# -fcse-follow-jumps -fdefer-pop -fdwarf2-cfi-asm -fearly-inlining
# -feliminate-unused-debug-types -fexpensive-optimizations
# -fforward-propagate -ffunction-cse -fgcse -fgcse-lm
# -fguess-branch-probability -fident -fif-conversion -fif-conversion2
# -findirect-inlining -finline -finline-functions-called-once
# -finline-small-functions -fipa-cp -fipa-pure-const -fipa-reference
# -fira-share-save-slots -fira-share-spill-slots -fivopts
# -fkeep-static-consts -fleading-underscore -fmath-errno -fmerge-constants
# -fmerge-debug-strings -fmove-loop-invariants -foptimize-register-move
# -fpeephole -fpeephole2 -fprofile -freg-struct-return -fregmove
# -freorder-blocks -freorder-functions -frerun-cse-after-loop
# -fsched-interblock -fsched-spec -fsched-stalled-insns-dep -fsigned-zeros
# -fsplit-ivs-in-unroller -fsplit-wide-types -fthread-jumps
# -ftoplevel-reorder -ftrapping-math -ftree-builtin-call-dce -ftree-ccp
# -ftree-ch -ftree-copy-prop -ftree-copyrename -ftree-cselim -ftree-dce
# -ftree-dominator-opts -ftree-dse -ftree-fre -ftree-loop-im
# -ftree-loop-ivcanon -ftree-loop-optimize -ftree-parallelize-loops=
# -ftree-pre -ftree-reassoc -ftree-scev-cprop -ftree-sink -ftree-sra
# -ftree-switch-conversion -ftree-ter -ftree-vect-loop-version -ftree-vrp
# -funit-at-a-time -fvect-cost-model -fverbose-asm
# -fzero-initialized-in-bss -m32 -m96bit-long-double
# -maccumulate-outgoing-args -malign-stringops -mfused-madd -mglibc
# -mieee-fp -mno-fancy-math-387 -mno-red-zone -mno-sse4 -mpush-args -msahf
# -mtls-direct-seg-refs
# Compiler executable checksum: f7c11247ad5a53a602823d9bd673a474
.section .rodata.str1.1,"aMS",@progbits,1
.LC0:
.string "/c/wfg/tip/kernel/task_work.c"
.text
.p2align 4,,15
.globl task_work_run
.type task_work_run, @function
task_work_run:
pushl %ebp #
movl %esp, %ebp #,
pushl %edi #
pushl %esi #
pushl %ebx #
call mcount
#APP
# 14 "/c/wfg/tip/arch/x86/include/asm/current.h" 1
movl current_task,%edi #, task
# 0 "" 2
#NO_APP
leal 904(%edi), %ebx #, D.18648
.p2align 4,,15
.L15:
movl (%ebx), %edx #* D.18648, work
testl %edx, %edx # work
je .L17 #,
.L2:
xorl %ecx, %ecx # head.458
.L3:
movl %edx, %eax # work, __ret
#APP
# 99 "/c/wfg/tip/kernel/task_work.c" 1
cmpxchgl %ecx,(%ebx) # head.458,* D.18648
# 0 "" 2
#NO_APP
cmpl %eax, %edx # __ret, work
jne .L15 #,
testl %edx, %edx # work
je .L10 #,
.p2align 4,,15
.L12:
#APP
# 656 "/c/wfg/tip/arch/x86/include/asm/processor.h" 1
rep; nop
# 0 "" 2
#NO_APP
movl 960(%edi), %eax # <variable>.pi_lock.raw_lock.slock, D.18658
testl %eax, %eax # D.18658
je .L12 #,
xorl %esi, %esi # head
jmp .L8 #
.p2align 4,,15
.L18:
movl %edx, %esi # work, head
movl %eax, %edx # next, work
.L8:
movl (%edx), %eax # <variable>.next, next
movl %esi, (%edx) # head, <variable>.next
testl %eax, %eax # next
jne .L18 #,
jmp .L9 #
.p2align 4,,15
.L17:
testb $4, 12(%edi) #, <variable>.flags
je .L2 #,
movl $work_exited, %ecx #, head.458
jmp .L3 #
.p2align 4,,15
.L19:
movl %esi, %edx # work.461, work
movl (%esi), %esi # <variable>.next, work.461
.L9:
movl %edx, %eax # work,
call *4(%edx) # <variable>.func
xorl %ecx, %ecx #
movl $125, %edx #,
movl $.LC0, %eax #,
call __might_sleep #
call _cond_resched #
testl %esi, %esi # work.461
jne .L19 #,
jmp .L15 #
.p2align 4,,15
.L10:
popl %ebx #
popl %esi #
popl %edi #
popl %ebp #
ret
.size task_work_run, .-task_work_run
.p2align 4,,15
.globl task_work_cancel
.type task_work_cancel, @function
task_work_cancel:
pushl %ebp #
movl %esp, %ebp #,
pushl %edi #
pushl %esi #
pushl %ebx #
subl $4, %esp #,
call mcount
movl %edx, %edi # func, func
leal 904(%eax), %esi #, pprev
addl $960, %eax #,
movl %eax, -16(%ebp) #, %sfp
call _raw_spin_lock_irqsave #
movl %eax, %edx #, flags
jmp .L28 #
.p2align 4,,15
.L29:
movl %ebx, %esi # work, pprev
.L28:
movl (%esi), %ebx #* pprev, work
testl %ebx, %ebx # work
je .L23 #,
cmpl %edi, 4(%ebx) # func, <variable>.func
jne .L29 #,
movl (%ebx), %ecx # <variable>.next, __new
movl %ebx, %eax # work, __ret
#APP
# 69 "/c/wfg/tip/kernel/task_work.c" 1
cmpxchgl %ecx,(%esi) # __new,* pprev
# 0 "" 2
#NO_APP
cmpl %eax, %ebx # __ret, work
jne .L28 #,
.p2align 4,,15
.L23:
movl -16(%ebp), %eax # %sfp,
call _raw_spin_unlock_irqrestore #
movl %ebx, %eax # work,
popl %edx #
popl %ebx #
popl %esi #
popl %edi #
popl %ebp #
ret
.size task_work_cancel, .-task_work_cancel
.p2align 4,,15
.globl task_work_add
.type task_work_add, @function
task_work_add:
pushl %ebp #
movl %esp, %ebp #,
pushl %edi #
pushl %esi #
pushl %ebx #
subl $12, %esp #,
call mcount
movl %eax, -20(%ebp) # task, %sfp
movl %edx, -16(%ebp) # work, %sfp
movb %cl, -21(%ebp) # notify, %sfp
movl %eax, %edi # task, D.18562
addl $904, %edi #, D.18562
.p2align 4,,15
.L33:
movl (%edi), %esi #* D.18562, head
cmpl $work_exited, %esi #, head
sete %al #, tmp72
xorl %ebx, %ebx # D.18565
movb %al, %bl # tmp72, D.18565
xorl %ecx, %ecx #
movl %ebx, %edx # D.18565,
movl $______f.18543, %eax #,
call ftrace_likely_update #
testl %ebx, %ebx # D.18565
jne .L38 #,
movl -16(%ebp), %eax # %sfp,
movl %esi, (%eax) # head, <variable>.next
movl %esi, %eax # head, __ret
movl -16(%ebp), %edx # %sfp,
#APP
# 34 "/c/wfg/tip/kernel/task_work.c" 1
cmpxchgl %edx,(%edi) #,* D.18562
# 0 "" 2
#NO_APP
cmpl %eax, %esi # __ret, head
jne .L33 #,
cmpb $0, -21(%ebp) # %sfp
je .L37 #,
movl -20(%ebp), %edx # %sfp,
movl 4(%edx), %eax # <variable>.stack, <variable>.stack
#APP
# 208 "/c/wfg/tip/arch/x86/include/asm/bitops.h" 1
bts $1, 8(%eax); setc %dl #,, c
# 0 "" 2
#NO_APP
.L37:
xorl %eax, %eax # D.18573
addl $12, %esp #,
popl %ebx #
popl %esi #
popl %edi #
popl %ebp #
ret
.p2align 4,,15
.L38:
movl $-3, %eax #, D.18573
addl $12, %esp #,
popl %ebx #
popl %esi #
popl %edi #
popl %ebp #
ret
.size task_work_add, .-task_work_add
.section _ftrace_annotated_branch,"aw",@progbits
.align 4
.type ______f.18543, @object
.size ______f.18543, 20
______f.18543:
# func:
.long __func__.18544
# file:
.long .LC0
# line:
.long 31
.zero 8
.local work_exited
.comm work_exited,8,4
.section .rodata
.type __func__.18544, @object
.size __func__.18544, 14
__func__.18544:
.string "task_work_add"
.ident "GCC: (Debian 4.4.7-4) 4.4.7"
.section .note.GNU-stack,"",@progbits
next prev parent reply other threads:[~2013-10-09 12:19 UTC|newest]
Thread overview: 69+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-10-05 23:44 [x86] BUG: unable to handle kernel paging request at 00740060 Fengguang Wu
2013-10-05 23:47 ` [x86] BUG: unable to handle kernel paging request at 08000060 Fengguang Wu
2013-10-06 7:27 ` Mike Galbraith
2013-10-06 7:36 ` Fengguang Wu
2013-10-07 8:49 ` Peter Zijlstra
2013-10-07 9:17 ` Fengguang Wu
2013-10-07 9:36 ` Peter Zijlstra
2013-10-07 9:46 ` Fengguang Wu
2013-10-07 8:55 ` [x86] BUG: unable to handle kernel paging request at 00740060 Peter Zijlstra
2013-10-07 9:08 ` Peter Zijlstra
2013-10-07 11:32 ` Fengguang Wu
2013-10-07 9:27 ` Fengguang Wu
2013-10-07 18:47 ` Linus Torvalds
2013-10-08 7:51 ` Fengguang Wu
2013-10-08 16:21 ` Linus Torvalds
2013-10-08 17:15 ` [x86] BUG: unable to handle kernel NULL pointer dereference at (null) Fengguang Wu
2013-10-08 17:31 ` Linus Torvalds
2013-10-09 1:09 ` Fengguang Wu
2013-10-09 1:33 ` Linus Torvalds
2013-10-08 18:51 ` [x86] BUG: unable to handle kernel paging request at 00740060 Oleg Nesterov
2013-10-08 19:05 ` Jakub Jelinek
2013-10-08 19:20 ` Linus Torvalds
2013-10-08 19:34 ` Linus Torvalds
2013-10-08 19:35 ` Oleg Nesterov
2013-10-08 19:49 ` Linus Torvalds
2013-10-09 1:43 ` Mike Galbraith
2013-10-08 19:05 ` Linus Torvalds
2013-10-08 16:46 ` Oleg Nesterov
2013-10-08 14:34 ` Oleg Nesterov
2013-10-09 8:04 ` Fengguang Wu
2013-10-09 12:19 ` Fengguang Wu [this message]
2013-10-09 12:21 ` Fengguang Wu
2013-10-09 12:27 ` Peter Zijlstra
2013-10-09 12:52 ` Ingo Molnar
2013-10-09 17:18 ` Ingo Molnar
2013-10-10 2:15 ` Mike Galbraith
2013-10-09 12:56 ` Fengguang Wu
2013-10-09 12:43 ` Oleg Nesterov
2013-10-09 14:07 ` Peter Zijlstra
2013-10-09 14:17 ` Oleg Nesterov
2013-10-09 14:32 ` Ingo Molnar
2013-10-09 14:33 ` Peter Zijlstra
2013-10-09 14:46 ` Peter Zijlstra
2013-10-09 18:16 ` Jakub Jelinek
2013-10-09 18:54 ` Linus Torvalds
2013-10-09 19:02 ` Peter Zijlstra
2013-10-09 19:08 ` Jakub Jelinek
2013-10-10 6:22 ` Ingo Molnar
2013-10-10 6:51 ` Jakub Jelinek
2013-10-10 8:04 ` Jakub Jelinek
2013-10-10 8:24 ` [PATCH] gcc4: Add 'asm goto' miscompilation quirk Ingo Molnar
2013-10-10 8:31 ` Jakub Jelinek
2013-10-10 8:45 ` Ingo Molnar
2013-10-10 8:55 ` [PATCH, -v2] compiler/gcc4: Add quirk for 'asm goto' miscompilation bug Ingo Molnar
2013-10-10 11:56 ` Peter Zijlstra
2013-10-10 12:32 ` Jakub Jelinek
2013-10-10 13:10 ` Peter Zijlstra
2013-10-10 15:04 ` Ingo Molnar
2013-10-10 14:04 ` [PATCH] gcc4: Add 'asm goto' miscompilation quirk Richard Henderson
2013-10-10 14:27 ` Jakub Jelinek
2013-10-10 15:12 ` [PATCH, -v3] compiler/gcc4: Add quirk for 'asm goto' miscompilation bug Ingo Molnar
2013-10-10 16:15 ` Richard Henderson
2013-10-10 16:49 ` Ingo Molnar
2013-10-11 4:35 ` Fengguang Wu
2013-10-11 5:46 ` Ingo Molnar
2013-10-11 6:51 ` Fengguang Wu
2013-10-11 9:30 ` Fengguang Wu
2013-10-12 17:03 ` Ingo Molnar
2013-10-10 8:34 ` [PATCH] gcc4: Add 'asm goto' miscompilation quirk Ingo Molnar
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20131009121911.GA18770@localhost \
--to=fengguang.wu@intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=oleg@redhat.com \
--cc=peterz@infradead.org \
--cc=torvalds@linux-foundation.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).