Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 28 Apr 2010 14:50:56 -0400
From:      John Baldwin <jhb@freebsd.org>
To:        kama <kama@pvp.se>
Cc:        Giovanni Trematerra <giovanni.trematerra@gmail.com>, freebsd-stable@freebsd.org
Subject:   Re: HP 380 G4 - ciss kernel page fault.
Message-ID:  <201004281450.56272.jhb@freebsd.org>
In-Reply-To: <20100428190652.Y4522@ns1.as.pvp.se>
References:  <20100427150736.A4522@ns1.as.pvp.se> <q2n4e6cba831004280841ufbc12e91tdd9f1de0b7a527a8@mail.gmail.com> <20100428190652.Y4522@ns1.as.pvp.se>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wednesday 28 April 2010 1:38:15 pm kama wrote:
> 
> On Wed, 28 Apr 2010, Giovanni Trematerra wrote:
> 
> > On Wed, Apr 28, 2010 at 4:07 PM, kama <kama@pvp.se> wrote:
> > >
> > >
> > > On Wed, 28 Apr 2010, John Baldwin wrote:
> > >
> > >> On Wednesday 28 April 2010 3:22:44 am kama wrote:
> > >> >
> > >> > On Tue, 27 Apr 2010, John Baldwin wrote:
> > >> >
> > >> > > On Tuesday 27 April 2010 9:30:12 am kama wrote:
> > >> > > >
> > >> > > > Hi.
> > >> > > >
> > >> > > > I have problem when probing the ciss device. Causing a kernel 
panic.
> > >> This
> > >> > > > happened when I upgraded from 6.3 to 7.3-stable. Booting the old 
kernel
> > >> > > > works. So something has changed. I am also getting the error on 
both the
> > >> > > > 7.3 and the 8.0 install cd's.
> > >> > > >
> > >> > > > The ciss that causing the problem is a Smart Array 6404 and its 
the
> > >> addon
> > >> > > > card that it faults at. The server disconnect it due to an error. 
But
> > >> > > > since it works on 6.3 it is something that have changed. FreeBSD 
should
> > >> > > > not panic, it should just disable it.
> > >> > > >
> > >> > > > Also I tried to disable the card in the BIOS, but FreeBSD try to 
probe
> > >> it
> > >> > > > anyway and panic.
> > >> > > >
> > >> > > > This whats comes up on a verbose boot through the ILO remote 
console.
> > >> > > > (typed in manually from a screenshot)
> > >> > > >
> > >> > > > ciss2: <HP Smart Array 6400 EM> port 0x6400-0x64ff mem
> > >> > > > 0xfdf70000-0xfdf71fff irq 98 at device 5.0 on pcill
> > >> > > > ciss2: Reserved 0x2000 bytes for rid 0x10 type 3 at 0xfdf70000
> > >> > > > pci11: child ciss2 requested type 3 for rid 0, but the BAR says 
it is an
> > >> > > > ioport
> > >> > > > ciss2: can't allocate config window
> > >> > > > kernel trap 12 with interupts disabled
> > >> > >
> > >> > > Can you get the ciss2 boot messages from a working 6.x kernel?
> > >> >
> > >> > This is the verbose boot on 6.3.
> > >> >
> > >> > FreeBSD 6.3-STABLE #3: Thu Mar  6 14:29:33 CET 2008
> > >> >
> > >> > ciss1: 10 physical devices
> > >> > ciss1: 4 logical drives
> > >> > ciss1: logical drive (b0t0): RAID 1, 69120MB online
> > >> > ciss1: logical drive (b0t1): RAID 1, 69120MB online
> > >> > ciss1: logical drive (b0t2): RAID 1, 139776MB online
> > >> > ciss1: logical drive (b0t3): RAID 1, 139776MB online
> > >> >
> > >> > ciss2: <HP Smart Array 6400 EM> port 0x6400-0x64ff mem
> > >> > 0xfdf70000-0xfdf71fff,0xfdf00000-0xfdf3ffff irq 98 at device 5.0 on 
pci11
> > >> > ciss2: Reserved 0x2000 bytes for rid 0x10 type 3 at 0xfdf70000
> > >> > pci11: child ciss2 requested type 3 for rid 0, but the BAR says it is 
an
> > >> > ioport
> > >> > ciss2: can't allocate config window
> > >> > device_attach: ciss2 attach returned 6
> > >>
> > >> Oh, so it didn't work in 6.x either, it just handles failure less 
gracefully
> > >> in 7.0+?
> > >
> > > No, ciss2 is disabled. The difference is that 6.x continue to boot 
instead
> > > of a kernel panic as in 7.x and 8.x.
> > >
> > > I dont have any disks attached to ciss2, so I dont really need it. But
> > > ciss1 and ciss2 is on the same physical card, so I cant just remove it.
> > >
> >
> > Could you try this one if you are looking for a patch to 7-STABLE.
> >
> > Thank you
> >
> > diff -r ffd3e5d37758 sys/dev/ciss/ciss.c
> > --- a/sys/dev/ciss/ciss.c       Wed Apr 28 10:20:41 2010 -0400
> > +++ b/sys/dev/ciss/ciss.c       Wed Apr 28 11:39:05 2010 -0400
> > @@ -394,6 +394,8 @@ ciss_attach(device_t dev)
> >
> >      sc = device_get_softc(dev);
> >      sc->ciss_dev = dev;
> > +    mtx_init(&sc->ciss_mtx, "cissmtx", NULL, MTX_DEF);
> > +    callout_init_mtx(&sc->ciss_periodic, &sc->ciss_mtx, 0);
> >
> >      /*
> >       * Work out adapter type.
> > @@ -428,8 +430,6 @@ ciss_attach(device_t dev)
> >      ciss_initq_busy(sc);
> >      ciss_initq_complete(sc);
> >      ciss_initq_notify(sc);
> > -    mtx_init(&sc->ciss_mtx, "cissmtx", NULL, MTX_DEF);
> > -    callout_init_mtx(&sc->ciss_periodic, &sc->ciss_mtx, 0);
> >
> >      /*
> >       * Initalize device sysctls.
> > @@ -494,8 +494,11 @@ ciss_attach(device_t dev)
> >
> >      error = 0;
> >   out:
> > -    if (error != 0)
> > -       ciss_free(sc);
> > +    if (error != 0) {
> > +               /* ciss_free() expects the mutex to be held */
> > +               mtx_lock(&sc->ciss_mtx);
> > +               ciss_free(sc);
> > +       }
> >      return(error);
> >  }
> >
> 
> This patch made the system boot again.
> 
> FreeBSD 7.3-STABLE #2: Wed Apr 28 19:17:43 CEST 2010
> 
> ciss1: 4 logical drives
> ciss1: logical drive (b0t0): RAID 1, 69120MB online
> ciss1: logical drive (b0t1): RAID 1, 69120MB online
> ciss1: logical drive (b0t2): RAID 1, 139776MB online
> ciss1: logical drive (b0t3): RAID 1, 139776MB online
> ciss2: <HP Smart Array 6400 EM> port 0x6400-0x64ff mem
> 0xfdf70000-0xfdf71fff irq 98 at device 5.0 on pci11
> ciss2: Reserved 0x2000 bytes for rid 0x10 type 3 at 0xfdf70000
> pci11: child ciss2 requested type 3 for rid 0, but the BAR says it is an
> ioport
> ciss2: can't allocate config window
> device_attach: ciss2 attach returned 6
> uhci0: <Intel 82801EB (ICH5) USB controller USB-A> port 0x2000-0x201f irq
> 16 at device 29.0 on pci0
> uhci0: Reserved 0x20 bytes for rid 0x20 type 4 at 0x2000
> ioapic0: routing intpin 16 (PCI IRQ 16) to vector 55
> uhci0: [GIANT-LOCKED]
> uhci0: [ITHREAD]
> usb0: <Intel 82801EB (ICH5) USB controller USB-A> on uhci0
> 
> Thank you both for looking in to it and making such a fast fix!
> 
> Now Im off to upgrade to 8.0-STABLE if I find what to edit. Or if you want
> to send a patch.

I've committed the smaller patch to HEAD to fix just the callout_init_mtx().  
I can MFC that fix and the other patch to fix the mutex that is already in 
HEAD in a few days.

-- 
John Baldwin



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201004281450.56272.jhb>