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=-10.4 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, MENTIONS_GIT_HOSTING,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 A5DDEC18E5B for ; Mon, 16 Mar 2020 16:43:29 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 60C9D20409 for ; Mon, 16 Mar 2020 16:43:29 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=ziepe.ca header.i=@ziepe.ca header.b="HbY+wtUP" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 60C9D20409 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ziepe.ca Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id 05BCE6B0010; Mon, 16 Mar 2020 12:43:29 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id F27306B0032; Mon, 16 Mar 2020 12:43:28 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id DEEA46B0036; Mon, 16 Mar 2020 12:43:28 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0008.hostedemail.com [216.40.44.8]) by kanga.kvack.org (Postfix) with ESMTP id C3A3E6B0010 for ; Mon, 16 Mar 2020 12:43:28 -0400 (EDT) Received: from smtpin07.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay05.hostedemail.com (Postfix) with ESMTP id 53565181AEF21 for ; Mon, 16 Mar 2020 16:43:28 +0000 (UTC) X-FDA: 76601796096.07.door29_12640b65490d X-HE-Tag: door29_12640b65490d X-Filterd-Recvd-Size: 4943 Received: from mail-qt1-f193.google.com (mail-qt1-f193.google.com [209.85.160.193]) by imf22.hostedemail.com (Postfix) with ESMTP for ; Mon, 16 Mar 2020 16:43:27 +0000 (UTC) Received: by mail-qt1-f193.google.com with SMTP id h16so14755352qtr.11 for ; Mon, 16 Mar 2020 09:43:27 -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:in-reply-to:user-agent; bh=Dqyq9hLHG6emennb7HLUrzop5Rn8m+mEX5iUNFFusv8=; b=HbY+wtUPM6VIdMn9LMFXcVnuIiUEeIi47CYTWe/J4VyT7g8t0tHJGAHMWMt+QSt7ot lo6L9QrKwfYh+kbGHGgwG5W/jOmdWa3nm/BBNtI3ZtZeLdOyv6CEXv4G92SB/eKDTz03 KpZPNqnqxgdG+ur7bJXGy4TfTB5N0w2g7+upykF7CHR6olUL69Oo/Zy4ywGsvLD/POeJ vlpGuWtzelFxcmJLeWLM1pE8r87xeqhdfj2bPq5En/71Tk1qpQGrk/Z3qGPtyKDeCtPu 0tajYAf30MbHGrG89zpdo5y2+Ge/mi1Mn5najoG5pmhTB0g2418GTBTrqwJKn6m8zGBf 8K4w== 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:in-reply-to:user-agent; bh=Dqyq9hLHG6emennb7HLUrzop5Rn8m+mEX5iUNFFusv8=; b=WyT8qy4+bv3T354xHO9qV0KdE2ZZNd+YBN2XnbjE9P1zptNPnqurcGyXhhN02myKI7 Vb9Iv7HJh4Z+lDkkDqq3ji4zON621BgUXpS+RcJnFacmz+FcjMbn64hoBD96oFJk1A4B yGb7kMsoWzVJqn/zuqDRX8zFyXHJHeNcLn9o/aCN64CBhlY2qrZfUagWehB3LGFcDWZ5 jFr5EDFX+StC/hyr8i2zHza9aF9YGlz8KU5a4SrHYVEMESm67ftQ1HK9ZScUXuN9QZJi rvzs+NkXgP66hRPebPMqdiJo9XaWUCEhDu3g9tDZTJqmxYLWLGjM5M+EFmfM70kMUB0Z H37g== X-Gm-Message-State: ANhLgQ0kz2ykPPBhJuuQmm01KOxn3qxkAW70+Sq74ek6e/rWsk1lqX4w u0YilIT6hKoNZOGdN7uyWAdAoA== X-Google-Smtp-Source: ADFU+vtsbbRpAJTzHKaQnavHZKmLon+ax/JxBASO7XeObNiC5rsn9/NkRm6YAuQ760gbXPqJ+9QQBQ== X-Received: by 2002:ac8:43da:: with SMTP id w26mr942264qtn.309.1584377007205; Mon, 16 Mar 2020 09:43:27 -0700 (PDT) Received: from ziepe.ca (hlfxns017vw-142-68-57-212.dhcp-dynamic.fibreop.ns.bellaliant.net. [142.68.57.212]) by smtp.gmail.com with ESMTPSA id b145sm116488qkg.52.2020.03.16.09.43.26 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Mon, 16 Mar 2020 09:43:26 -0700 (PDT) Received: from jgg by mlx.ziepe.ca with local (Exim 4.90_1) (envelope-from ) id 1jDspq-0007Fp-At; Mon, 16 Mar 2020 13:43:26 -0300 Date: Mon, 16 Mar 2020 13:43:26 -0300 From: Jason Gunthorpe To: Christoph Hellwig Cc: Jerome Glisse , Ralph Campbell , linux-mm@kvack.org Subject: Re: [PATCH 4/5] mm: don't handle the non-fault case in hmm_vma_walk_hole_ Message-ID: <20200316164326.GE20941@ziepe.ca> References: <20200316135310.899364-1-hch@lst.de> <20200316135310.899364-5-hch@lst.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20200316135310.899364-5-hch@lst.de> User-Agent: Mutt/1.9.4 (2018-02-28) 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 Mon, Mar 16, 2020 at 02:53:09PM +0100, Christoph Hellwig wrote: > There is just a single caller using hmm_vma_walk_hole_ for the non-fault > case. Use hmm_pfns_fill to fill the whole pfn array with zeroes in only > caller for the non-fault case and remove the non-fault path from > hmm_vma_walk_hole_. > > Also rename the function to hmm_vma_fault to better describe what it > does. > > Signed-off-by: Christoph Hellwig > --- > mm/hmm.c | 38 +++++++++++++++++++------------------- > 1 file changed, 19 insertions(+), 19 deletions(-) Ah, I did nearly the same in my the next series, I'm cooking: https://github.com/jgunthorpe/linux/commit/078e10ca5919f2c263c245784fb5fe63ddbb61f4 But this can go first, I was probably going to break mine up anyhow. > + pfns[i] = range->values[HMM_PFN_NONE]; Since the function always returns -EBUSY now, it should not set an output. This is an existing bug. Since there is no purpose now that the caller does the fill, this patch should drop the above and have the fixes line. > static inline void hmm_pte_need_fault(const struct hmm_vma_walk *hmm_vma_walk, > @@ -193,7 +190,10 @@ static int hmm_vma_walk_hole(unsigned long addr, unsigned long end, > pfns = &range->pfns[i]; > hmm_range_need_fault(hmm_vma_walk, pfns, npages, > 0, &fault, &write_fault); > - return hmm_vma_walk_hole_(addr, end, fault, write_fault, walk); > + if (fault || write_fault) > + return hmm_vma_fault(addr, end, fault, write_fault, walk); > + hmm_vma_walk->last = addr; > + return hmm_pfns_fill(addr, end, range, HMM_PFN_NONE); This is also the only caller of hmm_vma_fault() that could have walk->vma == NULL, and NULL vma + a fault == -EFAULT Jason