linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
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 16:04:59 +0800	[thread overview]
Message-ID: <20131009080459.GA2298@localhost> (raw)
In-Reply-To: <20131008143400.GA14721@redhat.com>

[-- Attachment #1: Type: text/plain, Size: 318 bytes --]

Hi Oleg,

Thanks for looking into this. Attached is the task_work.s for you.

> Fengguang, I do not think this will help, but just in case. Could you
> show the result of
> 
>         $ kernel/task_work.s
> 
> ?

Sorry I lost some emails and found it back in LKML. Opened up too many
mutt clients..

Thanks,
Fengguang

[-- Attachment #2: task_work.s --]
[-- Type: text/plain, Size: 8729 bytes --]

	.file	"task_work.c"
# GNU C (Debian 4.6.3-1) version 4.6.3 (x86_64-linux-gnu)
#	compiled by GNU C version 4.6.3, GMP version 5.0.4, MPFR version 3.1.0-p3, MPC version 0.9
# warning: GMP header version 5.0.4 differs from library version 5.0.2.
# warning: MPFR header version 3.1.0-p3 differs from library version 3.1.1-p2.
# GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
# options passed:  -nostdinc -I /c/wfg/tip/arch/x86/include
# -I arch/x86/include/generated -I /c/wfg/tip/include -I include
# -I /c/wfg/tip/arch/x86/include/uapi -I arch/x86/include/generated/uapi
# -I /c/wfg/tip/include/uapi -I include/generated/uapi -I /c/wfg/tip/kernel
# -I kernel -imultilib 32 -imultiarch i386-linux-gnu -D __KERNEL__
# -D CONFIG_AS_CFI=1 -D CONFIG_AS_CFI_SIGNAL_FRAME=1
# -D CONFIG_AS_CFI_SECTIONS=1 -D CONFIG_AS_AVX=1 -D CONFIG_AS_AVX2=1
# -D CC_HAVE_ASM_GOTO -D KBUILD_STR(s)=#s
# -D KBUILD_BASENAME=KBUILD_STR(task_work)
# -D KBUILD_MODNAME=KBUILD_STR(task_work)
# -isystem /usr/lib/gcc/x86_64-linux-gnu/4.6/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 -Wno-unused-but-set-variable
# -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:  -fauto-inc-dec -fbranch-count-reg -fcaller-saves
# -fcombine-stack-adjustments -fcompare-elim -fcprop-registers
# -fcrossjumping -fcse-follow-jumps -fdefer-pop -fdevirtualize
# -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-profile -fipa-pure-const -fipa-reference -fipa-sra
# -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
# -fpartial-inlining -fpeephole -fpeephole2 -fprefetch-loop-arrays
# -fprofile -freg-struct-return -fregmove -freorder-blocks
# -freorder-functions -frerun-cse-after-loop
# -fsched-critical-path-heuristic -fsched-dep-count-heuristic
# -fsched-group-heuristic -fsched-interblock -fsched-last-insn-heuristic
# -fsched-rank-heuristic -fsched-spec -fsched-spec-insn-heuristic
# -fsched-stalled-insns-dep -fshow-column -fsigned-zeros
# -fsplit-ivs-in-unroller -fsplit-wide-types -fstrict-volatile-bitfields
# -fthread-jumps -ftoplevel-reorder -ftrapping-math -ftree-bit-ccp
# -ftree-builtin-call-dce -ftree-ccp -ftree-ch -ftree-copy-prop
# -ftree-copyrename -ftree-cselim -ftree-dce -ftree-dominator-opts
# -ftree-dse -ftree-forwprop -ftree-fre -ftree-loop-if-convert
# -ftree-loop-im -ftree-loop-ivcanon -ftree-loop-optimize
# -ftree-parallelize-loops= -ftree-phiprop -ftree-pre -ftree-pta
# -ftree-reassoc -ftree-scev-cprop -ftree-sink -ftree-slp-vectorize
# -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 -mglibc -mieee-fp
# -mno-fancy-math-387 -mno-red-zone -mno-sse4 -mpush-args -msahf
# -mtls-direct-seg-refs

# Compiler executable checksum: aa5cb4c8e9c62c6cc9349213df314c34

	.text
	.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, %edi	# task, task
	movl	%edx, -16(%ebp)	# work, %sfp
	movb	%cl, -21(%ebp)	# notify, %sfp
	.p2align 4,,15
.L3:
	movl	904(%edi), %esi	# task_3(D)->task_works, head
	cmpl	$work_exited, %esi	#, head
	sete	%bl	#, D.14145
	andl	$255, %ebx	#, D.14145
	xorl	%ecx, %ecx	#
	movl	%ebx, %edx	# D.14145,
	movl	$______f.14042, %eax	#,
	call	ftrace_likely_update	#
	testl	%ebx, %ebx	# D.14145
	jne	.L4	#,
	movl	-16(%ebp), %edx	# %sfp,
	movl	%esi, (%edx)	# head, work_13(D)->next
	movl	%esi, %eax	# head, __ret
#APP
# 34 "/c/wfg/tip/kernel/task_work.c" 1
	cmpxchgl %edx,904(%edi)	#, *__ptr_16
# 0 "" 2
#NO_APP
	cmpl	%eax, %esi	# __ret, head
	jne	.L3	#,
	cmpb	$0, -21(%ebp)	#, %sfp
	je	.L5	#,
	movl	4(%edi), %eax	# task_3(D)->stack, task_3(D)->stack
#APP
# 208 "/c/wfg/tip/arch/x86/include/asm/bitops.h" 1
	bts $1, 8(%eax); jc .L2	#, MEM[(volatile long unsigned int *)D.14203_29],
# 0 "" 2
#NO_APP
.L5:
	movl	$0, -20(%ebp)	#, %sfp
.L2:
	movl	-20(%ebp), %eax	# %sfp,
	addl	$12, %esp	#,
	popl	%ebx	#
	popl	%esi	#
	popl	%edi	#
	popl	%ebp	#
	ret
	.p2align 4,,15
.L4:
	movl	$-3, -20(%ebp)	#, %sfp
	movl	-20(%ebp), %eax	# %sfp,
	addl	$12, %esp	#,
	popl	%ebx	#
	popl	%esi	#
	popl	%edi	#
	popl	%ebp	#
	ret
	.size	task_work_add, .-task_work_add
	.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	#
	pushl	%ecx	#
	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, %ecx	#, flags
	jmp	.L14	#
	.p2align 4,,15
.L15:
	movl	%ebx, %esi	# work, pprev
.L14:
	movl	(%esi), %ebx	# MEM[(struct callback_head * volatile *)pprev_1], work
	testl	%ebx, %ebx	# work
	je	.L12	#,
	cmpl	%edi, 4(%ebx)	# func, work_7->func
	jne	.L15	#,
	movl	(%ebx), %edx	# work_7->next, __new
	movl	%ebx, %eax	# work, __ret
#APP
# 69 "/c/wfg/tip/kernel/task_work.c" 1
	cmpxchgl %edx,(%esi)	# __new, MEM[(volatile u32 *)pprev_1]
# 0 "" 2
#NO_APP
	cmpl	%eax, %ebx	# __ret, work
	jne	.L14	#,
	.p2align 4,,15
.L12:
	movl	%ecx, %edx	# flags,
	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
	.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,%esi	#, task
# 0 "" 2
#NO_APP
	leal	904(%esi), %edi	#, __ptr
	.p2align 4,,15
.L31:
	movl	904(%esi), %edx	# task_39->task_works, work
	testl	%edx, %edx	# work
	je	.L32	#,
.L24:
	xorl	%ecx, %ecx	# head
.L17:
	movl	%edx, %eax	# work, __ret
#APP
# 99 "/c/wfg/tip/kernel/task_work.c" 1
	cmpxchgl %ecx,(%edi)	# head, *__ptr_14
# 0 "" 2
#NO_APP
	cmpl	%eax, %edx	# __ret, work
	jne	.L31	#,
	testl	%edx, %edx	# work
	je	.L16	#,
	.p2align 4,,15
.L28:
#APP
# 656 "/c/wfg/tip/arch/x86/include/asm/processor.h" 1
	rep; nop
# 0 "" 2
#NO_APP
	movl	960(%esi), %eax	# task_39->pi_lock.raw_lock.slock, D.14132
	testl	%eax, %eax	# D.14132
	je	.L28	#,
	xorl	%ebx, %ebx	# head
	jmp	.L21	#
	.p2align 4,,15
.L26:
	movl	%edx, %ebx	# work, head
	movl	%eax, %edx	# next, work
.L21:
	movl	(%edx), %eax	# work_1->next, next
	movl	%ebx, (%edx)	# head, work_1->next
	testl	%eax, %eax	# next
	jne	.L26	#,
	jmp	.L23	#
	.p2align 4,,15
.L32:
	testb	$4, 12(%esi)	#, task_39->flags
	je	.L24	#,
	movl	$work_exited, %ecx	#, head
	jmp	.L17	#
	.p2align 4,,15
.L33:
	movl	%ebx, %edx	# work, work
	movl	(%ebx), %ebx	# work_5->next, work
.L23:
	movl	%edx, %eax	# work,
	call	*4(%edx)	# work_2->func
	xorl	%ecx, %ecx	#
	movl	$125, %edx	#,
	movl	$.LC0, %eax	#,
	call	__might_sleep	#
	call	_cond_resched	#
	testl	%ebx, %ebx	# work
	jne	.L33	#,
	jmp	.L31	#
	.p2align 4,,15
.L16:
	popl	%ebx	#
	popl	%esi	#
	popl	%edi	#
	popl	%ebp	#
	ret
	.size	task_work_run, .-task_work_run
	.local	work_exited
	.comm	work_exited,8,4
	.section	_ftrace_annotated_branch,"aw",@progbits
	.align 4
	.type	______f.14042, @object
	.size	______f.14042, 20
______f.14042:
# func:
	.long	__func__.14043
# file:
	.long	.LC0
# line:
	.long	31
	.zero	8
	.section	.rodata
	.type	__func__.14043, @object
	.size	__func__.14043, 14
__func__.14043:
	.string	"task_work_add"
	.ident	"GCC: (Debian 4.6.3-1) 4.6.3"
	.section	.note.GNU-stack,"",@progbits

  reply	other threads:[~2013-10-09  8:05 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 [this message]
2013-10-09 12:19       ` Fengguang Wu
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=20131009080459.GA2298@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).