FreeBSD Bugzilla – Attachment 206985 Details for
Bug 239118
iflib: Panic in ether_output_frame on ESXi
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
patch
iflib_single_irq_rx_only.diff (text/plain), 2.16 KB, created by
Marius Strobl
on 2019-08-28 17:57:37 UTC
(
hide
)
Description:
patch
Filename:
MIME Type:
Creator:
Marius Strobl
Created:
2019-08-28 17:57:37 UTC
Size:
2.16 KB
patch
obsolete
>Index: sys/net/iflib.c >=================================================================== >--- sys/net/iflib.c (revision 351572) >+++ sys/net/iflib.c (working copy) >@@ -6060,6 +6060,7 @@ iflib_legacy_setup(if_ctx_t ctx, driver_filter_t f > gtask_fn_t *fn; > void *q; > int err, tqrid; >+ bool rx_only; > > q = &ctx->ifc_rxqs[0]; > info = &rxq[0].ifr_filter_info; >@@ -6067,17 +6068,19 @@ iflib_legacy_setup(if_ctx_t ctx, driver_filter_t f > tqg = qgroup_if_io_tqg; > tqrid = *rid; > fn = _task_fn_rx; >+ rx_only = !!(ctx->ifc_sctx->isc_flags & IFLIB_SINGLE_IRQ_RX_ONLY); > > ctx->ifc_flags |= IFC_LEGACY; > info->ifi_filter = filter; > info->ifi_filter_arg = filter_arg; > info->ifi_task = gtask; >- info->ifi_ctx = q; >+ info->ifi_ctx = rx_only ? ctx : q; > > dev = ctx->ifc_dev; > /* We allocate a single interrupt resource */ >- if ((err = _iflib_irq_alloc(ctx, irq, tqrid, iflib_fast_intr_rxtx, >- NULL, info, name)) != 0) >+ err = _iflib_irq_alloc(ctx, irq, tqrid, rx_only ? iflib_fast_intr_ctx : >+ iflib_fast_intr_rxtx, NULL, info, name); >+ if (err != 0) > return (err); > GROUPTASK_INIT(gtask, 0, fn, q); > res = irq->ii_res; >Index: sys/net/iflib.h >=================================================================== >--- sys/net/iflib.h (revision 351572) >+++ sys/net/iflib.h (working copy) >@@ -366,6 +366,11 @@ typedef enum { > * Driver will pass the media > */ > #define IFLIB_DRIVER_MEDIA 0x20000 >+/* >+ * When using a single hardware interrupt for the interface, only process RX >+ * interrupts instead of doing combined RX/TX processing. >+ */ >+#define IFLIB_SINGLE_IRQ_RX_ONLY 0x40000 > > /* > * field accessors >Index: sys/dev/vmware/vmxnet3/if_vmx.c >=================================================================== >--- sys/dev/vmware/vmxnet3/if_vmx.c (revision 351572) >+++ sys/dev/vmware/vmxnet3/if_vmx.c (working copy) >@@ -287,7 +287,7 @@ static struct if_shared_ctx vmxnet3_sctx_init = { > .isc_vendor_info = vmxnet3_vendor_info_array, > .isc_driver_version = "2", > .isc_driver = &vmxnet3_iflib_driver, >- .isc_flags = IFLIB_HAS_RXCQ | IFLIB_HAS_TXCQ, >+ .isc_flags = IFLIB_HAS_RXCQ | IFLIB_HAS_TXCQ | IFLIB_SINGLE_IRQ_RX_ONLY, > > /* > * Number of receive queues per receive queue set, with associated
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 239118
:
205671
|
205876
|
206985