Re: still seeing network freezes with rtl8139 nic

Avi Kivity
2008-02-25T08:54:46Z

david ahern wrote:
> I've run a lot more tests:
>
>
> - if I remove the "if (!change) return" optimization from pci_set_irq the
> rtl8139 nic worked fine for 16+ hours. I'm not recommending this as a fix, just
> confirming that the problem goes away.
>
>

Interesting. What can cause this to happen?

- some non-pci device shares the same irq (unlikely)

- the pci link sharing is broken. Is the eth0 irq shared?

Please post /proc/interrupts.

- the in-kernel ioapic is buggy and needs the extra kicking the
optimization prevents. Can be checked by re-adding the optimization to
kvm_ioapic_set_irq() (keeping it removed in qemu). If it works, the
problem is in userspace. If it fails, the problem is in the kernel.

Something like

static int old_level[16];

if (level == old_level[irq])
return;
old_level[irq] = level;

--
Do not meddle in the internals of kernels, for they are subtle and quick to panic.