Received: by 2002:a25:86ce:0:0:0:0:0 with SMTP id y14csp791851ybm; Wed, 22 May 2019 11:34:31 -0700 (PDT) X-Google-Smtp-Source: APXvYqypDe0YGDGqTYSAQc+rfx4iS2j/bzlJEAs3Z1AJ+ViUxkjVNxC8cchSC99PCXWav+8RY327 X-Received: by 2002:a63:5107:: with SMTP id f7mr4360766pgb.198.1558550071527; Wed, 22 May 2019 11:34:31 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1558550071; cv=none; d=google.com; s=arc-20160816; b=LU+EFcyyeLeFJG/kcKBlnI0hzkltCM8tv8WCJi/4kToxRyWl1UBLRuHBl812FxcLYG +9/M17vAV5Zon6enzRs0ZFFpAcxy3qdVlgZdsmJZ9JYeTjjcpVusixGs15KXAr0qnvqS N/YyUi4rvTwCSek4q9+1ovxRh420hDAkwGE88OAyMaW78t/nb5y9XqTyB7uhHTU5EwOF SEWwUsfpMD/mEKZ9XGNVfRtslA6L6GNBBCdnKt4LkwvzYClJeV3YXTY+ts1HsWEZ+7qo C2OQTE5/8bOxPvknpnNiIG0jAIEIErZjCbcKvSEOGHe+Gb1/8nmu6GLaiNcfZIBAkjDL J9Qg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-transfer-encoding:content-disposition:mime-version :references:message-id:subject:cc:to:from:date:dkim-signature; bh=CaDjZ/LTZEWIV1k6jmaoesTLyIfde7eaoYVq6F0BEbE=; b=CV7nVxvhvY5AHd8y/N1emSz1tHiAUfK3JhVbEdjR6Dccx3Bg+gZTD7OCM+ElVBXad7 XLGeWbdcWyvZ0aWXXDcrX/OpKh1R3OZxLt0OGVy1hQm/TEUoavwRxaDpwI915pQRy0nY wXLcPA+peXKDLs7NaB5RR2S2B05czDWuJ1EusCvzwx10cm7G1+3xHcy27yCI/oeU3mCa BcvQSlPvWs85dOmaCQXg+H1FmRHBqYU7YkdDPbDOapneZxTbvx1Uozg/j2Nm5XFEo+7R 2Dk3IYgKms2zJTO/4tNDrj7mwB2c+4jXbCyQQTGhXCgy8fWMjh9Ua+rj9wOPcRBuGsz6 ja1Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@ziepe.ca header.s=google header.b=DOYEYXNF; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 3si27790715pgj.104.2019.05.22.11.34.15; Wed, 22 May 2019 11:34:31 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@ziepe.ca header.s=google header.b=DOYEYXNF; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729616AbfEVScG (ORCPT + 99 others); Wed, 22 May 2019 14:32:06 -0400 Received: from mail-qt1-f194.google.com ([209.85.160.194]:37384 "EHLO mail-qt1-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728533AbfEVScG (ORCPT ); Wed, 22 May 2019 14:32:06 -0400 Received: by mail-qt1-f194.google.com with SMTP id o7so3617140qtp.4 for ; Wed, 22 May 2019 11:32:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ziepe.ca; s=google; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:content-transfer-encoding:in-reply-to :user-agent; bh=CaDjZ/LTZEWIV1k6jmaoesTLyIfde7eaoYVq6F0BEbE=; b=DOYEYXNFXZtj3Fxv6GkbcrmxU5qsq07byb5Z/nKMwy5d7BkU/5zXVjPqNAaD0l6xyH xlB+AdtKp1epaSxw5VkAKq4S8M3K7YgmevLZSH75UeUvXXQlWK90b5D/k+Nvf6ZKGqXj TWtBp1hiphibJFzUinRHHxjMNpCRyVDdIkY+DSX07WsbkGoHGI2pLPzK4+CAvsrMzAEx A30oAnOWmiUTpX+/9fNvXkEEyo1w3wikiXyWNCGgaJs+rdfODCsZexTq0hyq5k9GrnTa 75hribAj3aj4O1x0Zhj+2Q/GjAJBxqGS0eU9LrDXGTcw9licqCzF5A1gt0CFtCJ74HM4 1gSQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:content-transfer-encoding :in-reply-to:user-agent; bh=CaDjZ/LTZEWIV1k6jmaoesTLyIfde7eaoYVq6F0BEbE=; b=CdDVd+A7D+zjiSDBgeWIjjvsRH2YF0MdaQN/jKYdUR5eE9TFWab50F3oglTocNf+tJ qt/tyizJ2GPn1wl/xEXNxU2yi7WHmtykELf2Of/YMPtbpPbE7xsjIYtbKgXq+7ru7Yog d0DnHBGjW+FQ44UAUsfF8U266B1K5oAYK5HwLqMscsztMFaoIB/EYNJeZ/edhs/47a8s oAfOU0MVt94gIDI1753TIqlLnAftt6VioKHZVUZJXRXHo7ZJ/E6yWmwYn/BuQ/vNkolA G0tQwV+zCozc0sP6h5H7QVmNhmFszuWX4IJucrqm7sBgbKb7WkTOhoiIHrQZg21fuauX pz/g== X-Gm-Message-State: APjAAAUkxXYgEhJQUF0MO5YadODnvSv4cgpyvP6OJFTpYG/n+BAYqlWA /s6otov37VDDgx0QDl20lRrO1w== X-Received: by 2002:ac8:18c2:: with SMTP id o2mr77676877qtk.165.1558549924824; Wed, 22 May 2019 11:32:04 -0700 (PDT) Received: from ziepe.ca (hlfxns017vw-156-34-49-251.dhcp-dynamic.fibreop.ns.bellaliant.net. [156.34.49.251]) by smtp.gmail.com with ESMTPSA id g12sm11725833qkk.88.2019.05.22.11.32.04 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Wed, 22 May 2019 11:32:04 -0700 (PDT) Received: from jgg by mlx.ziepe.ca with local (Exim 4.90_1) (envelope-from ) id 1hTW1z-0005Gd-IY; Wed, 22 May 2019 15:32:03 -0300 Date: Wed, 22 May 2019 15:32:03 -0300 From: Jason Gunthorpe To: Jerome Glisse Cc: linux-kernel@vger.kernel.org, linux-rdma@vger.kernel.org, Leon Romanovsky , Doug Ledford , Artemy Kovalyov , Moni Shoua , Mike Marciniszyn , Kaike Wan , Dennis Dalessandro Subject: Re: [PATCH v4 0/1] Use HMM for ODP v4 Message-ID: <20190522183203.GE6054@ziepe.ca> References: <20190411181314.19465-1-jglisse@redhat.com> <20190506195657.GA30261@ziepe.ca> <20190521205321.GC3331@redhat.com> <20190522005225.GA30819@ziepe.ca> <20190522174852.GA23038@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20190522174852.GA23038@redhat.com> User-Agent: Mutt/1.9.4 (2018-02-28) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, May 22, 2019 at 01:48:52PM -0400, Jerome Glisse wrote: > From 0b429b2ffbec348e283693cb97d7ffce760d89da Mon Sep 17 00:00:00 2001 > From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Glisse?= > Date: Sat, 8 Dec 2018 15:47:55 -0500 > Subject: [PATCH] RDMA/odp: convert to use HMM for ODP v5 > MIME-Version: 1.0 > Content-Type: text/plain; charset=UTF-8 > Content-Transfer-Encoding: 8bit > > Convert ODP to use HMM so that we can build on common infrastructure > for different class of devices that want to mirror a process address > space into a device. There is no functional changes. > > Changes since v4: > - Rebase on top of rdma-next > Changes since v3: > - Rebase on top of 5.2-rc1 > Changes since v2: > - Update to match changes to HMM API > Changes since v1: > - improved comments > - simplified page alignment computation > > Signed-off-by: Jérôme Glisse > Cc: Jason Gunthorpe > Cc: Leon Romanovsky > Cc: Doug Ledford > Cc: Artemy Kovalyov > Cc: Moni Shoua > Cc: Mike Marciniszyn > Cc: Kaike Wan > Cc: Dennis Dalessandro > drivers/infiniband/core/umem_odp.c | 506 +++++++++-------------------- > drivers/infiniband/hw/mlx5/mem.c | 20 +- > drivers/infiniband/hw/mlx5/mr.c | 2 +- > drivers/infiniband/hw/mlx5/odp.c | 104 +++--- > include/rdma/ib_umem_odp.h | 47 +-- > 5 files changed, 233 insertions(+), 446 deletions(-) The kconfig stuff is missing, and it doesn't compile in various cases I tried. The kconfig stuff for hmm is also really obnoxious, you can't just enabe HMM_MIRROR, you have to track down all the little required elements to get it to turn on.. Once I did get it to compile, I also get warnings: mm/hmm.c: In function ‘hmm_vma_walk_pud’: mm/hmm.c:782:28: warning: unused variable ‘pfn’ [-Wunused-variable] unsigned long i, npages, pfn; ^~~ mm/hmm.c: In function ‘hmm_range_snapshot’: mm/hmm.c:1027:19: warning: unused variable ‘h’ [-Wunused-variable] struct hstate *h = hstate_vma(vma); Because this kernel doesn't have CONFIG_HUGETLB_PAGE Please fold this into your patch if it has to be resent.. I think it fixes the compilation problems. diff --git a/drivers/infiniband/Kconfig b/drivers/infiniband/Kconfig index cbfbea49f126cd..e3eefd0917985a 100644 --- a/drivers/infiniband/Kconfig +++ b/drivers/infiniband/Kconfig @@ -63,7 +63,7 @@ config INFINIBAND_USER_MEM config INFINIBAND_ON_DEMAND_PAGING bool "InfiniBand on-demand paging support" depends on INFINIBAND_USER_MEM - select MMU_NOTIFIER + depends on HMM_MIRROR default y ---help--- On demand paging support for the InfiniBand subsystem. diff --git a/include/rdma/ib_umem_odp.h b/include/rdma/ib_umem_odp.h index e1476e9ebb7906..f760103c07349a 100644 --- a/include/rdma/ib_umem_odp.h +++ b/include/rdma/ib_umem_odp.h @@ -115,6 +115,16 @@ static inline size_t ib_umem_odp_num_pages(struct ib_umem_odp *umem_odp) #define ODP_DMA_ADDR_MASK (~(ODP_READ_ALLOWED_BIT | ODP_WRITE_ALLOWED_BIT)) +#define ODP_READ_BIT (1<<0ULL) +#define ODP_WRITE_BIT (1<<1ULL) +/* + * The device bit is not use by ODP but is there to full-fill HMM API which + * also support device with device memory (like GPU). So from ODP/RDMA POV + * this can be ignored. + */ +#define ODP_DEVICE_BIT (1<<2ULL) +#define ODP_FLAGS_BITS 3 + #ifdef CONFIG_INFINIBAND_ON_DEMAND_PAGING struct ib_ucontext_per_mm { @@ -138,16 +148,6 @@ struct ib_umem_odp *ib_alloc_odp_umem(struct ib_umem_odp *root_umem, unsigned long addr, size_t size); void ib_umem_odp_release(struct ib_umem_odp *umem_odp); -#define ODP_READ_BIT (1<<0ULL) -#define ODP_WRITE_BIT (1<<1ULL) -/* - * The device bit is not use by ODP but is there to full-fill HMM API which - * also support device with device memory (like GPU). So from ODP/RDMA POV - * this can be ignored. - */ -#define ODP_DEVICE_BIT (1<<2ULL) -#define ODP_FLAGS_BITS 3 - long ib_umem_odp_map_dma_pages(struct ib_umem_odp *umem_odp, struct hmm_range *range);