From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: passt.top; dmarc=none (p=none dis=none) header.from=gibson.dropbear.id.au Authentication-Results: passt.top; dkim=pass (2048-bit key; secure) header.d=gibson.dropbear.id.au header.i=@gibson.dropbear.id.au header.a=rsa-sha256 header.s=202408 header.b=j1mm7Isw; dkim-atps=neutral Received: from mail.ozlabs.org (mail.ozlabs.org [IPv6:2404:9400:2221:ea00::3]) by passt.top (Postfix) with ESMTPS id DC8635A004F for ; Fri, 06 Sep 2024 07:17:17 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gibson.dropbear.id.au; s=202408; t=1725599833; bh=gM14dGmfVhdztQU07qF4cAjS1EmDsQhL7OoRMzMJ+MA=; h=From:To:Cc:Subject:Date:From; b=j1mm7IswOieGK9S8Oa+O/48j5RvEiiZy62xhMny+fl5Gz43huv1QsqqTmwkYU6XYf 31UPPqRU8QAEWRFSoccuX6GLudtuP6Wqib88F23i1N8odOVJXmLce6e+9T3K1Iq0F9 0CBjphUpptDN2WCgb8NN6kMSx2En/MFmX1loi9VB6W+Sy9hXfu85owWPG2gZRbtHi4 hv1sLVeNxqgGgnjIdcHu5f8VfFgX2Z16NXdC6UQgp5bwEYlHVdkznpac2ytJ0XoHTX umitYo+5Yrb1+1jFMT1HmianZG9yVgjZnuEUtnB/6ArpELD0ya7RXsC8xt+wl/XKZ7 RS9MjmMjPaeVw== Received: by gandalf.ozlabs.org (Postfix, from userid 1007) id 4X0Pc94Zccz4x7H; Fri, 6 Sep 2024 15:17:13 +1000 (AEST) From: David Gibson To: passt-dev@passt.top, Stefano Brivio Subject: [PATCH 0/6] RFC: Possible fixes for bug 94 and bug 95 Date: Fri, 6 Sep 2024 15:17:04 +1000 Message-ID: <20240906051710.3863211-1-david@gibson.dropbear.id.au> X-Mailer: git-send-email 2.46.0 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Message-ID-Hash: PJAF4ZBMCIH6OK5XOSLUHOK5UF22QPIC X-Message-ID-Hash: PJAF4ZBMCIH6OK5XOSLUHOK5UF22QPIC X-MailFrom: dgibson@gandalf.ozlabs.org X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header CC: David Gibson X-Mailman-Version: 3.3.8 Precedence: list List-Id: Development discussion and patches for passt Archived-At: Archived-At: List-Archive: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: As discussed on IRC through the last day, here's a more polished version of possible fixes for bug 94 (EPOLLRDHUP storm) and bug 95 (EPOLLERR storm). Both of those were sub-problems arising while investigating podman bug 23686. We're pretty confident about the EPOLLRDHUP fix (bug 94, patch 1/6), based on Stefano's testing. I ended up rewriting Stefano's draft patch for the EPOLLERR case (bug 95, remaining patches), because I thought of a possibility we hadn't discussed yet: we weren't getting an error from the socket error queue, but we might be able to get one with the SO_ERROR getsockopt(). My examination of the kernel code suggests that's plausible, and that if that's the case using SO_ERROR should also clear that error condition. Link: https://bugs.passt.top/show_bug.cgi?id=94 Link: https://bugs.passt.top/show_bug.cgi?id=95 Link: https://github.com/containers/podman/issues/23686 David Gibson (6): flow: Fix incorrect hash probe in flowside_lookup() udp: Allow UDP flows to be prematurely closed flow: Helpers to log details of a flow udp: Split socket error handling out from udp_sock_recv() udp: Treat errors getting errors as unrecoverable udp: Handle more error conditions in udp_sock_errs() flow.c | 53 ++++++++++++++++++++------------ flow.h | 7 +++++ udp.c | 88 +++++++++++++++++++++++++++++++++++++++++++++--------- udp_flow.c | 18 ++++++++++- udp_flow.h | 4 +++ 5 files changed, 136 insertions(+), 34 deletions(-) -- 2.46.0