Received: by 2002:ac0:a5a7:0:0:0:0:0 with SMTP id m36-v6csp3191314imm; Mon, 13 Aug 2018 07:31:22 -0700 (PDT) X-Google-Smtp-Source: AA+uWPwzURnVqQQKm7hO4lFsPvctNRk3Onb7vxi93KX2+Rtr0cuOHDQZC689Zb8ze9IbaoQ9/Qu0 X-Received: by 2002:a63:5e45:: with SMTP id s66-v6mr17423349pgb.151.1534170682151; Mon, 13 Aug 2018 07:31:22 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1534170682; cv=none; d=google.com; s=arc-20160816; b=sfsvxGpICo/+Bfp8Nw4jUkbBd1zkHJAR+ZMIiGo73hwYrZ+rb1D8AASjxyE7BY3cqo 3qNkfVenYMcIIwcGxnyM2hUgfceOznmVwTgDnGRB4TB6FyaODcKDWq/9kYKAbm25DQTD Xsw9BKHK/P8ONoXsGN/mfDKSm/Ae27rQiy9SqU31laIYdp4/larRw6UslmB4hbO5GlRJ EUv54QkfBkoyaALQtdWttVyonuAedNRpJ4U4NZU7DT2Mc152bn1FY/PL2/uv/eW0+q1+ YbDeef8W09wBef1kLVYcGrDsS0Fuz1qPLn6O0TbcHxC6sm46YVgydZJRRZ1CTOUW3iPa wtXA== 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 :arc-authentication-results; bh=exBjMGYLxf29hpgC9qiOvVWnH5+KQwAJpizj07iZC+s=; b=QwSx3hk6hhMHSeUSG7N7v0/5DL+JgiZtY1kIP4IYo4+fUkFmYxCovVWK1sYX9OlQ/p ckd8yV3Ygus3+vN+Pp7JbsDE3UpQPcHGPTbeKJ+INjJ3F0T/wnRiTu8RqFWOUiTGGSHn Xs3swOSOflH7zbz6vi8w+gpckqxV7vjRcWBZ1nlVZGafuXCm5C2yA8l4tGBUvyxFVG11 6W3qVr9ATaC/yOU8u87KRxuiORpP9uLTTfPUbDjm9hstz1AXuNZKOQnbi8vXzHDrEIyW RZeFWO7lj23vHuZ7f1zye4Q2mcviNTHykN+P76OcWYWxFyW215+91XQF7fK8FodkC5JP bH6Q== 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=redhat.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 144-v6si19149329pge.406.2018.08.13.07.31.05; Mon, 13 Aug 2018 07:31:22 -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; 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=redhat.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729478AbeHMRLm (ORCPT + 99 others); Mon, 13 Aug 2018 13:11:42 -0400 Received: from mx3-rdu2.redhat.com ([66.187.233.73]:37410 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1727367AbeHMRLm (ORCPT ); Mon, 13 Aug 2018 13:11:42 -0400 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.rdu2.redhat.com [10.11.54.5]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 8C74E406E8C0; Mon, 13 Aug 2018 14:29:10 +0000 (UTC) Received: from redhat.com (unknown [10.20.6.215]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 21D51178BC; Mon, 13 Aug 2018 14:29:08 +0000 (UTC) Date: Mon, 13 Aug 2018 10:29:06 -0400 From: Jerome Glisse To: "Zhang,Yi" Cc: Pankaj Gupta , kvm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-nvdimm@lists.01.org, pbonzini@redhat.com, dan j williams , jack@suse.cz, hch@lst.de, yu c zhang , linux-mm@kvack.org, rkrcmar@redhat.com, yi z zhang Subject: Re: [PATCH V3 3/4] mm: add a function to differentiate the pages is from DAX device memory Message-ID: <20180813142906.GA3451@redhat.com> References: <2b7856596e519130946c834d5d61b00b7f592770.1533811181.git.yi.z.zhang@linux.intel.com> <872818364.892078.1533806608252.JavaMail.zimbra@redhat.com> <5ea50e63-b55a-c1e1-50be-6e2d951c04cf@linux.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <5ea50e63-b55a-c1e1-50be-6e2d951c04cf@linux.intel.com> User-Agent: Mutt/1.10.0 (2018-05-17) X-Scanned-By: MIMEDefang 2.79 on 10.11.54.5 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.11.55.7]); Mon, 13 Aug 2018 14:29:10 +0000 (UTC) X-Greylist: inspected by milter-greylist-4.5.16 (mx1.redhat.com [10.11.55.7]); Mon, 13 Aug 2018 14:29:10 +0000 (UTC) for IP:'10.11.54.5' DOMAIN:'int-mx05.intmail.prod.int.rdu2.redhat.com' HELO:'smtp.corp.redhat.com' FROM:'jglisse@redhat.com' RCPT:'' Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Aug 14, 2018 at 01:41:40AM +0800, Zhang,Yi wrote: > > > On 2018年08月09日 17:23, Pankaj Gupta wrote: > >> DAX driver hotplug the device memory and move it to memory zone, these > >> pages will be marked reserved flag, however, some other kernel componet > >> will misconceive these pages are reserved mmio (ex: we map these dev_dax > >> or fs_dax pages to kvm for DIMM/NVDIMM backend). Together with the type > >> MEMORY_DEVICE_FS_DAX, we can use is_dax_page() to differentiate the pages > >> is DAX device memory or not. > >> > >> Signed-off-by: Zhang Yi > >> Signed-off-by: Zhang Yu > >> --- > >> include/linux/mm.h | 12 ++++++++++++ > >> 1 file changed, 12 insertions(+) > >> > >> diff --git a/include/linux/mm.h b/include/linux/mm.h > >> index 68a5121..de5cbc3 100644 > >> --- a/include/linux/mm.h > >> +++ b/include/linux/mm.h > >> @@ -889,6 +889,13 @@ static inline bool is_device_public_page(const struct > >> page *page) > >> page->pgmap->type == MEMORY_DEVICE_PUBLIC; > >> } > >> > >> +static inline bool is_dax_page(const struct page *page) > >> +{ > >> + return is_zone_device_page(page) && > >> + (page->pgmap->type == MEMORY_DEVICE_FS_DAX || > >> + page->pgmap->type == MEMORY_DEVICE_DEV_DAX); > >> +} > > I think question from Dan for KVM VM with 'MEMORY_DEVICE_PUBLIC' still holds? > > I am also interested to know if there is any use-case. > > > > Thanks, > > Pankaj > Yes, it is, thanks for your remind, Pankaj. > Adding Jerome for Dan's questions on V1: > [Dan]: > > Jerome, might there be any use case to pass MEMORY_DEVICE_PUBLIC > memory to a guest vm? Yes and no, i am not sure how we are going to do it. But being able to share GPU among multiple VM is on TODO list and those GPU will have MEMORY_DEVICE_PUBLIC|PRIVATE depending on the platform. So either we pass down the real underlying resource to the guest, or we will pass down a fake one and have guest and host driver talk to each other so that the host driver can do overall resource management accross multiple guests. So i would say that for now you can ignore MEMORY_DEVICE_PUBLIC and when we get to the KVM guest sharing of those and decide how we want to do it then we can update kvm to properly interpret those. Cheers, Jérôme