Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754325AbdCOXIv (ORCPT ); Wed, 15 Mar 2017 19:08:51 -0400 Received: from mail-sn1nam01on0106.outbound.protection.outlook.com ([104.47.32.106]:12208 "EHLO NAM01-SN1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1754057AbdCOXIU (ORCPT ); Wed, 15 Mar 2017 19:08:20 -0400 From: "Kani, Toshimitsu" To: "linux-mm@kvack.org" , "mhocko@kernel.org" CC: "zhenzhang.zhang@huawei.com" , "tangchen@cn.fujitsu.com" , "arbab@linux.vnet.ibm.com" , "vkuznets@redhat.com" , "linux-kernel@vger.kernel.org" , "daniel.kiper@oracle.com" , "xieyisheng1@huawei.com" , "iamjoonsoo.kim@lge.com" , "qiuxishi@huawei.com" , "yasu.isimatu@gmail.com" , "akpm@linux-foundation.org" , "aarcange@redhat.com" , "vbabka@suse.cz" , "imammedo@redhat.com" , "rientjes@google.com" , "mgorman@suse.de" , "ak@linux.intel.com" , "slaoub@gmail.com" Subject: Re: [RFC PATCH] rework memory hotplug onlining Thread-Topic: [RFC PATCH] rework memory hotplug onlining Thread-Index: AQHSnWyJBZOXJ4lOCE+q/X46Wshj4KGWllIA Date: Wed, 15 Mar 2017 23:08:14 +0000 Message-ID: <1489622542.9118.8.camel@hpe.com> References: <20170315091347.GA32626@dhcp22.suse.cz> In-Reply-To: <20170315091347.GA32626@dhcp22.suse.cz> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: kvack.org; dkim=none (message not signed) header.d=none;kvack.org; dmarc=none action=none header.from=hpe.com; x-ms-exchange-messagesentrepresentingtype: 1 x-originating-ip: [15.219.163.8] x-microsoft-exchange-diagnostics: 1;CS1PR84MB0296;7:TAoB5ZgUQ9pX+V5dh/CRYfr0b5VWFHSGzW5OUl5SrxDKnyaZN8Qoish1hvclmjE682CFHukKG/vsCQZkDGTC4DFhD21ARm9sg4ajO3tf6OR8uRhaqo8qkkkBMgJx+uUJ/ValJyE7rU0YSyp/ScLppR82N/X5bEc7LUqDjR9dyWhQRCF5mZ3d55SZwW4oH80B7UfDwZd0D6ufBAxtp8bXJtobpooW9DlEkx6cSyQ9ev1hp/svwJkKwfTxeMVJVYlwjX8dbJDEaGbmir3Rqp/8O6vgue6aRsIytl7gzl1yLaG4fKmEU0EfBtM3h24mpsihFJ+44Y2EuceUsfi9YADp/w== x-ms-office365-filtering-correlation-id: 1dd3ad53-1445-4687-9a72-08d46bf8290d x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(48565401081);SRVR:CS1PR84MB0296; x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:; x-exchange-antispam-report-cfa-test: BCL:0;PCL:0;RULEID:(6040375)(601004)(2401047)(5005006)(8121501046)(10201501046)(3002001)(6055026)(6041248)(20161123564025)(20161123562025)(20161123560025)(20161123555025)(20161123558025)(6072148);SRVR:CS1PR84MB0296;BCL:0;PCL:0;RULEID:;SRVR:CS1PR84MB0296; x-forefront-prvs: 02475B2A01 x-forefront-antispam-report: SFV:NSPM;SFS:(10019020)(6009001)(39860400002)(39450400003)(39410400002)(39850400002)(39840400002)(377424004)(24454002)(2950100002)(81166006)(7416002)(3846002)(3660700001)(3280700002)(122556002)(66066001)(76176999)(2906002)(8676002)(102836003)(50986999)(54356999)(2900100001)(229853002)(6246003)(6116002)(6486002)(6436002)(7736002)(53936002)(36756003)(305945005)(54906002)(2501003)(103116003)(77096006)(39060400002)(8936002)(5660300001)(6506006)(189998001)(4326008)(33646002)(38730400002)(86362001)(6512007);DIR:OUT;SFP:1102;SCL:1;SRVR:CS1PR84MB0296;H:CS1PR84MB0294.NAMPRD84.PROD.OUTLOOK.COM;FPR:;SPF:None;MLV:ovrnspm;PTR:InfoNoRecords;LANG:en; spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="utf-8" Content-ID: <640B4D0A2B34434E81D3A8DA63A97E0E@NAMPRD84.PROD.OUTLOOK.COM> MIME-Version: 1.0 X-OriginatorOrg: hpe.com X-MS-Exchange-CrossTenant-originalarrivaltime: 15 Mar 2017 23:08:14.8401 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 105b2061-b669-4b31-92ac-24d304d195dc X-MS-Exchange-Transport-CrossTenantHeadersStamped: CS1PR84MB0296 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from base64 to 8bit by mail.home.local id v2FN9VFH021081 Content-Length: 1331 Lines: 43 On Wed, 2017-03-15 at 10:13 +0100, Michal Hocko wrote: : > @@ -388,39 +389,44 @@ static ssize_t show_valid_zones(struct device > *dev, >   struct device_attribute *attr, char > *buf) >  { >   struct memory_block *mem = to_memory_block(dev); > - unsigned long start_pfn, end_pfn; > - unsigned long valid_start, valid_end, valid_pages; > - unsigned long nr_pages = PAGES_PER_SECTION * > sections_per_block; > + unsigned long start_pfn, nr_pages; > + bool append = false; >   struct zone *zone; > - int zone_shift = 0; > + int nid; >   >   start_pfn = section_nr_to_pfn(mem->start_section_nr); > - end_pfn = start_pfn + nr_pages; > + zone = page_zone(pfn_to_page(start_pfn)); > + nr_pages = PAGES_PER_SECTION * sections_per_block; >   > - /* The block contains more than one zone can not be > offlined. */ > - if (!test_pages_in_a_zone(start_pfn, end_pfn, &valid_start, > &valid_end)) > + /* > +  * The block contains more than one zone can not be > offlined. > +  * This can happen e.g. for ZONE_DMA and ZONE_DMA32 > +  */ > + if (!test_pages_in_a_zone(start_pfn, start_pfn + nr_pages, > NULL, NULL)) >   return sprintf(buf, "none\n"); >   > - zone = page_zone(pfn_to_page(valid_start)); Please do not remove the fix made in a96dfddbcc043. zone needs to be set from valid_start, not from start_pfn. Thanks, -Toshi