linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Igor Druzhinin <igor.druzhinin@citrix.com>
To: Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	<xen-devel@lists.xen.org>, <linux-kernel@vger.kernel.org>
Cc: <jgross@suse.com>, <helgaas@kernel.org>,
	<christian.koenig@amd.com>, <JBeulich@suse.com>
Subject: Re: [Xen-devel] [PATCH v3] xen/balloon: Mark unallocated host memory as UNUSABLE
Date: Mon, 26 Nov 2018 01:00:18 +0000	[thread overview]
Message-ID: <7c833e3a-4a0b-e80c-91e2-4348d6959651@citrix.com> (raw)
In-Reply-To: <1513778746-6155-1-git-send-email-boris.ostrovsky@oracle.com>

On 20/12/2017 14:05, Boris Ostrovsky wrote:
> Commit f5775e0b6116 ("x86/xen: discard RAM regions above the maximum
> reservation") left host memory not assigned to dom0 as available for
> memory hotplug.
> 
> Unfortunately this also meant that those regions could be used by
> others. Specifically, commit fa564ad96366 ("x86/PCI: Enable a 64bit BAR
> on AMD Family 15h (Models 00-1f, 30-3f, 60-7f)") may try to map those
> addresses as MMIO.
> 
> To prevent this mark unallocated host memory as E820_TYPE_UNUSABLE (thus
> effectively reverting f5775e0b6116) and keep track of that region as
> a hostmem resource that can be used for the hotplug.
> 
> Signed-off-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>

This commit breaks Xen balloon memory hotplug for us in Dom0 with
"hoplug_unpopulated" set to 1. The issue is that the common kernel
memory onlining procedures require "System RAM" resource to be 1-st
level. That means by inserting it under "Unusable memory" as the commit
above does (intentionally or not) we make it 2-nd level and break memory
onlining.

There are multiple ways to fix it depending on what was the intention of
original commit and what exactly it tried to workaround. It seems it
does several things at once:
1) Marks non-Dom0 host memory "Unusable memory" in resource tree.
2) Keeps track of all the areas safe for hotplug in Dom0
3) Changes allocation algorithms itself in balloon driver to use those areas

Are all the things above necessary to cover the issue in fa564ad96366
("x86/PCI: Enable a 64bit BAR on AMD Family 15h (Models 00-1f, 30-3f,
60-7f)")?

Can we remove "Unusable memory" resources as soon as we finished
booting? Is removing on-demand is preferable over "shoot them all" in
that case?

Does it even make sense to remove the 1-st level only restriction in
kernel/resource.c ?

Igor

  parent reply	other threads:[~2018-11-26  1:00 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-12-20 14:05 [PATCH v3] xen/balloon: Mark unallocated host memory as UNUSABLE Boris Ostrovsky
2017-12-20 17:33 ` Juergen Gross
2017-12-24  9:29 ` Christian König
2018-11-26  1:00 ` Igor Druzhinin [this message]
2018-11-26 16:25   ` [Xen-devel] " Boris Ostrovsky
2018-11-26 17:10     ` Igor Druzhinin
2018-11-26 19:42       ` Boris Ostrovsky
2018-11-26 19:57         ` Igor Druzhinin
2018-11-27  3:28           ` Boris Ostrovsky
2018-11-27 15:03             ` Igor Druzhinin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=7c833e3a-4a0b-e80c-91e2-4348d6959651@citrix.com \
    --to=igor.druzhinin@citrix.com \
    --cc=JBeulich@suse.com \
    --cc=boris.ostrovsky@oracle.com \
    --cc=christian.koenig@amd.com \
    --cc=helgaas@kernel.org \
    --cc=jgross@suse.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=xen-devel@lists.xen.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).