All of lore.kernel.org
 help / color / mirror / Atom feed
* UPD: "do_IRQ: near stack overflow" when inserting CF disk
@ 2003-12-12 15:52 Roger Larsson
  2003-12-12 16:59 ` David Hinds
  2003-12-12 17:38 ` Jörn Engel
  0 siblings, 2 replies; 3+ messages in thread
From: Roger Larsson @ 2003-12-12 15:52 UTC (permalink / raw)
  To: 'Kernel Mailing List', 'David Hinds'

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

OK, I have done some more testing....

How to avoid getting HTML messages from Outlook?
I have specified text - but I guess it automatically selects HTML when
adding attachments...

please cc me, currently not subscribed.

/RogerL

----------  Forwarded Message  ----------

Subject: "do_IRQ: near stack overflow" when inserting CF disk
Date: Friday 12 December 2003 11.17
From: Larsson Roger <roger.larsson@optronic.se>
To: 'Kernel Mailing List' <linux-kernel@vger.kernel.org>, 'David Hinds' 
<dahinds@users.sourceforge.net>
Cc: "'roger.larsson@norran.net'" <roger.larsson@norran.net>

I get these three printouts when inserting a compact flash disk
(SuSE Linux 2.4.21-144-smp) - is the stack intentionally this fit?
or is it an unexpected code path?

