Geoff:

An impressive amount of testing.

It will be a little while before I can look at this. It is encouraging that it is so easy to reproduce. I will probably be able to get it to fail here with my kernel debugger lashup and get right to the problem.

I'll let you know.

Thanks,
Dave

At 08:14 AM 10/29/2002 Tuesday, Geoff Hart wrote:
Hi,

The general problem seems to be that LiS works fine with the 2.4.9-31 kernel
on an SMP (Dual processor) machine, but fails to load (insmod) with a kernel oops on
a uni-processor machine. We have dozens of SMP configurations that are
working, and have been able to reproduce the kernel oops on (all) 4
uni-processor machines. All machines have vastly different hardware
configurations (different # of processors, different speeds, P3/P4, 512MB
ram - 6GB ram, single IDE disk - SCSI RAID-1)

To (try and) keep things simple, I've taken 2, identically configured, brand
new Compaq DL380-2 machines (dual PIII 1.40Gig, 2GB RAM, 2-18Gig HDD in
hardware RAID-1). Installed RedHat 7.2 fresh, and installed the Redhat
2.4.9-31 kernel sources on both machines (same rpms), and then started with
the enterprise kernel configuration file. After removing a few categories of
hardware I didn't need (sound, isdn, firewire, etc), I copied that kernel
config file to both machines. On one machine I then removed smp support and
compiled and installed the kernel on both machines (Thus effectively making
1 machine a single-processor machine). The diff of the 2 kernel config files
is:

67,69c67,68
< # CONFIG_SMP is not set
< # CONFIG_X86_UP_APIC is not set
< # CONFIG_X86_UP_IOAPIC is not set
---

CONFIG_SMP=y
CONFIG_HAVE_DEC_LOCK=y

75a75,76

CONFIG_X86_IO_APIC=y
CONFIG_X86_LOCAL_APIC=y

The SMP machine works fine, when I run 'insmod streams' on the machine
without smp support, I get a segmentation fault on the console and the
following in the kernel log:

