Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S936169Ab3DHUon (ORCPT ); Mon, 8 Apr 2013 16:44:43 -0400 Received: from mail.linuxfoundation.org ([140.211.169.12]:49798 "EHLO mail.linuxfoundation.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S935536Ab3DHUol (ORCPT ); Mon, 8 Apr 2013 16:44:41 -0400 Date: Mon, 8 Apr 2013 13:44:38 -0700 From: Andrew Morton To: Toshi Kani Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, linuxram@us.ibm.com, guz.fnst@cn.fujitsu.com, tmac@hp.com, isimatu.yasuaki@jp.fujitsu.com, wency@cn.fujitsu.com, tangchen@cn.fujitsu.com, jiang.liu@huawei.com Subject: Re: [PATCH v2 0/3] Support memory hot-delete to boot memory Message-Id: <20130408134438.2a4388a07163e10a37158eed@linux-foundation.org> In-Reply-To: <1365440996-30981-1-git-send-email-toshi.kani@hp.com> References: <1365440996-30981-1-git-send-email-toshi.kani@hp.com> X-Mailer: Sylpheed 3.2.0beta5 (GTK+ 2.24.10; x86_64-pc-linux-gnu) 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 Content-Length: 1950 Lines: 39 On Mon, 8 Apr 2013 11:09:53 -0600 Toshi Kani wrote: > Memory hot-delete to a memory range present at boot causes an > error message in __release_region(), such as: > > Trying to free nonexistent resource <0000000070000000-0000000077ffffff> > > Hot-delete operation still continues since __release_region() is > a void function, but the target memory range is not freed from > iomem_resource as the result. This also leads a failure in a > subsequent hot-add operation to the same memory range since the > address range is still in-use in iomem_resource. > > This problem happens because the granularity of memory resource ranges > may be different between boot and hot-delete. So we don't need this new code if CONFIG_MEMORY_HOTPLUG=n? If so, can we please arrange for it to not be present if the user doesn't need it? > During bootup, > iomem_resource is set up from the boot descriptor table, such as EFI > Memory Table and e820. Each resource entry usually covers the whole > contiguous memory range. Hot-delete request, on the other hand, may > target to a particular range of memory resource, and its size can be > much smaller than the whole contiguous memory. Since the existing > release interfaces like __release_region() require a requested region > to be exactly matched to a resource entry, they do not allow a partial > resource to be released. > > This patchset introduces release_mem_region_adjustable() for memory > hot-delete operations, which allows releasing a partial memory range > and adjusts remaining resource accordingly. This patchset makes no > changes to the existing interfaces since their restriction is still > valid for I/O resources. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/