Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756733AbdLOO7M (ORCPT ); Fri, 15 Dec 2017 09:59:12 -0500 Received: from userp2120.oracle.com ([156.151.31.85]:57884 "EHLO userp2120.oracle.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756551AbdLOO7L (ORCPT ); Fri, 15 Dec 2017 09:59:11 -0500 Subject: Re: [PATCH] xen/balloon: Mark unallocated host memory as UNUSABLE To: Juergen Gross , xen-devel@lists.xen.org, linux-kernel@vger.kernel.org References: <1513119066-10748-1-git-send-email-boris.ostrovsky@oracle.com> <14852f9f-f234-3226-f32b-3080ca114332@suse.com> <1385e130-7300-66a4-3995-838244600746@suse.com> Cc: helgaas@kernel.org, christian.koenig@amd.com From: Boris Ostrovsky Message-ID: <9f7c7d7b-e8a7-d851-472d-972a815bf8e2@oracle.com> Date: Fri, 15 Dec 2017 09:58:49 -0500 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0 MIME-Version: 1.0 In-Reply-To: <1385e130-7300-66a4-3995-838244600746@suse.com> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Proofpoint-Virus-Version: vendor=nai engine=5900 definitions=8745 signatures=668648 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=2 malwarescore=0 phishscore=0 bulkscore=0 spamscore=0 mlxscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1711220000 definitions=main-1712150211 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1422 Lines: 36 On 12/15/2017 09:47 AM, Juergen Gross wrote: > On 15/12/17 15:24, Boris Ostrovsky wrote: >>>> + >>>> + hostmem_resource->start = max_addr; >>>> + hostmem_resource->end = entry->addr + entry->size; >>>> + for (; i < memmap.nr_entries; i++) { >>>> + entry = &xen_e820_table->entries[i]; >>>> + if (entry->type == E820_TYPE_RAM) >>> Shouldn't that be != ? >> No, the idea here is to populate hostmem_resource with ranges already >> taken by things other than RAM, leaving memory regions as available for >> the balloon hotplug. This will allow us to use allocate_resource(), >> which searches for a free range, in the balloon driver. > But why says the comment "Host memory not allocated to dom0" then? hostmem_resource is created starting from the end of dom0 RAM and ending at the end of host RAM. If these two are the same (or if the former is larger, which I don't think is possible) then there is nothing to do, as the hostmem_resource will be empty. That's what the comment is referring to. > And why are you trying to allocate from this resource in case of > hotplugging memory (and fall back to iomem_resource in case of > failure)? Because that area (end of dom0 RAM through end of host RAM) is not going to be used by anyone else and thus is available. That was the idea behind f5775e0b6116. -boris > > Either the comment is completely wrong and I don't understand the > logic here, or your code is wrong.