linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: David Hildenbrand <david@redhat.com>
To: Michal Hocko <mhocko@kernel.org>
Cc: linux-mm@kvack.org
Subject: Re: [PATCH RFC 0/8] mm: online/offline 4MB chunks controlled by device driver
Date: Fri, 13 Apr 2018 16:01:43 +0200	[thread overview]
Message-ID: <3545ef32-14db-25ab-bf1a-56044402add3@redhat.com> (raw)
In-Reply-To: <20180413134414.GS17484@dhcp22.suse.cz>

On 13.04.2018 15:44, Michal Hocko wrote:
> [If you choose to not CC the same set of people on all patches - which
> is sometimes a legit thing to do - then please cc them to the cover
> letter at least.]
> 
> On Fri 13-04-18 15:16:24, David Hildenbrand wrote:
>> I am right now working on a paravirtualized memory device ("virtio-mem").
>> These devices control a memory region and the amount of memory available
>> via it. Memory will not be indicated via ACPI and friends, the device
>> driver is responsible for it.
> 
> How does this compare to other ballooning solutions? And why your driver
> cannot simply use the existing sections and maintain subsections on top?
> 

(further down in this mail is a small paragraph about that)

All existing balloon implementations work on all memory available in the
system. Some of them are able to add memory later on (XEN, Hyper-V),
others are not (virtio-balloon). Having this model allows to plug/unplug
memory NUMA aware on a fine granularity (e.g. 4MB), while making the
implementation in the hypervisor a level of magnitudes easier.

We could have multiple paravirtualized memory devices, e.g. one for each
NUMA node.

E.g. when rebooting we don't have to resize any initial system memory
(a820, ACPI ...), but only care about the memory region of this one
device. By adding memory by the device driver, we can actually remove
the memory blocks again, freeing up the struct pages.

Also, I tend to not call the solution a balloon driver, rather
"paravirtualized memory". It is something like a balloon, but we are not
going to start fragmenting on a page level.

There is more to it, but this should cover the basics.


"And why your driver cannot simply use the existing sections and
maintain subsections on top?"

Can you elaborate how that is going to work? What I do as of now, is to
remember for each memory block (basically a section because I want to
make it as small as possible) which chunks ("subsections") are
online/offline. This works just fine. Is this what you are referring to?

However when it comes to marking a section finally offline or telling
kdump to not touch offline pages, I need the PG_offline.

(I had a prototype where I marked the sections manually offline once I
knew everything in it was offline, but that looked rather hackish)

Thanks for having a look!

-- 

Thanks,

David / dhildenb

  reply	other threads:[~2018-04-13 14:01 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-04-13 13:16 David Hildenbrand
2018-04-13 13:16 ` [PATCH RFC 1/8] mm/memory_hotplug: Revert "mm/memory_hotplug: optimize memory hotplug" David Hildenbrand
2018-04-13 13:16 ` [PATCH RFC 2/8] mm: introduce PG_offline David Hildenbrand
2018-04-13 13:40   ` Michal Hocko
2018-04-13 13:46     ` David Hildenbrand
2018-04-17 11:50     ` David Hildenbrand
2018-04-13 17:11   ` Matthew Wilcox
2018-04-16  8:31     ` David Hildenbrand
2018-04-21 16:52     ` Vlastimil Babka
2018-04-22  3:01       ` Matthew Wilcox
2018-04-22  8:17         ` David Hildenbrand
2018-04-22 14:02           ` Matthew Wilcox
2018-04-22 15:13             ` David Hildenbrand
2018-04-29 21:08               ` Michal Hocko
2018-04-30  6:31                 ` David Hildenbrand
2018-04-20  7:30   ` David Hildenbrand
2018-04-13 13:16 ` [PATCH RFC 3/8] mm: use PG_offline in online/offlining code David Hildenbrand
2018-04-13 13:31 ` [PATCH RFC 4/8] kdump: expose PG_offline David Hildenbrand
2018-04-13 13:33 ` [PATCH RFC 5/8] mm: only mark section offline when all pages are offline David Hildenbrand
2018-04-13 13:33 ` [PATCH RFC 6/8] mm: offline_pages() is also limited by MAX_ORDER David Hildenbrand
2018-04-13 13:33 ` [PATCH RFC 7/8] mm: allow to control onlining/offlining of memory by a driver David Hildenbrand
2018-04-13 15:59   ` Michal Hocko
2018-04-13 16:32     ` David Hildenbrand
2018-04-13 13:33 ` [PATCH RFC 8/8] mm: export more functions used to online/offline memory David Hildenbrand
2018-04-13 13:44 ` [PATCH RFC 0/8] mm: online/offline 4MB chunks controlled by device driver Michal Hocko
2018-04-13 14:01   ` David Hildenbrand [this message]
2018-04-13 14:20     ` Michal Hocko
2018-04-13 14:59       ` David Hildenbrand
2018-04-13 15:02   ` David Hildenbrand
2018-04-13 16:03     ` Michal Hocko
2018-04-13 16:36       ` David Hildenbrand
2018-04-13 15:59 ` Michal Hocko
2018-04-13 16:31   ` David Hildenbrand
2018-04-16 14:08     ` Michal Hocko
2018-04-16 14:48       ` David Hildenbrand
2018-04-18 15:46       ` David Hildenbrand
2018-04-19  7:33         ` Michal Hocko
2018-04-26 15:30           ` David Hildenbrand
2018-04-29 21:05             ` Michal Hocko
2018-04-30  6:24               ` David Hildenbrand

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=3545ef32-14db-25ab-bf1a-56044402add3@redhat.com \
    --to=david@redhat.com \
    --cc=linux-mm@kvack.org \
    --cc=mhocko@kernel.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