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 82E34A00C2 for ; Thu, 17 Nov 2022 08:40:56 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 7F67640DDC; Thu, 17 Nov 2022 08:40:56 +0100 (CET) Received: from smtp-relay-internal-0.canonical.com (smtp-relay-internal-0.canonical.com [185.125.188.122]) by mails.dpdk.org (Postfix) with ESMTP id 7F0FC40DDA for ; Thu, 17 Nov 2022 08:40:55 +0100 (CET) Received: from mail-oa1-f69.google.com (mail-oa1-f69.google.com [209.85.160.69]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by smtp-relay-internal-0.canonical.com (Postfix) with ESMTPS id E39C93F11B for ; Thu, 17 Nov 2022 07:40:54 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=canonical.com; s=20210705; t=1668670854; bh=TnpN3rnaFIahc/Wm0Uf7In3AXf/Fe3coL3sZWyWDrA0=; h=MIME-Version:References:In-Reply-To:From:Date:Message-ID:Subject: To:Cc:Content-Type; b=u7izHCoqIqeM+zVg/LQL/QPWpoe0ruHKR/dsNbRZlARoUSX9Qalj3QeSqPnyiBlre JSA6RRU8DMi/m6/XHtmeOHD/rT393nZMh3OGLVLN80MHnp7YIA0qq24AW8JGxxKttb DY1tNzQkQbrfvBlDPkWXCQRpCOQ0b4Dfv3Yk37wVadnZjaCAkjv/QHPqtPV6Z+uHuT UHRpx4ROFsbdkF/XrgCuDR9id2q53A1uYhwu1lEz7ehZa3vqI1/oVNype5gA14VA4I QCNCE0rtpC5DIwKcsqXf7XrzUfGP4aVNTvSQvygq4RWilqYwWwgAh+haMB3fFcslkh B5r/tMUKAsU0A== Received: by mail-oa1-f69.google.com with SMTP id 586e51a60fabf-13b041fd3cbso461145fac.16 for ; Wed, 16 Nov 2022 23:40:54 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=TnpN3rnaFIahc/Wm0Uf7In3AXf/Fe3coL3sZWyWDrA0=; b=II40iRHToBSKODSxCy15b+UVO0IkgwKbi8K/RkoZ76eeRYd5/pp/LoAcCDM1AGdD1O cNAD2UX6SR48osowOB/X9ACUR7/OkIC5N2GEAe3xEGHJE4MYl1BaP9T5hRXjMuDjc965 oPHMQMyNa+DA57J031c5ALuWxvvpdXusA+D6D5oLNq8u7zU2vFyQioNgC0nWu2s5OMXo a00oukSbEzTtfyk+0ghfr2NsfFXndlMax+G0F7EXTgpvjLjCSrMfIl0MYFJ0mUlXUYwm 7OY0+FpBRuYzeHnTmHKzrRJsJERQ82I+K+WBqy+kY9FK0BI86PQzaXdcsx14iWcxLGCU 1oQg== X-Gm-Message-State: ANoB5pkt2uOEu5XXIAuXGu4UZzed4sqTpNqOuj1quhIvziL3/r2XroQL WCakzDfTlcEe+2i7aTi1rGgBoEiA071pxQeQsqAqWkdHvEPV63wK4rkkt28AK1Cohta2Q7pB9dp lEG5P4S8TwMHrTx0hvqfKtLLpZPSeTW30ACsE4Vy5 X-Received: by 2002:a05:6808:3011:b0:354:74a1:d0a with SMTP id ay17-20020a056808301100b0035474a10d0amr3465217oib.204.1668670853735; Wed, 16 Nov 2022 23:40:53 -0800 (PST) X-Google-Smtp-Source: AA0mqf7d+HKtsZ16gVBAdh1HvMXCCJMISmtN9tpOiA/Mi869RKkmNBjd7/UKVsbdEB2UgjnvuYRygIyUExKEDsQ5120= X-Received: by 2002:a05:6808:3011:b0:354:74a1:d0a with SMTP id ay17-20020a056808301100b0035474a10d0amr3465212oib.204.1668670853490; Wed, 16 Nov 2022 23:40:53 -0800 (PST) MIME-Version: 1.0 References: <1668626738-30282-1-git-send-email-longli@microsoft.com> In-Reply-To: <1668626738-30282-1-git-send-email-longli@microsoft.com> From: Christian Ehrhardt Date: Thu, 17 Nov 2022 08:40:27 +0100 Message-ID: Subject: Re: [PATCH 19.11] net/mlx5: fix Verbs FD leak in secondary process To: longli@microsoft.com Cc: stable@dpdk.org Content-Type: text/plain; charset="UTF-8" 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 On Wed, Nov 16, 2022 at 8:26 PM Long Li wrote: > > [ upstream commit bc5d8fdb7008210e2698fa1f91e51d7dfba00f77 ] Applied, thanks! > FDs passed from rte_mp_msg are duplicated to the secondary process and > need to be closed. > > Fixes: 9a8ab29b84 ("net/mlx5: replace IPC socket with EAL API") > Cc: stable@dpdk.org > > Signed-off-by: Long Li > Acked-by: Viacheslav Ovsiienko > --- > drivers/net/mlx5/mlx5.c | 9 ++++++--- > drivers/net/mlx5/mlx5_mp.c | 6 +++++- > 2 files changed, 11 insertions(+), 4 deletions(-) > > diff --git a/drivers/net/mlx5/mlx5.c b/drivers/net/mlx5/mlx5.c > index dee018bbba..2d0f9625fb 100644 > --- a/drivers/net/mlx5/mlx5.c > +++ b/drivers/net/mlx5/mlx5.c > @@ -2291,6 +2291,8 @@ mlx5_dev_spawn(struct rte_device *dpdk_dev, > } > DRV_LOG(DEBUG, "naming Ethernet device \"%s\"", name); > if (rte_eal_process_type() == RTE_PROC_SECONDARY) { > + int fd; > + > eth_dev = rte_eth_dev_attach_secondary(name); > if (eth_dev == NULL) { > DRV_LOG(ERR, "can not attach rte ethdev"); > @@ -2303,11 +2305,12 @@ mlx5_dev_spawn(struct rte_device *dpdk_dev, > if (err) > return NULL; > /* Receive command fd from primary process */ > - err = mlx5_mp_req_verbs_cmd_fd(eth_dev); > - if (err < 0) > + fd = mlx5_mp_req_verbs_cmd_fd(eth_dev); > + if (fd < 0) > goto err_secondary; > /* Remap UAR for Tx queues. */ > - err = mlx5_tx_uar_init_secondary(eth_dev, err); > + err = mlx5_tx_uar_init_secondary(eth_dev, fd); > + close(fd); > if (err) > goto err_secondary; > /* > diff --git a/drivers/net/mlx5/mlx5_mp.c b/drivers/net/mlx5/mlx5_mp.c > index 6b7f5f3dcb..7e05217cda 100644 > --- a/drivers/net/mlx5/mlx5_mp.c > +++ b/drivers/net/mlx5/mlx5_mp.c > @@ -142,14 +142,18 @@ mp_secondary_handle(const struct rte_mp_msg *mp_msg, const void *peer) > mlx5_tx_uar_uninit_secondary(dev); > mlx5_proc_priv_uninit(dev); > ret = mlx5_proc_priv_init(dev); > - if (ret) > + if (ret) { > + close(mp_msg->fds[0]); > return -rte_errno; > + } > ret = mlx5_tx_uar_init_secondary(dev, mp_msg->fds[0]); > if (ret) { > + close(mp_msg->fds[0]); > mlx5_proc_priv_uninit(dev); > return -rte_errno; > } > } > + close(mp_msg->fds[0]); > rte_mb(); > mp_init_msg(dev, &mp_res, param->type); > res->result = 0; > -- > 2.17.1 > -- Christian Ehrhardt Senior Staff Engineer, Ubuntu Server Canonical Ltd