From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.0 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE, SPF_PASS,USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 698A9C33CA2 for ; Wed, 8 Jan 2020 15:24:25 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 220762146E for ; Wed, 8 Jan 2020 15:24:24 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=dev-mellanox-co-il.20150623.gappssmtp.com header.i=@dev-mellanox-co-il.20150623.gappssmtp.com header.b="ZXUvw/vh" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 220762146E Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=dev.mellanox.co.il Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id A5EB18E0008; Wed, 8 Jan 2020 10:24:24 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id A35C38E0001; Wed, 8 Jan 2020 10:24:24 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 9236D8E0008; Wed, 8 Jan 2020 10:24:24 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0018.hostedemail.com [216.40.44.18]) by kanga.kvack.org (Postfix) with ESMTP id 7A17C8E0001 for ; Wed, 8 Jan 2020 10:24:24 -0500 (EST) Received: from smtpin07.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay01.hostedemail.com (Postfix) with SMTP id 37932180AD807 for ; Wed, 8 Jan 2020 15:24:24 +0000 (UTC) X-FDA: 76354838448.07.table64_93ffcb371023 X-HE-Tag: table64_93ffcb371023 X-Filterd-Recvd-Size: 6362 Received: from mail-wr1-f68.google.com (mail-wr1-f68.google.com [209.85.221.68]) by imf38.hostedemail.com (Postfix) with ESMTP for ; Wed, 8 Jan 2020 15:24:23 +0000 (UTC) Received: by mail-wr1-f68.google.com with SMTP id z7so3738812wrl.13 for ; Wed, 08 Jan 2020 07:24:23 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=dev-mellanox-co-il.20150623.gappssmtp.com; s=20150623; h=subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=WY8LswhWtBe+DJC/DEGAG0v0KweIWUFyKsy0DnI+itc=; b=ZXUvw/vhiVbJH+1wtwf5xxWbV9B3EDKLGgk9nZLyC9y0XZMJuFRdJO5tuYwtkFbOyP FralA2sMLvFQDB14ET8u6vgtQdJbh4cvA9p55FRNByr2yf3FXy/NIY9nTBGpK5LUxcq4 1by3MPlRENUwrEj+Sezq+4Hy2bCik9nFCqlZYFmw9NvFsGy8I8giq3+itv9gstEAWAmQ 2kV7+GrmtGpLDfnI2DKBBwsLOzcLLw9vSGgYAxKhrEejMx8BPnZpMfueADS0lPsoEpQB 1Wb/L2J/vP/di06i2RyNw0jRZM8kmLnNDOKlFV52GSMVHcCpiwYy7ZVl2Hil9XybPnRb zn1w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=WY8LswhWtBe+DJC/DEGAG0v0KweIWUFyKsy0DnI+itc=; b=YQ1GT7toi2XT7eoHno2Qym/foUDGz7SjSL7S/WKPctoWs1T4jSTbGdAs11NvEVDcjt bqirIEAtAxzHn7SaShoyHLzYxvIfMCATXmbAQbIw1D5Th+94DggdOZCp0tuF34LEoxoi qP19sb9oncdhCgVpsbiKPr6cudbBt3sqZZj0yizSen5LDodz/DfXVYswt+otFFVeuzzl A1e8zYWZ59QmUvva10re/pzYmIBpZfYqAU3UH9FT9SNgK70jZinIfZ/Ksr5h5H/Vk7E5 wlDGuNhvZ5jqHQpwHm1JIsP4MowG+yXZiJgG1xx0hJyWjWTd4gXR3dcp9PYWdjj0gN/L 3d4w== X-Gm-Message-State: APjAAAX7mo7ksWYPUp5NIpncs5m3t+CV4xYHR1a42nO7SJ7z/JlOjS3H p9RgPViB5O/QKJi3SPGa4VGE52PmHkk= X-Google-Smtp-Source: APXvYqy/vleudjcx/xMUWMn9iSG/9C+uIhSD3GlJinfMIalsB8y/BxdVFOkayIHlOLB7/RHQFVWGOw== X-Received: by 2002:adf:b605:: with SMTP id f5mr4964464wre.383.1578497061827; Wed, 08 Jan 2020 07:24:21 -0800 (PST) Received: from [10.80.2.221] ([193.47.165.251]) by smtp.googlemail.com with ESMTPSA id o16sm4337490wmc.18.2020.01.08.07.24.20 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 08 Jan 2020 07:24:21 -0800 (PST) Subject: Re: [PATCH rdma-rc 3/3] IB/core: Fix ODP with IB_ACCESS_HUGETLB handling To: Geert Uytterhoeven Cc: Leon Romanovsky , Doug Ledford , Jason Gunthorpe , Leon Romanovsky , RDMA mailing list , Artemy Kovalyov , Aviad Yehezkel , Jason Gunthorpe , Yishai Hadas , linux-kernel@vger.kernel.org, linux-next@vger.kernel.org, linux-mm@kvack.org References: <20191219134646.413164-1-leon@kernel.org> <20191219134646.413164-4-leon@kernel.org> From: Yishai Hadas Message-ID: Date: Wed, 8 Jan 2020 17:24:19 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101 Thunderbird/68.3.1 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: quoted-printable X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: On 1/8/2020 2:56 PM, Geert Uytterhoeven wrote: > =C2=A0=C2=A0=C2=A0=C2=A0Hi Leon, >=20 > On Thu, 19 Dec 2019, Leon Romanovsky wrote: >> From: Yishai Hadas >> >> As VMAs for a given range might not be available as part of the >> registration phase in ODP, IB_ACCESS_HUGETLB/page_shift must be checke= d >> as part of the page fault flow. >> >> If the application didn't mmap the backed memory with huge pages or >> released part of that hugepage area, an error will be set as part of t= he >> page fault flow once be detected. >> >> Fixes: 0008b84ea9af ("IB/umem: Add support to huge ODP") >> Signed-off-by: Yishai Hadas >> Reviewed-by: Artemy Kovalyov >> Reviewed-by: Aviad Yehezkel >> Signed-off-by: Leon Romanovsky >=20 > Thanks for your patch! >=20 >> --- a/drivers/infiniband/core/umem_odp.c >> +++ b/drivers/infiniband/core/umem_odp.c >> @@ -241,22 +241,10 @@ struct ib_umem_odp *ib_umem_odp_get(struct=20 >> ib_udata *udata, unsigned long addr, >> =C2=A0=C2=A0=C2=A0=C2=A0umem_odp->umem.owning_mm =3D mm =3D current->m= m; >> =C2=A0=C2=A0=C2=A0=C2=A0umem_odp->notifier.ops =3D ops; >> >> -=C2=A0=C2=A0=C2=A0 umem_odp->page_shift =3D PAGE_SHIFT; >> -=C2=A0=C2=A0=C2=A0 if (access & IB_ACCESS_HUGETLB) { >> -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 struct vm_area_struct *vma= ; >> -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 struct hstate *h; >> - >> -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 down_read(&mm->mmap_sem); >> -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 vma =3D find_vma(mm, ib_um= em_start(umem_odp)); >> -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 if (!vma || !is_vm_hugetlb= _page(vma)) { >> -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 up= _read(&mm->mmap_sem); >> -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 re= t =3D -EINVAL; >> -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 go= to err_free; >> -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 } >> -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 h =3D hstate_vma(vma); >> -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 umem_odp->page_shift =3D h= uge_page_shift(h); >> -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 up_read(&mm->mmap_sem); >> -=C2=A0=C2=A0=C2=A0 } >> +=C2=A0=C2=A0=C2=A0 if (access & IB_ACCESS_HUGETLB) >> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 umem_odp->page_shift =3D H= PAGE_SHIFT; >> +=C2=A0=C2=A0=C2=A0 else >> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 umem_odp->page_shift =3D P= AGE_SHIFT; >> >> =C2=A0=C2=A0=C2=A0=C2=A0umem_odp->tgid =3D get_task_pid(current->group= _leader, PIDTYPE_PID); >> =C2=A0=C2=A0=C2=A0=C2=A0ret =3D ib_init_umem_odp(umem_odp, ops); >=20 > noreply@ellerman.id.au reports for linux-next/m68k-allmodconfig/m68k: >=20 > =C2=A0=C2=A0=C2=A0 drivers/infiniband/core/umem_odp.c:245:26: error: '= HPAGE_SHIFT'=20 > undeclared (first use in this function); did you mean 'PAGE_SHIFT'? >=20 > Should this depend on some HUGETLBFS option? >=20 Thanks for pointing on, We would expect to use #ifdef CONFIG_HUGETLB_PAGE as done in below=20 kernel code [1] that also used HPAGE_SHIFT. I'll send some patch to 'for-next' to handle it. [1]=20 https://elixir.bootlin.com/linux/v5.3-rc7/source/drivers/misc/sgi-gru/gru= fault.c#L183