From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932399AbcEKPSW (ORCPT ); Wed, 11 May 2016 11:18:22 -0400 Received: from mail-qg0-f67.google.com ([209.85.192.67]:33937 "EHLO mail-qg0-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932138AbcEKPRm (ORCPT ); Wed, 11 May 2016 11:17:42 -0400 Message-ID: <57334d15.524a370a.4b1f7.fffff006@mx.google.com> Date: Wed, 11 May 2016 08:17:41 -0700 (PDT) From: Yasuaki Ishimatsu To: Reza Arbab Cc: Greg Kroah-Hartman , Andrew Morton , Daniel Kiper , Dan Williams , Vlastimil Babka , Tang Chen , Joonsoo Kim , David Vrabel , Vitaly Kuznetsov , David Rientjes , Andrew Banman , Chen Yucong , linux-mm@kvack.org, linux-kernel@vger.kernel.org, Yasuaki Ishimatsu Subject: Re: [PATCH 2/3] memory-hotplug: more general validation of zone during online In-Reply-To: <20160510203943.GA22115@arbab-laptop.austin.ibm.com> References: <1462816419-4479-1-git-send-email-arbab@linux.vnet.ibm.com> <1462816419-4479-3-git-send-email-arbab@linux.vnet.ibm.com> <573223b8.c52b8d0a.9a3c0.6217@mx.google.com> <20160510203943.GA22115@arbab-laptop.austin.ibm.com> X-Mailer: Sylpheed 3.4.3 (GTK+ 2.10.14; i686-pc-mingw32) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, 10 May 2016 15:39:43 -0500 Reza Arbab wrote: > On Tue, May 10, 2016 at 11:08:56AM -0700, Yasuaki Ishimatsu wrote: > >On Mon, 9 May 2016 12:53:38 -0500 > >Reza Arbab wrote: > >> * If X is lower than Y, the onlined memory must lie at the end of X. > >> * If X is higher than Y, the onlined memory must lie at the start of X. > > > >If memory address has hole, memory address gets uncotinuous. Then memory > >cannot be changed the zone by above the two conditions. So the conditions > >shouold be removed. > > I don't understand what you mean by this. Could you give an example? > +int zone_can_shift(unsigned long pfn, unsigned long nr_pages, > + enum zone_type target) > +{ > + if (idx < target) { > + /* pages must be at end of current zone */ > + if (pfn + nr_pages != zone_end_pfn(zone)) > + return 0; > + if (target < idx) { > + /* pages must be at beginning of current zone */ > + if (pfn != zone->zone_start_pfn) > + return 0; According your patch, memory address must be continuous for changing zone. So if memory address is uncontinuous as follows, memory address 0x180000000-0x1FFFFFFFF can be changed from ZONE_NORMAL to ZONE_MOVABLE. But memory address 0x80000000-0xFFFFFFFF can not be changed from ZONE_NORMAL to ZONE_MOVABLE since it does not meet above condition. Memory address 0x80000000 - 0xFFFFFFFF 0x180000000 - 0x1FFFFFFFF Thanks, Yasuaki Ishimatsu