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 A481C42D83 for ; Wed, 28 Jun 2023 16:12:08 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 9F7BC42D1D; Wed, 28 Jun 2023 16:12:08 +0200 (CEST) Received: from mail-wr1-f44.google.com (mail-wr1-f44.google.com [209.85.221.44]) by mails.dpdk.org (Postfix) with ESMTP id 8AC8B42D1D for ; Wed, 28 Jun 2023 16:12:07 +0200 (CEST) Received: by mail-wr1-f44.google.com with SMTP id ffacd0b85a97d-3113dabc549so7604259f8f.1 for ; Wed, 28 Jun 2023 07:12:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1687961527; x=1690553527; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=h0JAKb1hEPuUGBCKEa+wTQ9nuKVlCDESfkpoRzOeTms=; b=EvyXEbAZoT2gpXVBOaHkoh0Vf87IC7uiENfeSmloYcgTR+cJvdG5CxYnc6QIXinzN6 yLYiPsLzGpS04PF/S4YEwcVia47g8XTsofPKpjafOXxsUTRDPChYSmBaZxMxVHryGAuu TXnVQibgpf3OTFz0kqkHcHYZaBy8pX6rhrvER+nNBUgjItPjrv2y6GeWYTtdV5RktBfs j1Tjacq41ojA6NizYczRmgvqJ89IltfVy1n6+gCTOREviU9fx9ExolQ3sIhcDr0HtQNy WFy9rUgj3WkLrG0yvta3xKCoTMDDC13zZV0f/4/X/WhR9HYeWoQHAJOvwlVVk6onhb/E pkVg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687961527; x=1690553527; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=h0JAKb1hEPuUGBCKEa+wTQ9nuKVlCDESfkpoRzOeTms=; b=GHtkH8180achpPRmqjeY420GpVFd4JTNvHCZv/+qSU5y2XCLR34IiOJFyjoM4hNhhF hClINAzs74FN1kvgn8XsMD2X6Y4rjXD2CCjIk6xrwvy9a2s4JQ+9PrQCmzgCMv+IaSv+ x6y7H2ZbonQQ7k3dUXzbpBjx5bKcAJzDN5YeTJuyQoYGY25BUyCUUIzuiZtosRxDEcjs 46lgOJtPGNRXJz5domvZVEkTattjH7mW0daWvyV5KkvRYUuc+cmyWWT2posdmL82rYb8 44hjkdjAS5LH3EkdSpggtcAIaGQxPiMYk87W2AqGQiBLX0XMiJzH2AccvUv5GcNVFyfU fVzw== X-Gm-Message-State: AC+VfDzHlG8duszKOugzAP1nBaJtcFhcJOHDKafqKusC9bxFAK21epJK 7UNPpxWJMqrReJ3DM7N8HtIA2xScev2xsQ== X-Google-Smtp-Source: ACHHUZ6pxF1DE15Mr8m3nFvgOFhb7KRbN9iZz2qt6a4qgWb1uDVchigZjZXIw7wpW1KSRU5S8PvxOg== X-Received: by 2002:a05:6000:104f:b0:311:110d:5573 with SMTP id c15-20020a056000104f00b00311110d5573mr38231319wrx.64.1687961527082; Wed, 28 Jun 2023 07:12:07 -0700 (PDT) Received: from localhost ([2a01:4b00:d307:1000:f1d3:eb5e:11f4:a7d9]) by smtp.gmail.com with ESMTPSA id o13-20020a5d474d000000b003113513f491sm3605918wrs.114.2023.06.28.07.12.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 28 Jun 2023 07:12:06 -0700 (PDT) From: luca.boccassi@gmail.com To: Erez Ferber Cc: Viacheslav Ovsiienko , dpdk stable Subject: patch 'common/mlx5: adjust fork call with new kernel API' has been queued to stable release 20.11.9 Date: Wed, 28 Jun 2023 15:10:46 +0100 Message-Id: <20230628141046.2145871-22-luca.boccassi@gmail.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230628141046.2145871-1-luca.boccassi@gmail.com> References: <20230615013258.1439718-63-luca.boccassi@gmail.com> <20230628141046.2145871-1-luca.boccassi@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit 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 20.11.9 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 06/30/23. 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/bluca/dpdk-stable This queued commit can be viewed at: https://github.com/bluca/dpdk-stable/commit/893798a07c221da3e952d13a66b4449539cc3412 Thanks. Luca Boccassi --- >From 893798a07c221da3e952d13a66b4449539cc3412 Mon Sep 17 00:00:00 2001 From: Erez Ferber Date: Wed, 24 May 2023 15:01:40 +0300 Subject: [PATCH] common/mlx5: adjust fork call with new kernel API [ upstream commit 42f113c53cbbbc4585ad68b4d2a8aa9bddad23da ] While doing process fork() the operating system remaps all the parent process's memory to the address space of the child process and activates the Copy-on-Write mechanics - it duplicates physical pages once memory writing happens in the child process. Sometimes memory duplication is not allowed - for example, if the page contains hardware queue descriptors. To handle similar issues the rdma-core library should be prepared for forking. The ibv_fork_init() prepares the library to track all the related memory and prevent it from forking using madvise() system API. This approach allows fork, but not all the memory is forked to the child process and, application should care not to touch pages where the parent application allocated the rdma-core objects. The newer kernels propose an option of copy-on-fork for DMA pages and tracking all the memory and disabling it for the forking is no longer needed. The new API routine ibv_is_fork_initialized() should be involved to decide if library initialization for forking is required. Fixes: 0e83b8e536c1 ("net/mlx5: move rdma-core calls to separate file") Signed-off-by: Erez Ferber Acked-by: Viacheslav Ovsiienko --- drivers/common/mlx5/linux/meson.build | 2 ++ drivers/common/mlx5/linux/mlx5_glue.c | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/drivers/common/mlx5/linux/meson.build b/drivers/common/mlx5/linux/meson.build index 43d70c1324..e000bbb211 100644 --- a/drivers/common/mlx5/linux/meson.build +++ b/drivers/common/mlx5/linux/meson.build @@ -190,6 +190,8 @@ has_sym_args = [ 'mlx5dv_dr_action_create_aso' ], [ 'HAVE_MLX5_IBV_REG_MR_IOVA', 'infiniband/verbs.h', 'ibv_reg_mr_iova' ], + [ 'HAVE_IBV_FORK_UNNEEDED', 'infiniband/verbs.h', + 'ibv_is_fork_initialized'], ] config = configuration_data() foreach arg:has_sym_args diff --git a/drivers/common/mlx5/linux/mlx5_glue.c b/drivers/common/mlx5/linux/mlx5_glue.c index 97ac5d3b5e..c1aae60478 100644 --- a/drivers/common/mlx5/linux/mlx5_glue.c +++ b/drivers/common/mlx5/linux/mlx5_glue.c @@ -19,6 +19,10 @@ static int mlx5_glue_fork_init(void) { +#ifdef HAVE_IBV_FORK_UNNEEDED + if (ibv_is_fork_initialized() == IBV_FORK_UNNEEDED) + return 0; /* ibv_fork_init() not needed */ +#endif return ibv_fork_init(); } -- 2.39.2 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2023-06-28 11:40:08.996947261 +0100 +++ 0022-common-mlx5-adjust-fork-call-with-new-kernel-API.patch 2023-06-28 11:40:08.092028248 +0100 @@ -1 +1 @@ -From 42f113c53cbbbc4585ad68b4d2a8aa9bddad23da Mon Sep 17 00:00:00 2001 +From 893798a07c221da3e952d13a66b4449539cc3412 Mon Sep 17 00:00:00 2001 @@ -5,0 +6,2 @@ +[ upstream commit 42f113c53cbbbc4585ad68b4d2a8aa9bddad23da ] + @@ -26 +27,0 @@ -Cc: stable@dpdk.org @@ -36 +37 @@ -index 718da020f7..15edc13041 100644 +index 43d70c1324..e000bbb211 100644 @@ -39,4 +40,4 @@ -@@ -221,6 +221,8 @@ has_sym_args = [ - 'mlx5dv_dr_action_create_dest_root_table' ], - [ 'HAVE_MLX5DV_CREATE_STEERING_ANCHOR', 'infiniband/mlx5dv.h', - 'mlx5dv_create_steering_anchor'], +@@ -190,6 +190,8 @@ has_sym_args = [ + 'mlx5dv_dr_action_create_aso' ], + [ 'HAVE_MLX5_IBV_REG_MR_IOVA', 'infiniband/verbs.h', + 'ibv_reg_mr_iova' ], @@ -46,2 +47,2 @@ - if libmtcr_ul_found - has_sym_args += [ + config = configuration_data() + foreach arg:has_sym_args @@ -49 +50 @@ -index 3497aa940d..6f858db8fc 100644 +index 97ac5d3b5e..c1aae60478 100644