Received: by 2002:ac0:bc90:0:0:0:0:0 with SMTP id a16csp323061img; Wed, 20 Mar 2019 01:10:23 -0700 (PDT) X-Google-Smtp-Source: APXvYqwRxfdar7wsu+WjZm2nM5gdoUPO1GszMmpKau4w4SuSshCdIpIx+BC6qR8AcF/Ej7mvz9cu X-Received: by 2002:a17:902:8c81:: with SMTP id t1mr7161199plo.309.1553069423578; Wed, 20 Mar 2019 01:10:23 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1553069423; cv=none; d=google.com; s=arc-20160816; b=PIPRkAnTmicd1hYtolRdTMAcFY6jmAxvl34m4MxDHxhGSCx3YclYdE05m8HRf/taJh 2Jhs6eXR+AYZyEwu3H8VXC/HWKzQXNmsVR+V3i1AjDVPzKfiBAxxUUzDjNeuqa75km5Y p7wd8b8n7Ic0WiVY3Jb/rYcQleGPwsjDEX8C0OtvdiCbbu8Nn88RSwqVBWMcgfYU+CqB j25W+lUZLmLw/DpQU9TOMNx4dqX0f9+y9td6uRgUJUZm3MNVhjCUdyOTa1HA+4KHLSWV jHrz3me+afMt9Mf/pZmh4wDzZ81t5ejnmygAsCXfQCe/tvBW466cM2EMyMXGWcKPjZ2Y obQg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:mime-version:date:references :in-reply-to:subject:cc:to:from; bh=vXOhmctW8NRvIiQbWlUNeY5u33WXV4I4+p64PjC/ZKY=; b=bE2GzibHWFuQSUd3+Gs2fGLM3X2i/ZTjfGF+BZPrg95sEmKfhmTm+1zG0w8c1At5VO 39vxrtJfo1jTo4SC2X0drbNucfTPbS1h15bRuSOO2QjObg0vD6d3GtgWm3gi9KkrE/7s T6MXDWUDo9evi2No9gzA3Xf9jhxcLP2fgds3h4cg/AX97Yf9ldnqDiBV6z4faibqe5X9 hc8RXfGBg+4SSOmiIDhTLgWtCkR+VyJ6kDw0UNnX5KrrrZbAjuefRuJCXvnbqfq8kD50 ythS4SxTwJ/I9dhQKGbW9AllVAo/VWjDWGtQIh8qGAI0W59Uwji/aFERhipaJCi38znX F6OA== 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=ibm.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id s194si1140118pgs.47.2019.03.20.01.10.08; Wed, 20 Mar 2019 01:10:23 -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=ibm.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727588AbfCTIJ0 (ORCPT + 99 others); Wed, 20 Mar 2019 04:09:26 -0400 Received: from mx0a-001b2d01.pphosted.com ([148.163.156.1]:37140 "EHLO mx0a-001b2d01.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727304AbfCTIJZ (ORCPT ); Wed, 20 Mar 2019 04:09:25 -0400 Received: from pps.filterd (m0098399.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.16.0.27/8.16.0.27) with SMTP id x2K85wq9146482 for ; Wed, 20 Mar 2019 04:09:24 -0400 Received: from e06smtp02.uk.ibm.com (e06smtp02.uk.ibm.com [195.75.94.98]) by mx0a-001b2d01.pphosted.com with ESMTP id 2rbentgkyb-1 (version=TLSv1.2 cipher=AES256-GCM-SHA384 bits=256 verify=NOT) for ; Wed, 20 Mar 2019 04:09:24 -0400 Received: from localhost by e06smtp02.uk.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Wed, 20 Mar 2019 08:09:17 -0000 Received: from b06cxnps4076.portsmouth.uk.ibm.com (9.149.109.198) by e06smtp02.uk.ibm.com (192.168.101.132) with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted; (version=TLSv1/SSLv3 cipher=AES256-GCM-SHA384 bits=256/256) Wed, 20 Mar 2019 08:09:14 -0000 Received: from d06av24.portsmouth.uk.ibm.com (d06av24.portsmouth.uk.ibm.com [9.149.105.60]) by b06cxnps4076.portsmouth.uk.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id x2K89H8X49676504 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 20 Mar 2019 08:09:17 GMT Received: from d06av24.portsmouth.uk.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 4F9D14204D; Wed, 20 Mar 2019 08:09:17 +0000 (GMT) Received: from d06av24.portsmouth.uk.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id AB6D34203F; Wed, 20 Mar 2019 08:09:15 +0000 (GMT) Received: from skywalker.linux.ibm.com (unknown [9.124.31.96]) by d06av24.portsmouth.uk.ibm.com (Postfix) with ESMTP; Wed, 20 Mar 2019 08:09:15 +0000 (GMT) X-Mailer: emacs 26.1 (via feedmail 11-beta-1 I) From: "Aneesh Kumar K.V" To: Dan Williams Cc: Jan Kara , linux-nvdimm , Michael Ellerman , Linux Kernel Mailing List , Linux MM , Ross Zwisler , Andrew Morton , linuxppc-dev , "Kirill A . Shutemov" Subject: Re: [PATCH 2/2] mm/dax: Don't enable huge dax mapping by default In-Reply-To: <87bm267ywc.fsf@linux.ibm.com> References: <20190228083522.8189-1-aneesh.kumar@linux.ibm.com> <20190228083522.8189-2-aneesh.kumar@linux.ibm.com> <87k1hc8iqa.fsf@linux.ibm.com> <871s3aqfup.fsf@linux.ibm.com> <87bm267ywc.fsf@linux.ibm.com> Date: Wed, 20 Mar 2019 13:39:14 +0530 MIME-Version: 1.0 Content-Type: text/plain X-TM-AS-GCONF: 00 x-cbid: 19032008-0008-0000-0000-000002CF7022 X-IBM-AV-DETECTION: SAVI=unused REMOTE=unused XFE=unused x-cbparentid: 19032008-0009-0000-0000-0000223B8633 Message-Id: <878sxa7ys5.fsf@linux.ibm.com> X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:,, definitions=2019-03-20_06:,, signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 malwarescore=0 suspectscore=0 phishscore=0 bulkscore=0 spamscore=0 clxscore=1015 lowpriorityscore=0 mlxscore=0 impostorscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1810050000 definitions=main-1903200068 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Aneesh Kumar K.V writes: > Dan Williams writes: > >> >>> Now what will be page size used for mapping vmemmap? >> >> That's up to the architecture's vmemmap_populate() implementation. >> >>> Architectures >>> possibly will use PMD_SIZE mapping if supported for vmemmap. Now a >>> device-dax with struct page in the device will have pfn reserve area aligned >>> to PAGE_SIZE with the above example? We can't map that using >>> PMD_SIZE page size? >> >> IIUC, that's a different alignment. Currently that's handled by >> padding the reservation area up to a section (128MB on x86) boundary, >> but I'm working on patches to allow sub-section sized ranges to be >> mapped. > > I am missing something w.r.t code. The below code align that using nd_pfn->align > > if (nd_pfn->mode == PFN_MODE_PMEM) { > unsigned long memmap_size; > > /* > * vmemmap_populate_hugepages() allocates the memmap array in > * HPAGE_SIZE chunks. > */ > memmap_size = ALIGN(64 * npfns, HPAGE_SIZE); > offset = ALIGN(start + SZ_8K + memmap_size + dax_label_reserve, > nd_pfn->align) - start; > } > > IIUC that is finding the offset where to put vmemmap start. And that has > to be aligned to the page size with which we may end up mapping vmemmap > area right? > > Yes we find the npfns by aligning up using PAGES_PER_SECTION. But that > is to compute howmany pfns we should map for this pfn dev right? > Also i guess those 4K assumptions there is wrong? modified drivers/nvdimm/pfn_devs.c @@ -783,7 +783,7 @@ static int nd_pfn_init(struct nd_pfn *nd_pfn) return -ENXIO; } - npfns = (size - offset - start_pad - end_trunc) / SZ_4K; + npfns = (size - offset - start_pad - end_trunc) / PAGE_SIZE; pfn_sb->mode = cpu_to_le32(nd_pfn->mode); pfn_sb->dataoff = cpu_to_le64(offset); pfn_sb->npfns = cpu_to_le64(npfns); -aneesh