From patchwork Mon Jul 23 05:56:55 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mike Rapoport X-Patchwork-Id: 10539643 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 1213E13BB for ; Mon, 23 Jul 2018 05:57:18 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id F325B20748 for ; Mon, 23 Jul 2018 05:57:17 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id E70EE209CE; Mon, 23 Jul 2018 05:57:17 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.9 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.1 Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 081AB20748 for ; Mon, 23 Jul 2018 05:57:15 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id D45806B0006; Mon, 23 Jul 2018 01:57:14 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id C7F346B0007; Mon, 23 Jul 2018 01:57:14 -0400 (EDT) X-Original-To: int-list-linux-mm@kvack.org X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id B989E6B0008; Mon, 23 Jul 2018 01:57:14 -0400 (EDT) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from mail-ed1-f72.google.com (mail-ed1-f72.google.com [209.85.208.72]) by kanga.kvack.org (Postfix) with ESMTP id 5C93D6B0006 for ; Mon, 23 Jul 2018 01:57:14 -0400 (EDT) Received: by mail-ed1-f72.google.com with SMTP id x21-v6so7462488eds.2 for ; Sun, 22 Jul 2018 22:57:14 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-original-authentication-results:x-gm-message-state:from:to:cc :subject:date:in-reply-to:references:message-id; bh=iQhY9N1AZC7ews/RqkX4DW5nLeTaxM279N01LTr6sHY=; b=grU5r0aD7KFsT13Zzp5EZqGp1hUVRHNLlEF6hu6ogrPATjZ6ffs2T7fbe56PagAwix Hz8qbI0mUfk3wDLT0cVM+rOUjAl/txXCObr3498U1AlJ/FfjnD20bE9KklTGHdymq1JH KY/ltAcpsEz48ouAvT88qNzDTU1e+bmu9C7bH/ubn3SMa+fIcfe8i3vreb9h6vzRf4Ar vP1jvt41XS8vHRd/hazbenY1Ly5vv0tR0X/RqB1R4dfYIVDqMNaxCI2jlUZQwAOEGpJP R30YC0JnN8CRYM+zHlYm0wTmwz/6ImIN5JImYMDBqiKe/ELAfW7jBl0iDQYmcgb1q6Ea XN5Q== X-Original-Authentication-Results: mx.google.com; spf=neutral (google.com: 148.163.156.1 is neither permitted nor denied by best guess record for domain of rppt@linux.vnet.ibm.com) smtp.mailfrom=rppt@linux.vnet.ibm.com; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=ibm.com X-Gm-Message-State: AOUpUlHWuDpDB6zMeArqezKgIH5rrF6KE8vbR4nqnCozMDg4aJmXMCu3 aA84ZkruWb0QM0FiiGBQYIkV5l7s121gfIJyjlZlU5u7K6VOd+gL+OBnIYPIdGYlL9zxr5hbElw NS6QAPLCCgXG+eyyuBcfqXawBavxvGs00xXPJ1jGCoPHQbOIFfOqbw6eYy1KDoUU= X-Received: by 2002:a50:a725:: with SMTP id h34-v6mr12618295edc.297.1532325433936; Sun, 22 Jul 2018 22:57:13 -0700 (PDT) X-Google-Smtp-Source: AAOMgpc9RQWDPdBAr1jqNho4bjDumy5xb3N3YPlq92UjGa90NbBuZ6fyvu+Y3w0NrBaw81aR4bW5 X-Received: by 2002:a50:a725:: with SMTP id h34-v6mr12618255edc.297.1532325433242; Sun, 22 Jul 2018 22:57:13 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1532325433; cv=none; d=google.com; s=arc-20160816; b=ly2anCRHXhg654LJCVqXowjb1GKdwrNQ6o5eofgCPR2f+AO6ygMaAUE7UP8QisvJ7Y YjoyBTo6RMm4pIvsDPBzZUEkp6SocQ2ZL+1fWDQYeCsvonEPgNWxOkVZ2kfD7WrW3nMx YQWs45jJFEi80YWSnulR2hay3agCHWFXMCtb3yHXJzM8ulWU6SvJts0P8JS6MFV1M0r0 2iYrLvLTB5t4KOV4Zo3UbyW1UrBoPw9svyGsuHpymkqJIJcw4fljoAFyv1OKGz4bZ84r R/exBkpzMu1XXTu4vam8jLCcHDUsZKfSVC3MGkLc0GasnH7PQDhA+CsUDxB90QjzGlki nYOw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=message-id:references:in-reply-to:date:subject:cc:to:from :arc-authentication-results; bh=iQhY9N1AZC7ews/RqkX4DW5nLeTaxM279N01LTr6sHY=; b=dDOGL2Lvu/S0ZLocPu/ratE+pmmk+MoNQwJy5eOqlmA+94rx8SgKZFVUsepXEUdtJ8 AjodHre6KKeDDHWaEaMhY9c1AWFgUo4DaDAuuM9fxG/bX/Ze3bBBNLVwWV2oiYsVTos+ 3Jkduz0xOx1scUD7LadVXaKkmWUVinfhni8zpKhi9VisJ+i56dEieWw9dab9Kmhs0joZ mJdHWLqoh+TLuQO+PPR2kKwUd3Jb+p4aaYyan+baOrzl+eyuKNZmX/n/F6F/GTuD48g+ rqGL1Hu8KQZiD7sDxsg5ZmIyEGJeslrBKtW+6/CUttbEM5LhlMCDG09HPnEeEFZ2lJy4 0mDw== ARC-Authentication-Results: i=1; mx.google.com; spf=neutral (google.com: 148.163.156.1 is neither permitted nor denied by best guess record for domain of rppt@linux.vnet.ibm.com) smtp.mailfrom=rppt@linux.vnet.ibm.com; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=ibm.com Received: from mx0a-001b2d01.pphosted.com (mx0a-001b2d01.pphosted.com. [148.163.156.1]) by mx.google.com with ESMTPS id j5-v6si6059450edp.51.2018.07.22.22.57.12 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 22 Jul 2018 22:57:13 -0700 (PDT) Received-SPF: neutral (google.com: 148.163.156.1 is neither permitted nor denied by best guess record for domain of rppt@linux.vnet.ibm.com) client-ip=148.163.156.1; Authentication-Results: mx.google.com; spf=neutral (google.com: 148.163.156.1 is neither permitted nor denied by best guess record for domain of rppt@linux.vnet.ibm.com) smtp.mailfrom=rppt@linux.vnet.ibm.com; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=ibm.com Received: from pps.filterd (m0098409.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.16.0.22/8.16.0.22) with SMTP id w6N5s1mV031321 for ; Mon, 23 Jul 2018 01:57:11 -0400 Received: from e06smtp07.uk.ibm.com (e06smtp07.uk.ibm.com [195.75.94.103]) by mx0a-001b2d01.pphosted.com with ESMTP id 2kd4uu8wug-1 (version=TLSv1.2 cipher=AES256-GCM-SHA384 bits=256 verify=NOT) for ; Mon, 23 Jul 2018 01:57:10 -0400 Received: from localhost by e06smtp07.uk.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Mon, 23 Jul 2018 06:57:08 +0100 Received: from b06cxnps4076.portsmouth.uk.ibm.com (9.149.109.198) by e06smtp07.uk.ibm.com (192.168.101.137) with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted; (version=TLSv1/SSLv3 cipher=AES256-GCM-SHA384 bits=256/256) Mon, 23 Jul 2018 06:57:05 +0100 Received: from d06av26.portsmouth.uk.ibm.com (d06av26.portsmouth.uk.ibm.com [9.149.105.62]) by b06cxnps4076.portsmouth.uk.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id w6N5v4QO37617734 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL); Mon, 23 Jul 2018 05:57:04 GMT Received: from d06av26.portsmouth.uk.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id E99CFAE051; Mon, 23 Jul 2018 08:57:14 +0100 (BST) Received: from d06av26.portsmouth.uk.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 66393AE045; Mon, 23 Jul 2018 08:57:13 +0100 (BST) Received: from rapoport-lnx (unknown [9.148.8.108]) by d06av26.portsmouth.uk.ibm.com (Postfix) with ESMTPS; Mon, 23 Jul 2018 08:57:13 +0100 (BST) Received: by rapoport-lnx (sSMTP sendmail emulation); Mon, 23 Jul 2018 08:57:02 +0300 From: Mike Rapoport To: Tony Luck , Fenghua Yu Cc: Michal Hocko , linux-ia64@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Mike Rapoport Subject: [PATCH 1/4] ia64: contig/paging_init: reduce code duplication Date: Mon, 23 Jul 2018 08:56:55 +0300 X-Mailer: git-send-email 2.7.4 In-Reply-To: <1532325418-22617-1-git-send-email-rppt@linux.vnet.ibm.com> References: <1532325418-22617-1-git-send-email-rppt@linux.vnet.ibm.com> X-TM-AS-GCONF: 00 x-cbid: 18072305-0028-0000-0000-000002DED489 X-IBM-AV-DETECTION: SAVI=unused REMOTE=unused XFE=unused x-cbparentid: 18072305-0029-0000-0000-00002396B29C Message-Id: <1532325418-22617-2-git-send-email-rppt@linux.vnet.ibm.com> X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:,, definitions=2018-07-22_09:,, signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 malwarescore=0 suspectscore=2 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-1806210000 definitions=main-1807230070 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: X-Virus-Scanned: ClamAV using ClamSMTP The FLATMEM version of paging_init has calls to free_area_init_nodes() in the end of every branch of 'if' and 'ifdef' statements. Let's call this function outside the 'ifdef' and 'if' statements instead. Signed-off-by: Mike Rapoport --- arch/ia64/mm/contig.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/arch/ia64/mm/contig.c b/arch/ia64/mm/contig.c index 7d64b30..1835144 100644 --- a/arch/ia64/mm/contig.c +++ b/arch/ia64/mm/contig.c @@ -248,7 +248,6 @@ paging_init (void) efi_memmap_walk(find_largest_hole, (u64 *)&max_gap); if (max_gap < LARGE_GAP) { vmem_map = (struct page *) 0; - free_area_init_nodes(max_zone_pfns); } else { unsigned long map_size; @@ -266,13 +265,12 @@ paging_init (void) */ NODE_DATA(0)->node_mem_map = vmem_map + find_min_pfn_with_active_regions(); - free_area_init_nodes(max_zone_pfns); printk("Virtual mem_map starts at 0x%p\n", mem_map); } #else /* !CONFIG_VIRTUAL_MEM_MAP */ memblock_add_node(0, PFN_PHYS(max_low_pfn), 0); - free_area_init_nodes(max_zone_pfns); #endif /* !CONFIG_VIRTUAL_MEM_MAP */ + free_area_init_nodes(max_zone_pfns); zero_page_memmap_ptr = virt_to_page(ia64_imva(empty_zero_page)); } From patchwork Mon Jul 23 05:56:56 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mike Rapoport X-Patchwork-Id: 10539645 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 3D51E14BC for ; Mon, 23 Jul 2018 05:57:19 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 28CE220748 for ; Mon, 23 Jul 2018 05:57:19 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 1CACF209CE; Mon, 23 Jul 2018 05:57:19 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.9 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.1 Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id A9FC420748 for ; Mon, 23 Jul 2018 05:57:18 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 334CC6B0007; Mon, 23 Jul 2018 01:57:15 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id 2E3E66B0008; Mon, 23 Jul 2018 01:57:15 -0400 (EDT) X-Original-To: int-list-linux-mm@kvack.org X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 184DD6B000A; Mon, 23 Jul 2018 01:57:15 -0400 (EDT) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from mail-oi0-f69.google.com (mail-oi0-f69.google.com [209.85.218.69]) by kanga.kvack.org (Postfix) with ESMTP id E66A96B0008 for ; Mon, 23 Jul 2018 01:57:14 -0400 (EDT) Received: by mail-oi0-f69.google.com with SMTP id b8-v6so16709901oib.4 for ; Sun, 22 Jul 2018 22:57:14 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-original-authentication-results:x-gm-message-state:from:to:cc :subject:date:in-reply-to:references:message-id; bh=LTEJYEF9OtzHPmg1Ng/fhS+L2Q8vPeoeVzT5cpwLwCI=; b=MfvQprVC1zpIO4eYMqW+o9xqD6hxLnVLa1eU+RAS/w3JalsIGj8GTuLbGyVIhBCs4F pAmDSYmo4KSJTbaiRprjbYqa2n6gfOwHtHJMGPwyeTWWax2aYYC1qsJhnCmkoYx+KwDl nAtl9OtFUBjdz/BXAJMk3cz6JCkWq4Dx0oBc8QrKTeGBDMAkqyJWA7/txuyS5II8Ryuo 2G9eW35YMwota64g41UlVQqhtrQZQdUpvdvVmAZJaAPZAjZt8xxuKfb3lCiRzPr81VZJ 5D2QZ3MXNSIn0T9dKh1FCLKSOYxFM5yErAcUVxgAVJNssh32c27VbUfsBu/x0k7uaxxR RVSQ== X-Original-Authentication-Results: mx.google.com; spf=neutral (google.com: 148.163.156.1 is neither permitted nor denied by best guess record for domain of rppt@linux.vnet.ibm.com) smtp.mailfrom=rppt@linux.vnet.ibm.com; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=ibm.com X-Gm-Message-State: AOUpUlE1Y5eMaSTuAVyBsiO6pDMBgMInSTMCRUOX1TYKi9ldUZ6ryfli +d4Y3N1PjrhEjT6vux3SEe/Z3vFUJIXak2BqWD31orFFjF87Lb9MJprZ+FP8PYSJzMd38fyR9u2 Cb1ViQZieNCOqAxSVpOsEardCEQG/sNyfEizlNB5Jj8NBsY7PBiwuFL1pUdPzIRU= X-Received: by 2002:aca:34d6:: with SMTP id b205-v6mr6776950oia.77.1532325434679; Sun, 22 Jul 2018 22:57:14 -0700 (PDT) X-Google-Smtp-Source: AAOMgpez5pmD1QzFaMqg5MIuMOVWamW8y8xtsEFVlUM4TycZyVX5E8YhhBGa46bi6Ys+OAKXL2RQ X-Received: by 2002:aca:34d6:: with SMTP id b205-v6mr6776925oia.77.1532325433962; Sun, 22 Jul 2018 22:57:13 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1532325433; cv=none; d=google.com; s=arc-20160816; b=a2G1Q5v8YjO5+6XyHWJrqxpjwTPv2k4GjbVyhMgorGIFSl7DZNxXKgFnkESfKkEKMh YWOTmMRxH+w9pg2RTVx4doiruU4u0Z0D/gNPqIb1FXAlGyzEZtY6kP5+g2lflAUZmE88 2NfaAJw76RAJCpOawpGGNl59061sUwEUROlhZk6MXtB+bFZBdUeoekPD8HRHwc0No0AA /vSxnn8NoehwdxbXTFRS7Y+X/CxiAgV3L5JkZoktRZG/1nGYlNgOuVijmZ8Rdt4L7u+G TIYWk6URzpy9k5Np4hz+nZN1ZyoZsfO/sgfD/xwUpbau3sjf81TZQGlLTmoF87p1/bXt 84JQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=message-id:references:in-reply-to:date:subject:cc:to:from :arc-authentication-results; bh=LTEJYEF9OtzHPmg1Ng/fhS+L2Q8vPeoeVzT5cpwLwCI=; b=01AxjVsoT8lOAIqB6XsFLfk19dVGxTokrc0BQ/+lqMrZ+fL2IAaGgUUv3tbig6Mb+l HOV3eATNAzQLYxRq7ZY1RVStB33gnWjfaOJMOliCRck5lSwVhuHZdU4vyu2Qyubwhpzm BL1wtj7AuSXJrm5Rtp8IgUEpnd2He8Uxr/apl8P70nuUgg4ZcgSqfzYZ+n9EuakJKXc8 SmJCDTM7vLjKIo17HZFXmeF1xNWobR4WUvCbTeKAl59Tn4D01J94Od9dhr/WYIE2ydZE TnTo7xEpaHLLGdpThiSVQKu+ikqnjJeg+2LB0iCpb1MQLPokgbuSUO0fx7vCuhkcsqVI 2V6w== ARC-Authentication-Results: i=1; mx.google.com; spf=neutral (google.com: 148.163.156.1 is neither permitted nor denied by best guess record for domain of rppt@linux.vnet.ibm.com) smtp.mailfrom=rppt@linux.vnet.ibm.com; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=ibm.com Received: from mx0a-001b2d01.pphosted.com (mx0a-001b2d01.pphosted.com. [148.163.156.1]) by mx.google.com with ESMTPS id o132-v6si5547528oih.401.2018.07.22.22.57.13 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 22 Jul 2018 22:57:13 -0700 (PDT) Received-SPF: neutral (google.com: 148.163.156.1 is neither permitted nor denied by best guess record for domain of rppt@linux.vnet.ibm.com) client-ip=148.163.156.1; Authentication-Results: mx.google.com; spf=neutral (google.com: 148.163.156.1 is neither permitted nor denied by best guess record for domain of rppt@linux.vnet.ibm.com) smtp.mailfrom=rppt@linux.vnet.ibm.com; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=ibm.com Received: from pps.filterd (m0098399.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.16.0.22/8.16.0.22) with SMTP id w6N5s2L8060607 for ; Mon, 23 Jul 2018 01:57:13 -0400 Received: from e06smtp02.uk.ibm.com (e06smtp02.uk.ibm.com [195.75.94.98]) by mx0a-001b2d01.pphosted.com with ESMTP id 2kd7r4umve-1 (version=TLSv1.2 cipher=AES256-GCM-SHA384 bits=256 verify=NOT) for ; Mon, 23 Jul 2018 01:57:12 -0400 Received: from localhost by e06smtp02.uk.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Mon, 23 Jul 2018 06:57:10 +0100 Received: from b06cxnps4074.portsmouth.uk.ibm.com (9.149.109.196) 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) Mon, 23 Jul 2018 06:57:07 +0100 Received: from d06av21.portsmouth.uk.ibm.com (d06av21.portsmouth.uk.ibm.com [9.149.105.232]) by b06cxnps4074.portsmouth.uk.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id w6N5v65r34603148 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL); Mon, 23 Jul 2018 05:57:06 GMT Received: from d06av21.portsmouth.uk.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id F117F52051; Mon, 23 Jul 2018 08:57:21 +0100 (BST) Received: from rapoport-lnx (unknown [9.148.8.108]) by d06av21.portsmouth.uk.ibm.com (Postfix) with ESMTPS id 6D85B5204E; Mon, 23 Jul 2018 08:57:20 +0100 (BST) Received: by rapoport-lnx (sSMTP sendmail emulation); Mon, 23 Jul 2018 08:57:04 +0300 From: Mike Rapoport To: Tony Luck , Fenghua Yu Cc: Michal Hocko , linux-ia64@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Mike Rapoport Subject: [PATCH 2/4] ia64: remove unused num_dma_physpages member from 'struct early_node_data' Date: Mon, 23 Jul 2018 08:56:56 +0300 X-Mailer: git-send-email 2.7.4 In-Reply-To: <1532325418-22617-1-git-send-email-rppt@linux.vnet.ibm.com> References: <1532325418-22617-1-git-send-email-rppt@linux.vnet.ibm.com> X-TM-AS-GCONF: 00 x-cbid: 18072305-0008-0000-0000-000002565300 X-IBM-AV-DETECTION: SAVI=unused REMOTE=unused XFE=unused x-cbparentid: 18072305-0009-0000-0000-000021BCBE8D Message-Id: <1532325418-22617-3-git-send-email-rppt@linux.vnet.ibm.com> X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:,, definitions=2018-07-22_09:,, signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 malwarescore=0 suspectscore=2 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-1806210000 definitions=main-1807230070 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: X-Virus-Scanned: ClamAV using ClamSMTP Since commit 05e0caad3b7b ("[PATCH] Have ia64 use add_active_range() and free_area_init_nodes") the num_dma_physpages member of 'struct early_node_data' is calculated but never used. Remove it. Signed-off-by: Mike Rapoport --- arch/ia64/mm/discontig.c | 8 -------- 1 file changed, 8 deletions(-) diff --git a/arch/ia64/mm/discontig.c b/arch/ia64/mm/discontig.c index 7d9bd20..6148ea8 100644 --- a/arch/ia64/mm/discontig.c +++ b/arch/ia64/mm/discontig.c @@ -38,9 +38,6 @@ struct early_node_data { struct ia64_node_data *node_data; unsigned long pernode_addr; unsigned long pernode_size; -#ifdef CONFIG_ZONE_DMA32 - unsigned long num_dma_physpages; -#endif unsigned long min_pfn; unsigned long max_pfn; }; @@ -669,11 +666,6 @@ static __init int count_node_pages(unsigned long start, unsigned long len, int n { unsigned long end = start + len; -#ifdef CONFIG_ZONE_DMA32 - if (start <= __pa(MAX_DMA_ADDRESS)) - mem_data[node].num_dma_physpages += - (min(end, __pa(MAX_DMA_ADDRESS)) - start) >>PAGE_SHIFT; -#endif start = GRANULEROUNDDOWN(start); end = GRANULEROUNDUP(end); mem_data[node].max_pfn = max(mem_data[node].max_pfn, From patchwork Mon Jul 23 05:56:57 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mike Rapoport X-Patchwork-Id: 10539647 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 57EFF14BC for ; Mon, 23 Jul 2018 05:57:22 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 42E53204FB for ; Mon, 23 Jul 2018 05:57:22 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 36CE220952; Mon, 23 Jul 2018 05:57:22 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.9 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.1 Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 93C10204FB for ; Mon, 23 Jul 2018 05:57:21 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 09E826B000A; Mon, 23 Jul 2018 01:57:16 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id 000486B000E; Mon, 23 Jul 2018 01:57:15 -0400 (EDT) X-Original-To: int-list-linux-mm@kvack.org X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id DDF6A6B000C; Mon, 23 Jul 2018 01:57:15 -0400 (EDT) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from mail-oi0-f69.google.com (mail-oi0-f69.google.com [209.85.218.69]) by kanga.kvack.org (Postfix) with ESMTP id B64B96B0008 for ; Mon, 23 Jul 2018 01:57:15 -0400 (EDT) Received: by mail-oi0-f69.google.com with SMTP id 22-v6so16719631oix.0 for ; Sun, 22 Jul 2018 22:57:15 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-original-authentication-results:x-gm-message-state:from:to:cc :subject:date:in-reply-to:references:message-id; bh=rlQ2DbkS6VkL6wj8UOz882380H4xcUMg/fvLXSKfLWM=; b=EDsAR9Q/tmUVlm0BYrCzFKCk4qp5VpSraEhHemPV2s1imE0X7v8UChwH5tOUqPWmfl ZQVdXp7ahkcq0dkWNxMWdim4qIh8MpbrN7XiAPtP5mB31rVvRIgIFUHbbI81rYCRdt0Z Ijv5kcIdD6a/q1ROCSiU5XGmO8zWwRshE6hgWfanAS7oV0qWzL1rdEKRjjgtQWMd5ngh J8U5dsjgg/nLhIvnWziOZ+klY9A9kmsX+SIoROkAcQC38LCnjvqjAE+dwagEUoyvGppr QtPGx8SIb8MiCB0Aq/SUtvyckg176BrEDQ2vL9xZq2mfDMAJQz4vwbeNuLyGk5KYQ5Wd n3dg== X-Original-Authentication-Results: mx.google.com; spf=neutral (google.com: 148.163.158.5 is neither permitted nor denied by best guess record for domain of rppt@linux.vnet.ibm.com) smtp.mailfrom=rppt@linux.vnet.ibm.com; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=ibm.com X-Gm-Message-State: AOUpUlGFEtyOL8f3Dn5jE+BlpX3HQrUXIB3KOBHjoUtMuOQFy3TUi+j/ l/Mx6GZaXCIXGKsiV56Et36xV6JMahBEUD98VHrzGpJLhJ0HQI3ROSo9TpNZxPGa+qSTXR5LzZm iCll0cZj2t3gi55F66GIz7mxGSswRsVy6fmKFEIUuJ35vI9LQbmX7Bej1eKPkwqA= X-Received: by 2002:aca:ecd0:: with SMTP id k199-v6mr7856820oih.227.1532325435480; Sun, 22 Jul 2018 22:57:15 -0700 (PDT) X-Google-Smtp-Source: AAOMgpfmerLAKcbk8l7s2lb8gk+J3jt2m2VLi/v5z8GPgj13i6lZcwXjsFRiUzPqMBreSdXzuTbL X-Received: by 2002:aca:ecd0:: with SMTP id k199-v6mr7856789oih.227.1532325434628; Sun, 22 Jul 2018 22:57:14 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1532325434; cv=none; d=google.com; s=arc-20160816; b=yd0OHsWu49+TuzwkVnHP946jFJa2l2Wk3VGvKEpr9Nd+VmUTUauMq2JDuea9P4RR0M eqVH5Eq0Ll4wNuA0A05YU5YEgYrwnRXV70sXg45C2cbeyFUgAtcAE/KIqeH6n6pf/j8r jIQGnwW7ZTziA2q84ODkyvlFiY/Thz4Ak9KLFA9RdDPgYFhIa5MJj3tX1EAVGPGlsuks H501GsnmDNT9EAGOFDFig8iMOp/5G4Kp20mOxf4HfmdgMUHjgzVcwXVXqh59c2d/Wzyh buuaIh3rPBmNSCS8J0VGQQL6IqEq5zbfJAEYnRdwkj1pucDZkQYnrwK77yc1KTdad+HX Ys4w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=message-id:references:in-reply-to:date:subject:cc:to:from :arc-authentication-results; bh=rlQ2DbkS6VkL6wj8UOz882380H4xcUMg/fvLXSKfLWM=; b=yZK8hBxe7n2PEVbuKGlohoTgnKkF7Vs/s/UQgFd6zhiJI8aM5R2Hd5oF/VVuvyxcfd 96ZWQMy2ABEd6uNCk8d6CzUDlKFKDMQlUuDC2wnqEXcgLHgA5Oh5Wt1yxu/BEBRLXheQ JDHbHN3bCCYYIcIYKwV6G9fVmAFknVfWVfuYsSrEKe2f5loxkkfPOOeI9bIjGJNGPllo t3lupG9Tz7/h+1EVX5BkNo+56TZbAbPTHOBIpJ/SVnwFMUJUaG0ai3X2bcyYn4RbLdYW x3vZXBF/j762O/b3tX3r2RQVGPgUDLa6PSbkdtsvh9RLV+eQiLABmGqGZbQyWsYtYQvm y7zQ== ARC-Authentication-Results: i=1; mx.google.com; spf=neutral (google.com: 148.163.158.5 is neither permitted nor denied by best guess record for domain of rppt@linux.vnet.ibm.com) smtp.mailfrom=rppt@linux.vnet.ibm.com; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=ibm.com Received: from mx0a-001b2d01.pphosted.com (mx0b-001b2d01.pphosted.com. [148.163.158.5]) by mx.google.com with ESMTPS id w204-v6si5861420oig.179.2018.07.22.22.57.14 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 22 Jul 2018 22:57:14 -0700 (PDT) Received-SPF: neutral (google.com: 148.163.158.5 is neither permitted nor denied by best guess record for domain of rppt@linux.vnet.ibm.com) client-ip=148.163.158.5; Authentication-Results: mx.google.com; spf=neutral (google.com: 148.163.158.5 is neither permitted nor denied by best guess record for domain of rppt@linux.vnet.ibm.com) smtp.mailfrom=rppt@linux.vnet.ibm.com; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=ibm.com Received: from pps.filterd (m0098419.ppops.net [127.0.0.1]) by mx0b-001b2d01.pphosted.com (8.16.0.22/8.16.0.22) with SMTP id w6N5rw1W053865 for ; Mon, 23 Jul 2018 01:57:14 -0400 Received: from e06smtp02.uk.ibm.com (e06smtp02.uk.ibm.com [195.75.94.98]) by mx0b-001b2d01.pphosted.com with ESMTP id 2kd8d39qw0-1 (version=TLSv1.2 cipher=AES256-GCM-SHA384 bits=256 verify=NOT) for ; Mon, 23 Jul 2018 01:57:13 -0400 Received: from localhost by e06smtp02.uk.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Mon, 23 Jul 2018 06:57:12 +0100 Received: from b06cxnps3074.portsmouth.uk.ibm.com (9.149.109.194) 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) Mon, 23 Jul 2018 06:57:09 +0100 Received: from d06av22.portsmouth.uk.ibm.com (d06av22.portsmouth.uk.ibm.com [9.149.105.58]) by b06cxnps3074.portsmouth.uk.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id w6N5v9wW42729666 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL); Mon, 23 Jul 2018 05:57:09 GMT Received: from d06av22.portsmouth.uk.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 0694E4C044; Mon, 23 Jul 2018 08:57:25 +0100 (BST) Received: from d06av22.portsmouth.uk.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 8034F4C040; Mon, 23 Jul 2018 08:57:23 +0100 (BST) Received: from rapoport-lnx (unknown [9.148.8.108]) by d06av22.portsmouth.uk.ibm.com (Postfix) with ESMTPS; Mon, 23 Jul 2018 08:57:23 +0100 (BST) Received: by rapoport-lnx (sSMTP sendmail emulation); Mon, 23 Jul 2018 08:57:06 +0300 From: Mike Rapoport To: Tony Luck , Fenghua Yu Cc: Michal Hocko , linux-ia64@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Mike Rapoport Subject: [PATCH 3/4] ia64: use mem_data to detect nodes' minimal and maximal PFNs Date: Mon, 23 Jul 2018 08:56:57 +0300 X-Mailer: git-send-email 2.7.4 In-Reply-To: <1532325418-22617-1-git-send-email-rppt@linux.vnet.ibm.com> References: <1532325418-22617-1-git-send-email-rppt@linux.vnet.ibm.com> X-TM-AS-GCONF: 00 x-cbid: 18072305-0008-0000-0000-000002565301 X-IBM-AV-DETECTION: SAVI=unused REMOTE=unused XFE=unused x-cbparentid: 18072305-0009-0000-0000-000021BCBE8E Message-Id: <1532325418-22617-4-git-send-email-rppt@linux.vnet.ibm.com> X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:,, definitions=2018-07-22_09:,, signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 malwarescore=0 suspectscore=2 phishscore=0 bulkscore=0 spamscore=0 clxscore=1015 lowpriorityscore=0 mlxscore=0 impostorscore=0 mlxlogscore=930 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1806210000 definitions=main-1807230070 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: X-Virus-Scanned: ClamAV using ClamSMTP When EFI memory map is traversed to determine the extents of each node, the minimal and maximal PFNs are stored in the bootmem_data structures. The same information ls later stored in the mem_data array of 'struct early_node_data'. Switch to using mem_data from the very beginning. Signed-off-by: Mike Rapoport --- arch/ia64/mm/discontig.c | 60 +++++++++++------------------------------------- 1 file changed, 14 insertions(+), 46 deletions(-) diff --git a/arch/ia64/mm/discontig.c b/arch/ia64/mm/discontig.c index 6148ea8..8e99d8e 100644 --- a/arch/ia64/mm/discontig.c +++ b/arch/ia64/mm/discontig.c @@ -57,33 +57,31 @@ pg_data_t *pgdat_list[MAX_NUMNODES]; (((node)*PERCPU_PAGE_SIZE) & (MAX_NODE_ALIGN_OFFSET - 1))) /** - * build_node_maps - callback to setup bootmem structs for each node + * build_node_maps - callback to setup mem_data structs for each node * @start: physical start of range * @len: length of range * @node: node where this range resides * - * We allocate a struct bootmem_data for each piece of memory that we wish to + * Detect extents of each piece of memory that we wish to * treat as a virtually contiguous block (i.e. each node). Each such block * must start on an %IA64_GRANULE_SIZE boundary, so we round the address down * if necessary. Any non-existent pages will simply be part of the virtual - * memmap. We also update min_low_pfn and max_low_pfn here as we receive - * memory ranges from the caller. + * memmap. */ static int __init build_node_maps(unsigned long start, unsigned long len, int node) { unsigned long spfn, epfn, end = start + len; - struct bootmem_data *bdp = &bootmem_node_data[node]; epfn = GRANULEROUNDUP(end) >> PAGE_SHIFT; spfn = GRANULEROUNDDOWN(start) >> PAGE_SHIFT; - if (!bdp->node_low_pfn) { - bdp->node_min_pfn = spfn; - bdp->node_low_pfn = epfn; + if (!mem_data[node].min_pfn) { + mem_data[node].min_pfn = spfn; + mem_data[node].max_pfn = epfn; } else { - bdp->node_min_pfn = min(spfn, bdp->node_min_pfn); - bdp->node_low_pfn = max(epfn, bdp->node_low_pfn); + mem_data[node].min_pfn = min(spfn, mem_data[node].min_pfn); + mem_data[node].max_pfn = max(epfn, mem_data[node].max_pfn); } return 0; @@ -323,19 +321,18 @@ static int __init find_pernode_space(unsigned long start, unsigned long len, { unsigned long spfn, epfn; unsigned long pernodesize = 0, pernode, pages, mapsize; - struct bootmem_data *bdp = &bootmem_node_data[node]; spfn = start >> PAGE_SHIFT; epfn = (start + len) >> PAGE_SHIFT; - pages = bdp->node_low_pfn - bdp->node_min_pfn; + pages = mem_data[node].max_pfn - mem_data[node].min_pfn; mapsize = bootmem_bootmap_pages(pages) << PAGE_SHIFT; /* * Make sure this memory falls within this node's usable memory * since we may have thrown some away in build_maps(). */ - if (spfn < bdp->node_min_pfn || epfn > bdp->node_low_pfn) + if (spfn < mem_data[node].min_pfn || epfn > mem_data[node].max_pfn) return 0; /* Don't setup this node's local space twice... */ @@ -397,7 +394,7 @@ static void __init reserve_pernode_space(void) bdp = pdp->bdata; /* First the bootmem_map itself */ - pages = bdp->node_low_pfn - bdp->node_min_pfn; + pages = mem_data[node].max_pfn - mem_data[node].min_pfn; size = bootmem_bootmap_pages(pages) << PAGE_SHIFT; base = __pa(bdp->node_bootmem_map); reserve_bootmem_node(pdp, base, size, BOOTMEM_DEFAULT); @@ -541,10 +538,8 @@ void __init find_memory(void) efi_memmap_walk(find_max_min_low_pfn, NULL); for_each_online_node(node) - if (bootmem_node_data[node].node_low_pfn) { + if (mem_data[node].min_pfn) node_clear(node, memory_less_mask); - mem_data[node].min_pfn = ~0UL; - } efi_memmap_walk(filter_memory, register_active_ranges); @@ -568,8 +563,8 @@ void __init find_memory(void) init_bootmem_node(pgdat_list[node], map>>PAGE_SHIFT, - bdp->node_min_pfn, - bdp->node_low_pfn); + mem_data[node].min_pfn, + mem_data[node].max_pfn); } efi_memmap_walk(filter_rsvd_memory, free_node_bootmem); @@ -652,31 +647,6 @@ void call_pernode_memory(unsigned long start, unsigned long len, void *arg) } /** - * count_node_pages - callback to build per-node memory info structures - * @start: physical start of range - * @len: length of range - * @node: node where this range resides - * - * Each node has it's own number of physical pages, DMAable pages, start, and - * end page frame number. This routine will be called by call_pernode_memory() - * for each piece of usable memory and will setup these values for each node. - * Very similar to build_maps(). - */ -static __init int count_node_pages(unsigned long start, unsigned long len, int node) -{ - unsigned long end = start + len; - - start = GRANULEROUNDDOWN(start); - end = GRANULEROUNDUP(end); - mem_data[node].max_pfn = max(mem_data[node].max_pfn, - end >> PAGE_SHIFT); - mem_data[node].min_pfn = min(mem_data[node].min_pfn, - start >> PAGE_SHIFT); - - return 0; -} - -/** * paging_init - setup page tables * * paging_init() sets up the page tables for each node of the system and frees @@ -692,8 +662,6 @@ void __init paging_init(void) max_dma = virt_to_phys((void *) MAX_DMA_ADDRESS) >> PAGE_SHIFT; - efi_memmap_walk(filter_rsvd_memory, count_node_pages); - sparse_memory_present_with_active_regions(MAX_NUMNODES); sparse_init(); From patchwork Mon Jul 23 05:56:58 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mike Rapoport X-Patchwork-Id: 10539649 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 6A4CE13BB for ; Mon, 23 Jul 2018 05:57:25 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 562A7204FB for ; Mon, 23 Jul 2018 05:57:25 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 4A87720952; Mon, 23 Jul 2018 05:57:25 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.9 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.1 Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 679C9204FB for ; Mon, 23 Jul 2018 05:57:24 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E7E206B000C; Mon, 23 Jul 2018 01:57:17 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id E327E6B000E; Mon, 23 Jul 2018 01:57:17 -0400 (EDT) X-Original-To: int-list-linux-mm@kvack.org X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id CCF1B6B0010; Mon, 23 Jul 2018 01:57:17 -0400 (EDT) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from mail-oi0-f69.google.com (mail-oi0-f69.google.com [209.85.218.69]) by kanga.kvack.org (Postfix) with ESMTP id 94A476B000C for ; Mon, 23 Jul 2018 01:57:17 -0400 (EDT) Received: by mail-oi0-f69.google.com with SMTP id l26-v6so16689696oii.14 for ; Sun, 22 Jul 2018 22:57:17 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-original-authentication-results:x-gm-message-state:from:to:cc :subject:date:in-reply-to:references:message-id; bh=/1Ec7RzHEd/BYzYvgCR8lADCu/eY+HhOltByUQ/YZIY=; b=n+Ocy0TiIQ6R6iHtxaTaC6DG2bVZBBlWJ3fy30d7VodPu/Gz58aeQg+wepJfsQmU/d Vl7/KF1WC247JFp493yQ/1wEfSUZNLKFr97nUGuQ66MGlfZD+1GJwkSXtDMy3QGhw7qw AoC7k4GRQp+fR/ITy0CeRn5M/mBn6hLJJdlQvYhc1esaqaZsFgDVnMpIFSX6H9lM6wev j9N1rzen54J/J0Sa3CxlDJu5eOBZf6DMJHeqflV4U+za21jG89luGB9AX/tt1K8w+mVy Bp+iGXuwSYH+iX/jkz7s9X7Q2r1s8ye2fVr7Mv87LCCUQ6evRjlliTVDE0KEjXz+T81Q W9/w== X-Original-Authentication-Results: mx.google.com; spf=neutral (google.com: 148.163.158.5 is neither permitted nor denied by best guess record for domain of rppt@linux.vnet.ibm.com) smtp.mailfrom=rppt@linux.vnet.ibm.com; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=ibm.com X-Gm-Message-State: AOUpUlHB3S2X4HtEofOIbXNmBZZchRKBlsZj4oj4yEqy9lfoUQt12WSC OX3WMR74NruVAEaTCII3ZMKKiK//zEaQ3ic3bSAOoYUn9XvzNwCos8ptO93W3LPkVwEkDT37cg+ N8uDyRzMiC+8U0PmzgknWPBgfUcbCzxlvlSCWGGTnWr3HVsjL+E7fa8auibln02w= X-Received: by 2002:aca:b3d6:: with SMTP id c205-v6mr7925265oif.133.1532325437364; Sun, 22 Jul 2018 22:57:17 -0700 (PDT) X-Google-Smtp-Source: AAOMgpe0jMxpALSAKGRMk051dBx79hwbncKlP5PF3g5IGsiHwnJ1zom1VBx7jd0mUmQH5pPFs+XK X-Received: by 2002:aca:b3d6:: with SMTP id c205-v6mr7925222oif.133.1532325436429; Sun, 22 Jul 2018 22:57:16 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1532325436; cv=none; d=google.com; s=arc-20160816; b=tUvfNmZVMyMbh+dEQ6SLOLvCuD93HNUDyPSODP3L+eXr3ahtVb2JRnfjN7XZhI5zuA ozInlSVnjLJu5jM666DaYQSSDEk7pRl7H69rBex0DTuNgjiEBlI4sozmftj2PTBQPeY1 9HeycWG+1LINok0CwKz2lYU6JlSYVZ5vIqMpq4ZobXa5kWcIvY8ZdWIjReJfgDBM2z3K Q+2xc9L4FZJtj2aSEV8SCg2f7W3yliigAgt76h3n3q0hP5f7+7U+3OUzbD9WAfN5h9vO ACvg8CrAExtoPFjGzDxvx8coQ84TuGYyfe83VtsaZyLIwX6alzx/qZivYrZpiA6BWuJY EUPg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=message-id:references:in-reply-to:date:subject:cc:to:from :arc-authentication-results; bh=/1Ec7RzHEd/BYzYvgCR8lADCu/eY+HhOltByUQ/YZIY=; b=LxArxN44JKT2hu0F2R/e93saP6U6G78HJBI6Y1kNBjgYI8oX/EA4+g9zwAqZ31v6VE iX7kPrMpRS0piVM9usSKYR/Yw5Ug7Yjp74fetM7PKipBljKDd6F+Dk7kDmMxEOe9yHEa 9odQEeK+05+B5v59NXVhmMWN4cnnGlpoSciFj7+bP6lghoLtPYvrW8cLl8UKwqDklaUZ J/OcymaVzK/CGcjhdDAOJzZd2y2E73zsTAMC4QSuAIddx09pgtE177KfoFsDA6WOshj9 wg4DmN0WON4gOhL/c8aymkyEpOcTntzKeuxd9VvFnwnU0YsdODF5RMv09Os1HnkXguDY O+lg== ARC-Authentication-Results: i=1; mx.google.com; spf=neutral (google.com: 148.163.158.5 is neither permitted nor denied by best guess record for domain of rppt@linux.vnet.ibm.com) smtp.mailfrom=rppt@linux.vnet.ibm.com; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=ibm.com Received: from mx0a-001b2d01.pphosted.com (mx0b-001b2d01.pphosted.com. [148.163.158.5]) by mx.google.com with ESMTPS id 13-v6si5613381ois.104.2018.07.22.22.57.16 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 22 Jul 2018 22:57:16 -0700 (PDT) Received-SPF: neutral (google.com: 148.163.158.5 is neither permitted nor denied by best guess record for domain of rppt@linux.vnet.ibm.com) client-ip=148.163.158.5; Authentication-Results: mx.google.com; spf=neutral (google.com: 148.163.158.5 is neither permitted nor denied by best guess record for domain of rppt@linux.vnet.ibm.com) smtp.mailfrom=rppt@linux.vnet.ibm.com; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=ibm.com Received: from pps.filterd (m0098421.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.16.0.22/8.16.0.22) with SMTP id w6N5rvHj071019 for ; Mon, 23 Jul 2018 01:57:15 -0400 Received: from e06smtp01.uk.ibm.com (e06smtp01.uk.ibm.com [195.75.94.97]) by mx0a-001b2d01.pphosted.com with ESMTP id 2kd7vejxdr-1 (version=TLSv1.2 cipher=AES256-GCM-SHA384 bits=256 verify=NOT) for ; Mon, 23 Jul 2018 01:57:15 -0400 Received: from localhost by e06smtp01.uk.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Mon, 23 Jul 2018 06:57:13 +0100 Received: from b06cxnps4074.portsmouth.uk.ibm.com (9.149.109.196) by e06smtp01.uk.ibm.com (192.168.101.131) with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted; (version=TLSv1/SSLv3 cipher=AES256-GCM-SHA384 bits=256/256) Mon, 23 Jul 2018 06:57:12 +0100 Received: from d06av23.portsmouth.uk.ibm.com (d06av23.portsmouth.uk.ibm.com [9.149.105.59]) by b06cxnps4074.portsmouth.uk.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id w6N5vB2k36569156 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL); Mon, 23 Jul 2018 05:57:11 GMT Received: from d06av23.portsmouth.uk.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 5319FA4057; Mon, 23 Jul 2018 08:57:26 +0100 (BST) Received: from d06av23.portsmouth.uk.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id C271FA405F; Mon, 23 Jul 2018 08:57:24 +0100 (BST) Received: from rapoport-lnx (unknown [9.148.8.108]) by d06av23.portsmouth.uk.ibm.com (Postfix) with ESMTPS; Mon, 23 Jul 2018 08:57:24 +0100 (BST) Received: by rapoport-lnx (sSMTP sendmail emulation); Mon, 23 Jul 2018 08:57:08 +0300 From: Mike Rapoport To: Tony Luck , Fenghua Yu Cc: Michal Hocko , linux-ia64@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Mike Rapoport Subject: [PATCH 4/4] ia64: switch to NO_BOOTMEM Date: Mon, 23 Jul 2018 08:56:58 +0300 X-Mailer: git-send-email 2.7.4 In-Reply-To: <1532325418-22617-1-git-send-email-rppt@linux.vnet.ibm.com> References: <1532325418-22617-1-git-send-email-rppt@linux.vnet.ibm.com> X-TM-AS-GCONF: 00 x-cbid: 18072305-4275-0000-0000-0000029C3DB9 X-IBM-AV-DETECTION: SAVI=unused REMOTE=unused XFE=unused x-cbparentid: 18072305-4276-0000-0000-000037A46DCC Message-Id: <1532325418-22617-5-git-send-email-rppt@linux.vnet.ibm.com> X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:,, definitions=2018-07-22_09:,, signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 malwarescore=0 suspectscore=2 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-1806210000 definitions=main-1807230070 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: X-Virus-Scanned: ClamAV using ClamSMTP Since ia64 already uses memblock to register available physical memory it is only required to move the calls to register_active_ranges() that wrap memblock_add_node() earlier and replace bootmem memory reservations with memblock_reserve(). Of course, all the code that find the place to put the bootmem bitmap is removed. Signed-off-by: Mike Rapoport --- arch/ia64/Kconfig | 1 + arch/ia64/kernel/setup.c | 11 ++++++- arch/ia64/mm/contig.c | 71 ++++------------------------------------------ arch/ia64/mm/discontig.c | 74 ++++-------------------------------------------- 4 files changed, 22 insertions(+), 135 deletions(-) diff --git a/arch/ia64/Kconfig b/arch/ia64/Kconfig index ff86142..107b138 100644 --- a/arch/ia64/Kconfig +++ b/arch/ia64/Kconfig @@ -31,6 +31,7 @@ config IA64 select HAVE_ARCH_TRACEHOOK select HAVE_MEMBLOCK select HAVE_MEMBLOCK_NODE_MAP + select NO_BOOTMEM select HAVE_VIRT_CPU_ACCOUNTING select ARCH_HAS_DMA_MARK_CLEAN select ARCH_HAS_SG_CHAIN diff --git a/arch/ia64/kernel/setup.c b/arch/ia64/kernel/setup.c index ad43cbf..b042d0c 100644 --- a/arch/ia64/kernel/setup.c +++ b/arch/ia64/kernel/setup.c @@ -32,6 +32,7 @@ #include #include #include +#include #include #include #include @@ -383,8 +384,16 @@ reserve_memory (void) sort_regions(rsvd_region, num_rsvd_regions); num_rsvd_regions = merge_regions(rsvd_region, num_rsvd_regions); -} + /* reserve all regions except the end of memory marker with meblock */ + for (n = 0; n < num_rsvd_regions - 1; n++) { + struct rsvd_region *region = &rsvd_region[n]; + phys_addr_t addr = __pa(region->start); + phys_addr_t size = region->end - region->start; + + memblock_reserve(addr, size); + } +} /** * find_initrd - get initrd parameters from the boot parameter structure diff --git a/arch/ia64/mm/contig.c b/arch/ia64/mm/contig.c index 1835144..e2e40bb 100644 --- a/arch/ia64/mm/contig.c +++ b/arch/ia64/mm/contig.c @@ -34,53 +34,6 @@ static unsigned long max_gap; /* physical address where the bootmem map is located */ unsigned long bootmap_start; -/** - * find_bootmap_location - callback to find a memory area for the bootmap - * @start: start of region - * @end: end of region - * @arg: unused callback data - * - * Find a place to put the bootmap and return its starting address in - * bootmap_start. This address must be page-aligned. - */ -static int __init -find_bootmap_location (u64 start, u64 end, void *arg) -{ - u64 needed = *(unsigned long *)arg; - u64 range_start, range_end, free_start; - int i; - -#if IGNORE_PFN0 - if (start == PAGE_OFFSET) { - start += PAGE_SIZE; - if (start >= end) - return 0; - } -#endif - - free_start = PAGE_OFFSET; - - for (i = 0; i < num_rsvd_regions; i++) { - range_start = max(start, free_start); - range_end = min(end, rsvd_region[i].start & PAGE_MASK); - - free_start = PAGE_ALIGN(rsvd_region[i].end); - - if (range_end <= range_start) - continue; /* skip over empty range */ - - if (range_end - range_start >= needed) { - bootmap_start = __pa(range_start); - return -1; /* done */ - } - - /* nothing more available in this segment */ - if (range_end == end) - return 0; - } - return 0; -} - #ifdef CONFIG_SMP static void *cpu_data; /** @@ -196,8 +149,6 @@ setup_per_cpu_areas(void) void __init find_memory (void) { - unsigned long bootmap_size; - reserve_memory(); /* first find highest page frame number */ @@ -205,21 +156,12 @@ find_memory (void) max_low_pfn = 0; efi_memmap_walk(find_max_min_low_pfn, NULL); max_pfn = max_low_pfn; - /* how many bytes to cover all the pages */ - bootmap_size = bootmem_bootmap_pages(max_pfn) << PAGE_SHIFT; - /* look for a location to hold the bootmap */ - bootmap_start = ~0UL; - efi_memmap_walk(find_bootmap_location, &bootmap_size); - if (bootmap_start == ~0UL) - panic("Cannot find %ld bytes for bootmap\n", bootmap_size); - - bootmap_size = init_bootmem_node(NODE_DATA(0), - (bootmap_start >> PAGE_SHIFT), 0, max_pfn); - - /* Free all available memory, then mark bootmem-map as being in use. */ - efi_memmap_walk(filter_rsvd_memory, free_bootmem); - reserve_bootmem(bootmap_start, bootmap_size, BOOTMEM_DEFAULT); +#ifdef CONFIG_VIRTUAL_MEM_MAP + efi_memmap_walk(filter_memory, register_active_ranges); +#else + memblock_add_node(0, PFN_PHYS(max_low_pfn), 0); +#endif find_initrd(); @@ -244,7 +186,6 @@ paging_init (void) max_zone_pfns[ZONE_NORMAL] = max_low_pfn; #ifdef CONFIG_VIRTUAL_MEM_MAP - efi_memmap_walk(filter_memory, register_active_ranges); efi_memmap_walk(find_largest_hole, (u64 *)&max_gap); if (max_gap < LARGE_GAP) { vmem_map = (struct page *) 0; @@ -268,8 +209,6 @@ paging_init (void) printk("Virtual mem_map starts at 0x%p\n", mem_map); } -#else /* !CONFIG_VIRTUAL_MEM_MAP */ - memblock_add_node(0, PFN_PHYS(max_low_pfn), 0); #endif /* !CONFIG_VIRTUAL_MEM_MAP */ free_area_init_nodes(max_zone_pfns); zero_page_memmap_ptr = virt_to_page(ia64_imva(empty_zero_page)); diff --git a/arch/ia64/mm/discontig.c b/arch/ia64/mm/discontig.c index 8e99d8e..1928d57 100644 --- a/arch/ia64/mm/discontig.c +++ b/arch/ia64/mm/discontig.c @@ -20,6 +20,7 @@ #include #include #include +#include #include #include #include @@ -264,7 +265,6 @@ static void __init fill_pernode(int node, unsigned long pernode, { void *cpu_data; int cpus = early_nr_cpus_node(node); - struct bootmem_data *bdp = &bootmem_node_data[node]; mem_data[node].pernode_addr = pernode; mem_data[node].pernode_size = pernodesize; @@ -279,8 +279,6 @@ static void __init fill_pernode(int node, unsigned long pernode, mem_data[node].node_data = __va(pernode); pernode += L1_CACHE_ALIGN(sizeof(struct ia64_node_data)); - - pgdat_list[node]->bdata = bdp; pernode += L1_CACHE_ALIGN(sizeof(pg_data_t)); cpu_data = per_cpu_node_setup(cpu_data, node); @@ -320,14 +318,11 @@ static int __init find_pernode_space(unsigned long start, unsigned long len, int node) { unsigned long spfn, epfn; - unsigned long pernodesize = 0, pernode, pages, mapsize; + unsigned long pernodesize = 0, pernode; spfn = start >> PAGE_SHIFT; epfn = (start + len) >> PAGE_SHIFT; - pages = mem_data[node].max_pfn - mem_data[node].min_pfn; - mapsize = bootmem_bootmap_pages(pages) << PAGE_SHIFT; - /* * Make sure this memory falls within this node's usable memory * since we may have thrown some away in build_maps(). @@ -347,32 +342,13 @@ static int __init find_pernode_space(unsigned long start, unsigned long len, pernode = NODEDATA_ALIGN(start, node); /* Is this range big enough for what we want to store here? */ - if (start + len > (pernode + pernodesize + mapsize)) + if (start + len > (pernode + pernodesize)) fill_pernode(node, pernode, pernodesize); return 0; } /** - * free_node_bootmem - free bootmem allocator memory for use - * @start: physical start of range - * @len: length of range - * @node: node where this range resides - * - * Simply calls the bootmem allocator to free the specified ranged from - * the given pg_data_t's bdata struct. After this function has been called - * for all the entries in the EFI memory map, the bootmem allocator will - * be ready to service allocation requests. - */ -static int __init free_node_bootmem(unsigned long start, unsigned long len, - int node) -{ - free_bootmem_node(pgdat_list[node], start, len); - - return 0; -} - -/** * reserve_pernode_space - reserve memory for per-node space * * Reserve the space used by the bootmem maps & per-node space in the boot @@ -381,28 +357,17 @@ static int __init free_node_bootmem(unsigned long start, unsigned long len, */ static void __init reserve_pernode_space(void) { - unsigned long base, size, pages; - struct bootmem_data *bdp; + unsigned long base, size; int node; for_each_online_node(node) { - pg_data_t *pdp = pgdat_list[node]; - if (node_isset(node, memory_less_mask)) continue; - bdp = pdp->bdata; - - /* First the bootmem_map itself */ - pages = mem_data[node].max_pfn - mem_data[node].min_pfn; - size = bootmem_bootmap_pages(pages) << PAGE_SHIFT; - base = __pa(bdp->node_bootmem_map); - reserve_bootmem_node(pdp, base, size, BOOTMEM_DEFAULT); - /* Now the per-node space */ size = mem_data[node].pernode_size; base = __pa(mem_data[node].pernode_addr); - reserve_bootmem_node(pdp, base, size, BOOTMEM_DEFAULT); + memblock_reserve(base, size); } } @@ -522,6 +487,7 @@ void __init find_memory(void) int node; reserve_memory(); + efi_memmap_walk(filter_memory, register_active_ranges); if (num_online_nodes() == 0) { printk(KERN_ERR "node info missing!\n"); @@ -541,34 +507,6 @@ void __init find_memory(void) if (mem_data[node].min_pfn) node_clear(node, memory_less_mask); - efi_memmap_walk(filter_memory, register_active_ranges); - - /* - * Initialize the boot memory maps in reverse order since that's - * what the bootmem allocator expects - */ - for (node = MAX_NUMNODES - 1; node >= 0; node--) { - unsigned long pernode, pernodesize, map; - struct bootmem_data *bdp; - - if (!node_online(node)) - continue; - else if (node_isset(node, memory_less_mask)) - continue; - - bdp = &bootmem_node_data[node]; - pernode = mem_data[node].pernode_addr; - pernodesize = mem_data[node].pernode_size; - map = pernode + pernodesize; - - init_bootmem_node(pgdat_list[node], - map>>PAGE_SHIFT, - mem_data[node].min_pfn, - mem_data[node].max_pfn); - } - - efi_memmap_walk(filter_rsvd_memory, free_node_bootmem); - reserve_pernode_space(); memory_less_nodes(); initialize_pernode_data();