RE: megaraid megaraid2-2.10.7 causing kernel panic

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Aleks,

What you are using are undocumented interfaces to issue commands to the
driver. We do not provide support for these. But you could easily
reverse-engineer the driver code to see what you are doing wrong :-)

This driver version expects the data transfer address to be available in the
FW packet transfer address field, which you are not providing. That mean the
HBA is doing DMA to a junk address causing the bizzare behaviors observed by
you.

Thanks
-Atul Mukker

-----Original Message-----
From: Aleks Sheynkman [mailto:aleks@xxxxxxxxx]
Sent: Friday, September 03, 2004 1:06 PM
To: linux-raid@xxxxxxxxxxxxxxx; linux-scsi@xxxxxxxxxxxxxxx
Subject: megaraid megaraid2-2.10.7 causing kernel panic


Greetings,
  I'm really sorry to bother you ,and I hope this is a correct list to post
these kind of messages. I did post a similar message a day ago. We are
currently experiencing problem with a new version of megaraid driver
(megaraid2-2.10.7). All our severs in the past were running RH 7.3 and now
we started migration process AS 2.1 specifically to update 2.4.9-e.49smp and
dkms megaraid version 2.10.7. After upgrade, all our systems were stable
until we started to run our hardware monitoring software. What it does, it
polls the status of all physical and logical driver through ioctl call.
Please see sample code below that would cause a kernel panic.  The code was
working just fine until version 1.8f version of megaraid drivers, with
introduction of new driver it started to fail and cause kernel panics, which
kind of inconstant, sometimes it kills kernel swapper sometimes wait queues.
It seems like ioctl "M_RD_IOCTL_CMD " is totally broken, we can retrieve
correct number of adapters!
  by issuing ioctl suboption MEGAIOC_QNADAP.

Did any one ever seen this before, can you please advice ?

Thank you !

Code that will panic the kernel, run it few times:

#include "megaraid.h"

int main()
{
        int         fd;
       struct uioctl_t uioctl;

       if ( (fd = open("/dev/megadev0", O_RDWR)) < 0 && (fd =
open("/dev/megadev", O_RDWR)) < 0)
                return -1;

        uioctl.inlen =  1024;
        uioctl.outlen = 1024;

        if(!(uioctl.data = malloc(1024))){
                return 0;
        }
        memset(uioctl.data, 0, 1024);

        uioctl.ui.fcs.opcode     = M_RD_IOCTL_CMD;
        uioctl.ui.fcs.subopcode  = 0;
        uioctl.ui.fcs.adapno     = MKADAP(0);

        uioctl.mbox[0]           = FC_NEW_CONFIG;
        uioctl.mbox[2]           = NC_SUBOP_ENQUIRY3;
        uioctl.mbox[3]           = ENQ3_GET_SOLICITED_FULL;

        if(ioctl(fd, MEGAIOCCMD, &uioctl) == -1){
                fprintf(stderr,"Error %d \n\n", uioctl.ui.fcs.adapno);
                fflush(stderr);
                free(uioctl.data);
                close(fd);
                return 0;
        }

     close(fd);
 return 0;
}


Panic:
1) 
ug 31 20:54:03 Analyzer kernel: EIP is at iput_free [kernel] 0x1e
Aug 31 20:54:03 Analyzer kernel: eax: 2e0001e3   ebx: f6880e40   ecx:
f6880e50   edx: f6880e50
Aug 31 20:54:03 Analyzer kernel: esi: f6880e40   edi: 00000000   ebp:
0008e000   esp: f7383f60
Aug 31 20:54:03 Analyzer kernel: ds: 0018   es: 0018   ss: 0018
Aug 31 20:54:03 Analyzer kernel: Process kswapd (pid: 10,
stackpage=f7383000)
Aug 31 20:54:03 Analyzer kernel: Stack: f587cb40 f5753b60 c015a45c f587cb40
f393c3e0 f6880e40 00000006 c015a41b
Aug 31 20:54:03 Analyzer kernel:        f6880e40 f393c3f8 f393c3e0 c015a806
f393c3e0 c02fa190 00000286 00000286
Aug 31 20:54:03 Analyzer kernel:        00000000 f7382000 00000000 00000000
00000000 00000000 00000000 00000000
Aug 31 20:54:03 Analyzer kernel: Call Trace: [dput+28/304] dput [kernel]
0x1c (0xf7383f68)
Aug 31 20:54:03 Analyzer kernel: Call Trace: [<c015a45c>] dput [kernel] 0x1c
(0xf7383f68)
Aug 31 20:54:03 Analyzer kernel: [dentry_iput+75/112] dentry_iput [kernel]
0x4b (0xf7383f7c)
Aug 31 20:54:03 Analyzer kernel: [<c015a41b>] dentry_iput [kernel] 0x4b
(0xf7383f7c)
Aug 31 20:54:03 Analyzer kernel: [prune_dcache+182/336] prune_dcache
[kernel] 0xb6 (0xf7383f8c)
 
