All of lore.kernel.org
 help / color / mirror / Atom feed
From: David Hildenbrand <david@redhat.com>
To: linux-mm@kvack.org
Cc: Kate Stewart <kstewart@linuxfoundation.org>,
	Rich Felker <dalias@libc.org>,
	linux-ia64@vger.kernel.org, linux-sh@vger.kernel.org,
	Peter Zijlstra <peterz@infradead.org>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Balbir Singh <bsingharora@gmail.com>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	Heiko Carstens <heiko.carstens@de.ibm.com>,
	Pavel Tatashin <pavel.tatashin@microsoft.com>,
	Michal Hocko <mhocko@suse.com>, Paul Mackerras <paulus@samba.org>,
	"H. Peter Anvin" <hpa@zytor.com>,
	Rashmica Gupta <rashmica.g@gmail.com>,
	"K. Y. Srinivasan" <kys@microsoft.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	linux-s390@vger.kernel.org, Michael Neuling <mikey@neuling.org>,
	Stephen Hemminger <sthemmin@microsoft.com>,
	Yoshinori Sato <ysato@users.sourceforge.jp>,
	Michael Ellerman <mpe@ellerman.id.au>,
	linux-acpi@vger.kernel.org, Ingo Molnar <mingo@redhat.com>,
	xen-devel@
Subject: Re: [PATCH RFC] mm/memory_hotplug: Introduce memory block types
Date: Fri, 23 Nov 2018 12:13:58 +0100	[thread overview]
Message-ID: <b01a956b-080c-c643-6473-eb132b9f7200__25784.085217356$1542971591$gmane$org@redhat.com> (raw)
In-Reply-To: <20180928150357.12942-1-david@redhat.com>

On 28.09.18 17:03, David Hildenbrand wrote:
> How to/when to online hotplugged memory is hard to manage for
> distributions because different memory types are to be treated differently.
> Right now, we need complicated udev rules that e.g. check if we are
> running on s390x, on a physical system or on a virtualized system. But
> there is also sometimes the demand to really online memory immediately
> while adding in the kernel and not to wait for user space to make a
> decision. And on virtualized systems there might be different
> requirements, depending on "how" the memory was added (and if it will
> eventually get unplugged again - DIMM vs. paravirtualized mechanisms).
> 
> On the one hand, we have physical systems where we sometimes
> want to be able to unplug memory again - e.g. a DIMM - so we have to online
> it to the MOVABLE zone optionally. That decision is usually made in user
> space.
> 
> On the other hand, we have memory that should never be onlined
> automatically, only when asked for by an administrator. Such memory only
> applies to virtualized environments like s390x, where the concept of
> "standby" memory exists. Memory is detected and added during boot, so it
> can be onlined when requested by the admininistrator or some tooling.
> Only when onlining, memory will be allocated in the hypervisor.
> 
> But then, we also have paravirtualized devices (namely xen and hyper-v
> balloons), that hotplug memory that will never ever be removed from a
> system right now using offline_pages/remove_memory. If at all, this memory
> is logically unplugged and handed back to the hypervisor via ballooning.
> 
> For paravirtualized devices it is relevant that memory is onlined as
> quickly as possible after adding - and that it is added to the NORMAL
> zone. Otherwise, it could happen that too much memory in a row is added
> (but not onlined), resulting in out-of-memory conditions due to the
> additional memory for "struct pages" and friends. MOVABLE zone as well
> as delays might be very problematic and lead to crashes (e.g. zone
> imbalance).
> 
> Therefore, introduce memory block types and online memory depending on
> it when adding the memory. Expose the memory type to user space, so user
> space handlers can start to process only "normal" memory. Other memory
> block types can be ignored. One thing less to worry about in user space.
> 

So I was looking into alternatives.

1. Provide only "normal" and "standby" memory types to user space. This
way user space can make smarter decisions about how to online memory.
Not really sure if this is the right way to go.


2. Use device driver information (as mentioned by Michal S.).

The problem right now is that there are no drivers for memory block
devices. The "memory" subsystem has no drivers, so the KOBJ_ADD uevent
will not contain a "DRIVER" information and we ave no idea what kind of
memory block device we hold in our hands.

$ udevadm info -q all -a /sys/devices/system/memory/memory0

  looking at device '/devices/system/memory/memory0':
    KERNEL=="memory0"
    SUBSYSTEM=="memory"
    DRIVER==""
    ATTR{online}=="1"
    ATTR{phys_device}=="0"
    ATTR{phys_index}=="00000000"
    ATTR{removable}=="0"
    ATTR{state}=="online"
    ATTR{valid_zones}=="none"


If we would provide "fake" drivers for the memory block devices we want
to treat in a special way in user space (e.g. standby memory on s390x),
user space could use that information to make smarter decisions.

