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>] [day] [month] [year] [list]
Message-ID: <CAKSCDraxo81GPNekpEr-G5QX-9evum4r2-xjZAkXqeNXb9REow@mail.gmail.com>
Date:	Sat, 21 Feb 2015 13:15:10 +0200
From:	Tal Abudi <talabudi@...il.com>
To:	linux-kernel@...r.kernel.org
Subject: genirq - interrupt during MSI creation hangs the machine

Hi All

I'm back-porting the genirq patch series to my Linux 2.6.18.
After insmod'ing ixgbe driver with MQ enabled my machine hangs and I'm
unable to enter KDB.
I instrumented the MSIX and ixgbe drivers and found something strange.
The driver calls pci_enable_msix(with 41 vectors) ->
msix_capability_init() creates allocates msi descriptors and assign
each an IRQ.

An interrupt request occurs on IRQ 86 on a different CPU while it's
being created and handle_edge_irq() is being called.
The IRQ_DISABLED  flag is set so the edge handle masks and acks the interupt.
This sometimes hand the machine and sometimes BUG_ON it.
(mask_MSI_irq() -> msi_set_mask_bit(), is null since we are in the
middle of msi creation process).

This issue only happens when I load the driver with more than 1 MQ
interfaces (nvec is >2 in those cases).

Which mechanism should prevent this situations ?
Why it always happens on the same IRQ ?
Did I miss any genirq patch ?

Thank you so much !

-- 
Best regards,
Tal Abudi
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