From 76ade4a7f1b2e3a25879013ad1a19568c5fa557a Mon Sep 17 00:00:00 2001 From: bluhm Date: Sat, 30 Dec 2023 17:52:27 +0000 Subject: [PATCH] Set ixl(4) IXL_TX_PKT_DESCS to 8. Mark Patruck has reported problems with ixl revision 1.90 TSO diff. He uses ixl device passthrough from Linux via KVM to OpenBSD guest. After a few hours of operation, interface locks up with oactive. The problem also occures with TSO disabled, after the TSO diff had been commited. deraadt@ has seen similar problems with ixl interface on sparc64. Changing IXL_TX_PKT_DESCS back to the original value 8 fixes the lockup and even TSO on the hardware still works. FreeBSD and NetBSD also use this value. The 32 was copied from ix(4) TSO diff and is not necessary for ixl(4). debugged with jan@; lot of bisecting and testing by Mark Patruck OK mglocker@ patrick@ --- sys/dev/pci/if_ixl.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sys/dev/pci/if_ixl.c b/sys/dev/pci/if_ixl.c index fb378235106..88e0bb93f24 100644 --- a/sys/dev/pci/if_ixl.c +++ b/sys/dev/pci/if_ixl.c @@ -1,4 +1,4 @@ -/* $OpenBSD: if_ixl.c,v 1.93 2023/11/10 15:51:20 bluhm Exp $ */ +/* $OpenBSD: if_ixl.c,v 1.94 2023/12/30 17:52:27 bluhm Exp $ */ /* * Copyright (c) 2013-2015, Intel Corporation @@ -900,7 +900,7 @@ struct ixl_rx_wb_desc_32 { uint64_t qword3; } __packed __aligned(16); -#define IXL_TX_PKT_DESCS 32 +#define IXL_TX_PKT_DESCS 8 #define IXL_TX_QUEUE_ALIGN 128 #define IXL_RX_QUEUE_ALIGN 128 -- 2.20.1