linux-stable/Documentation
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
..
ABI drivers/base/memory: don't store phys_device in memory blocks 2021-02-26 09:41:00 -08:00
accounting Documentation: Replace lkml.org links with lore 2021-01-11 12:47:38 -07:00
admin-guide drivers/base/memory: don't store phys_device in memory blocks 2021-02-26 09:41:00 -08:00
arm Documentation: ARM: fix reference to DT format documentation 2021-01-28 15:37:43 -07:00
arm64 ARM: 2020-12-20 10:44:05 -08:00
block MMC core: 2021-02-22 09:05:28 -08:00
bpf bpf, docs: Update build procedure for manually compiling LLVM and Clang 2021-01-23 00:09:03 +01:00
cdrom
core-api Merge branch 'akpm' (patches from Andrew) 2021-02-24 16:20:38 -08:00
cpu-freq
crypto crypto: remove cipher routines from public crypto API 2021-01-03 08:41:35 +11:00
dev-tools kasan: rename CONFIG_TEST_KASAN_MODULE 2021-02-24 13:38:31 -08:00
devicetree Kbuild updates for v5.12 2021-02-25 10:17:31 -08:00
doc-guide docs: Document cross-referencing using relative path 2021-02-04 16:24:12 -07:00
driver-api Char/Misc driver patches for 5.12-rc1 2021-02-24 10:25:37 -08:00
fault-injection
fb
features ARM updates for 5.11: 2020-12-22 13:34:27 -08:00
filesystems idmapped-mounts-v5.12 2021-02-23 13:39:45 -08:00
firmware_class
firmware-guide Merge branch 'acpi-messages' 2021-02-15 17:04:53 +01:00
fpga fpga: dfl-pci: rectify ReST formatting 2021-01-14 18:05:52 +01:00
gpu It has been a relatively quiet cycle in docsland. 2021-02-22 10:57:46 -08:00
hid Documentation: HID: uhid editing & corrections 2021-01-04 11:50:39 +01:00
hwmon hwmon: add Texas Instruments TPS23861 driver 2021-02-12 07:02:55 -08:00
i2c i2c: testunit: add support for block process calls 2021-02-12 11:11:04 +01:00
ia64
ide
iio docs: iio: Correct a typo 2021-01-21 14:06:00 -07:00
infiniband
input Documentation: input: define ABS_PRESSURE/ABS_MT_PRESSURE resolution as grams 2021-01-28 16:43:04 -07:00
isdn
kbuild Kbuild updates for v5.12 2021-02-25 10:17:31 -08:00
kernel-hacking docs: kernel-hacking: be more civil 2021-02-11 10:00:40 -07:00
leds Changes for 5.11-rc1. Small cleanups/fixes mostly thanks to Marek, 2020-12-16 14:56:29 -08:00
litmus-tests
livepatch Documentation: livepatch: document reliable stacktrace 2021-01-26 11:50:00 +01:00
locking Documentation: seqlock: s/LOCKTYPE/LOCKNAME/g 2020-12-09 17:08:49 +01:00
m68k
maintainer
mhi
mips
misc-devices
netlabel
networking Staging/IIO driver patches for 5.12-rc1 2021-02-20 21:36:51 -08:00
nios2
nvdimm
openrisc
parisc
PCI Documentation: PCI: Add PCI endpoint NTB function user guide 2021-02-23 14:15:45 -06:00
pcmcia
power It has been a relatively quiet cycle in docsland. 2021-02-22 10:57:46 -08:00
powerpc
process It has been a relatively quiet cycle in docsland. 2021-02-22 10:57:46 -08:00
RCU It has been a relatively quiet cycle in docsland. 2021-02-22 10:57:46 -08:00
riscv
s390
scheduler It has been a relatively quiet cycle in docsland. 2021-02-22 10:57:46 -08:00
scsi SCSI misc on 20210219 2021-02-22 10:24:58 -08:00
security Keyrings miscellany 2021-02-23 16:09:23 -08:00
sh
sound ALSA: jack: implement software jack injection via debugfs 2021-02-02 10:37:07 +01:00
sparc
sphinx docs: Enable usage of relative paths to docs on automarkup 2021-02-04 16:23:43 -07:00
sphinx-static
spi
staging
target tweewide: Fix most Shebang lines 2020-12-08 23:30:04 +09:00
timers Documentation: Replace lkml.org links with lore 2021-01-11 12:47:38 -07:00
trace Char/Misc driver patches for 5.12-rc1 2021-02-24 10:25:37 -08:00
translations It has been a relatively quiet cycle in docsland. 2021-02-22 10:57:46 -08:00
usb usb: raw-gadget: update documentation and Kconfig 2021-01-26 18:38:45 +01:00
userspace-api Char/Misc driver patches for 5.12-rc1 2021-02-24 10:25:37 -08:00
virt Char/Misc driver patches for 5.12-rc1 2021-02-24 10:25:37 -08:00
vm mm/debug_vm_pgtable/basic: add validation for dirtiness after write protect 2021-02-24 13:38:27 -08:00
w1
watchdog
x86 Documentation/x86/boot.rst: Correct the example of SETUP_INDIRECT 2021-01-28 15:25:31 -07:00
xtensa A much quieter cycle for documentation (happily), with, one hopes, the bulk 2020-12-14 16:55:54 -08:00
.gitignore
asm-annotations.rst x86/entry: Emit a symbol for register restoring thunk 2021-01-14 17:18:25 +01:00
atomic_bitops.txt
atomic_t.txt
Changes
CodingStyle
conf.py Move our minimum Sphinx version to 1.7 2021-02-01 16:29:12 -07:00
COPYING-logo
docutils.conf
dontdiff
index.rst docs: Include ext4 documentation via filesystems/ 2021-01-11 13:01:51 -07:00
Kconfig
logo.gif
Makefile kbuild: remove PYTHON variable 2021-02-01 10:37:19 +09:00
memory-barriers.txt
SubmittingPatches
watch_queue.rst