On Mon, Nov 29, 2021 at 02:45:15PM -0600, Lewis Donzis wrote:
>    Hello.
>    We just upgraded from 21.08 to 21.11 and it's rather astounding the
>    number of incompatible changes in three months.  Not a big deal, just
>    kind of a surprise, that's all.
>    Anyway, the problem is that the vmxnet3 driver is no longer functional
>    on FreeBSD.
>    In drivers/net/vmxnet3/vmxnet3_ethdev.c, vmxnet3_dev_start() gets an
>    error calling rte_intr_enable().  So it logs "interrupt enable failed"
>    and returns an error.
>    In lib/eal/freebsd/eal_interrupts.c, rte_intr_enable() is returning an
>    error because rte_intr_dev_fd_get(intr_handle) is returning -1.
>    I don't see how that could ever return anything other than -1 since it
>    appears that there is no code that ever calls rte_intr_dev_fd_set()
>    with a value other than -1 on FreeBSD.  Also weird to me is that even
>    if it didn't get an error, the switch statement that follows looks like
>    it will return an error in every case.
>    Nonetheless, it worked in 21.08, and I can't quite see why the
>    difference, so I must be missing something.
>    For the moment, I just commented the "return -EIO" in vmxnet3_ethdev.c,
>    and it's now working again, but that's obviously not the correct
>    solution.
>    Can someone who's knowledgable about this mechanism perhaps explain a
>    little bit about what's going on?  I'll be happy to help troubleshoot.
>    It seems like it must be something simple, but I just don't see it yet.

Hi

if you have the chance, it would be useful if you could use "git bisect" to
identify the commit in 21.11 that broke this driver. Looking through the
logs for 21.11 I can't identify any particular likely-looking commit, so
bisect is likely a good way to start looking into this.

Regards,
/Bruce

Reply via email to