Bug 1339

Summary: sleeping function called from invalid context
Product: Memory Management Reporter: Steve Fosdick (stevenfosdick)
Component: Page AllocatorAssignee: Andrew Morton (akpm)
Status: CLOSED CODE_FIX    
Severity: normal CC: bunk
Priority: P2    
Hardware: i386   
OS: Linux   
Kernel Version: 2.6.0-test6 Subsystem:
Regression: --- Bisected commit-id:
Attachments: patch for the bug

Description Steve Fosdick 2003-10-10 02:58:14 UTC
Distribution: Debian Sarge

Hardware Environment:

Gateway PC, Intel Pentium III (Katmai) 450Mhz, Intel 440BX Chipset, 640Mb RAM

Software Environment:

Gnu C                  3.3.2
Gnu make               3.80
util-linux             2.12
mount                  2.12
e2fsprogs              1.35-WIP
nfs-utils              1.0.5
Linux C Library        2.3.2
Dynamic linker (ldd)   2.3.2
Procps                 3.1.12
Net-tools              1.60
Console-tools          0.2.3
Sh-utils               5.0
Modules Loaded         nfsd exportfs lockd sunrpc reiserfs 8250 serial_core
eepro100 mii rtc

Problem Description:

The following message appeared on the system log:

Debug: sleeping function called from invalid context at include/asm/uaccess.h:473
in_atomic():0, irqs_disabled():1
Call Trace:
 [<c011bd58>] __might_sleep+0x88/0x90
 [<c010c55f>] save_v86_state+0x6f/0x1f0
 [<c010d017>] handle_vm86_fault+0xb7/0xa10
 [<c0141e21>] do_no_page+0x191/0x2f0
 [<c0140fc6>] zeromap_pte_range+0x36/0x70
 [<c010b070>] do_general_protection+0x0/0xa0
 [<c010a399>] error_code+0x2d/0x38
 [<c010a1ef>] syscall_call+0x7/0xb

Steps to reproduce:

I don't have a method to reproduce - this just appeared in the log.
Comment 1 Martin J. Bligh 2003-10-10 08:38:47 UTC
From Andi Kleen 

> 
> Debug: sleeping function called from invalid context at include/asm/uaccess.h:473
> in_atomic():0, irqs_disabled():1
> Call Trace:
>  [<c011bd58>] __might_sleep+0x88/0x90
>  [<c010c55f>] save_v86_state+0x6f/0x1f0

Old bug. We already discussed it some time ago, but didn't get to a conclusion.

It's really the might_sleep that is buggy here.

>  [<c010d017>] handle_vm86_fault+0xb7/0xa10
>  [<c0141e21>] do_no_page+0x191/0x2f0
>  [<c0140fc6>] zeromap_pte_range+0x36/0x70
>  [<c010b070>] do_general_protection+0x0/0xa0
>  [<c010a399>] error_code+0x2d/0x38
>  [<c010a1ef>] syscall_call+0x7/0xb
>
> I don't have a method to reproduce - this just appeared in the log.

Run dosemu.

-Andi
Comment 2 Andi Kleen 2003-10-15 19:52:58 UTC
Created attachment 1064 [details]
patch for the bug


Has been submitted, but not merged yet.
Comment 3 Adrian Bunk 2005-07-02 18:44:30 UTC
It seems this problem is already fixed in recent 2.6 kernels.