RE: [PATCH 2/4] hpsa: add generate controller NMI on lockup

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

 



> -----Original Message-----
> From: Hannes Reinecke [mailto:hare@xxxxxxx]
> Sent: Thursday, October 27, 2016 4:03 AM
> To: Don Brace; jejb@xxxxxxxxxxxxxxxxxx; John Hall; Kevin Barnett; Mahesh
> Rajashekhara; hch@xxxxxxxxxxxxx; Scott Teel; Viswas G; Justin Lindley; Scott
> Benesh; elliott@xxxxxxx; POSWALD@xxxxxxxx
> Cc: linux-scsi@xxxxxxxxxxxxxxx
> Subject: Re: [PATCH 2/4] hpsa: add generate controller NMI on lockup
> 
> EXTERNAL EMAIL
> 
> 
> On 10/27/2016 12:21 AM, Don Brace wrote:
> > Tell the controller to NMI when the controller deadlocks.
> >
> > Reviewed-by: Scott Benesh <scott.benesh@xxxxxxxxxxxxx>
> > Reviewed-by: Scott Teel <scott.teel@xxxxxxxxxxxxx>
> > Reviewed-by: Kevin Barnett <kevin.barnett@xxxxxxxxxxxxx>
> > Signed-off-by: Don Brace <don.brace@xxxxxxxxxxxxx>
> > ---
> >  drivers/scsi/hpsa.c     |    6 ++++++
> >  drivers/scsi/hpsa_cmd.h |    1 +
> >  2 files changed, 7 insertions(+)
> >
> > diff --git a/drivers/scsi/hpsa.c b/drivers/scsi/hpsa.c
> > index 798fb20..9fb739c 100644
> > --- a/drivers/scsi/hpsa.c
> > +++ b/drivers/scsi/hpsa.c
> > @@ -8451,6 +8451,12 @@ static void controller_lockup_detected(struct
> ctlr_info *h)
> >                       "lockup detected after %d but scratchpad register is zero\n",
> >                       h->heartbeat_sample_interval / HZ);
> >               lockup_detected = 0xffffffff;
> > +     } else if (lockup_detected == 0xffff0000) {
> > +             /*
> > +              * Ring controller NMI doorbell
> > +              */
> > +             dev_warn(&h->pdev->dev, "Telling controller to do an NMI\n");
> > +             writel(DOORBELL_GENERATE_NMI, h->vaddr + SA5_DOORBELL);
> >       }
> >       set_lockup_detected_for_all_cpus(h, lockup_detected);
> >       spin_unlock_irqrestore(&h->lock, flags);
> > diff --git a/drivers/scsi/hpsa_cmd.h b/drivers/scsi/hpsa_cmd.h
> > index a584cdf..d186f80 100644
> > --- a/drivers/scsi/hpsa_cmd.h
> > +++ b/drivers/scsi/hpsa_cmd.h
> > @@ -142,6 +142,7 @@
> >  #define DOORBELL_CTLR_RESET  0x00000004l
> >  #define DOORBELL_CTLR_RESET2 0x00000020l
> >  #define DOORBELL_CLEAR_EVENTS        0x00000040l
> > +#define DOORBELL_GENERATE_NMI        0x00000080l
> >
> >  #define CFGTBL_Trans_Simple     0x00000002l
> >  #define CFGTBL_Trans_Performant 0x00000004l
> >
> Care to elaborate a bit more here?
> 'Generating NMI' tends to ring some alarm bells, so I'd rather know
> where the NMI is actually generated, and if is could reflect back to the
> system ...
> 
> Cheers,
> 
> Hannes
> --
> Dr. Hannes Reinecke                Teamlead Storage & Networking
> hare@xxxxxxx                                   +49 911 74053 688
> SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nürnberg
> GF: F. Imendörffer, J. Smithard, J. Guild, D. Upmanyu, G. Norton
> HRB 21284 (AG Nürnberg)


There are some rare cases where we get this lockup code and we
need to tell the controller to do its own NMI. This NMI is only done
on the controller and does not tell the OS to perform an NMI.

Thanks,
Don Brace

ESC - Smart Storage
Microsemi Corporation
��.n��������+%������w��{.n�����{������ܨ}���Ơz�j:+v�����w����ޙ��&�)ߡ�a����z�ޗ���ݢj��w�f




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]

  Powered by Linux