Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932623AbdLOQG3 (ORCPT ); Fri, 15 Dec 2017 11:06:29 -0500 Received: from aserp2120.oracle.com ([141.146.126.78]:34418 "EHLO aserp2120.oracle.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932603AbdLOQG2 (ORCPT ); Fri, 15 Dec 2017 11:06:28 -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> <9f7c7d7b-e8a7-d851-472d-972a815bf8e2@oracle.com> <4cd0eb4c-9dd3-37db-9d34-42ffb93952fd@suse.com> Cc: helgaas@kernel.org, christian.koenig@amd.com From: Boris Ostrovsky Message-ID: <538b24cc-c291-877c-44c3-e1221322dafe@oracle.com> Date: Fri, 15 Dec 2017 11:06:10 -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: <4cd0eb4c-9dd3-37db-9d34-42ffb93952fd@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-1712150226 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1644 Lines: 40 On 12/15/2017 10:33 AM, Juergen Gross wrote: > On 15/12/17 15:58, Boris Ostrovsky wrote: >> 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. > Aah, now I've got it. > > Could you please add a comment like: > > /* Mark non-RAM regions as not available. */ > > above the test? That would have helped me. :-) Will do, thanks. -boris