Hi,
L4Linux fails to run correctly with the SCSI and network device under heavy load. My system has a Adaptec AIC7902 SCSI adapter (one SCSI hard disk is connected) and a E1000 network adapter. When the two devices is used at the same time under heavy load (some benchmarks to SCSI disk and transferring files using ftp), SCSI adapter driver prints error message and dumps device's status. and then system is not work. Actually, this error doesn't happen immediately after using the two devices. It works during some seconds (about 10~20secs). I could not capture all the message by SCSI adapter driver printed on console because it is very fast and vast. Anyway, the message means "PCI interrupt error". In L4Linux, the two devices share same IRQ number. IMHO, this is one of the source of this behavior. To use SCSI in L4Linux, I use dm_phys with '--isa=0x00800000' option. Two different IRQ handling methods (one thread per IRQ and multiple IRQs) got the same result. Is there anyone can help me?
Regards,
On Fri Mar 31, 2006 at 05:38:24 +0900, Jugwan Eom wrote:
L4Linux fails to run correctly with the SCSI and network device under heavy load. My system has a Adaptec AIC7902 SCSI adapter (one SCSI hard disk is connected) and a E1000 network adapter. When the two devices is used at the same time under heavy load (some benchmarks to SCSI disk and transferring files using ftp), SCSI adapter driver prints error message and dumps device's status. and then system is not work. Actually, this error doesn't happen immediately after using the two devices. It works during some seconds (about 10~20secs). I could not capture all the message by SCSI adapter driver printed on console because it is very fast and vast. Anyway, the message means "PCI interrupt error". In L4Linux, the two devices share same IRQ number. IMHO, this is one of the source of this behavior. To use SCSI in L4Linux, I use dm_phys with '--isa=0x00800000' option. Two different IRQ handling methods (one thread per IRQ and multiple IRQs) got the same result. Is there anyone can help me?
Just guessing but can you try to give the SCSI controller and the e1000 NIC different IRQs and see if something changes?
Adam
2006-03-31 (금), 01:06 +0200, Adam Lackorzynski 쓰시길:
On Fri Mar 31, 2006 at 05:38:24 +0900, Jugwan Eom wrote:
L4Linux fails to run correctly with the SCSI and network device under heavy load. My system has a Adaptec AIC7902 SCSI adapter (one SCSI hard disk is connected) and a E1000 network adapter. When the two devices is used at the same time under heavy load (some benchmarks to SCSI disk and transferring files using ftp), SCSI adapter driver prints error message and dumps device's status. and then system is not work. Actually, this error doesn't happen immediately after using the two devices. It works during some seconds (about 10~20secs). I could not capture all the message by SCSI adapter driver printed on console because it is very fast and vast. Anyway, the message means "PCI interrupt error". In L4Linux, the two devices share same IRQ number. IMHO, this is one of the source of this behavior. To use SCSI in L4Linux, I use dm_phys with '--isa=0x00800000' option. Two different IRQ handling methods (one thread per IRQ and multiple IRQs) got the same result. Is there anyone can help me?
Just guessing but can you try to give the SCSI controller and the e1000 NIC different IRQs and see if something changes?
I'm too late. If the SCSI controller and the e1000 NIC uses different IRQs, above error doesn't occur. Actually the above system sharing same IRQ isn't this system using different IRQs. Because I couldn't give the SCSI controller and the e1000 NIC different IRQs in the above system, I tried in the another system.
And I have another problem with loading multiple L4Linux instances. For SCSI in L4Linux, I used dm_phys with '--isa=0x00800000' option. The first two L4Linux instances are good working but the third L4Linux instances fails to get ISA DMA memory. Please see the following logs.
---- 1) the 1st L4Linux instance ... l4lx | Main memory size: 32MB l4lx | Got 2048kB of ISA DMA memory. l4lx | ISA DMA memory: virt: 0x00800000 to 0x009fffff [2048 KiB] l4lx | ISA DMA memory: Number of physical regions: 1, 2097152 Bytes l4lx | ISA DMA memory: 1: Phys: 0x0043b000 to 0x0063b000, Size: 2097152 l4lx | Main memory: virt: 0x00c00000 to 0x02bfffff [32768 KiB] l4lx | Main memory: Number of physical regions: 1, 33554432 Bytes l4lx | Main memory: 1: Phys: 0x04400000 to 0x06400000, Size: 33554432 ...
2) the 2nd L4Linux instance ... l4lx | Got 2048kB of ISA DMA memory. l4lx | ISA DMA memory: virt: 0x00800000 to 0x009fffff [2048 KiB] l4lx | ISA DMA memory: Number of physical regions: 1, 2097152 Bytes l4lx | ISA DMA memory: 1: Phys: 0x0063b000 to 0x0083b000, Size: 2097152 l4lx | Main memory: virt: 0x00c00000 to 0x02bfffff [32768 KiB] l4lx | Main memory: Number of physical regions: 1, 33554432 Bytes l4lx | Main memory: 1: Phys: 0x02400000 to 0x04400000, Size: 33554432 ...
3) the 3rd L4Linux instance ... l4lx | Main memory size: 32MB DMphys | [8.0] dm_phys/server/src/open.c:98:__create_ds(): DMphys | DMphys: memory allocation size 2048KB pool 7 failed! l4lx | [25.3] dm_phys/lib/src/open.c:82:l4dm_memphys_open(): l4lx | libdm_phys: open dataspace at DMphys (8.00) failed (ret -2, exc 0) l4lx | Main memory: virt: 0x00800000 to 0x027fffff [32768 KiB] l4lx | Main memory: Number of physical regions: 1, 33554432 Bytes l4lx | Main memory: 1: Phys: 0x2a000000 to 0x2c000000, Size: 33554432 ...
Regards,
On Fri Apr 14, 2006 at 03:47:26 +0900, Jugwan Eom wrote:
2006-03-31 (금), 01:06 +0200, Adam Lackorzynski 쓰시길:
On Fri Mar 31, 2006 at 05:38:24 +0900, Jugwan Eom wrote:
L4Linux fails to run correctly with the SCSI and network device under heavy load. My system has a Adaptec AIC7902 SCSI adapter (one SCSI hard disk is connected) and a E1000 network adapter. When the two devices is used at the same time under heavy load (some benchmarks to SCSI disk and transferring files using ftp), SCSI adapter driver prints error message and dumps device's status. and then system is not work. Actually, this error doesn't happen immediately after using the two devices. It works during some seconds (about 10~20secs). I could not capture all the message by SCSI adapter driver printed on console because it is very fast and vast. Anyway, the message means "PCI interrupt error". In L4Linux, the two devices share same IRQ number. IMHO, this is one of the source of this behavior. To use SCSI in L4Linux, I use dm_phys with '--isa=0x00800000' option. Two different IRQ handling methods (one thread per IRQ and multiple IRQs) got the same result. Is there anyone can help me?
Just guessing but can you try to give the SCSI controller and the e1000 NIC different IRQs and see if something changes?
I'm too late. If the SCSI controller and the e1000 NIC uses different IRQs, above error doesn't occur. Actually the above system sharing same IRQ isn't this system using different IRQs. Because I couldn't give the SCSI controller and the e1000 NIC different IRQs in the above system, I tried in the another system.
Ok, at least that's a workaround.
And I have another problem with loading multiple L4Linux instances. For SCSI in L4Linux, I used dm_phys with '--isa=0x00800000' option. The first two L4Linux instances are good working but the third L4Linux instances fails to get ISA DMA memory. Please see the following logs.
Then lower ISA_DMA_SIZE in arch/l4/kernel/main.c, 2MB might actually be too much. A quick look at the driver shows that it's allocating something like a sectorsize per disk, so maybe 4k should be enough?
Another thing, are you accessing the SCSI controller/devices in every L4Linux instance? Or do you have multiple controllers? How is this going to work?
Adam
l4-hackers@os.inf.tu-dresden.de