* [OOPS]: Linux-2.5.1-pre5
@ 2001-12-03 16:34 Udo A. Steinberg
2001-12-04 5:22 ` Mike Galbraith
2001-12-04 9:49 ` Jens Axboe
0 siblings, 2 replies; 6+ messages in thread
From: Udo A. Steinberg @ 2001-12-03 16:34 UTC (permalink / raw)
To: Linus Torvalds; +Cc: Linux Kernel
Hi Linus,
I just got the following oops when running 2.5.1-pre5. pre5 has been running
otherwise stable for a few days. The only oddity I'm seeing is that ever
since I upgraded to -pre5 from -pre1 I'm seeing
keyboard: Timeout - AT keyboard not present?(f4)
keyboard: Timeout - AT keyboard not present?(f4)
whenever I (re)start X. This never happened before.
Regards,
Udo.
ksymoops 2.4.1 on i686 2.5.1-pre5. Options used
-V (default)
-k /proc/ksyms (default)
-l /proc/modules (default)
-o /lib/modules/2.5.1-pre5/ (default)
-m /boot/System.map-2.5.1-pre5 (specified)
Unable to handle kernel NULL pointer dereference at virtual address 00000028
c01d0538
*pde = 00000000
Oops: 0000
CPU: 0
EIP: 0010:[<c01d0538>] Not tainted
Using defaults from ksymoops -t elf32-i386 -a i386
EFLAGS: 00010286
eax: 00000000 ebx: c1be11c0 ecx: 00000030 edx: 00000200
esi: 00000001 edi: c1be14c0 ebp: c10688ac esp: cac1bdb0
ds: 0018 es: 0018 ss: 0018
Process kdeinit (pid: 223, stackpage=cac1b000)
Stack: 00000030 00000001 c1be11c0 00000000 c0135af7 00000001 c1be11c0 c010820c
0000000b c1101ad4 000001f0 00000020 00000a0e c010a238 c1101ad4 c1be14c0
c10688ac c1be14c0 c0135b5c c1be14c0 000001f0 00000018 00000018 ffffff0b
Call Trace: [<c0135af7>] [<c010820c>] [<c010a238>] [<c0135b5c>] [<c01346bc>]
[<c012c328>] [<c012c5e0>] [<c012c64c>] [<c012cf51>] [<c012d19c>] [<c012d230>]
[<c013f8d3>] [<c02638d5>] [<c022177f>] [<c013fb03>] [<c013fed2>] [<c01c9b5f>]
[<c0106d1b>]
Code: 8b 48 28 66 c1 ea 09 0f b7 d2 0f af 53 04 89 10 0f b7 53 0c
>>EIP; c01d0538 <submit_bh+48/d0> <=====
Trace; c0135af7 <sync_page_buffers+97/b0>
Trace; c010820c <do_IRQ+7c/b0>
Trace; c010a238 <call_do_IRQ+5/d>
Trace; c0135b5c <try_to_free_buffers+4c/100>
Trace; c01346bc <try_to_release_page+1c/50>
Trace; c012c328 <shrink_cache+188/310>
Trace; c012c5e0 <shrink_caches+50/90>
Trace; c012c64c <try_to_free_pages+2c/50>
Trace; c012cf51 <balance_classzone+51/190>
Trace; c012d19c <__alloc_pages+10c/190>
Trace; c012d230 <__get_free_pages+10/20>
Trace; c013f8d3 <__pollwait+33/90>
Trace; c02638d5 <unix_poll+25/a0>
Trace; c022177f <sock_poll+1f/30>
Trace; c013fb03 <do_select+f3/200>
Trace; c013fed2 <sys_select+292/4a0>
Trace; c01c9b5f <keyboard_interrupt+f/20>
Trace; c0106d1b <system_call+33/38>
Code; c01d0538 <submit_bh+48/d0>
0000000000000000 <_EIP>:
Code; c01d0538 <submit_bh+48/d0> <=====
0: 8b 48 28 mov 0x28(%eax),%ecx <=====
Code; c01d053b <submit_bh+4b/d0>
3: 66 c1 ea 09 shr $0x9,%dx
Code; c01d053f <submit_bh+4f/d0>
7: 0f b7 d2 movzwl %dx,%edx
Code; c01d0542 <submit_bh+52/d0>
a: 0f af 53 04 imul 0x4(%ebx),%edx
Code; c01d0546 <submit_bh+56/d0>
e: 89 10 mov %edx,(%eax)
Code; c01d0548 <submit_bh+58/d0>
10: 0f b7 53 0c movzwl 0xc(%ebx),%edx
^ permalink raw reply [flat|nested] 6+ messages in thread* Re: [OOPS]: Linux-2.5.1-pre5 2001-12-03 16:34 [OOPS]: Linux-2.5.1-pre5 Udo A. Steinberg @ 2001-12-04 5:22 ` Mike Galbraith 2001-12-04 5:33 ` Alexander Viro 2001-12-04 9:49 ` Jens Axboe 1 sibling, 1 reply; 6+ messages in thread From: Mike Galbraith @ 2001-12-04 5:22 UTC (permalink / raw) To: Udo A. Steinberg; +Cc: Linux Kernel On Mon, 3 Dec 2001, Udo A. Steinberg wrote: > keyboard: Timeout - AT keyboard not present?(f4) > keyboard: Timeout - AT keyboard not present?(f4) I see those too. (the way it's written reminds me of a joke about silly MSDOS startup messages.. keyboard not detected, press F1 to continue:) -Mike ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [OOPS]: Linux-2.5.1-pre5 2001-12-04 5:22 ` Mike Galbraith @ 2001-12-04 5:33 ` Alexander Viro 0 siblings, 0 replies; 6+ messages in thread From: Alexander Viro @ 2001-12-04 5:33 UTC (permalink / raw) To: Mike Galbraith; +Cc: Udo A. Steinberg, Linux Kernel On Tue, 4 Dec 2001, Mike Galbraith wrote: > On Mon, 3 Dec 2001, Udo A. Steinberg wrote: > > > keyboard: Timeout - AT keyboard not present?(f4) > > keyboard: Timeout - AT keyboard not present?(f4) > > I see those too. (the way it's written reminds me of a joke about silly > MSDOS startup messages.. keyboard not detected, press F1 to continue:) Revert changes in drivers/char/pc_keyb.c (or, better yet, entire BKL removal from ->release() patch). ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [OOPS]: Linux-2.5.1-pre5 2001-12-03 16:34 [OOPS]: Linux-2.5.1-pre5 Udo A. Steinberg 2001-12-04 5:22 ` Mike Galbraith @ 2001-12-04 9:49 ` Jens Axboe 2001-12-04 17:54 ` David C. Hansen 1 sibling, 1 reply; 6+ messages in thread From: Jens Axboe @ 2001-12-04 9:49 UTC (permalink / raw) To: Udo A. Steinberg; +Cc: Linux Kernel [-- Attachment #1: Type: text/plain, Size: 1163 bytes --] On Mon, Dec 03 2001, Udo A. Steinberg wrote: > Unable to handle kernel NULL pointer dereference at virtual address 00000028 > c01d0538 > *pde = 00000000 > Oops: 0000 > CPU: 0 > EIP: 0010:[<c01d0538>] Not tainted > Using defaults from ksymoops -t elf32-i386 -a i386 > EFLAGS: 00010286 > eax: 00000000 ebx: c1be11c0 ecx: 00000030 edx: 00000200 > esi: 00000001 edi: c1be14c0 ebp: c10688ac esp: cac1bdb0 > ds: 0018 es: 0018 ss: 0018 > Process kdeinit (pid: 223, stackpage=cac1b000) > Stack: 00000030 00000001 c1be11c0 00000000 c0135af7 00000001 c1be11c0 c010820c > 0000000b c1101ad4 000001f0 00000020 00000a0e c010a238 c1101ad4 c1be14c0 > c10688ac c1be14c0 c0135b5c c1be14c0 000001f0 00000018 00000018 ffffff0b > Call Trace: [<c0135af7>] [<c010820c>] [<c010a238>] [<c0135b5c>] [<c01346bc>] > [<c012c328>] [<c012c5e0>] [<c012c64c>] [<c012cf51>] [<c012d19c>] [<c012d230>] > [<c013f8d3>] [<c02638d5>] [<c022177f>] [<c013fb03>] [<c013fed2>] [<c01c9b5f>] > [<c0106d1b>] > Code: 8b 48 28 66 c1 ea 09 0f b7 d2 0f af 53 04 89 10 0f b7 53 0c > > >>EIP; c01d0538 <submit_bh+48/d0> <===== This should fix it. -- Jens Axboe [-- Attachment #2: bio-pre5-1 --] [-- Type: text/plain, Size: 2221 bytes --] --- /opt/kernel/linux-2.5.1-pre5/fs/bio.c Tue Dec 4 04:42:00 2001 +++ fs/bio.c Tue Dec 4 04:45:56 2001 @@ -35,7 +35,7 @@ #include <asm/uaccess.h> kmem_cache_t *bio_cachep; -static spinlock_t __cacheline_aligned bio_lock = SPIN_LOCK_UNLOCKED; +static spinlock_t __cacheline_aligned_in_smp bio_lock = SPIN_LOCK_UNLOCKED; static struct bio *bio_pool; static DECLARE_WAIT_QUEUE_HEAD(bio_pool_wait); static DECLARE_WAIT_QUEUE_HEAD(biovec_pool_wait); @@ -74,7 +74,7 @@ struct bio *bio; if ((bio = bio_pool)) { - BUG_ON(bio_pool_free <= 0); + BIO_BUG_ON(bio_pool_free <= 0); bio_pool = bio->bi_next; bio->bi_next = NULL; bio_pool_free--; @@ -90,7 +90,7 @@ spin_lock_irqsave(&bio_lock, flags); bio = __bio_pool_get(); - BUG_ON(!bio && bio_pool_free); + BIO_BUG_ON(!bio && bio_pool_free); spin_unlock_irqrestore(&bio_lock, flags); return bio; @@ -121,8 +121,7 @@ } } -#define BIO_CAN_WAIT(gfp_mask) \ - (((gfp_mask) & (__GFP_WAIT | __GFP_IO)) == (__GFP_WAIT | __GFP_IO)) +#define BIO_CAN_WAIT(gfp_mask) ((gfp_mask) & __GFP_WAIT) static inline struct bio_vec *bvec_alloc(int gfp_mask, int nr, int *idx) { @@ -198,13 +197,15 @@ { struct biovec_pool *bp = &bvec_list[bio->bi_max]; - BUG_ON(bio->bi_max >= BIOVEC_NR_POOLS); + BIO_BUG_ON(bio->bi_max >= BIOVEC_NR_POOLS); /* * cloned bio doesn't own the veclist */ - if (!(bio->bi_flags & (1 << BIO_CLONED))) + if (!(bio->bi_flags & (1 << BIO_CLONED))) { kmem_cache_free(bp->bp_cachep, bio->bi_io_vec); + wake_up_nr(&bp->bp_wait, 1); + } bio_pool_put(bio); } @@ -212,13 +213,13 @@ inline void bio_init(struct bio *bio) { bio->bi_next = NULL; - atomic_set(&bio->bi_cnt, 1); bio->bi_flags = 0; bio->bi_rw = 0; bio->bi_vcnt = 0; bio->bi_idx = 0; bio->bi_size = 0; bio->bi_end_io = NULL; + atomic_set(&bio->bi_cnt, 1); } static inline struct bio *__bio_alloc(int gfp_mask, bio_destructor_t *dest) @@ -314,14 +315,13 @@ **/ void bio_put(struct bio *bio) { - BUG_ON(!atomic_read(&bio->bi_cnt)); + BIO_BUG_ON(!atomic_read(&bio->bi_cnt)); /* * last put frees it */ if (atomic_dec_and_test(&bio->bi_cnt)) { - BUG_ON(bio->bi_next); - + BIO_BUG_ON(bio->bi_next); bio_free(bio); } } ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [OOPS]: Linux-2.5.1-pre5 2001-12-04 9:49 ` Jens Axboe @ 2001-12-04 17:54 ` David C. Hansen 2001-12-04 18:43 ` Jens Axboe 0 siblings, 1 reply; 6+ messages in thread From: David C. Hansen @ 2001-12-04 17:54 UTC (permalink / raw) To: Jens Axboe; +Cc: Udo A. Steinberg, Linux Kernel Jens Axboe wrote: > This should fix it. So, what was the actual problem? -- David Hansen dave@sr71.net ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [OOPS]: Linux-2.5.1-pre5 2001-12-04 17:54 ` David C. Hansen @ 2001-12-04 18:43 ` Jens Axboe 0 siblings, 0 replies; 6+ messages in thread From: Jens Axboe @ 2001-12-04 18:43 UTC (permalink / raw) To: David C. Hansen; +Cc: Udo A. Steinberg, Linux Kernel On Tue, Dec 04 2001, David C. Hansen wrote: > Jens Axboe wrote: > > >This should fix it. > > So, what was the actual problem? bio_alloc() not waiting on the reserved pool for free entries, even though __GFP_WAIT was set. No need for __GFP_IO in that case too. There were two hunks with actual code changes in there, did you read the patch at all? :-) -- Jens Axboe ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2001-12-04 18:46 UTC | newest] Thread overview: 6+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2001-12-03 16:34 [OOPS]: Linux-2.5.1-pre5 Udo A. Steinberg 2001-12-04 5:22 ` Mike Galbraith 2001-12-04 5:33 ` Alexander Viro 2001-12-04 9:49 ` Jens Axboe 2001-12-04 17:54 ` David C. Hansen 2001-12-04 18:43 ` Jens Axboe
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox