lkml.org 
[lkml]   [2018]   [May]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
SubjectRE: INTMS/INTMC not being used in NVME interrupt handling
Date
> > Hi,
> >
> > As per NVME specification:
> > 7.5.1.1 Host Software Interrupt Handling It is recommended that host
> > software utilize the Interrupt Mask Set and Interrupt Mask Clear
> > (INTMS/INTMC) registers to efficiently handle interrupts when configured
> to use pin based or MSI messages.
> >
> > In kernel 4.14, drivers/nvme/host/pci.c function nvme_isr doesn't use
> > these registers.
> >
> > Any reason why these registers are not used in nvme interrupt handler ?
>
> I think you've answered your own question: we process completions in the
> interrupt context. The interrupt is already masked at the CPU level in this
> context, so there should be no reason to mask them at the device level.
>
> > Why NVMe driver is not using any bottom half and processing all
> > completion queues in interrupt handler ?
>
> Performance.
Thanks keith.
Currently driver isn't setting any Coalesce count.
So the NVMe card will raise interrupt for every single completion queue ?

For legacy interrupt for each CQ
CQ-> ASSERT_INTA-> DOORBELL-> DEASSERT_INTA is this flow correct ?

Is the following flow valid
CQ1->ASSERT_INTA->CQ2/CQ3->Doorbell->DEASSERT_INTA ?

When using legacy interrupts, if CQ1 is sent followed by ASSERT_INTA, can the EP send
another CQ2,CQ3.. before DEASSERT_INTA of CQ1 is generated?

Regards,
Bharat


\
 
 \ /
  Last update: 2018-05-17 13:16    [W:0.052 / U:0.608 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site