WSL2-Linux-Kernel/drivers/base
David Hildenbrand e9a2e48e87 drivers/base/memory: don't store phys_device in memory blocks
No need to store the value for each and every memory block, as we can
easily query the value at runtime.  Reshuffle the members to optimize the
memory layout.  Also, let's clarify what the interface once was used for
and why it's legacy nowadays.

"phys_device" was used on s390x in older versions of lsmem[2]/chmem[3],
back when they were still part of s390x-tools.  They were later replaced
by the variants in linux-utils.  For example, RHEL6 and RHEL7 contain
lsmem/chmem from s390-utils.  RHEL8 switched to versions from util-linux
on s390x [4].

"phys_device" was added with sysfs support for memory hotplug in commit
3947be1969 ("[PATCH] memory hotplug: sysfs and add/remove functions") in
2005.  It always returned 0.

s390x started returning something != 0 on some setups (if sclp.rzm is set
by HW) in 2010 via commit 57b552ba0b ("memory hotplug/s390: set
phys_device").

For s390x, it allowed for identifying which memory block devices belong to
the same storage increment (RZM).  Only if all memory block devices
comprising a single storage increment were offline, the memory could
actually be removed in the hypervisor.

Since commit e5d709bb5f ("s390/memory hotplug: provide
memory_block_size_bytes() function") in 2013 a memory block device spans
at least one storage increment - which is why the interface isn't really
helpful/used anymore (except by old lsmem/chmem tools).

There were once RFC patches to make use of "phys_device" in ACPI context;
however, the underlying problem could be solved using different interfaces
[1].

[1] https://patchwork.kernel.org/patch/2163871/
[2] https://github.com/ibm-s390-tools/s390-tools/blob/v2.1.0/zconf/lsmem
[3] https://github.com/ibm-s390-tools/s390-tools/blob/v2.1.0/zconf/chmem
[4] https://bugzilla.redhat.com/show_bug.cgi?id=1504134

Link: https://lkml.kernel.org/r/20210201181347.13262-2-david@redhat.com
Signed-off-by: David Hildenbrand <david@redhat.com>
Acked-by: Michal Hocko <mhocko@suse.com>
Reviewed-by: Oscar Salvador <osalvador@suse.de>
Cc: Dave Hansen <dave.hansen@intel.com>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Gerald Schaefer <gerald.schaefer@linux.ibm.com>
Cc: Jonathan Corbet <corbet@lwn.net>
Cc: "Rafael J. Wysocki" <rafael@kernel.org>
Cc: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
Cc: Ilya Dryomov <idryomov@gmail.com>
Cc: Vaibhav Jain <vaibhav@linux.ibm.com>
Cc: Tom Rix <trix@redhat.com>
Cc: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2021-02-26 09:41:00 -08:00
..
firmware_loader drivers: base: fix some kernel-doc markups 2020-11-09 18:56:49 +01:00
power Driver core / debugfs update for 5.12-rc1 2021-02-24 10:13:55 -08:00
regmap Char/Misc driver patches for 5.12-rc1 2021-02-24 10:25:37 -08:00
test drivers/base: build kunit tests without structleak plugin 2021-01-27 14:35:18 +01:00
Kconfig drivers: base: Kconfig: fix spelling mistake "heterogenous" -> "heterogeneous" 2021-01-07 20:54:14 +01:00
Makefile Add auxiliary bus support 2020-12-04 12:23:25 +01:00
arch_topology.c
attribute_container.c
auxiliary.c driver core: auxiliary bus: Fix calling stage for auxiliary bus init 2021-02-11 08:43:03 +01:00
base.h driver core: auxiliary bus: Fix calling stage for auxiliary bus init 2021-02-11 08:43:03 +01:00
bus.c drivers: base: change 'driver_create_groups' to 'driver_add_groups' in printk 2021-01-27 14:35:09 +01:00
cacheinfo.c
class.c drivers: base: fix some kernel-doc markups 2020-11-09 18:56:49 +01:00
component.c
container.c
core.c Driver core / debugfs update for 5.12-rc1 2021-02-24 10:13:55 -08:00
cpu.c
dd.c Revert "driver core: Reorder devices on successful probe" 2021-01-12 19:02:29 +01:00
devcoredump.c
devres.c drivers: base: fix some kernel-doc markups 2020-11-09 18:56:49 +01:00
devtmpfs.c namei: prepare for idmapped mounts 2021-01-24 14:27:18 +01:00
driver.c
firmware.c
hypervisor.c
init.c driver core: auxiliary bus: Fix calling stage for auxiliary bus init 2021-02-11 08:43:03 +01:00
isa.c isa: Make the remove callback for isa drivers return void 2021-01-26 07:42:27 +01:00
map.c
memory.c drivers/base/memory: don't store phys_device in memory blocks 2021-02-26 09:41:00 -08:00
module.c
node.c mm: memcg: add swapcache stat for memcg v2 2021-02-24 13:38:29 -08:00
pinctrl.c
platform-msi.c platform-msi: Track shared domain allocation 2020-12-11 14:47:50 +00:00
platform.c Driver core / debugfs update for 5.12-rc1 2021-02-24 10:13:55 -08:00
property.c media: device property: Call fwnode_graph_get_endpoint_by_id() for fwnode->secondary 2021-01-26 19:24:18 +01:00
soc.c soc: fix comment for freeing soc_dev_attr 2020-12-09 19:46:31 +01:00
swnode.c media updates for v5.12-rc1 2021-02-21 14:10:36 -08:00
syscore.c
topology.c
transport_class.c