[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <6712a7f16b99489db2828098dc3e03b2@hisilicon.com>
Date: Tue, 9 Feb 2021 05:33:55 +0000
From: "Song Bao Hua (Barry Song)" <song.bao.hua@...ilicon.com>
To: Finn Thain <fthain@...egraphics.com.au>
CC: tanxiaofei <tanxiaofei@...wei.com>,
"jejb@...ux.ibm.com" <jejb@...ux.ibm.com>,
"martin.petersen@...cle.com" <martin.petersen@...cle.com>,
"linux-scsi@...r.kernel.org" <linux-scsi@...r.kernel.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
"linuxarm@...neuler.org" <linuxarm@...neuler.org>,
"linux-m68k@...r.kernel.org" <linux-m68k@...r.kernel.org>
Subject: RE: [Linuxarm] Re: [PATCH for-next 00/32] spin lock usage
optimization for SCSI drivers
> -----Original Message-----
> From: Finn Thain [mailto:fthain@...egraphics.com.au]
> Sent: Tuesday, February 9, 2021 6:06 PM
> To: Song Bao Hua (Barry Song) <song.bao.hua@...ilicon.com>
> Cc: tanxiaofei <tanxiaofei@...wei.com>; jejb@...ux.ibm.com;
> martin.petersen@...cle.com; linux-scsi@...r.kernel.org;
> linux-kernel@...r.kernel.org; linuxarm@...neuler.org;
> linux-m68k@...r.kernel.org
> Subject: RE: [Linuxarm] Re: [PATCH for-next 00/32] spin lock usage optimization
> for SCSI drivers
>
> On Tue, 9 Feb 2021, Song Bao Hua (Barry Song) wrote:
>
> > > -----Original Message-----
> > > From: Finn Thain [mailto:fthain@...egraphics.com.au]
> > > Sent: Monday, February 8, 2021 8:57 PM
> > > To: tanxiaofei <tanxiaofei@...wei.com>
> > > Cc: jejb@...ux.ibm.com; martin.petersen@...cle.com;
> > > linux-scsi@...r.kernel.org; linux-kernel@...r.kernel.org;
> > > linuxarm@...neuler.org
> > > Subject: [Linuxarm] Re: [PATCH for-next 00/32] spin lock usage optimization
> > > for SCSI drivers
> > >
> > > On Sun, 7 Feb 2021, Xiaofei Tan wrote:
> > >
> > > > Replace spin_lock_irqsave with spin_lock in hard IRQ of SCSI drivers.
> > > > There are no function changes, but may speed up if interrupt happen too
> > > > often.
> > >
> > > This change doesn't necessarily work on platforms that support nested
> > > interrupts.
> > >
> > > Were you able to measure any benefit from this change on some other
> > > platform?
> >
> > I think the code disabling irq in hardIRQ is simply wrong.
> > Since this commit
> >
> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/
> ?id=e58aa3d2d0cc
> > genirq: Run irq handlers with interrupts disabled
> >
> > interrupt handlers are definitely running in a irq-disabled context
> > unless irq handlers enable them explicitly in the handler to permit
> > other interrupts.
> >
>
> Repeating the same claim does not somehow make it true. If you put your
Sorry for I didn't realize xiaofei had replied.
> claim to the test, you'll see that that interrupts are not disabled on
> m68k when interrupt handlers execute.
Sounds like an implementation issue of m68k since IRQF_DISABLED has
been totally removed.
>
> The Interrupt Priority Level (IPL) can prevent any given irq handler from
> being re-entered, but an irq with a higher priority level may be handled
> during execution of a lower priority irq handler.
>
We used to have IRQF_DISABLED to support so-called "fast interrupt" to avoid
this. But the concept has been totally removed. That is interesting if m68k
still has this issue.
> sonic_interrupt() uses an irq lock within an interrupt handler to avoid
> issues relating to this. This kind of locking may be needed in the drivers
> you are trying to patch. Or it might not. Apparently, no-one has looked.
Thanks
Barry
Powered by blists - more mailing lists