2)p  1 18:41:36 Analyzer kernel: Oops: 0000
Sep  1 18:41:36 Analyzer kernel: Kernel 2.4.9-e.49smp
Sep  1 18:41:36 Analyzer kernel: CPU:    1
Sep  1 18:41:36 Analyzer kernel: EIP:    0010:[__wake_up+51/144]    Tainted:
P
Sep  1 18:41:36 Analyzer kernel: EIP:    0010:[<c01198a3>]    Tainted: P
Sep  1 18:41:36 Analyzer kernel: EFLAGS: 00010046
Sep  1 18:41:36 Analyzer kernel: EIP is at __wake_up [kernel] 0x33
Sep  1 18:41:36 Analyzer kernel: eax: f688800c   ebx: f6888014   ecx:
00000001   edx: 00000000
Sep  1 18:41:36 Analyzer kernel: esi: 00000001   edi: f4c8a880   ebp:
f4f25a94   esp: f4f25a7c
Sep  1 18:41:36 Analyzer kernel: ds: 0018   es: 0018   ss: 0018
Sep  1 18:41:36 Analyzer kernel: Process snmpd (pid: 626,
stackpage=f4f25000)
Sep  1 18:41:36 Analyzer kernel: Stack: 00000000 00000282 00000001 f4c8a880
f4c7f040 00000000 f4ec28c0 c01daad9
Sep  1 18:41:36 Analyzer kernel:        00000002 00000026 f4c7f178 00001060
00007fff f4c7f178 c01ff422 f4c7f040
Sep  1 18:41:36 Analyzer kernel:        00000000 c01fe2f4 f4c7f040 f4c7f178
ffffffff f4a8f0c0 3a6ade00 00000000
Sep  1 18:41:36 Analyzer kernel: Call Trace: [sock_def_readable+57/112]
sock_def_readable [kernel] 0x39 (0xf4f25a98)
Sep  1 18:41:36 Analyzer kernel: Call Trace: [<c01daad9>] sock_def_readable
[kernel] 0x39 (0xf4f25a98)
Sep  1 18:41:36 Analyzer kernel: [tcp_data_queue+898/2688] tcp_data_queue
[kernel] 0x382 (0xf4f25ab4)
Sep  1 18:41:36 Analyzer kernel: [<c01ff422>] tcp_data_queue [kernel] 0x382
(0xf4f25ab4)
Sep  1 18:41:36 Analyzer kernel: [tcp_ack+180/784] tcp_ack [kernel] 0xb4
(0xf4f25ac0)
Sep  1 18:41:36 Analyzer kernel: [<c01fe2f4>] tcp_ack [kernel] 0xb4
(0xf4f25ac0)
-
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html
-
To unsubscribe from this list: send the line "unsubscribe linux-raid" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux RAID Wiki]     [ATA RAID]     [Linux SCSI Target Infrastructure]     [Linux Block]     [Linux IDE]     [Linux SCSI]     [Linux Hams]     [Device Mapper]     [Device Mapper Cryptographics]     [Kernel]     [Linux Admin]     [Linux Net]     [GFS]     [RPM]     [git]     [Yosemite Forum]


  Powered by Linux