Adding such drivers might work. My suggestion would be to let ordinary
DIMMs be without a driver for now and only special case standby memory
and eventually paravirtualized memory devices (XEN and Hyper-V).

Any thoughts?


-- 

Thanks,

David / dhildenb

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

  parent reply	other threads:[~2018-11-23 11:14 UTC|newest]

Thread overview: 144+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-09-28 15:03 [PATCH RFC] mm/memory_hotplug: Introduce memory block types David Hildenbrand
2018-09-28 15:03 ` David Hildenbrand
2018-09-28 15:03 ` David Hildenbrand
2018-09-28 17:02 ` Dave Hansen
2018-09-28 17:02   ` Dave Hansen
2018-09-28 17:02   ` Dave Hansen
2018-10-01  9:13   ` David Hildenbrand
2018-10-01  9:13   ` David Hildenbrand
2018-10-01  9:13     ` David Hildenbrand
2018-10-01  9:13     ` David Hildenbrand
2018-10-01 16:24     ` Dave Hansen
2018-10-01 16:24     ` Dave Hansen
2018-10-01 16:24       ` Dave Hansen
2018-10-01 16:24       ` Dave Hansen
2018-10-04  7:48       ` David Hildenbrand
2018-10-04  7:48       ` David Hildenbrand
2018-10-04  7:48         ` David Hildenbrand
2018-10-04  7:48         ` David Hildenbrand
2018-09-28 17:02 ` Dave Hansen
2018-10-01  8:40 ` Michal Hocko
2018-10-01  8:40   ` Michal Hocko
2018-10-01  8:40   ` Michal Hocko
2018-10-01  9:34   ` David Hildenbrand
2018-10-01  9:34     ` David Hildenbrand
2018-10-01  9:34     ` David Hildenbrand
2018-10-02 13:47     ` Michal Hocko
2018-10-02 13:47     ` Michal Hocko
2018-10-02 13:47       ` Michal Hocko
2018-10-02 13:47       ` Michal Hocko
2018-10-02 15:25       ` David Hildenbrand
2018-10-02 15:25       ` David Hildenbrand
2018-10-02 15:25         ` David Hildenbrand
2018-10-02 15:25         ` David Hildenbrand
2018-10-03 13:38         ` Vitaly Kuznetsov
2018-10-03 13:38         ` Vitaly Kuznetsov
2018-10-03 13:38           ` Vitaly Kuznetsov
2018-10-03 13:38           ` Vitaly Kuznetsov
2018-10-03 13:44           ` Michal Hocko
2018-10-03 13:44           ` Michal Hocko
2018-10-03 13:44             ` Michal Hocko
2018-10-03 13:44             ` Michal Hocko
2018-10-03 13:52             ` Vitaly Kuznetsov
2018-10-03 13:52               ` Vitaly Kuznetsov
2018-10-03 13:52               ` Vitaly Kuznetsov
2018-10-03 14:07               ` Dave Hansen
2018-10-03 14:07                 ` Dave Hansen
2018-10-03 14:07                 ` Dave Hansen
2018-10-03 14:34                 ` Vitaly Kuznetsov
2018-10-03 14:34                 ` Vitaly Kuznetsov
2018-10-03 14:34                   ` Vitaly Kuznetsov
2018-10-03 14:34                   ` Vitaly Kuznetsov
2018-10-03 17:14                   ` David Hildenbrand
2018-10-03 17:14                     ` David Hildenbrand
2018-10-03 17:14                     ` David Hildenbrand
2018-10-04  6:19                     ` Michal Hocko
2018-10-04  6:19                       ` Michal Hocko
2018-10-04  6:19                       ` Michal Hocko
2018-10-04  8:13                       ` David Hildenbrand
2018-10-04  8:13                       ` David Hildenbrand
2018-10-04  8:13                         ` David Hildenbrand
2018-10-04  8:13                         ` David Hildenbrand
2018-10-04 15:28                         ` Michal Suchánek
2018-10-04 15:28                         ` Michal Suchánek
2018-10-04 15:28                           ` Michal Suchánek
2018-10-04 15:28                           ` Michal Suchánek
2018-10-04 15:45                           ` David Hildenbrand
2018-10-04 15:45                           ` David Hildenbrand
2018-10-04 15:45                             ` David Hildenbrand
2018-10-04 15:45                             ` David Hildenbrand
2018-10-04 17:50                             ` Michal Suchánek
2018-10-04 17:50                               ` Michal Suchánek
2018-10-04 17:50                               ` Michal Suchánek
2018-10-05  7:37                               ` David Hildenbrand
2018-10-05  7:37                                 ` David Hildenbrand
2018-10-05  7:37                                 ` David Hildenbrand
2018-10-05  7:37                               ` David Hildenbrand
2018-10-04 17:50                             ` Michal Suchánek
2018-10-04  6:19                     ` Michal Hocko
2018-10-03 17:14                   ` David Hildenbrand
2018-10-03 14:07               ` Dave Hansen
2018-10-03 14:24               ` Michal Hocko
2018-10-03 14:24               ` Michal Hocko
2018-10-03 14:24                 ` Michal Hocko
2018-10-03 14:24                 ` Michal Hocko
2018-10-03 17:06                 ` David Hildenbrand
2018-10-03 17:06                 ` David Hildenbrand
2018-10-03 17:06                   ` David Hildenbrand
2018-10-03 17:06                   ` David Hildenbrand
2018-10-04  8:12                 ` David Hildenbrand
2018-10-04  8:12                 ` David Hildenbrand
2018-10-04  8:12                   ` David Hildenbrand
2018-10-04  8:12                   ` David Hildenbrand
2018-10-03 13:52             ` Vitaly Kuznetsov
2018-10-03 13:54         ` Michal Hocko
2018-10-03 13:54         ` Michal Hocko
2018-10-03 13:54           ` Michal Hocko
2018-10-03 13:54           ` Michal Hocko
2018-10-03 17:00           ` David Hildenbrand
2018-10-03 17:00             ` David Hildenbrand
2018-10-03 17:00             ` David Hildenbrand
2018-10-04  6:28             ` Michal Hocko
2018-10-04  6:28               ` Michal Hocko
2018-10-04  6:28               ` Michal Hocko
2018-10-04  7:40               ` David Hildenbrand
2018-10-04  7:40                 ` David Hildenbrand
2018-10-04  7:40                 ` David Hildenbrand
2018-10-04  7:40               ` David Hildenbrand
2018-10-04  6:28             ` Michal Hocko
2018-10-03 17:00           ` David Hildenbrand
2018-10-01  9:34   ` David Hildenbrand
2018-10-01  8:40 ` Michal Hocko
2018-11-23 11:13 ` David Hildenbrand
2018-11-23 11:13   ` David Hildenbrand
2018-11-23 11:13   ` David Hildenbrand
2018-11-23 18:06   ` Michal Suchánek
2018-11-23 18:06   ` Michal Suchánek
2018-11-23 18:06     ` Michal Suchánek
2018-11-23 18:06     ` Michal Suchánek
2018-11-26 12:30     ` David Hildenbrand
2018-11-26 12:30       ` David Hildenbrand
2018-11-26 12:30       ` David Hildenbrand
2018-11-26 13:33       ` David Hildenbrand
2018-11-26 13:33         ` David Hildenbrand
2018-11-26 13:33         ` David Hildenbrand
2018-11-26 14:20         ` Michal Suchánek
2018-11-26 14:20           ` Michal Suchánek
2018-11-26 14:20           ` Michal Suchánek
2018-11-26 15:59           ` David Hildenbrand
2018-11-26 15:59           ` David Hildenbrand
2018-11-26 15:59             ` David Hildenbrand
2018-11-26 15:59             ` David Hildenbrand
2018-11-27 16:32             ` Michal Suchánek
2018-11-27 16:32             ` Michal Suchánek
2018-11-27 16:32               ` Michal Suchánek
2018-11-27 16:32               ` Michal Suchánek
2018-11-27 16:47               ` David Hildenbrand
2018-11-27 16:47               ` David Hildenbrand
2018-11-27 16:47                 ` David Hildenbrand
2018-11-27 16:47                 ` David Hildenbrand
2018-11-26 14:20         ` Michal Suchánek
2018-11-26 13:33       ` David Hildenbrand
2018-11-26 12:30     ` David Hildenbrand
2018-11-23 11:13 ` David Hildenbrand [this message]
  -- strict thread matches above, loose matches on Subject: below --
2018-09-28 15:03 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='b01a956b-080c-c643-6473-eb132b9f7200__25784.085217356$1542971591$gmane$org@redhat.com' \
    --to=david@redhat.com \
    --cc=benh@kernel.crashing.org \
    --cc=boris.ostrovsky@oracle.com \
    --cc=bsingharora@gmail.com \
    --cc=dalias@libc.org \
    --cc=dave.hansen@linux.intel.com \
    --cc=heiko.carstens@de.ibm.com \
    --cc=hpa@zytor.com \
    --cc=kstewart@linuxfoundation.org \
    --cc=kys@microsoft.com \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-ia64@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=linux-s390@vger.kernel.org \
    --cc=linux-sh@vger.kernel.org \
    --cc=mhocko@suse.com \
    --cc=mikey@neuling.org \
    --cc=mingo@redhat.com \
    --cc=mpe@ellerman.id.au \
    --cc=paulus@samba.org \
    --cc=pavel.tatashin@microsoft.com \
    --cc=peterz@infradead.org \
    --cc=rashmica.g@gmail.com \
    --cc=sthemmin@microsoft.com \
    --cc=ysato@users.sourceforge.jp \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.