#8454: Very low network performance with a Marvell Yukon card. ---------------------------------------------+---------------------------- Reporter: bga | Owner: nobody Type: bug | Status: new Priority: high | Milestone: R1/beta1 Component: Drivers/Network/marvell_yukon | Version: R1/Development Resolution: | Keywords: Blocked By: 8743 | Blocking: 8928 Has a Patch: 0 | Platform: All ---------------------------------------------+---------------------------- Comment (by mmlr): As I don't have the hardware I can't really test it, but from what I gathered from the discussion here and how I understood HAIKU_CHECK_DISABLE_INTERRUPTS() the duplicated entry in the interrupt handler needs to be disabled (as the original patch from Bruno did). However the patch did just remove the duplicate code, which should have left the status variable empty and the rest of the interrupt handler moot. As with the duplicate code in place things broke, I would guess that it is possible that reading the status twice might return different results. Since reading the register also has the side effect of masking further interrupts (as indicated by the comment), this seems possible as well. Since I don't have the register specs I can only guess however. In any case I've made two patches that may help here. The first patch ifdefs the duplicate code out but carries over the status value from check/disable to the interrupt handler as is done in other drivers. The second patch is inspired by the FreeBSD workaround Jerome point to, but does the check and acknowledge of the possible spurious interrupt at a different place that should actually be reached in the interrupt storm case. -- Ticket URL: <http://dev.haiku-os.org/ticket/8454#comment:43> Haiku <http://dev.haiku-os.org> Haiku - the operating system.