lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Sun, 30 Aug 2015 12:20:38 +0300
From:	Aleksey Makarov <feumilieu@...il.com>
To:	Alexey Klimov <klimov.linux@...il.com>
Cc:	netdev@...r.kernel.org, Robert Richter <rric@...nel.org>,
	David Daney <david.daney@...ium.com>,
	Sunil Goutham <Sunil.Goutham@...iumnetworks.com>,
	Aleksey Makarov <aleksey.makarov@...iumnetworks.com>,
	Linux Kernel Mailing List <linux-kernel@...r.kernel.org>,
	Robert Richter <robert.richter@...iumnetworks.com>,
	Sunil Goutham <sgoutham@...ium.com>,
	linux-arm-kernel@...ts.infradead.org
Subject: Re: [PATCH net-next 6/8] net: thunderx: Rework interrupt handler

On 29.08.2015 04:44, Alexey Klimov wrote:

>> -static irqreturn_t nicvf_intr_handler(int irq, void *nicvf_irq)
>> +static irqreturn_t nicvf_intr_handler(int irq, void *cq_irq)
>> +{
>> +       struct nicvf_cq_poll *cq_poll = (struct nicvf_cq_poll *)cq_irq;
>> +       struct nicvf *nic = cq_poll->nicvf;
>> +       int qidx = cq_poll->cq_idx;
>> +
>> +       nicvf_dump_intr_status(nic);
>> +
>> +       /* Disable interrupts */
>> +       nicvf_disable_intr(nic, NICVF_INTR_CQ, qidx);
>> +
>> +       /* Schedule NAPI */
>> +       napi_schedule(&cq_poll->napi);
>> +
>> +       /* Clear interrupt */
>> +       nicvf_clear_intr(nic, NICVF_INTR_CQ, qidx);
>> +
>> +       return IRQ_HANDLED;
>> +}
>
> You're not considering spurious irqs in all new irq handlers here and
> below and schedule napi/tasklets unconditionally. Is it correct?
> For me it looks like previous implementation relied on reading of
> NIC_VF_INT to understand irq type and what actions should be
> performed. It generally had idea that no interrupt might occur.

1. The previous version of the handler did not handle spurious 
interrupts either.  Probably that means that the author of the patch 
knows for sure that they do not happen.

2. Instead of reading the status register new version registers 
different handlers for different irqs.  I don't see why it can be wrong.

I am going to address your other suggestions in the next version of the 
patchset.

Thank you
Aleksey Makarov


--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