I compiled a stock 2.4.16 kernel without SMP and with the kgdb patch. I then installed my latest version of LiS-2.14.B (just released). The module load went just fine. (I used this kernel just because it is the one that I have been testing with and it has the kgdb patch installed in it already.)
There has been some discussion lately about choice of C compilers for building kernels and LiS. The consensus is that kgcc is the safest. I did notice that you were using gcc3 for your tests, so maybe that is the problem.
So for now I'll assume the ball is back in your court. Try building one of your test kernels and LiS with kgcc and see if the problem persists. If that fixes the problem we will count it as further evidence that gcc3 is not a good compiler to use for kernel level software.
-- 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=y75a75,76CONFIG_X86_IO_APIC=y CONFIG_X86_LOCAL_APIC=yThe 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
