Received: by 2002:ac0:aed5:0:0:0:0:0 with SMTP id t21csp2068011imb; Sun, 3 Mar 2019 16:58:08 -0800 (PST) X-Google-Smtp-Source: AHgI3Ibz1IVykdFiudQC3gnfRNrhNj3wPANgFnkDj/2Mmdzi04Gpoq84fKJJFOz7dmoK8hXW17bQ X-Received: by 2002:a62:4117:: with SMTP id o23mr17421600pfa.248.1551661088761; Sun, 03 Mar 2019 16:58:08 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1551661088; cv=none; d=google.com; s=arc-20160816; b=yAc5vohMLWGSmmCO3TAAoOKdJF/TrAUumZWYMJXAX55TWx7SLjswwegdimbBxNgCuB DRTZt4ohqwQ0sKg9bMU+5QBWCtSLOJ3P7EZI7eei4omcvL22YGAn66se10K9ZSSvC3J7 wprqtVvFwxt+a3g5olLBgajqlFCxBx2bHpvjheFHsBy4Rs7Q4MBqvVE0zz4vTl1va9y5 usbYTZqqHrDgugeiU8Tc8ghyA/VKA5gPwkkKs8YV4eV/Z51xF5SXIRMH6iDsEnepntf8 omanl2eQKEG7bpjaaohMkpbEXTkW8e7r0a+Eqb9HkPF+VX80YzfXS/PvSTCyBwmeprhy 7MGg== 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-disposition:mime-version:references:message-id:subject:cc :to:from:date; bh=WV1qjjN+RqkL9Z2bxUESvGtb+y4eGxOlfx17XJCxEeM=; b=mLCCgCAX9XmhOwBbQyTWUScNMdLBEcfOF1KBZaoCJ69YHg17JYQJ1ij5LuzCva6eRh B7YT9AunEH0X8ExmYVrO6HOXhmJs57jolWl4vN/Z+VZN4Ud+HMuo6YRFNEVJsdx5ETgD qTdOs2uhrlNsz/31FCErON6M5/dvuhmSxIRhwgkcad82o3rFj4uz0pvZzqXUWgFM8mS7 THijYnMR7hheydfieW1/J5EqWsE212Zj+AHmQtK1uPTwE7N0+Fg+diY0Tiy5XE9yueqt ND14h+apAvRg0yUB9DSgxDuN65nAOMqmZjHZnMHlnFYJxMGzsE22rNF3yCQ2ppjNArD0 MBrw== ARC-Authentication-Results: i=1; mx.google.com; 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id r27si4146468pgl.316.2019.03.03.16.57.53; Sun, 03 Mar 2019 16:58:08 -0800 (PST) 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; 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726090AbfCDA5d (ORCPT + 99 others); Sun, 3 Mar 2019 19:57:33 -0500 Received: from mga01.intel.com ([192.55.52.88]:50487 "EHLO mga01.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725962AbfCDA5c (ORCPT ); Sun, 3 Mar 2019 19:57:32 -0500 X-Amp-Result: UNKNOWN X-Amp-Original-Verdict: FILE UNKNOWN X-Amp-File-Uploaded: False Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by fmsmga101.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 03 Mar 2019 16:57:32 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.58,438,1544515200"; d="scan'208";a="137790581" Received: from iweiny-desk2.sc.intel.com ([10.3.52.157]) by FMSMGA003.fm.intel.com with ESMTP; 03 Mar 2019 16:57:31 -0800 Date: Sun, 3 Mar 2019 08:55:51 -0800 From: Ira Weiny To: Artemy Kovalyov Cc: "john.hubbard@gmail.com" , "linux-mm@kvack.org" , Andrew Morton , LKML , John Hubbard , Jason Gunthorpe , Doug Ledford , "linux-rdma@vger.kernel.org" Subject: Re: [PATCH v2] RDMA/umem: minor bug fix and cleanup in error handling paths Message-ID: <20190303165550.GB27123@iweiny-DESK2.sc.intel.com> References: <20190302032726.11769-2-jhubbard@nvidia.com> <20190302202435.31889-1-jhubbard@nvidia.com> <20190302194402.GA24732@iweiny-DESK2.sc.intel.com> <2404c962-8f6d-1f6d-0055-eb82864ca7fc@mellanox.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <2404c962-8f6d-1f6d-0055-eb82864ca7fc@mellanox.com> User-Agent: Mutt/1.11.1 (2018-12-01) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Sun, Mar 03, 2019 at 11:52:41AM +0200, Artemy Kovalyov wrote: > > > On 02/03/2019 21:44, Ira Weiny wrote: > > > > On Sat, Mar 02, 2019 at 12:24:35PM -0800, john.hubbard@gmail.com wrote: > > > From: John Hubbard > > > > > > ... > > > 3. Dead code removal: the check for (user_virt & ~page_mask) > > > is checking for a condition that can never happen, > > > because earlier: > > > > > > user_virt = user_virt & page_mask; > > > > > > ...so, remove that entire phrase. > > > > > > bcnt -= min_t(size_t, npages << PAGE_SHIFT, bcnt); > > > mutex_lock(&umem_odp->umem_mutex); > > > for (j = 0; j < npages; j++, user_virt += PAGE_SIZE) { > > > - if (user_virt & ~page_mask) { > > > - p += PAGE_SIZE; > > > - if (page_to_phys(local_page_list[j]) != p) { > > > - ret = -EFAULT; > > > - break; > > > - } > > > - put_page(local_page_list[j]); > > > - continue; > > > - } > > > - > > > > I think this is trying to account for compound pages. (ie page_mask could > > represent more than PAGE_SIZE which is what user_virt is being incrimented by.) > > But putting the page in that case seems to be the wrong thing to do? > > > > Yes this was added by Artemy[1] now cc'ed. > > Right, this is for huge pages, please keep it. > put_page() needed to decrement refcount of the head page. You mean decrement the refcount of the _non_-head pages? Ira >