I have had other interrupt related problems, it usually locks up :-(
This time I run with "nosmp noapic"

The ide-cs is now forced to use irq 3 (When running noapic others
seems busy... with apic and using irq 6 or 10 computer has
locked up...)

I will try irq 3 without one of the options to see if the computer still
survives...

- new data -

Easier said than done - they require each other!
But I noticed that reducing 'stackwarn' and 'stackdefer'
to under the level warned about helps (might be luck)

Summary:
  Some routines allocate to much stack: validate_cis?
	several subtypes in the union cisparse_t are quite
	big (>250 bytes)
  This eats stack (to much?) or only close enough to
  trigger 'stackdefer' which might stress the drivers SMPness?

/RogerL


-- 
Roger Larsson
Skellefteå
Sweden

[-- Attachment #2: first.stack --]
[-- Type: application/octet-stream, Size: 6512 bytes --]

ksymoops 2.4.9 on i686 2.4.21-144-smp.  Options used
     -V (default)
     -k /proc/ksyms (default)
     -l /proc/modules (default)
     -o /lib/modules/2.4.21-144-smp/ (default)
     -m /boot/System.map-2.4.21-144-smp (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.

cs: memory probe 0x0d0000-0x0dffff:WARNING: do_IRQ: near stack overflow: 796
cfaac9d4 c010b7ee c02e2660 0000031c c2178800 c2688ec0 c2178880 00000246
       cfaaca48 c010e298 c2688ec0 c2688ec0 000003e1 c2178880 00000246 cfaaca48
       00000000 cfaa0018 c2680018 ffffff00 c268514f 00000010 00000246 00000012
Call Trace:         [<c010b7ee>] (16) [<c2688ec0>] (16) [<c010e298>] (04)
  [<c2688ec0>] (04) [<c2688ec0>] (36) [<c268514f>] (40) [<c2693e4c>] (64)
  [<c2695d79>] (80) [<c2693fd4>] (96) [<c2694c22>] (1920) [<c26959c1>] (48)
  [<c2697bcf>] (80) [<c269701b>] (12) [<c2695900>] (04) [<c2695a10>] (64)
  [<c2695881>] (04) [<c2695900>] (04) [<c2695a10>] (24) [<c2693d01>] (64)
  [<c2695d79>] (80) [<c2693fd4>] (96) [<c2694c22>] (564) [<c0236e75>] (16)
  [<c0237036>] (08) [<c0236cfd>] (64) [<c0236e75>] (16) [<c0237036>] (08)
  [<c0236cfd>] (12) [<c02361d0>] (08) [<c0236940>] (20) [<c022fdc9>] (16)
  [<c0201404>] (32) [<c022460e>] (08) [<c0201af3>] (28) [<c022e459>] (92)
  [<c012105e>] (12) [<c0121069>] (56) [<c0236e75>] (16) [<c0237036>] (08)
  [<c0236cfd>] (12) [<c02361d0>] (08) [<c0236940>] (20) [<c022fdc9>] (48)
  [<c022460e>] (12) [<c02021a2>] (24) [<c022e459>] (92) [<c0236e75>] (16)
  [<c0237036>] (24) [<c0141e0f>] (48) [<c013b82b>] (68) [<c012ffb2>] (16)
  [<c012b71c>] (04) [<c012b5a3>] (56) [<c010b791>] (48) [<c0141e0f>] (48)
  [<c013b82b>] (40) [<c0141e0f>] (48) [<c013b82b>] (32) [<c013bcb2>] (88)
  [<c013bcb2>] (44) [<c011ed6a>] (60) [<c013d8a6>] (48) [<c011eb50>] (08)
  [<c01096e4>] (24) [<c2690bac>] (56) [<c011eb50>] (08) [<c01096e4>] (48)
  [<c22952e7>] (24) [<c017f5b8>] (140) [<c018eaee>] (68) [<c018d928>] (104)
  [<c01910de>] (36) [<c01913f4>] (16) [<c013f682>] (08) [<c0141e0f>] (24)
  [<c01919db>] (48) [<c013ab80>] (12) [<c0158d0b>] (36) [<c0158fd3>] (32)
  [<c012105e>] (68) [<c016a289>] (32) [<c016a2a7>] (12) [<c016a9a2>] (64)
  [<c016acd4>] (44) [<c016964c>] (52) [<c01095e7>] (60)
Code: <0>
Using defaults from ksymoops -t elf32-i386 -a i386
Warning (Oops_code_values): Code looks like message, not hex digits.  No disassembly attempted.


Trace; c010b7ee <do_IRQ+13e/150>
Trace; c2688ec0 <[i82365].data.end+71/7211>
Trace; c010e298 <call_do_IRQ+5/d>
Trace; c2688ec0 <[i82365].data.end+71/7211>
Trace; c2688ec0 <[i82365].data.end+71/7211>
Trace; c268514f <[i82365]pcic_service+8f/d0>
Trace; c2693e4c <[pcmcia_core]read_cis_mem+16c/260>
Trace; c2695d79 <[pcmcia_core]read_cis_cache+1c9/1f0>
Trace; c2693fd4 <[pcmcia_core]get_next_tuple+94/420>
Trace; c2694c22 <[pcmcia_core]validate_cis+d2/4d0>
Trace; c26959c1 <[pcmcia_core]cis_readable+c1/110>
Trace; c2697bcf <[pcmcia_core]do_mem_probe+13f/2f0>
Trace; c269701b <[pcmcia_core]validate_mem+28b/340>
Trace; c2695900 <[pcmcia_core]cis_readable+0/110>
Trace; c2695a10 <[pcmcia_core]checksum_match+0/1a0>
Trace; c2695881 <[pcmcia_core]setup_cis_mem+41/c0>
Trace; c2695900 <[pcmcia_core]cis_readable+0/110>
Trace; c2695a10 <[pcmcia_core]checksum_match+0/1a0>
Trace; c2693d01 <[pcmcia_core]read_cis_mem+21/260>
Trace; c2695d79 <[pcmcia_core]read_cis_cache+1c9/1f0>
Trace; c2693fd4 <[pcmcia_core]get_next_tuple+94/420>
Trace; c2694c22 <[pcmcia_core]validate_cis+d2/4d0>
Trace; c0236e75 <__ide_dma_begin+35/40>
Trace; c0237036 <__ide_dma_count+16/20>
Trace; c0236cfd <__ide_dma_read+11d/130>
Trace; c0236e75 <__ide_dma_begin+35/40>
Trace; c0237036 <__ide_dma_count+16/20>
Trace; c0236cfd <__ide_dma_read+11d/130>
Trace; c02361d0 <ide_dma_intr+0/d0>
Trace; c0236940 <dma_timer_expiry+0/f0>
Trace; c022fdc9 <__ide_do_rw_disk+449/700>
Trace; c0201404 <req_new_io+84/a0>
Trace; c022460e <ide_wait_stat+ae/150>
Trace; c0201af3 <__make_request+3c3/980>
Trace; c022e459 <start_request+1c9/250>
Trace; c012105e <do_schedule+17e/360>
Trace; c0121069 <do_schedule+189/360>
Trace; c0236e75 <__ide_dma_begin+35/40>
Trace; c0237036 <__ide_dma_count+16/20>
Trace; c0236cfd <__ide_dma_read+11d/130>
Trace; c02361d0 <ide_dma_intr+0/d0>
Trace; c0236940 <dma_timer_expiry+0/f0>
Trace; c022fdc9 <__ide_do_rw_disk+449/700>
Trace; c022460e <ide_wait_stat+ae/150>
Trace; c02021a2 <generic_make_request+f2/160>
Trace; c022e459 <start_request+1c9/250>
Trace; c0236e75 <__ide_dma_begin+35/40>
Trace; c0237036 <__ide_dma_count+16/20>
Trace; c0141e0f <filemap_nopage+20f/240>
Trace; c013b82b <do_no_page+3cb/530>
Trace; c012ffb2 <run_all_timers+32/50>
Trace; c012b71c <bh_action+6c/70>
Trace; c012b5a3 <tasklet_hi_action+53/a0>
Trace; c010b791 <do_IRQ+e1/150>
Trace; c0141e0f <filemap_nopage+20f/240>
Trace; c013b82b <do_no_page+3cb/530>
Trace; c0141e0f <filemap_nopage+20f/240>
Trace; c013b82b <do_no_page+3cb/530>
Trace; c013bcb2 <handle_mm_fault+e2/120>
Trace; c013bcb2 <handle_mm_fault+e2/120>
Trace; c011ed6a <do_page_fault+21a/753>
Trace; c013d8a6 <__vma_link+56/c0>
Trace; c011eb50 <do_page_fault+0/753>
Trace; c01096e4 <error_code+34/3c>
Trace; c2690bac <[pcmcia_core]CardServices+45c/1a10>
Trace; c011eb50 <do_page_fault+0/753>
Trace; c01096e4 <error_code+34/3c>
Trace; c22952e7 <[ds]ds_ioctl+627/910>
Trace; c017f5b8 <padzero+28/30>
Trace; c018eaee <ext2_new_block+e1e/f20>
Trace; c018d928 <ext2_free_blocks+c8/470>
Trace; c01910de <ext2_alloc_block+6e/c0>
Trace; c01913f4 <ext2_alloc_branch+34/270>
Trace; c013f682 <truncate_list_pages+d2/210>
Trace; c0141e0f <filemap_nopage+20f/240>
Trace; c01919db <ext2_get_block+3ab/440>
Trace; c013ab80 <vmtruncate+130/260>
Trace; c0158d0b <create_buffers+6b/100>
Trace; c0158fd3 <unmap_underlying_metadata+23/80>
Trace; c012105e <do_schedule+17e/360>
Trace; c016a289 <__poll_freewait+b9/c0>
Trace; c016a2a7 <poll_freewait+17/20>
Trace; c016a9a2 <do_select+222/250>
Trace; c016acd4 <sys_select+2d4/5e0>
Trace; c016964c <sys_ioctl+27c/332>
Trace; c01095e7 <system_call+33/38>


2 warnings issued.  Results may not be reliable.

[-- Attachment #3: second.stack --]
[-- Type: application/octet-stream, Size: 6611 bytes --]

ksymoops 2.4.9 on i686 2.4.21-144-smp.  Options used
     -V (default)
     -k /proc/ksyms (default)
     -l /proc/modules (default)
     -o /lib/modules/2.4.21-144-smp/ (default)
     -m /boot/System.map-2.4.21-144-smp (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.

WARNING: do_IRQ: near stack overflow: 716
cfaac984 c010b7ee c02e2660 000002cc 00000001 c2688ec0 c2178880 00000246
       cfaac9f8 c010e298 c2688ec0 c2688ec0 000003e1 c2178880 00000246 cfaac9f8
       00000000 cfaa0018 c2680018 ffffff00 c268514f 00000010 00000246 00000010
Call Trace:         [<c010b7ee>] (16) [<c2688ec0>] (16) [<c010e298>] (04)
  [<c2688ec0>] (04) [<c2688ec0>] (36) [<c268514f>] (40) [<c2693e4c>] (64)
  [<c2695d79>] (80) [<c26957bd>] (64) [<c2690cfa>] (112) [<c2694e09>] (1920)
  [<c2695949>] (24) [<c012bed3>] (24) [<c2697bcf>] (80) [<c269701b>] (12)
  [<c2695900>] (04) [<c2695a10>] (64) [<c2695881>] (04) [<c2695900>] (04)
  [<c2695a10>] (24) [<c2693d01>] (64) [<c2695d79>] (80) [<c2693fd4>] (96)
  [<c2694c22>] (564) [<c0236e75>] (16) [<c0237036>] (08) [<c0236cfd>] (64)
  [<c0236e75>] (16) [<c0237036>] (08) [<c0236cfd>] (12) [<c02361d0>] (08)
  [<c0236940>] (20) [<c022fdc9>] (16) [<c0201404>] (32) [<c022460e>] (08)
  [<c0201af3>] (28) [<c022e459>] (92) [<c012105e>] (12) [<c0121069>] (56)
  [<c0236e75>] (16) [<c0237036>] (08) [<c0236cfd>] (12) [<c02361d0>] (08)
  [<c0236940>] (20) [<c022fdc9>] (48) [<c022460e>] (12) [<c02021a2>] (24)
  [<c022e459>] (92) [<c0236e75>] (16) [<c0237036>] (24) [<c0141e0f>] (48)
  [<c013b82b>] (68) [<c012ffb2>] (16) [<c012b71c>] (04) [<c012b5a3>] (56)
  [<c010b791>] (48) [<c0141e0f>] (48) [<c013b82b>] (40) [<c0141e0f>] (48)
  [<c013b82b>] (32) [<c013bcb2>] (88) [<c013bcb2>] (44) [<c011ed6a>] (60)
  [<c013d8a6>] (48) [<c011eb50>] (08) [<c01096e4>] (24) [<c2690bac>] (56)
  [<c011eb50>] (08) [<c01096e4>] (48) [<c22952e7>] (24) [<c017f5b8>] (140)
  [<c018eaee>] (68) [<c018d928>] (104) [<c01910de>] (36) [<c01913f4>] (16)
  [<c013f682>] (08) [<c0141e0f>] (24) [<c01919db>] (48) [<c013ab80>] (12)
  [<c0158d0b>] (36) [<c0158fd3>] (32) [<c012105e>] (68) [<c016a289>] (32)
  [<c016a2a7>] (12) [<c016a9a2>] (64) [<c016acd4>] (44) [<c016964c>] (52)
  [<c01095e7>] (60)
Code: <0>
Using defaults from ksymoops -t elf32-i386 -a i386
Warning (Oops_code_values): Code looks like message, not hex digits.  No disassembly attempted.


Trace; c010b7ee <do_IRQ+13e/150>
Trace; c2688ec0 <[i82365].data.end+71/7211>
Trace; c010e298 <call_do_IRQ+5/d>
Trace; c2688ec0 <[i82365].data.end+71/7211>
Trace; c2688ec0 <[i82365].data.end+71/7211>
Trace; c268514f <[i82365]pcic_service+8f/d0>
Trace; c2693e4c <[pcmcia_core]read_cis_mem+16c/260>
Trace; c2695d79 <[pcmcia_core]read_cis_cache+1c9/1f0>
Trace; c26957bd <[pcmcia_core]get_tuple_data+8d/a0>
Trace; c2690cfa <[pcmcia_core]CardServices+5aa/1a10>
Trace; c2694e09 <[pcmcia_core]validate_cis+2b9/4d0>
Trace; c2695949 <[pcmcia_core]cis_readable+49/110>
Trace; c012bed3 <__check_region+43/50>
Trace; c2697bcf <[pcmcia_core]do_mem_probe+13f/2f0>
Trace; c269701b <[pcmcia_core]validate_mem+28b/340>
Trace; c2695900 <[pcmcia_core]cis_readable+0/110>
Trace; c2695a10 <[pcmcia_core]checksum_match+0/1a0>
Trace; c2695881 <[pcmcia_core]setup_cis_mem+41/c0>
Trace; c2695900 <[pcmcia_core]cis_readable+0/110>
Trace; c2695a10 <[pcmcia_core]checksum_match+0/1a0>
Trace; c2693d01 <[pcmcia_core]read_cis_mem+21/260>
Trace; c2695d79 <[pcmcia_core]read_cis_cache+1c9/1f0>
Trace; c2693fd4 <[pcmcia_core]get_next_tuple+94/420>
Trace; c2694c22 <[pcmcia_core]validate_cis+d2/4d0>
Trace; c0236e75 <__ide_dma_begin+35/40>
Trace; c0237036 <__ide_dma_count+16/20>
Trace; c0236cfd <__ide_dma_read+11d/130>
Trace; c0236e75 <__ide_dma_begin+35/40>
Trace; c0237036 <__ide_dma_count+16/20>
Trace; c0236cfd <__ide_dma_read+11d/130>
Trace; c02361d0 <ide_dma_intr+0/d0>
Trace; c0236940 <dma_timer_expiry+0/f0>
Trace; c022fdc9 <__ide_do_rw_disk+449/700>
Trace; c0201404 <req_new_io+84/a0>
Trace; c022460e <ide_wait_stat+ae/150>
Trace; c0201af3 <__make_request+3c3/980>
Trace; c022e459 <start_request+1c9/250>
Trace; c012105e <do_schedule+17e/360>
Trace; c0121069 <do_schedule+189/360>
Trace; c0236e75 <__ide_dma_begin+35/40>
Trace; c0237036 <__ide_dma_count+16/20>
Trace; c0236cfd <__ide_dma_read+11d/130>
Trace; c02361d0 <ide_dma_intr+0/d0>
Trace; c0236940 <dma_timer_expiry+0/f0>
Trace; c022fdc9 <__ide_do_rw_disk+449/700>
Trace; c022460e <ide_wait_stat+ae/150>
Trace; c02021a2 <generic_make_request+f2/160>
Trace; c022e459 <start_request+1c9/250>
Trace; c0236e75 <__ide_dma_begin+35/40>
Trace; c0237036 <__ide_dma_count+16/20>
Trace; c0141e0f <filemap_nopage+20f/240>
Trace; c013b82b <do_no_page+3cb/530>
Trace; c012ffb2 <run_all_timers+32/50>
Trace; c012b71c <bh_action+6c/70>
Trace; c012b5a3 <tasklet_hi_action+53/a0>
Trace; c010b791 <do_IRQ+e1/150>
Trace; c0141e0f <filemap_nopage+20f/240>
Trace; c013b82b <do_no_page+3cb/530>
Trace; c0141e0f <filemap_nopage+20f/240>
Trace; c013b82b <do_no_page+3cb/530>
Trace; c013bcb2 <handle_mm_fault+e2/120>
Trace; c013bcb2 <handle_mm_fault+e2/120>
Trace; c011ed6a <do_page_fault+21a/753>
Trace; c013d8a6 <__vma_link+56/c0>
Trace; c011eb50 <do_page_fault+0/753>
Trace; c01096e4 <error_code+34/3c>
Trace; c2690bac <[pcmcia_core]CardServices+45c/1a10>
Trace; c011eb50 <do_page_fault+0/753>
Trace; c01096e4 <error_code+34/3c>
Trace; c22952e7 <[ds]ds_ioctl+627/910>
Trace; c017f5b8 <padzero+28/30>
Trace; c018eaee <ext2_new_block+e1e/f20>
Trace; c018d928 <ext2_free_blocks+c8/470>
Trace; c01910de <ext2_alloc_block+6e/c0>
Trace; c01913f4 <ext2_alloc_branch+34/270>
Trace; c013f682 <truncate_list_pages+d2/210>
Trace; c0141e0f <filemap_nopage+20f/240>
Trace; c01919db <ext2_get_block+3ab/440>
Trace; c013ab80 <vmtruncate+130/260>
Trace; c0158d0b <create_buffers+6b/100>
Trace; c0158fd3 <unmap_underlying_metadata+23/80>
Trace; c012105e <do_schedule+17e/360>
Trace; c016a289 <__poll_freewait+b9/c0>
Trace; c016a2a7 <poll_freewait+17/20>
Trace; c016a9a2 <do_select+222/250>
Trace; c016acd4 <sys_select+2d4/5e0>
Trace; c016964c <sys_ioctl+27c/332>
Trace; c01095e7 <system_call+33/38>


2 warnings issued.  Results may not be reliable.

[-- Attachment #4: third.stack --]
[-- Type: application/octet-stream, Size: 6690 bytes --]

ksymoops 2.4.9 on i686 2.4.21-144-smp.  Options used
     -V (default)
     -k /proc/ksyms (default)
     -l /proc/modules (default)
     -o /lib/modules/2.4.21-144-smp/ (default)
     -m /boot/System.map-2.4.21-144-smp (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.

WARNING: do_IRQ: near stack overflow: 636
cfaac934 c010b7ee c02e2660 0000027c 00000001 c2688ec0 c2178880 00000246
       cfaac9a8 c010e298 c2688ec0 c2688ec0 000003e1 c2178880 00000246 cfaac9a8
       00000000 cfaa0018 c2680018 ffffff00 c268514f 00000010 00000246 00000001
Call Trace:         [<c010b7ee>] (16) [<c2688ec0>] (16) [<c010e298>] (04)
  [<c2688ec0>] (04) [<c2688ec0>] (36) [<c268514f>] (40) [<c2693e4c>] (64)
  [<c2695d79>] (32) [<c2688ec0>] (48) [<c2693fd4>] (96) [<c26956aa>] (48)
  [<c2690ddf>] (112) [<c2694c90>] (1920) [<c26959c1>] (48) [<c2697bcf>] (80)
  [<c269701b>] (12) [<c2695900>] (04) [<c2695a10>] (64) [<c2695881>] (04)
  [<c2695900>] (04) [<c2695a10>] (24) [<c2693d01>] (64) [<c2695d79>] (80)
  [<c2693fd4>] (96) [<c2694c22>] (564) [<c0236e75>] (16) [<c0237036>] (08)
  [<c0236cfd>] (64) [<c0236e75>] (16) [<c0237036>] (08) [<c0236cfd>] (12)
  [<c02361d0>] (08) [<c0236940>] (20) [<c022fdc9>] (16) [<c0201404>] (32)
  [<c022460e>] (08) [<c0201af3>] (28) [<c022e459>] (92) [<c012105e>] (12)
  [<c0121069>] (56) [<c0236e75>] (16) [<c0237036>] (08) [<c0236cfd>] (12)
  [<c02361d0>] (08) [<c0236940>] (20) [<c022fdc9>] (48) [<c022460e>] (12)
  [<c02021a2>] (24) [<c022e459>] (92) [<c0236e75>] (16) [<c0237036>] (24)
  [<c0141e0f>] (48) [<c013b82b>] (68) [<c012ffb2>] (16) [<c012b71c>] (04)
  [<c012b5a3>] (56) [<c010b791>] (48) [<c0141e0f>] (48) [<c013b82b>] (40)
  [<c0141e0f>] (48) [<c013b82b>] (32) [<c013bcb2>] (88) [<c013bcb2>] (44)
  [<c011ed6a>] (60) [<c013d8a6>] (48) [<c011eb50>] (08) [<c01096e4>] (24)
  [<c2690bac>] (56) [<c011eb50>] (08) [<c01096e4>] (48) [<c22952e7>] (24)
  [<c017f5b8>] (140) [<c018eaee>] (68) [<c018d928>] (104) [<c01910de>] (36)
  [<c01913f4>] (16) [<c013f682>] (08) [<c0141e0f>] (24) [<c01919db>] (48)
  [<c013ab80>] (12) [<c0158d0b>] (36) [<c0158fd3>] (32) [<c012105e>] (68)
  [<c016a289>] (32) [<c016a2a7>] (12) [<c016a9a2>] (64) [<c016acd4>] (44)
  [<c016964c>] (52) [<c01095e7>] (60)
Code: <0>
Using defaults from ksymoops -t elf32-i386 -a i386
Warning (Oops_code_values): Code looks like message, not hex digits.  No disassembly attempted.


Trace; c010b7ee <do_IRQ+13e/150>
Trace; c2688ec0 <[i82365].data.end+71/7211>
Trace; c010e298 <call_do_IRQ+5/d>
Trace; c2688ec0 <[i82365].data.end+71/7211>
Trace; c2688ec0 <[i82365].data.end+71/7211>
Trace; c268514f <[i82365]pcic_service+8f/d0>
Trace; c2693e4c <[pcmcia_core]read_cis_mem+16c/260>
Trace; c2695d79 <[pcmcia_core]read_cis_cache+1c9/1f0>
Trace; c2688ec0 <[i82365].data.end+71/7211>
Trace; c2693fd4 <[pcmcia_core]get_next_tuple+94/420>
Trace; c26956aa <[pcmcia_core]get_first_tuple+8a/110>
Trace; c2690ddf <[pcmcia_core]CardServices+68f/1a10>
Trace; c2694c90 <[pcmcia_core]validate_cis+140/4d0>
Trace; c26959c1 <[pcmcia_core]cis_readable+c1/110>
Trace; c2697bcf <[pcmcia_core]do_mem_probe+13f/2f0>
Trace; c269701b <[pcmcia_core]validate_mem+28b/340>
Trace; c2695900 <[pcmcia_core]cis_readable+0/110>
Trace; c2695a10 <[pcmcia_core]checksum_match+0/1a0>
Trace; c2695881 <[pcmcia_core]setup_cis_mem+41/c0>
Trace; c2695900 <[pcmcia_core]cis_readable+0/110>
Trace; c2695a10 <[pcmcia_core]checksum_match+0/1a0>
Trace; c2693d01 <[pcmcia_core]read_cis_mem+21/260>
Trace; c2695d79 <[pcmcia_core]read_cis_cache+1c9/1f0>
Trace; c2693fd4 <[pcmcia_core]get_next_tuple+94/420>
Trace; c2694c22 <[pcmcia_core]validate_cis+d2/4d0>
Trace; c0236e75 <__ide_dma_begin+35/40>
Trace; c0237036 <__ide_dma_count+16/20>
Trace; c0236cfd <__ide_dma_read+11d/130>
Trace; c0236e75 <__ide_dma_begin+35/40>
Trace; c0237036 <__ide_dma_count+16/20>
Trace; c0236cfd <__ide_dma_read+11d/130>
Trace; c02361d0 <ide_dma_intr+0/d0>
Trace; c0236940 <dma_timer_expiry+0/f0>
Trace; c022fdc9 <__ide_do_rw_disk+449/700>
Trace; c0201404 <req_new_io+84/a0>
Trace; c022460e <ide_wait_stat+ae/150>
Trace; c0201af3 <__make_request+3c3/980>
Trace; c022e459 <start_request+1c9/250>
Trace; c012105e <do_schedule+17e/360>
Trace; c0121069 <do_schedule+189/360>
Trace; c0236e75 <__ide_dma_begin+35/40>
Trace; c0237036 <__ide_dma_count+16/20>
Trace; c0236cfd <__ide_dma_read+11d/130>
Trace; c02361d0 <ide_dma_intr+0/d0>
Trace; c0236940 <dma_timer_expiry+0/f0>
Trace; c022fdc9 <__ide_do_rw_disk+449/700>
Trace; c022460e <ide_wait_stat+ae/150>
Trace; c02021a2 <generic_make_request+f2/160>
Trace; c022e459 <start_request+1c9/250>
Trace; c0236e75 <__ide_dma_begin+35/40>
Trace; c0237036 <__ide_dma_count+16/20>
Trace; c0141e0f <filemap_nopage+20f/240>
Trace; c013b82b <do_no_page+3cb/530>
Trace; c012ffb2 <run_all_timers+32/50>
Trace; c012b71c <bh_action+6c/70>
Trace; c012b5a3 <tasklet_hi_action+53/a0>
Trace; c010b791 <do_IRQ+e1/150>
Trace; c0141e0f <filemap_nopage+20f/240>
Trace; c013b82b <do_no_page+3cb/530>
Trace; c0141e0f <filemap_nopage+20f/240>
Trace; c013b82b <do_no_page+3cb/530>
Trace; c013bcb2 <handle_mm_fault+e2/120>
Trace; c013bcb2 <handle_mm_fault+e2/120>
Trace; c011ed6a <do_page_fault+21a/753>
Trace; c013d8a6 <__vma_link+56/c0>
Trace; c011eb50 <do_page_fault+0/753>
Trace; c01096e4 <error_code+34/3c>
Trace; c2690bac <[pcmcia_core]CardServices+45c/1a10>
Trace; c011eb50 <do_page_fault+0/753>
Trace; c01096e4 <error_code+34/3c>
Trace; c22952e7 <[ds]ds_ioctl+627/910>
Trace; c017f5b8 <padzero+28/30>
Trace; c018eaee <ext2_new_block+e1e/f20>
Trace; c018d928 <ext2_free_blocks+c8/470>
Trace; c01910de <ext2_alloc_block+6e/c0>
Trace; c01913f4 <ext2_alloc_branch+34/270>
Trace; c013f682 <truncate_list_pages+d2/210>
Trace; c0141e0f <filemap_nopage+20f/240>
Trace; c01919db <ext2_get_block+3ab/440>
Trace; c013ab80 <vmtruncate+130/260>
Trace; c0158d0b <create_buffers+6b/100>
Trace; c0158fd3 <unmap_underlying_metadata+23/80>
Trace; c012105e <do_schedule+17e/360>
Trace; c016a289 <__poll_freewait+b9/c0>
Trace; c016a2a7 <poll_freewait+17/20>
Trace; c016a9a2 <do_select+222/250>
Trace; c016acd4 <sys_select+2d4/5e0>
Trace; c016964c <sys_ioctl+27c/332>
Trace; c01095e7 <system_call+33/38>


2 warnings issued.  Results may not be reliable.

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: UPD: "do_IRQ: near stack overflow" when inserting CF disk
  2003-12-12 15:52 UPD: "do_IRQ: near stack overflow" when inserting CF disk Roger Larsson
@ 2003-12-12 16:59 ` David Hinds
  2003-12-12 17:38 ` Jörn Engel
  1 sibling, 0 replies; 3+ messages in thread
From: David Hinds @ 2003-12-12 16:59 UTC (permalink / raw)
  To: Roger Larsson; +Cc: 'Kernel Mailing List', Marcelo Tosatti

On Fri, Dec 12, 2003 at 04:52:22PM +0100, Roger Larsson wrote:
> 
> Summary:
>   Some routines allocate to much stack: validate_cis?
> 	several subtypes in the union cisparse_t are quite
> 	big (>250 bytes)
>   This eats stack (to much?) or only close enough to
>   trigger 'stackdefer' which might stress the drivers SMPness?

Marcelo,

Please apply this patch.  It reduces kernel stack usage for the PCMCIA
CIS processing code.

-- Dave


--- clean/linux-2.4.23/drivers/pcmcia/cistpl.c	Fri Jun 13 07:51:35 2003
+++ linux-2.4.23/drivers/pcmcia/cistpl.c	Fri Dec 12 08:50:52 2003
@@ -351,9 +351,12 @@
 
 int verify_cis_cache(socket_info_t *s)
 {
-    char buf[256], *caddr;
+    char *buf, *caddr;
     int i;
-    
+
+    buf = kmalloc(256, GFP_KERNEL);
+    if (buf == NULL)
+	return -1;
     caddr = s->cis_cache;
     for (i = 0; i < s->cis_used; i++) {
 #ifdef CONFIG_CARDBUS
@@ -368,6 +371,7 @@
 	    break;
 	caddr += s->cis_table[i].len;
     }
+    kfree(buf);
     return (i < s->cis_used);
 }
 
@@ -1410,20 +1414,31 @@
 
 int read_tuple(client_handle_t handle, cisdata_t code, void *parse)
 {
-    tuple_t tuple;
-    cisdata_t buf[255];
+    tuple_t *tuple;
+    cisdata_t *buf;
     int ret;
-    
-    tuple.DesiredTuple = code;
-    tuple.Attributes = TUPLE_RETURN_COMMON;
-    ret = pcmcia_get_first_tuple(handle, &tuple);
-    if (ret != CS_SUCCESS) return ret;
-    tuple.TupleData = buf;
-    tuple.TupleOffset = 0;
-    tuple.TupleDataMax = sizeof(buf);
-    ret = pcmcia_get_tuple_data(handle, &tuple);
-    if (ret != CS_SUCCESS) return ret;
-    ret = pcmcia_parse_tuple(handle, &tuple, parse);
+
+    buf = kmalloc(256, GFP_KERNEL);
+    if (buf == NULL)
+	return CS_OUT_OF_RESOURCE;
+    tuple = kmalloc(sizeof(*tuple), GFP_KERNEL);
+    if (tuple == NULL) {
+	kfree(buf);
+	return CS_OUT_OF_RESOURCE;
+    }
+    tuple->DesiredTuple = code;
+    tuple->Attributes = TUPLE_RETURN_COMMON;
+    ret = pcmcia_get_first_tuple(handle, tuple);
+    if (ret != CS_SUCCESS) goto done;
+    tuple->TupleData = buf;
+    tuple->TupleOffset = 0;
+    tuple->TupleDataMax = 255;
+    ret = pcmcia_get_tuple_data(handle, tuple);
+    if (ret != CS_SUCCESS) goto done;
+    ret = pcmcia_parse_tuple(handle, tuple, parse);
+done:
+    kfree(tuple);
+    kfree(buf);
     return ret;
 }
 
@@ -1439,50 +1454,61 @@
 
 int pcmcia_validate_cis(client_handle_t handle, cisinfo_t *info)
 {
-    tuple_t tuple;
-    cisparse_t p;
+    tuple_t *tuple;
+    cisparse_t *p;
     int ret, reserved, dev_ok = 0, ident_ok = 0;
 
     if (CHECK_HANDLE(handle))
 	return CS_BAD_HANDLE;
+    tuple = kmalloc(sizeof(*tuple), GFP_KERNEL);
+    if (tuple == NULL)
+	return CS_OUT_OF_RESOURCE;
+    p = kmalloc(sizeof(*p), GFP_KERNEL);
+    if (p == NULL) {
+	kfree(tuple);
+	return CS_OUT_OF_RESOURCE;
+    }
 
     info->Chains = reserved = 0;
-    tuple.DesiredTuple = RETURN_FIRST_TUPLE;
-    tuple.Attributes = TUPLE_RETURN_COMMON;
-    ret = pcmcia_get_first_tuple(handle, &tuple);
+    tuple->DesiredTuple = RETURN_FIRST_TUPLE;
+    tuple->Attributes = TUPLE_RETURN_COMMON;
+    ret = pcmcia_get_first_tuple(handle, tuple);
     if (ret != CS_SUCCESS)
-	return CS_SUCCESS;
+	goto done;
 
     /* First tuple should be DEVICE; we should really have either that
        or a CFTABLE_ENTRY of some sort */
-    if ((tuple.TupleCode == CISTPL_DEVICE) ||
-	(read_tuple(handle, CISTPL_CFTABLE_ENTRY, &p) == CS_SUCCESS) ||
-	(read_tuple(handle, CISTPL_CFTABLE_ENTRY_CB, &p) == CS_SUCCESS))
+    if ((tuple->TupleCode == CISTPL_DEVICE) ||
+	(read_tuple(handle, CISTPL_CFTABLE_ENTRY, p) == CS_SUCCESS) ||
+	(read_tuple(handle, CISTPL_CFTABLE_ENTRY_CB, p) == CS_SUCCESS))
 	dev_ok++;
 
     /* All cards should have a MANFID tuple, and/or a VERS_1 or VERS_2
        tuple, for card identification.  Certain old D-Link and Linksys
        cards have only a broken VERS_2 tuple; hence the bogus test. */
-    if ((read_tuple(handle, CISTPL_MANFID, &p) == CS_SUCCESS) ||
-	(read_tuple(handle, CISTPL_VERS_1, &p) == CS_SUCCESS) ||
-	(read_tuple(handle, CISTPL_VERS_2, &p) != CS_NO_MORE_ITEMS))
+    if ((read_tuple(handle, CISTPL_MANFID, p) == CS_SUCCESS) ||
+	(read_tuple(handle, CISTPL_VERS_1, p) == CS_SUCCESS) ||
+	(read_tuple(handle, CISTPL_VERS_2, p) != CS_NO_MORE_ITEMS))
 	ident_ok++;
 
     if (!dev_ok && !ident_ok)
-	return CS_SUCCESS;
+	goto done;
 
     for (info->Chains = 1; info->Chains < MAX_TUPLES; info->Chains++) {
-	ret = pcmcia_get_next_tuple(handle, &tuple);
+	ret = pcmcia_get_next_tuple(handle, tuple);
 	if (ret != CS_SUCCESS) break;
-	if (((tuple.TupleCode > 0x23) && (tuple.TupleCode < 0x40)) ||
-	    ((tuple.TupleCode > 0x47) && (tuple.TupleCode < 0x80)) ||
-	    ((tuple.TupleCode > 0x90) && (tuple.TupleCode < 0xff)))
+	if (((tuple->TupleCode > 0x23) && (tuple->TupleCode < 0x40)) ||
+	    ((tuple->TupleCode > 0x47) && (tuple->TupleCode < 0x80)) ||
+	    ((tuple->TupleCode > 0x90) && (tuple->TupleCode < 0xff)))
 	    reserved++;
     }
     if ((info->Chains == MAX_TUPLES) || (reserved > 5) ||
 	((!dev_ok || !ident_ok) && (info->Chains > 10)))
 	info->Chains = 0;
 
+done:
+    kfree(tuple);
+    kfree(p);
     return CS_SUCCESS;
 }
 

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: UPD: "do_IRQ: near stack overflow" when inserting CF disk
  2003-12-12 15:52 UPD: "do_IRQ: near stack overflow" when inserting CF disk Roger Larsson
  2003-12-12 16:59 ` David Hinds
@ 2003-12-12 17:38 ` Jörn Engel
  1 sibling, 0 replies; 3+ messages in thread
From: Jörn Engel @ 2003-12-12 17:38 UTC (permalink / raw)
  To: Roger Larsson; +Cc: 'Kernel Mailing List', 'David Hinds'

On Fri, 12 December 2003 16:52:22 +0100, Roger Larsson wrote:
> 
> I get these three printouts when inserting a compact flash disk
> (SuSE Linux 2.4.21-144-smp) - is the stack intentionally this fit?
> or is it an unexpected code path?
> 
> I have had other interrupt related problems, it usually locks up :-(
> This time I run with "nosmp noapic"
> 
> The ide-cs is now forced to use irq 3 (When running noapic others
> seems busy... with apic and using irq 6 or 10 computer has
> locked up...)
> 
> I will try irq 3 without one of the options to see if the computer still
> survives...
> 
> - new data -
> 
> Easier said than done - they require each other!
> But I noticed that reducing 'stackwarn' and 'stackdefer'
> to under the level warned about helps (might be luck)
> 
> Summary:
>   Some routines allocate to much stack: validate_cis?
> 	several subtypes in the union cisparse_t are quite
> 	big (>250 bytes)
>   This eats stack (to much?) or only close enough to
>   trigger 'stackdefer' which might stress the drivers SMPness?

Can you send me your .config?  I'd like to run checkstack on it and
see what other functions in your trace consume too much stack.
David's patch shoundn't shave off more than 2k, so either my estimate
is wrong or there are more hungry wolves in your list.

Jörn

-- 
Beware of bugs in the above code; I have only proved it correct, but
not tried it.
-- Donald Knuth

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2003-12-12 17:38 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2003-12-12 15:52 UPD: "do_IRQ: near stack overflow" when inserting CF disk Roger Larsson
2003-12-12 16:59 ` David Hinds
2003-12-12 17:38 ` Jörn Engel

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.