From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id A7DD0A0350 for ; Mon, 21 Feb 2022 16:42:18 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 892AA410F0; Mon, 21 Feb 2022 16:42:18 +0100 (CET) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by mails.dpdk.org (Postfix) with ESMTP id EB807410F0 for ; Mon, 21 Feb 2022 16:42:17 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1645458137; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=0cd2wOiY4SRBLVF02wL45Q0KshRoi/xzWrSiGzDvhDU=; b=BBoHoqgtDYOm89/aHU8hJlb9a7zVJk4FJleHqB1jIpjYX70VpoUnRh/c4CGBo8IQbjUV5q SUbeUnTl52Zke26k5ImJo5Mjc4KweIEQrG7/dHx4gDzbO1w/kz4ZsYEwtQjSlVjlnFdxbz YhUfefKjpZpgx0iZWOWxdzdIa/MxBFg= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-308-nuc6mmooOMa7__PqgTLAAw-1; Mon, 21 Feb 2022 10:42:15 -0500 X-MC-Unique: nuc6mmooOMa7__PqgTLAAw-1 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 0E793100C661; Mon, 21 Feb 2022 15:42:14 +0000 (UTC) Received: from rh.Home (unknown [10.39.195.12]) by smtp.corp.redhat.com (Postfix) with ESMTP id 02C347E2F3; Mon, 21 Feb 2022 15:42:12 +0000 (UTC) From: Kevin Traynor To: Stephen Hemminger Cc: Anatoly Burakov , dpdk stable Subject: patch 'ipc: end multiprocess thread during cleanup' has been queued to stable release 21.11.1 Date: Mon, 21 Feb 2022 15:35:46 +0000 Message-Id: <20220221153625.152324-157-ktraynor@redhat.com> In-Reply-To: <20220221153625.152324-1-ktraynor@redhat.com> References: <20220221153625.152324-1-ktraynor@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=ktraynor@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset="US-ASCII" X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: stable-bounces@dpdk.org Hi, FYI, your patch has been queued to stable release 21.11.1 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 02/26/22. So please shout if anyone has objections. Also note that after the patch there's a diff of the upstream commit vs the patch applied to the branch. This will indicate if there was any rebasing needed to apply to the stable branch. If there were code changes for rebasing (ie: not only metadata diffs), please double check that the rebase was correctly done. Queued patches are on a temporary branch at: https://github.com/kevintraynor/dpdk-stable This queued commit can be viewed at: https://github.com/kevintraynor/dpdk-stable/commit/c32322e508b9b26944be05cffe5407e60b88416e Thanks. Kevin --- >From c32322e508b9b26944be05cffe5407e60b88416e Mon Sep 17 00:00:00 2001 From: Stephen Hemminger Date: Sat, 13 Nov 2021 09:22:54 -0800 Subject: [PATCH] ipc: end multiprocess thread during cleanup [ upstream commit 6e858b4d9244cf53505589673755ab18ac2a4a83 ] When rte_eal_cleanup is called, all control threads should exit. For the mp thread, this best handled by closing the mp_socket and letting the thread see that. This also fixes potential problems where the mp_socket gets another hard error, and the thread runs away repeating itself by reading the same error. Fixes: 85d6815fa6d0 ("eal: close multi-process socket during cleanup") Signed-off-by: Stephen Hemminger Acked-by: Anatoly Burakov --- lib/eal/common/eal_common_proc.c | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/lib/eal/common/eal_common_proc.c b/lib/eal/common/eal_common_proc.c index ebd0f6673b..b33d58ea0a 100644 --- a/lib/eal/common/eal_common_proc.c +++ b/lib/eal/common/eal_common_proc.c @@ -283,6 +283,15 @@ read_msg(struct mp_msg_internal *m, struct sockaddr_un *s) msgh.msg_controllen = sizeof(control); +retry: msglen = recvmsg(mp_fd, &msgh, 0); + + /* zero length message means socket was closed */ + if (msglen == 0) + return 0; + if (msglen < 0) { + if (errno == EINTR) + goto retry; + RTE_LOG(ERR, EAL, "recvmsg failed, %s\n", strerror(errno)); return -1; @@ -312,5 +321,5 @@ read_msg(struct mp_msg_internal *m, struct sockaddr_un *s) return -1; } - return 0; + return msglen; } @@ -386,6 +395,11 @@ mp_handle(void *arg __rte_unused) while (mp_fd >= 0) { - if (read_msg(&msg, &sa) == 0) - process_msg(&msg, &sa); + int ret; + + ret = read_msg(&msg, &sa); + if (ret <= 0) + break; + + process_msg(&msg, &sa); } -- 2.34.1 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2022-02-21 15:22:47.962920211 +0000 +++ 0157-ipc-end-multiprocess-thread-during-cleanup.patch 2022-02-21 15:22:44.307704612 +0000 @@ -1 +1 @@ -From 6e858b4d9244cf53505589673755ab18ac2a4a83 Mon Sep 17 00:00:00 2001 +From c32322e508b9b26944be05cffe5407e60b88416e Mon Sep 17 00:00:00 2001 @@ -5,0 +6,2 @@ +[ upstream commit 6e858b4d9244cf53505589673755ab18ac2a4a83 ] + @@ -15 +16,0 @@ -Cc: stable@dpdk.org