net/vmxnet3: Don't enable rx queue interrupts on FreeBSD
Checks
Commit Message
Commit 29a1c9107bb disabled interrupts on FreeBSD for the vmxnet3 driver
as they are not supported. Rx queue interrupts were missed by this
change, don't attempt to enable them on FreeBSD.
Without this change applications enabling interrupts encounter an
immediate abort on FreeBSD.
Signed-off-by: Tom Jones <thj@freebsd.org>
---
drivers/net/vmxnet3/vmxnet3_ethdev.c | 2 ++
1 file changed, 2 insertions(+)
Comments
Hello Tom,
On Thu, Mar 21, 2024 at 11:00 AM Tom Jones <thj@freebsd.org> wrote:
>
> Commit 29a1c9107bb disabled interrupts on FreeBSD for the vmxnet3 driver
> as they are not supported. Rx queue interrupts were missed by this
> change, don't attempt to enable them on FreeBSD.
>
> Without this change applications enabling interrupts encounter an
> immediate abort on FreeBSD.
Thanks for the patch, you will probably want this fix backported in
LTS versions.
If so, please add a Fixes: tag and Cc: stable@dpdk.org.
I guess here, it is:
Fixes: 40d5676ff1ea ("net/vmxnet3: fix initialization on FreeBSD")
Cc: Bruce
Reading again the commitlog, I wonder if we should error out in
vmxnet3_configure_msix() if rx (and/or lsc) interrupts are requested
for FreeBSD.
Did you consider this approach?
On Thu, Mar 21, 2024, at 10:15, David Marchand wrote:
> Hello Tom,
>
> On Thu, Mar 21, 2024 at 11:00 AM Tom Jones <thj@freebsd.org> wrote:
>>
>> Commit 29a1c9107bb disabled interrupts on FreeBSD for the vmxnet3 driver
>> as they are not supported. Rx queue interrupts were missed by this
>> change, don't attempt to enable them on FreeBSD.
>>
>> Without this change applications enabling interrupts encounter an
>> immediate abort on FreeBSD.
>
> Thanks for the patch, you will probably want this fix backported in
> LTS versions.
> If so, please add a Fixes: tag and Cc: stable@dpdk.org.
> I guess here, it is:
> Fixes: 40d5676ff1ea ("net/vmxnet3: fix initialization on FreeBSD")
Thanks! updated
>
> Reading again the commitlog, I wonder if we should error out in
> vmxnet3_configure_msix() if rx (and/or lsc) interrupts are requested
> for FreeBSD.
> Did you consider this approach?
>
I haven't dug much futher into this. I also changed the application side (vpp) to not request interrupts. I think there are probably some other FreeBSD specific cases to explore in vmxnet3, but I don't have a great environment for testing yet.
- Tom
@@ -1936,11 +1936,13 @@ vmxnet3_interrupt_handler(void *param)
static int
vmxnet3_dev_rx_queue_intr_enable(struct rte_eth_dev *dev, uint16_t queue_id)
{
+#ifndef RTE_EXEC_ENV_FREEBSD
struct vmxnet3_hw *hw = dev->data->dev_private;
vmxnet3_enable_intr(hw,
rte_intr_vec_list_index_get(dev->intr_handle,
queue_id));
+#endif
return 0;
}