PROBLEM: elevator drops segments/pendings

From: Jeff Smith (jeff@atheros.com)
Date: Mon May 08 2000 - 20:29:32 EST


I am testing 2.3.99-pre6 with our Mylex 1100 raid controller (attached
to six 18 GB drives). When I run the following program (write_test) to
create a 1 GB file, I get the following messages:

30:00: elevator nr_segments 0 should be 1
30:00: elevator read_pendings 1 should be 0
30:00: elevator nr_segments 2 should be 1
30:00: elevator read_pendings -1 should be 0
...

The options I used to run write_test (as root) are:

./write_test 1024 1000000 /mnt/raid0/trees/jeff/small_file

The program I used to create the file is:

#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <time.h>

main(argc, argv)
int argc;
char **argv;
{
        long block_size, num_blocks, size;
        char *block, *path;
        int fd, i;
        long performance;
        time_t start_time, elapsed_time;

        if (argc != 4) {
                fprintf(stderr, "usage: %s <block_size> <num_blocks>
<path>\n", argv[0]);
                exit(-1);
                }

        block_size = strtol(argv[1], NULL, 0);
        num_blocks = strtol(argv[2], NULL, 0);
        path = argv[3];

        block = malloc(block_size);
        // create a block of random data
        srandom(0);
        for (i = 0; i < block_size; i++) {
                block[i] = random();
                }

        if ((fd = open(path, O_WRONLY | O_CREAT | O_TRUNC, 0666)) == -1)
{
                perror(path);
                exit(-1);
                }

        start_time = time(NULL);

        for (i = 0; i < num_blocks; i++) {
                if (write(fd, block, block_size) == -1) {
                        perror(path);
                        exit(-1);
                        }
                }

        elapsed_time = time(NULL) - start_time;

        size = block_size * num_blocks;
        performance = size / elapsed_time;

        printf("Write Performance\n");
        printf("Size : %ld kbytes\n", size / 1024);
        printf("Elapsed time: %ld seconds\n", elapsed_time);
        printf("Performance : %ld kbytes / second\n", performance /
1024);
        }

random system information
--------------------

/proc/version:
Linux version 2.3.99-pre6 (root@electron) (gcc version egcs-2.91.66
19990314/Lin
ux (egcs-1.1.2 release)) #1 SMP Mon May 8 16:21:27 PDT 2000

ver_linux:
[root@electron scripts]# sh ver_linux
-- Versions installed: (if some fields are empty or look
-- unusual then possibly you have very old versions)
Linux electron 2.3.99-pre6 #1 SMP Mon May 8 16:21:27 PDT 2000 i686
unknown
Kernel modules 2.3.10-pre1
Gnu C egcs-2.91.66
Binutils 2.9.5.0.22
Linux C Library 2.1.3
Dynamic linker ldd (GNU libc) 2.1.3
Procps 2.0.6
Mount 2.10f
Net-tools 1.54
Console-tools 0.3.3
Sh-utils 2.0
Modules Loaded

[root@electron ~]# more /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 5
model name : Pentium II (Deschutes)
stepping : 2
cpu MHz : 400.916139
cache size : 512 KB
fdiv_bug : no
hlt_bug : no
sep_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 2
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 sep mtrr pge mca
cmov pat p
se36 mmx fxsr
bogomips : 799.54

[root@electron ~]# more /proc/ioports
0000-001f : dma1
0020-003f : pic1
0040-005f : timer
0060-006f : keyboard
0080-008f : dma page reg
00a0-00bf : pic2
00c0-00df : dma2
00f0-00ff : fpu
01f0-01f7 : ide0
02f8-02ff : serial(auto)
03c0-03df : vga+
03f6-03f6 : ide0
03f8-03ff : serial(auto)
9800-987f : 3Com Corporation 3c905B 100BaseTX [Cyclone]
  9800-987f : eth0
a000-afff : PCI Bus #02
  a800-a87f : Digital Equipment Corporation RAID Controller
b400-b41f : Intel Corporation 82371AB PIIX4 USB
b800-b80f : Intel Corporation 82371AB PIIX4 IDE
d000-dfff : PCI Bus #01
  d800-d8ff : ATI Technologies Inc Rage XL AGP
e400-e43f : Intel Corporation 82371AB PIIX4 ACPI
  e400-e403 : acpi
  e404-e405 : acpi
  e408-e40b : acpi
  e40c-e40f : acpi
e800-e81f : Intel Corporation 82371AB PIIX4 ACPI

[root@electron ~]# more /proc/iomem
00000000-0009f3ff : System RAM
0009f400-0009ffff : reserved
000a0000-000bffff : Video RAM area
000c0000-000c7fff : Video ROM
000cc000-000cefff : Extension ROM
000f0000-000fffff : System ROM
00100000-07ffbfff : System RAM
  00100000-002b6c17 : Kernel code
  002b6c18-002d80bf : Kernel data
07ffc000-07ffefff : ACPI Tables
07fff000-07ffffff : ACPI Non-volatile Storage
d7000000-d700007f : 3Com Corporation 3c905B 100BaseTX [Cyclone]
d7800000-d87fffff : PCI Bus #02
  d7800000-d780ffff : Mylex Corporation eXtremeRAID support Device
  d8000000-d800007f : Digital Equipment Corporation RAID Controller
d8800000-daefffff : PCI Bus #01
  d8800000-d8800fff : ATI Technologies Inc Rage XL AGP
  d9000000-d9ffffff : ATI Technologies Inc Rage XL AGP
db000000-e3efffff : PCI Bus #02
  dc000000-dfffffff : Digital Equipment Corporation RAID Controller
e3f00000-e3ffffff : PCI Bus #01
e4000000-e7ffffff : Intel Corporation 440BX/ZX - 82443BX/ZX Host bridge
ffff0000-ffffffff : reserved

[root@electron ~]# lspci -vvv
00:00.0 Host bridge: Intel Corporation 440BX/ZX - 82443BX/ZX Host bridge
(rev 03)
        Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
ParErr- Stepping- SERR+ FastB2B-
        Status: Cap+ 66Mhz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort-
<TAbort- <MAbort+ >SERR- <PERR-
        Latency: 64 set
        Region 0: Memory at e4000000 (32-bit, prefetchable) [size=64M]
        Capabilities: [a0] AGP version 1.0
                Status: RQ=31 SBA+ 64bit- FW- Rate=x1,x2
                Command: RQ=0 SBA- AGP- 64bit- FW- Rate=<none>

00:01.0 PCI bridge: Intel Corporation 440BX/ZX - 82443BX/ZX AGP bridge
(rev 03) (prog-if 00 [Normal decode])
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop-
ParErr- Stepping- SERR+ FastB2B-
        Status: Cap- 66Mhz+ UDF- FastB2B- ParErr- DEVSEL=medium >TAbort-
<TAbort- <MAbort- >SERR- <PERR-
        Latency: 64 set
        Bus: primary=00, secondary=01, subordinate=01, sec-latency=64
        I/O behind bridge: 0000d000-0000dfff
        Memory behind bridge: d8800000-daefffff
        Prefetchable memory behind bridge: e3f00000-e3ffffff
        BridgeCtl: Parity- SERR- NoISA- VGA+ MAbort- >Reset- FastB2B+

00:04.0 ISA bridge: Intel Corporation 82371AB PIIX4 ISA (rev 02)
        Control: I/O+ Mem+ BusMaster+ SpecCycle+ MemWINV- VGASnoop-
ParErr- Stepping- SERR- FastB2B-
        Status: Cap- 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort-
<TAbort- <MAbort- >SERR- <PERR-
        Latency: 0 set

00:04.1 IDE interface: Intel Corporation 82371AB PIIX4 IDE (rev 01)
(prog-if 80 [Master])
        Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop-
ParErr- Stepping- SERR- FastB2B-
        Status: Cap- 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort-
<TAbort- <MAbort- >SERR- <PERR-
        Latency: 32 set
        Region 4: I/O ports at b800 [size=16]

00:04.2 USB Controller: Intel Corporation 82371AB PIIX4 USB (rev 01)
(prog-if 00 [UHCI])
        Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop-
ParErr- Stepping- SERR- FastB2B-
        Status: Cap- 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort-
<TAbort- <MAbort- >SERR- <PERR-
        Latency: 32 set
        Interrupt: pin D routed to IRQ 5
        Region 4: I/O ports at b400 [size=32]

00:04.3 Bridge: Intel Corporation 82371AB PIIX4 ACPI (rev 02)
        Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop-
ParErr- Stepping- SERR- FastB2B-
        Status: Cap- 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort-
<TAbort- <MAbort- >SERR- <PERR-

00:09.0 PCI bridge: Digital Equipment Corporation DECchip 21154 (rev 02)
(prog-if 00 [Normal decode])
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
ParErr- Stepping- SERR- FastB2B-
        Status: Cap+ 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort-
<TAbort- <MAbort- >SERR- <PERR-
        Latency: 32 set, cache line size 08
        Bus: primary=00, secondary=02, subordinate=02, sec-latency=32
        I/O behind bridge: 0000a000-0000afff
        Memory behind bridge: d7800000-d87fffff
        Prefetchable memory behind bridge:
00000000db000000-00000000e3e00000
        BridgeCtl: Parity- SERR- NoISA+ VGA- MAbort- >Reset- FastB2B-
        Capabilities: [dc] Power Management version 1
                Flags: PMEClk- AuxPwr- DSI- D1- D2- PME-
                Status: D0 PME-Enable- DSel=0 DScale=0 PME-

00:0b.0 Ethernet controller: 3Com Corporation 3c905B 100BaseTX [Cyclone]
(rev 30)
        Subsystem: 3Com Corporation: Unknown device 9055
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop-
ParErr- Stepping- SERR- FastB2B-
        Status: Cap+ 66Mhz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort-
<TAbort- <MAbort- >SERR- <PERR-
        Latency: 10 min, 10 max, 32 set, cache line size 08
        Interrupt: pin A routed to IRQ 10
        Region 0: I/O ports at 9800 [size=128]
        Region 1: Memory at d7000000 (32-bit, non-prefetchable)
[size=128]
        Expansion ROM at <unassigned> [disabled] [size=128K]
        Capabilities: [dc] Power Management version 1
                Flags: PMEClk- AuxPwr- DSI- D1+ D2+ PME-
                Status: D0 PME-Enable- DSel=0 DScale=0 PME-

01:00.0 VGA compatible controller: ATI Technologies Inc Rage XL AGP (rev
65) (prog-if 00 [VGA])
        Subsystem: ATI Technologies Inc: Unknown device 0008
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
ParErr- Stepping+ SERR- FastB2B-
        Status: Cap+ 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort-
<TAbort- <MAbort- >SERR- <PERR-
        Latency: 8 min, 64 set, cache line size 08
        Interrupt: pin A routed to IRQ 11
        Region 0: Memory at d9000000 (32-bit, non-prefetchable)
[size=16M]
        Region 1: I/O ports at d800 [size=256]
        Region 2: Memory at d8800000 (32-bit, non-prefetchable)
[size=4K]
        Expansion ROM at e3fe0000 [disabled] [size=128K]
        Capabilities: [50] AGP version 1.0
                Status: RQ=255 SBA+ 64bit- FW- Rate=x1,x2
                Command: RQ=0 SBA- AGP- 64bit- FW- Rate=<none>
        Capabilities: [5c] Power Management version 1
                Flags: PMEClk- AuxPwr- DSI- D1+ D2+ PME-
                Status: D0 PME-Enable- DSel=0 DScale=0 PME-

02:08.0 Co-processor: Digital Equipment Corporation: Unknown device 1065
(rev 04) (prog-if 01)
        Subsystem: Mylex Corporation: Unknown device 0020
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop-
ParErr- Stepping- SERR- FastB2B-
        Status: Cap+ 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort-
<TAbort- <MAbort+ >SERR- <PERR-
        Latency: 32 min, 32 set, cache line size 08
        Interrupt: pin A routed to IRQ 5
        Region 0: Memory at d8000000 (32-bit, non-prefetchable)
[size=128]
        Region 1: I/O ports at a800 [size=128]
        Region 2: Memory at dc000000 (32-bit, prefetchable) [size=64M]
        Expansion ROM at <unassigned> [disabled] [size=16M]
        Capabilities: [70] Power Management version 0
                Flags: PMEClk- AuxPwr- DSI- D1- D2- PME-
                Status: D0 PME-Enable- DSel=0 DScale=0 PME-

02:09.0 RAID bus controller: Mylex Corporation eXtremeRAID support
Device
        Subsystem: Mylex Corporation: Unknown device ba55
        Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop-
ParErr- Stepping- SERR- FastB2B-
        Status: Cap- 66Mhz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort-
<TAbort- <MAbort- >SERR- <PERR-
        Latency: 32 set, cache line size 08
        Region 0: Memory at d7800000 (32-bit, non-prefetchable)
[size=64K]

[root@electron ~]# cat /proc/scsi/scsi
Attached devices: none

[root@electron c0]# cat /proc/driver/rd/c0/current_status
***** DAC960 RAID Driver Version 2.3.4 of 23 September 1999 *****
Copyright 1998-1999 by Leonard N. Zubkoff <lnz@dandelion.com>
Configuring Mylex DAC1164P PCI RAID Controller
  Firmware Version: 5.07-0-79, Channels: 3, Memory Size: 64MB
  PCI Bus: 2, Device: 8, Function: 0, I/O Address: Unassigned
  PCI Address: 0xD8000000 mapped at 0xC8800000, IRQ Channel: 5
  Controller Queue Depth: 128, Maximum Blocks per Command: 128
  Driver Queue Depth: 127, Maximum Scatter/Gather Segments: 33
  Stripe Size: 64KB, Segment Size: 8KB, BIOS Geometry: 255/63
  Physical Devices:
    0:0 Vendor: SEAGATE Model: ST318436LW Revision: 0004
         Serial Number: 3BM018CG00007035K4K2
         Disk Status: Standby, 35883008 blocks
    0:1 Vendor: SEAGATE Model: ST318436LW Revision: 0004
         Serial Number: 3BM0132100007035N2P8
         Disk Status: Online, 35883008 blocks
    0:2 Vendor: SEAGATE Model: ST318436LW Revision: 0004
         Serial Number: 3BM01EPX00007035JNCX
         Disk Status: Online, 35883008 blocks
    0:3 Vendor: SEAGATE Model: ST318436LW Revision: 0004
         Serial Number: 3BM01CTZ0000703489EC
         Disk Status: Online, 35883008 blocks
    0:4 Vendor: SEAGATE Model: ST318436LW Revision: 0004
         Serial Number: 3BM04Y1K00007036HH41
         Disk Status: Online, 35883008 blocks
    0:5 Vendor: SEAGATE Model: ST318436LW Revision: 0004
         Serial Number: 3BM019TB00007035MXEL
         Disk Status: Online, 35883008 blocks
    0:7 Vendor: MYLEX Model: DAC1164P Revision: 0507
         Serial Number:
    1:7 Vendor: MYLEX Model: DAC1164P Revision: 0507
         Serial Number:
    2:7 Vendor: MYLEX Model: DAC1164P Revision: 0507
         Serial Number:
  Logical Drives:
    /dev/rd/c0d0: RAID-5, Online, 143532032 blocks, Write Thru
  No Rebuild or Consistency Check in Progress

[root@electron /proc]# more /proc/mounts
/dev/root / ext2 rw 0 0
/proc /proc proc rw 0 0
/dev/hda1 /boot ext2 rw 0 0
/dev/hda6 /home ext2 rw 0 0
/dev/hda5 /usr ext2 rw 0 0
/dev/hda7 /var ext2 rw 0 0
none /dev/pts devpts rw 0 0
/dev/rd/c0d0 /mnt/raid0 ext2 rw 0 0

[root@electron /proc]# more /proc/dma
 4: cascade

I am using version 2.2.5 of of Zubkoff's Mylex driver.
I have no problems running the 2.2.15 kernel.

Jeff

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Mon May 15 2000 - 21:00:12 EST