2004-01-07 22:01:30

by Chris Meadors

[permalink] [raw]
Subject: MegaRAID on AMD64 under 2.6.1

I seem to recall some discussion reguarding the MegaRAID driver use on
AMD64 machines with large amounts of RAM. My machine only has 2 GB of
RAM, and the driver was working fine under 2.6.0 (note I use Andi
Kleen's x86_64 patch kit, on an otherwise stock kernel). But with the
release of 2.6.1-rc1 the driver does not load. I have module support
disabled and all needed drivers built into the kernel. All my file
systems (including root) are on logical drives provided by the RAID
controller. So the kernel panics when attempting to mount the root
filesystem, if the driver doesn't load.

Looking through the 2.6.1-rc2 patch, it seems that the megaraid.[ch]
files got some large amount of re-ordering. So I can't easily spot what
change might have effected the driver.

Here is the lspci output for my specific card:

02:07.0 RAID bus controller: LSI Logic / Symbios Logic PowerEdge
Expandable RAID Controller 4 (rev 01)
Subsystem: LSI Logic / Symbios Logic: Unknown device a520
Flags: bus master, 66Mhz, slow devsel, latency 64, IRQ 26
Memory at f8000000 (32-bit, prefetchable) [size=64M]
Expansion ROM at fc9f8000 [disabled] [size=32K]
Capabilities: [80] Power Management version 2

I'm wondering if the driver just doesn't claim it anymore. Or maybe it
is being told not to load on 64-bit machines?

I can test any patches.

--
Chris


2004-01-08 12:12:30

by Christoph Hellwig

[permalink] [raw]
Subject: Re: MegaRAID on AMD64 under 2.6.1

On Wed, Jan 07, 2004 at 05:01:28PM -0500, Chris Meadors wrote:
> I seem to recall some discussion reguarding the MegaRAID driver use on
> AMD64 machines with large amounts of RAM. My machine only has 2 GB of
> RAM, and the driver was working fine under 2.6.0 (note I use Andi
> Kleen's x86_64 patch kit, on an otherwise stock kernel). But with the
> release of 2.6.1-rc1 the driver does not load. I have module support
> disabled and all needed drivers built into the kernel. All my file
> systems (including root) are on logical drives provided by the RAID
> controller. So the kernel panics when attempting to mount the root
> filesystem, if the driver doesn't load.
>
> Looking through the 2.6.1-rc2 patch, it seems that the megaraid.[ch]
> files got some large amount of re-ordering. So I can't easily spot what
> change might have effected the driver.
>
> Here is the lspci output for my specific card:

Can you put a printk into megaraid_probe_one() whether that one actually
gets called?

Also lspci -n output would be very nice to have.

2004-01-08 16:52:03

by Chris Meadors

[permalink] [raw]
Subject: Re: MegaRAID on AMD64 under 2.6.1

On Thu, 2004-01-08 at 07:12, Christoph Hellwig wrote:

> Can you put a printk into megaraid_probe_one() whether that one actually
> gets called?

It looks like megaraid_probe_one() only gets called if
megaraid_pci_tbl[] contains the right IDs.

> Also lspci -n output would be very nice to have.

02:07.0 Class 0104: 1000:1960 (rev 01)

i.e. PCI_VENDOR_ID_LSI_LOGIC, PCI_DEVICE_ID_AMI_MEGARAID3

When I added the lines for that combination to megaraid_pci_tbl[], the
driver found the card. So, I'm cool now.

--
Chris

2004-01-08 16:55:49

by Christoph Hellwig

[permalink] [raw]
Subject: Re: MegaRAID on AMD64 under 2.6.1

On Thu, Jan 08, 2004 at 11:51:58AM -0500, Chris Meadors wrote:
> It looks like megaraid_probe_one() only gets called if
> megaraid_pci_tbl[] contains the right IDs.

Yupp.

> i.e. PCI_VENDOR_ID_LSI_LOGIC, PCI_DEVICE_ID_AMI_MEGARAID3
>
> When I added the lines for that combination to megaraid_pci_tbl[], the
> driver found the card. So, I'm cool now.

Care to send a patch to Linus to add it? And my apologies for losing
that entry.

2004-01-08 17:19:25

by Chris Meadors

[permalink] [raw]
Subject: [PATCH] LSI Logic MegaRAID3 PCI ID [Was: MegaRAID on AMD64 under 2.6.1]

On Thu, 2004-01-08 at 11:55, Christoph Hellwig wrote:
> On Thu, Jan 08, 2004 at 11:51:58AM -0500, Chris Meadors wrote:
> > i.e. PCI_VENDOR_ID_LSI_LOGIC, PCI_DEVICE_ID_AMI_MEGARAID3
> >
> > When I added the lines for that combination to megaraid_pci_tbl[], the
> > driver found the card. So, I'm cool now.
>
> Care to send a patch to Linus to add it? And my apologies for losing
> that entry.

Sure thing, it is attatched, as I fear the white space mangling
abilities of my MUA.

--
Chris


Attachments:
LSI_MEGARAID3.patch (467.00 B)

2004-01-08 20:30:08

by Chris Meadors

[permalink] [raw]
Subject: Re: [PATCH] LSI Logic MegaRAID3 PCI ID [Was: MegaRAID on AMD64 under 2.6.1]

On Thu, 2004-01-08 at 12:19, Chris Meadors wrote:
> On Thu, 2004-01-08 at 11:55, Christoph Hellwig wrote:
> > On Thu, Jan 08, 2004 at 11:51:58AM -0500, Chris Meadors wrote:
> > > i.e. PCI_VENDOR_ID_LSI_LOGIC, PCI_DEVICE_ID_AMI_MEGARAID3
> > >
> > > When I added the lines for that combination to megaraid_pci_tbl[], the
> > > driver found the card. So, I'm cool now.
> >
> > Care to send a patch to Linus to add it? And my apologies for losing
> > that entry.
>
> Sure thing, it is attatched, as I fear the white space mangling
> abilities of my MUA.

(Replying to myself with an updated version of the patch, apply this one
instead.)

I was wondering how the ID got lost. I noticed that the file was pretty
much rewriten (the -rc patch is just a huge number of removes, followed
by an equally large number of adds). So I started looking at the two
files side by side, wondering if any other IDs were missed. Then I
think I spotted what happened. In the -rc patch, there is an ID pair
for, "PCI_VENDOR_ID_LSI_LOGIC, PCI_DEVICE_ID_AMI_MEGARAID". Since LSI
just starting making MegaRAID cards, there would have never been a
device produced with that ID. The line I added in my patch was for the
MEGARAID3. Looking at the older version of the file showed just as I
guessed, there wasn't an LSI_LOGIC MEGARAID. I'm thinking the '3' got
dropped in the conversion between the old and new files.

So, attached is a second version of this patch. Instead of adding a
totally new PCI ID, I'm just removing the incorrect LSI MEGARAID, and
replacing it with the LSI MEGARAID3. I've also diffed against 2.6.1-rc3
this time (but megaraid.c wasn't touched between -rc2 and 3).

--
Chris


Attachments:
LSI_MEGARAID3-2.patch (475.00 B)