Skip to contentSkip to conversation

an oops in 2.6-test2 (oops)

DISCUSSION Marco d'Itri 3 participants 3 messages Aug 16, 2003 – Aug 17, 2003

lore
Share & tools
lore
#0 lore raw
Quoted 2 lines · Marco d'Itri

I have been getting a few of these too (now with -test3), usually reproducibles:

I've got another one yesterday:

ksymoops 2.4.8 on i686 2.6.0-test3. Options used
-V (default)
-k /proc/ksyms (default)
-l /proc/modules (default)
-o /lib/modules/2.6.0-test3/ (default)
-m /boot/System.map-2.6.0-test3 (default)

Warning: You did not tell me where to find symbol information. I will assume that the log matches the kernel and modules that are running right now and I'll use the default options above for symbol resolution. If the current kernel and/or modules do not match the log, you can get more accurate output by telling me the kernel version and where to find map, modules, ksyms etc. ksymoops -h explains the options.

Error (regular_file): read_ksyms stat /proc/ksyms failed No modules in ksyms, skipping objects
No ksyms, skipping lsmod

Aug 15 14:35:44 wonderland kernel: 8139too Fast Ethernet driver 0.9.26
Aug 16 07:26:51 wonderland kernel: Unable to handle kernel NULL pointer dereference at virtual address 00000000
Aug 16 07:26:51 wonderland kernel: c015c80a
Aug 16 07:26:51 wonderland kernel: *pde = 00000000
Aug 16 07:26:51 wonderland kernel: Oops: 0000 [#1]
Aug 16 07:26:51 wonderland kernel: CPU:    0
Aug 16 07:26:51 wonderland kernel: EIP:    0060:[<c015c80a>]    Not tainted
Using defaults from ksymoops -t elf32-i386 -a i386
Aug 16 07:26:51 wonderland kernel: EFLAGS: 00010286
Aug 16 07:26:51 wonderland kernel: eax: c1521110   ebx: 0005fa96   ecx: d19b1b50   edx: 00000000
Aug 16 07:26:51 wonderland kernel: esi: df60aa00   edi: c1521110   ebp: cd54de2c   esp: cd54de1c
Aug 16 07:26:51 wonderland kernel: ds: 007b   es: 007b   ss: 0068
Aug 16 07:26:51 wonderland kernel: Stack: df530300 0005fa96 0005fa96 df60aa00 cd54de50 c015cd0b df60aa00 c1521110 
Aug 16 07:26:51 wonderland kernel:        0005fa96 c1521110 0005fa96 c615e300 df60aa00 cd54de70 c017bc77 df60aa00 
Aug 16 07:26:51 wonderland kernel:        0005fa96 df4facec fffffff4 df5c54b8 df5c5450 cd54de94 c0152740 df5c5450 
Aug 16 07:26:51 wonderland kernel: Call Trace:
Aug 16 07:26:51 wonderland kernel:  [<c015cd0b>] iget_locked+0x4b/0xa0
Aug 16 07:26:51 wonderland kernel:  [<c017bc77>] ext3_lookup+0x67/0xc0
Aug 16 07:26:51 wonderland kernel:  [<c0152740>] real_lookup+0xc0/0xf0
Aug 16 07:26:51 wonderland kernel:  [<c0152984>] do_lookup+0x84/0x90
Aug 16 07:26:51 wonderland kernel:  [<c0152d84>] link_path_walk+0x3f4/0x760
Aug 16 07:26:51 wonderland kernel:  [<c015353e>] __user_walk+0x3e/0x60
Aug 16 07:26:51 wonderland kernel:  [<c014efbe>] vfs_stat+0x1e/0x60
Aug 16 07:26:51 wonderland kernel:  [<c013c8c2>] free_pgtables+0x82/0xa0
Aug 16 07:26:51 wonderland kernel:  [<c013c956>] unmap_vma+0x76/0x80
Aug 16 07:26:51 wonderland kernel:  [<c014f62b>] sys_stat64+0x1b/0x40
Aug 16 07:26:51 wonderland kernel:  [<c014643b>] filp_close+0x4b/0x80
Aug 16 07:26:51 wonderland kernel:  [<c01464c1>] sys_close+0x51/0x60
Aug 16 07:26:51 wonderland kernel:  [<c01090b3>] syscall_call+0x7/0xb
Aug 16 07:26:51 wonderland kernel: Code: 0f 18 02 90 39 59 18 89 c8 74 10 85 d2 89 d1 75 ed 31 c0 83 
Quoted 8 lines
Quoted 8 lines

EIP; c015c80a <find_inode_fast+1a/60> <=====

eax; c1521110 <__crc_lock_may_read+d3ca2/101eac> ecx; d19b1b50 <__crc_find_inode_number+11efe1/25f51d> esi; df60aa00 <__crc_inet_family_ops+140d4b/142f72> edi; c1521110 <__crc_lock_may_read+d3ca2/101eac> ebp; cd54de2c <__crc___scm_send+175362/1b3d66> esp; cd54de1c <__crc___scm_send+175352/1b3d66>

Trace; c015cd0b <iget_locked+4b/a0>
Trace; c017bc77 <ext3_lookup+67/c0>
Trace; c0152740 <real_lookup+c0/f0>
Trace; c0152984 <do_lookup+84/90>
Trace; c0152d84 <link_path_walk+3f4/760>
Trace; c015353e <__user_walk+3e/60>
Trace; c014efbe <vfs_stat+1e/60>
Trace; c013c8c2 <free_pgtables+82/a0>
Trace; c013c956 <unmap_vma+76/80>
Trace; c014f62b <sys_stat64+1b/40>
Trace; c014643b <filp_close+4b/80>
Trace; c01464c1 <sys_close+51/60>
Trace; c01090b3 <syscall_call+7/b>

Code; c015c80a <find_inode_fast+1a/60>
00000000 <_EIP>:
Code; c015c80a <find_inode_fast+1a/60> <=====
0: 0f 18 02 prefetchnta (%edx) <=====
Code; c015c80d <find_inode_fast+1d/60>
3: 90 nop
Code; c015c80e <find_inode_fast+1e/60>
4: 39 59 18 cmp %ebx,0x18(%ecx)
Code; c015c811 <find_inode_fast+21/60>
7: 89 c8 mov %ecx,%eax
Code; c015c813 <find_inode_fast+23/60>
9: 74 10 je 1b <_EIP+0x1b>
Code; c015c815 <find_inode_fast+25/60>
b: 85 d2 test %edx,%edx
Code; c015c817 <find_inode_fast+27/60>
d: 89 d1 mov %edx,%ecx
Code; c015c819 <find_inode_fast+29/60>
f: 75 ed jne fffffffe <_EIP+0xfffffffe>
Code; c015c81b <find_inode_fast+2b/60>
11: 31 c0 xor %eax,%eax
Code; c015c81d <find_inode_fast+2d/60>
13: 83 00 00 addl $0x0,(%eax)

1 warning and 1 error issued. Results may not be reliable.

Signature · 2 lines
ciao, |
Marco | [1302 arB35F5/Z7koA]
#1 lore raw
Quoted 9 lines · Marco d'Itri

I've got another one yesterday:

...

Aug 16 07:26:51 wonderland kernel: Unable to handle kernel NULL pointer dereference at virtual address 00000000

...
Code; c015c80a <find_inode_fast+1a/60> <=====
0: 0f 18 02 prefetchnta (%edx) <=====

And you'll continue to get them until someone does something about it. Discussion seemed to die off on this problem.

Until it is sorted, something like this is needed.

include/asm-i386/processor.h renamed from include/asm-i386/processor.h~disble-athlon-prefetch +2 -0
diff -puN include/asm-i386/processor.h~disble-athlon-prefetch include/asm-i386/processor.h
@@ -568,6 +568,8 @@ static inline void rep_nop(void)
 #define ARCH_HAS_PREFETCH
 extern inline void prefetch(const void *x)
 {
+	if (current_cpu_data.x86_vendor == X86_VENDOR_AMD)
+		return;
 	alternative_input(ASM_NOP4,
 			  "prefetchnta (%1)",
 			  X86_FEATURE_XMM,

_

#2 lore raw

prefetchnta on athlon was: Re: an oops in 2.6-test2 (oops)

Quoted 10 lines · Andrew Morton

And you'll continue to get them until someone does something about it. Discussion seemed to die off on this problem.

Until it is sorted, something like this is needed.

diff -puN include/asm-i386/processor.h~disble-athlon-prefetch include/asm-i386/processor.h

include/asm-i386/processor.h static inline void rep_nop(void) · line 572

Quoted 5 lines
include/asm-i386/processor.h renamed from include/asm-i386/processor.h~disble-athlon-prefetch +2 -0
@@ -568,6 +568,8 @@ static inline void rep_nop(void)
 #define ARCH_HAS_PREFETCH
 extern inline void prefetch(const void *x)
 {
+	if (current_cpu_data.x86_vendor == X86_VENDOR_AMD)
+		return;

Andrew, if you put this patch in -mm please add a nice big comment above it, and put it in the "must fix before 2.6.0" list.