Oct 21 08:07:12 test11 kernel: Linux Streams Subsystem loading...
Oct 21 08:07:12 test11 kernel: Streams module "ip_strms" registered, id 5
Oct 21 08:07:12 test11 kernel: Streams module "relay" registered, id 6
Oct 21 08:07:12 test11 kernel: Streams module "relay2" registered, id 7
Oct 21 08:07:12 test11 kernel: Streams driver "clone-drvr" registered, major
230
Oct 21 08:07:12 test11 kernel: Streams driver "fifo" registered, major 231
Oct 21 08:07:12 test11 kernel: Streams driver "fifo" registered, major 232
Oct 21 08:07:12 test11 kernel: Streams driver "loop-around" registered,
major 233
Oct 21 08:07:12 test11 kernel: Unable to handle kernel NULL pointer
dereference at virtual address 00000008
Oct 21 08:07:12 test11 kernel:  printing eip:
Oct 21 08:07:12 test11 kernel: c0142054
Oct 21 08:07:12 test11 kernel: *pde = 34431001
Oct 21 08:07:12 test11 kernel: *pte = 00000000
Oct 21 08:07:12 test11 kernel: Oops: 0000
Oct 21 08:07:12 test11 kernel: Kernel 2.4.9-31custom
Oct 21 08:07:12 test11 kernel: CPU:    0
Oct 21 08:07:12 test11 kernel: EIP:    0010:[block_read_full_page+180/736]
Not tainted
Oct 21 08:07:12 test11 kernel: EIP:    0010:[<c0142054>]    Not tainted
Oct 21 08:07:12 test11 kernel: EFLAGS: 00010202
Oct 21 08:07:12 test11 kernel: EIP is at path_walk [kernel] 0x54
Oct 21 08:07:12 test11 kernel: eax: 00000000   ebx: 00000000   ecx: 00000010
edx: f4635e74
Oct 21 08:07:12 test11 kernel: esi: f5bd6000   edi: f4635e74   ebp: f5bd6001
esp: f4635d9c
Oct 21 08:07:13 test11 kernel: ds: 0018   es: 0018   ss: 0018
Oct 21 08:07:13 test11 kernel: Process insmod (pid: 2300,
stackpage=f4635000)
Oct 21 08:07:13 test11 kernel: Stack: 00000010 00000000 f4635de4 20005453
00000000 00000000 33323130 37363534
Oct 21 08:07:13 test11 kernel:        42413938 46454443 4a494847 4e4d4c4b
5251504f 56555453 5a595857 76757400
Oct 21 08:07:13 test11 kernel:        7a797877 7df83000 33323130 37363534
62613938 66656463 6a696867 6e6d6c6b
Oct 21 08:07:13 test11 kernel: Call Trace: [startup_level_ioapic_irq+0/16]
do_page_fault [kernel] 0x0
Oct 21 08:07:13 test11 kernel: Call Trace: [<c01148e0>] do_page_fault
[kernel] 0x0
Oct 21 08:07:13 test11 kernel: [sys_setresgid+156/256] do_no_page [kernel]
0x16c
Oct 21 08:07:13 test11 kernel: [<c012708c>] do_no_page [kernel] 0x16c
Oct 21 08:07:13 test11 kernel: [<f897fc45>] __insmod_streams_S.rodata_L35424
[streams] 0x565
Oct 21 08:07:13 test11 kernel: [__block_write_full_page+589/608] getname
[kernel] 0x6d
Oct 21 08:07:13 test11 kernel: [<c0141b9d>] getname [kernel] 0x6d
Oct 21 08:07:13 test11 kernel: [<f897fc45>] __insmod_streams_S.rodata_L35424
[streams] 0x565
Oct 21 08:07:13 test11 kernel: [<f898b6fc>] lis_driver_config [streams] 0xb8
Oct 21 08:07:13 test11 kernel: [sync_supers+45/256] sys_unlink [kernel] 0x3d
Oct 21 08:07:13 test11 kernel: [<c014401d>] sys_unlink [kernel] 0x3d
Oct 21 08:07:13 test11 kernel: [reschedule_idle+173/640]
call_console_drivers [kernel] 0x8d
Oct 21 08:07:13 test11 kernel: [<c01182cd>] call_console_drivers [kernel]
0x8d
Oct 21 08:07:13 test11 kernel: [do_signal+363/688] system_call [kernel] 0x33
Oct 21 08:07:13 test11 kernel: [<c0106f6b>] system_call [kernel] 0x33
Oct 21 08:07:13 test11 kernel: [<f897fc45>] __insmod_streams_S.rodata_L35424
[streams] 0x565
Oct 21 08:07:13 test11 kernel: [<f898b6fc>] lis_driver_config [streams] 0xb8
Oct 21 08:07:13 test11 kernel: [<f8970018>] lis_doclose [streams] 0x10ec
Oct 21 08:07:13 test11 kernel: [<f8980018>] __insmod_streams_S.rodata_L35424
[streams] 0x938
Oct 21 08:07:13 test11 kernel: [<f8977107>] lis_unlink [streams] 0x1f
Oct 21 08:07:13 test11 kernel: [<f898b708>] lis_driver_config [streams] 0xc4
Oct 21 08:07:14 test11 kernel: [<f895e63a>] sloop_init [streams] 0xa
Oct 21 08:07:14 test11 kernel: [<f897fc45>] __insmod_streams_S.rodata_L35424
[streams] 0x565
Oct 21 08:07:14 test11 kernel: [<f897348b>] lis_init_mod [streams] 0x25b
Oct 21 08:07:14 test11 kernel: [<f899d3d4>] lis_fstr_sw [streams] 0x4534
Oct 21 08:07:14 test11 kernel: [<f898b748>] lis_driver_config [streams]
0x104
Oct 21 08:07:14 test11 kernel: [<f898b6fc>] lis_driver_config [streams] 0xb8
Oct 21 08:07:14 test11 kernel: [<f8970a83>] lis_init_head [streams] 0x157
Oct 21 08:07:14 test11 kernel: [<f897648c>] lis_init_module [streams] 0xd4
Oct 21 08:07:14 test11 kernel: [<f8977a95>] lis_can_unload [streams] 0x19
Oct 21 08:07:14 test11 kernel: [sleep_on_timeout+117/144] sys_init_module
[kernel] 0x555
Oct 21 08:07:14 test11 kernel: [<c0119215>] sys_init_module [kernel] 0x555
Oct 21 08:07:14 test11 kernel: [<f895e060>] __insmod_streams_S.text_L136768
[streams] 0x0
Oct 21 08:07:14 test11 kernel: [do_signal+363/688] system_call [kernel] 0x33
Oct 21 08:07:14 test11 kernel: [<c0106f6b>] system_call [kernel] 0x33
Oct 21 08:07:14 test11 kernel:
Oct 21 08:07:14 test11 kernel:
Oct 21 08:07:14 test11 kernel: Code: 8b 78 08 b8 00 e0 ff ff 21 e0 8b b0 48
02 00 00 b8 01 00 00

In this configuration, I've got the RedHat 2.4.9-31 kernel, recompiled by me,
and LiS 2.13.25 compiled against the same kernel.

I've reproduced this with the following other combinations:

Kernel.org kernel 2.4.9, LiS 2.13.25
Kernel.org kernel 2.4.9, LiS 2.14.2
Kernel.org kernel 2.4.9, LiS 2.14.13
Kernel.org kernel 2.4.10, LiS 2.13.25
Kernel.org kernel 2.4.10, LiS 2.14.2
Kernel.org kernel 2.4.10, LiS 2.14.13
Kernel.org kernel 2.4.19, LiS 2.13.25
Kernel.org kernel 2.4.19, LiS 2.14.2
Kernel.org kernel 2.4.19, LiS 2.14.13

In every case, when I compile the kernel with SMP support, it works. When I
compile it without SMP support, it fails with the above error, or a similar
error (but always a segfault).

I am compiling with the default make scripts for both LiS and the kernel,
using gcc 3.0.2

The 2.4.9-13 kernel that works right now with uni-processor was the
pre-compiled RedHat kernel, not one we compiled ourselves. All other kernels
were compiled by me.

Can anyone suggestion something we can try to make things work on
single-processor machines? I presume that this driver is designed so that it
can work on single-processor machines?

Thanks,

Geoff Hart




_______________________________________________
Linux-streams mailing list
[EMAIL PROTECTED]
http://gsyc.escet.urjc.es/mailman/listinfo/linux-streams

_______________________________________________
Linux-streams mailing list
[EMAIL PROTECTED]
http://gsyc.escet.urjc.es/mailman/listinfo/linux-streams

Reply via email to