Received: by 2002:a05:7412:8521:b0:e2:908c:2ebd with SMTP id t33csp366313rdf; Fri, 3 Nov 2023 03:14:27 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGOMi2mt+UOc0LjMW469CGWQVRVgdUktHYQ1Krm4fFj7tTx2uF+sO3oOqez4Zpyg9vXeQgl X-Received: by 2002:a17:90a:ed03:b0:27d:1822:f3de with SMTP id kq3-20020a17090aed0300b0027d1822f3demr17769816pjb.16.1699006467419; Fri, 03 Nov 2023 03:14:27 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1699006467; cv=none; d=google.com; s=arc-20160816; b=B3yiYlZiU8NNHeZ74ceRZBo3kU7zFXwlgnV5ZLMlpl+j+gy2FdkEuUFEi9T7QKqSze sT8Blo6Ha14Z7pVj6+546TDMqdQWZ+KGlHNgHoDGkfalChV7Ap9ogbiGhb3VBbgEkBpw z7zhh6gARIApI8PUvVIcYuAk7zhUP4K1Rpru2D99PXL9Tk2QWsdvK4iF8NflcSGFfjeD 7jXxvqmSjIZ+ODj6XLTxvr78z/O6L4nLW5FMDHnbreTWcr0IbQewNfh1rZNIhUvifCsv PKcL7grFNqyu/BnosEZMaDJqpaCPRG7UeIRyjs4sOYqB7QZPG7skWvBKAyxiS0hAgHo0 uyIw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:cc:to:subject :message-id:date:from:in-reply-to:references:mime-version :dkim-signature; bh=i+65RYNQvrsYrl13TceHEcGyzemoLF4Zru1PnHMz1K0=; fh=pUbNrtd2DkDdzWVTSOm37jZEoDyIdzEUFxxzmon9bng=; b=Me3sfqRTNSUg8DqcRPdbDH9IKKuVZ+pXGRezRVqlkFJy4EfH0k5cC8yD16o76Z1DQ9 EeFtlxzLfs6amfz147Jqw8lA8qfzkht9ok+YBD3e10xUk6jSLiBqqpdJX8bi7xjHVNxB yP6aTDbaEtzRInAKex3japwwa297KJ5zUUq2/7SyU3ScW6ycvX/Qv6tOf+4l3gb/FEhK MKgZicpdRXjRhWHM1J8wPqjC9KzTzP/4s8naPfzD5DowScdqSjUT4ZBg/C7C9sADL7RF ujILD3vZwoFnNqtoQhcNYbN9Vhsm4P94G4H6w4Lehwq/dDyIsp3tupuCEAlmZeH+7hlU d3lA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b="JN/mzlqV"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:7 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from snail.vger.email (snail.vger.email. [2620:137:e000::3:7]) by mx.google.com with ESMTPS id pf14-20020a17090b1d8e00b0027d15abe599si1487417pjb.143.2023.11.03.03.14.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 03 Nov 2023 03:14:27 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:7 as permitted sender) client-ip=2620:137:e000::3:7; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b="JN/mzlqV"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:7 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by snail.vger.email (Postfix) with ESMTP id 3E2FC838B3D2; Fri, 3 Nov 2023 03:14:26 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at snail.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1347822AbjKCKOY (ORCPT + 99 others); Fri, 3 Nov 2023 06:14:24 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51448 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1347768AbjKCKOW (ORCPT ); Fri, 3 Nov 2023 06:14:22 -0400 Received: from mail-pg1-x52c.google.com (mail-pg1-x52c.google.com [IPv6:2607:f8b0:4864:20::52c]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6C9E8D45; Fri, 3 Nov 2023 03:14:20 -0700 (PDT) Received: by mail-pg1-x52c.google.com with SMTP id 41be03b00d2f7-5b9a453d3d3so1483321a12.0; Fri, 03 Nov 2023 03:14:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1699006460; x=1699611260; darn=vger.kernel.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=i+65RYNQvrsYrl13TceHEcGyzemoLF4Zru1PnHMz1K0=; b=JN/mzlqVVL/9mkVYtjPLsDAAqIR5JIBrKqxQP9BtZiQs1VCHZF1QGXTWjPjWjz6f0m zHqF/bc6a445reEQ+7pzhX0zgz2qteNEZDHZMkrEdJWp2HVygTef7nTDtlW5WouyyOtZ seitizdWBPUIx3Fe4RxadyJ430i1PNhjdIm2xHcz1S4k1Oplt5JLoUtFWvFOhcHsSmDH EN2R9TX78mnih06ObNuHx5N25B+W9AuXyBPuKT9OYCZQf0/jy0QdBTOUGikkRIQiO7RP Xgy1cG+rzhJ8nq5QSrwKajdN89Cg6EudpuA4j/HfkSxQpeiS+q4brfq3E9JY9+0b6H+o oyAA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1699006460; x=1699611260; h=content-transfer-encoding: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=i+65RYNQvrsYrl13TceHEcGyzemoLF4Zru1PnHMz1K0=; b=SqcKWJ44A6FKJofE/0oqLTvDhBUIlOK4ClqCcqdR+EMGmx7HKcOIHOeNE8+2socMne XNmnWtemHN8V9uAYnIjpxi948oc6geq93uXtwgF65KT7FwogSTe3vBeYmhCTIpj0/eCM 8oIjEvEWAad1qz/mpefHeKH7xoRcNt7NDnFycjZGF4dqt77aL4Xqb14o5tSdJ90FbC7I DZqUn/cftoTZcGOB8byWCs4b3J1EruMS+kOSBNqTu3XTnVNKLLsay3LaaX7vaetuRMo4 nsUxIsbV2FXyO7OaDYnRh7jmWV97mUO789z+f19jDAudM2xU6Pj2pMixvQ4hp1WLgMmT 4ATw== X-Gm-Message-State: AOJu0YzaT5zbiTx90RrxGwA0KgXQjNi0fx1VXRfvWVU5pILoOg/32XOZ YFtibEoRebUMEEJ6NXtEjnvoBdKJ+prQZoFW4tM= X-Received: by 2002:a17:90a:4b07:b0:27f:f260:ceaf with SMTP id g7-20020a17090a4b0700b0027ff260ceafmr17099164pjh.10.1699006459735; Fri, 03 Nov 2023 03:14:19 -0700 (PDT) MIME-Version: 1.0 References: <20231103095549.490744-1-lizhijian@fujitsu.com> <20231103095549.490744-2-lizhijian@fujitsu.com> In-Reply-To: <20231103095549.490744-2-lizhijian@fujitsu.com> From: Greg Sword Date: Fri, 3 Nov 2023 18:14:09 +0800 Message-ID: Subject: Re: [PATCH RFC V2 1/6] RDMA/rxe: RDMA/rxe: don't allow registering !PAGE_SIZE mr To: Li Zhijian Cc: zyjzyj2000@gmail.com, jgg@ziepe.ca, leon@kernel.org, linux-rdma@vger.kernel.org, linux-kernel@vger.kernel.org, rpearsonhpe@gmail.com, matsuda-daisuke@fujitsu.com, bvanassche@acm.org, yi.zhang@redhat.com Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_ENVFROM_END_DIGIT, FREEMAIL_FROM,RCVD_IN_DNSWL_BLOCKED,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (snail.vger.email [0.0.0.0]); Fri, 03 Nov 2023 03:14:26 -0700 (PDT) On Fri, Nov 3, 2023 at 5:56=E2=80=AFPM Li Zhijian w= rote: > > rxe_set_page() only store one PAGE_SIZE page by the step of page_size. > when page_size !=3D PAGE_SIZE, we cannot restore the address with wrong > index and page_offset. > > Let's take a look how current the xarray is being used. > > 0. offset =3D iova & (page_size -1); // offset is less than page_size > but may not PAGE_SIZE > 1. index =3D (iova - mr.iova) >> page_shift; > 2. page =3D xa_load(&mr->page_list, index); > 3. page_va =3D kmap_local_page(page) // map one page only, that means onl= y > memory [page_va, page_va + PAGE_SIZ= E) > is valid for this mapping. > 4. memcpy(addr, page_va + offset, bytes); > > - when page_size > PAGE_SIZE, the offset could be beyond PAGE_SIZE, > then page_va + offset may be invalid. > - when page_size < PAGE_SIZE, the offset may get lost. > > Note that this patch will break some ULPs that try to register 4K > MR when PAGE_SIZE is not 4K. SRP and nvme over RXE is known to be > impacted. > > Signed-off-by: Li Zhijian > > --- > --- > drivers/infiniband/sw/rxe/rxe_mr.c | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/drivers/infiniband/sw/rxe/rxe_mr.c b/drivers/infiniband/sw/r= xe/rxe_mr.c > index f54042e9aeb2..3755e530e6dc 100644 > --- a/drivers/infiniband/sw/rxe/rxe_mr.c > +++ b/drivers/infiniband/sw/rxe/rxe_mr.c > @@ -234,6 +234,12 @@ int rxe_map_mr_sg(struct ib_mr *ibmr, struct scatter= list *sgl, > struct rxe_mr *mr =3D to_rmr(ibmr); > unsigned int page_size =3D mr_page_size(mr); > > + if (page_size !=3D PAGE_SIZE) { > + rxe_err_mr(mr, "Unsupport mr page size %x, expect PAGE_SI= ZE(%lx)\n", > + page_size, PAGE_SIZE); > + return -EINVAL; > + } Are you kidding us? What problem you are fixing? Do you make tests in your = host? A rubbish patch. > + > mr->nbuf =3D 0; > mr->page_shift =3D ilog2(page_size); > mr->page_mask =3D ~((u64)page_size - 1); > -- > 2.41.0 >