Received: by 2002:a05:6a10:af89:0:0:0:0 with SMTP id iu9csp4020783pxb; Tue, 25 Jan 2022 01:34:37 -0800 (PST) X-Google-Smtp-Source: ABdhPJyXRsYZpp0zcSaRHbUhd/DWfsPw/hnzGo5iIlnjPA2Hr3zbOyCHFw+AzzmGQHPKKC+VqkWK X-Received: by 2002:a17:903:32cd:b0:14b:59c1:11e7 with SMTP id i13-20020a17090332cd00b0014b59c111e7mr6845930plr.167.1643103277659; Tue, 25 Jan 2022 01:34:37 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1643103277; cv=none; d=google.com; s=arc-20160816; b=r8v6JT1f/VBctAbwrGpLfa56+h8jBrfsudWCh0nRcY2GdTtKDw/GjyTWV99F4rdLiy dmcXJmoH5vm4CWnPMVupbvjVLiqLk/6c3CsP3vmvCwuH8jTFKM4F9LiaOQ62YxKdidR7 WToDq3OULJ7KgpB7P1vklnp/5k+VKhTBBeXLHFomuGmZFKpP4EW32DIx/96m2qH5VZ+9 4vTsdKkrhAwC2QiqzM64Y5C0w+xMS/m0I9KGKKZaJoZUVvAmzwNu9+6/zUulmTWQ9a2Q 0NIXqbH3tn1y6+xrbX2jcG37urE72UITxMesXrQZg5CpmkvAKvHCv+FM0ozr10Dn/rNo HlbA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :ironport-hdrordr:ironport-data; bh=xK8YKm6nRNnduBgHEmlhoql4Avjvs2JjPHztedsjktw=; b=iJrmFWaGUhtTTSfSpcTLMBrG320AOxcWD0Oc1d3uRVhcoU1fxogqIlgZF1ouAM2bHq GcSb1otnO4AuPip/E/E6cbWXMN2lJ3/Kd2nKVIdjraaiuAFJeGrpZR+OzDRk13iGh4eq TcYhuO8MDTSW423Ut7FihIT4oNyBjmcGNCgot6kTiaoxuWD+A8jsRfa9zPLUeA12fy8e /ijtbH9sAeEg3j1QNsyt4DKQCcrVZ0O0VUScjMqr7dq5PDxlSXknlWgf70L4odiF+OU3 p1fe0sND1cqAvB/xatny3Yp04Whj5N53yb9123WJDxdFXKpfVNX34Bj69fh+yHFm0XkY B4jQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=fujitsu.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id o10si19021461pgu.470.2022.01.25.01.34.25; Tue, 25 Jan 2022 01:34:37 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=fujitsu.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1452601AbiAYItw (ORCPT + 99 others); Tue, 25 Jan 2022 03:49:52 -0500 Received: from mail.cn.fujitsu.com ([183.91.158.132]:7819 "EHLO heian.cn.fujitsu.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1379401AbiAYIq5 (ORCPT ); Tue, 25 Jan 2022 03:46:57 -0500 IronPort-Data: =?us-ascii?q?A9a23=3AEAVSWKxtiYQKq8RaqpJ6t+c4xyrEfRIJ4+MujC/?= =?us-ascii?q?XYbTApD4l1TwOnWcaX22HOqyLMGL3eNB2bIyw9B5XsZeBm4BjHQtv/xmBbVoQ9?= =?us-ascii?q?5OdWo7xwmQcns+qBpSaChohtq3yU/GYRCwPZiKa9kfF3oTJ9yEmj/nRHOekUYY?= =?us-ascii?q?oBwgqLeNaYHZ44f5cs75h6mJYqYDR7zKl4bsekeWGULOW82Ic3lYv1k62gEgHU?= =?us-ascii?q?MIeF98vlgdWifhj5DcynpSOZX4VDfnZw3DQGuG4EgMmLtsvwo1V/kuBl/ssIti?= =?us-ascii?q?j1LjmcEwWWaOUNg+L4pZUc/H6xEEc+WppieBmXBYfQR4/ZzGhm9FjyNRPtJW2Y?= =?us-ascii?q?Qk0PKzQg/lbWB5de817FfQcoO+ccCPh4aR/yGWDKRMA2c5GFlk7NJcD/eB3GWx?= =?us-ascii?q?m+vkRKTRLZReG78qk0bCpW+s23px7BMbuNYIb/HpnyFnxCfcvR5/cTqPS6NlX9?= =?us-ascii?q?Dctj99DHLDVYM9xQTZmalLCJQJOPlMWAZcltOaumnT7NTZfrTq9ua0y6nPBigN?= =?us-ascii?q?r173kPMjWe/SLQ9lYmgCToWeu12D0BRcyN9GFzzeBtHW2iYfnlCPyQoUUEJW+6?= =?us-ascii?q?P9mgVTVzWsWYDUTX1+8qvmRjFC/V9NWbUcT/0IGsa833FCiSsHwTluzp3vslho?= =?us-ascii?q?dXcdAVu438geAzoLK7AuDQGsJVDhMbJohrsBebTgr0EKZ2snlADVHrrKYUzSe+?= =?us-ascii?q?62SoDf0PjIaRUcAaiAsXwoI+9Slq4hbs/5lZr6PC4bs1pusR262mGvM8UADa3w?= =?us-ascii?q?opZZj/82GEZrv2FpAfqT0czM=3D?= IronPort-HdrOrdr: =?us-ascii?q?A9a23=3AGsMTuqwNnWWonhJYnjO2KrPwEL1zdoMgy1kn?= =?us-ascii?q?xilNoH1uA6ilfqWV8cjzuiWbtN9vYhsdcLy7WZVoIkmskKKdg7NhXotKNTOO0A?= =?us-ascii?q?SVxepZnOnfKlPbexHWx6p00KdMV+xEAsTsMF4St63HyTj9P9E+4NTvysyVuds?= =?us-ascii?q?=3D?= X-IronPort-AV: E=Sophos;i="5.88,314,1635177600"; d="scan'208";a="120839368" Received: from unknown (HELO cn.fujitsu.com) ([10.167.33.5]) by heian.cn.fujitsu.com with ESMTP; 25 Jan 2022 16:44:29 +0800 Received: from G08CNEXMBPEKD05.g08.fujitsu.local (unknown [10.167.33.204]) by cn.fujitsu.com (Postfix) with ESMTP id D10854D169C7; Tue, 25 Jan 2022 16:44:28 +0800 (CST) Received: from G08CNEXCHPEKD09.g08.fujitsu.local (10.167.33.85) by G08CNEXMBPEKD05.g08.fujitsu.local (10.167.33.204) with Microsoft SMTP Server (TLS) id 15.0.1497.23; Tue, 25 Jan 2022 16:44:29 +0800 Received: from localhost.localdomain (10.167.225.141) by G08CNEXCHPEKD09.g08.fujitsu.local (10.167.33.209) with Microsoft SMTP Server id 15.0.1497.23 via Frontend Transport; Tue, 25 Jan 2022 16:44:26 +0800 From: Li Zhijian To: , , , , , , CC: , , , , , , , Li Zhijian Subject: [RFC PATCH v2 3/9] RDMA/rxe: Allow registering persistent flag for pmem MR only Date: Tue, 25 Jan 2022 16:50:35 +0800 Message-ID: <20220125085041.49175-4-lizhijian@cn.fujitsu.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20220125085041.49175-1-lizhijian@cn.fujitsu.com> References: <20220125085041.49175-1-lizhijian@cn.fujitsu.com> MIME-Version: 1.0 Content-Transfer-Encoding: 7BIT Content-Type: text/plain; charset=US-ASCII X-yoursite-MailScanner-ID: D10854D169C7.ADA3F X-yoursite-MailScanner: Found to be clean X-yoursite-MailScanner-From: lizhijian@fujitsu.com X-Spam-Status: No Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Memory region should support 2 placement types: IB_ACCESS_FLUSH_PERSISTENT and IB_ACCESS_FLUSH_GLOBAL_VISIBILITY, and only pmem/nvdimm has ability to persist data(IB_ACCESS_FLUSH_PERSISTENT). It prevents local user from registering a persistent access flag to a non-pmem MR. +------------------------+------------------+--------------+ | HCA attributes | register access flags | | and +-----------------+---------------+ | MR attribute(is_pmem) |global visibility | persistence | |------------------------+------------------+--------------+ | global visibility(DRAM)| O | X | |------------------------+------------------+--------------+ | global visibility(PMEM)| O | X | |------------------------+------------------+--------------+ | persistence(DRAM) | X | X | |------------------------+------------------+--------------+ | persistence(PMEM) | X | O | +------------------------+------------------+--------------+ PMEM: is_pmem is true DRAM: is_pmem is false O: allow to register such access flag X: otherwise Signed-off-by: Li Zhijian --- V2: update commit message, get rid of confusing ib_check_flush_access_flags() # Tom --- drivers/infiniband/sw/rxe/rxe_mr.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/drivers/infiniband/sw/rxe/rxe_mr.c b/drivers/infiniband/sw/rxe/rxe_mr.c index 0427baea8c06..89a3bb4e8b71 100644 --- a/drivers/infiniband/sw/rxe/rxe_mr.c +++ b/drivers/infiniband/sw/rxe/rxe_mr.c @@ -258,7 +258,15 @@ int rxe_mr_init_user(struct rxe_pd *pd, u64 start, u64 length, u64 iova, set->offset = ib_umem_offset(umem); // iova_in_pmem() must be called after set is updated - mr->ibmr.is_pmem = iova_in_pmem(mr, iova, length); + if (iova_in_pmem(mr, iova, length)) + mr->ibmr.is_pmem = true; + else if (access & IB_ACCESS_FLUSH_PERSISTENT) { + pr_warn("Cannot register IB_ACCESS_FLUSH_PERSISTENT for non-pmem memory\n"); + mr->state = RXE_MR_STATE_INVALID; + mr->umem = NULL; + err = -EINVAL; + goto err_release_umem; + } return 0; -- 2.31.1