linux/arch/um/kernel
Arun KS 3d6357de8a mm: reference totalram_pages and managed_pages once per function
Patch series "mm: convert totalram_pages, totalhigh_pages and managed
pages to atomic", v5.

This series converts totalram_pages, totalhigh_pages and
zone->managed_pages to atomic variables.

totalram_pages, zone->managed_pages and totalhigh_pages updates are
protected by managed_page_count_lock, but readers never care about it.
Convert these variables to atomic to avoid readers potentially seeing a
store tear.

Main motivation was that managed_page_count_lock handling was complicating
things.  It was discussed in length here,
https://lore.kernel.org/patchwork/patch/995739/#1181785 It seemes better
to remove the lock and convert variables to atomic.  With the change,
preventing poteintial store-to-read tearing comes as a bonus.

This patch (of 4):

This is in preparation to a later patch which converts totalram_pages and
zone->managed_pages to atomic variables.  Please note that re-reading the
value might lead to a different value and as such it could lead to
unexpected behavior.  There are no known bugs as a result of the current
code but it is better to prevent from them in principle.

Link: http://lkml.kernel.org/r/1542090790-21750-2-git-send-email-arunks@codeaurora.org
Signed-off-by: Arun KS <arunks@codeaurora.org>
Reviewed-by: Konstantin Khlebnikov <khlebnikov@yandex-team.ru>
Reviewed-by: David Hildenbrand <david@redhat.com>
Acked-by: Michal Hocko <mhocko@suse.com>
Acked-by: Vlastimil Babka <vbabka@suse.cz>
Reviewed-by: Pavel Tatashin <pasha.tatashin@soleen.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2018-12-28 12:11:47 -08:00
..
skas um: switch to RAW_COPY_USER 2017-03-28 18:24:03 -04:00
asm-offsets.c um: get rid of pointless include "..." where include <...> will do 2012-10-09 22:28:45 +02:00
config.c.in um: get rid of pointless include "..." where include <...> will do 2012-10-09 22:28:45 +02:00
dyn.lds.S Construct init thread stack in the linker script rather than by union 2018-01-09 23:21:02 +00:00
early_printk.c early_printk: consolidate random copies of identical code 2013-04-29 18:28:13 -07:00
exec.c sched/headers: Prepare to remove the <linux/mm_types.h> dependency from <linux/sched.h> 2017-03-02 08:42:37 +01:00
exitcode.c Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
gmon_syms.c um: Fix CONFIG_GCOV for modules. 2017-09-13 22:33:54 +02:00
gprof_syms.c um: get rid of pointless include "..." where include <...> will do 2012-10-09 22:28:45 +02:00
initrd.c memblock: stop using implicit alignment to SMP_CACHE_BYTES 2018-10-31 08:54:16 -07:00
irq.c um: NULL check before kfree is not needed 2018-10-29 22:23:12 +01:00
kmsg_dump.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
ksyms.c um: Move syscall() declaration into os.h 2015-05-31 13:14:07 +02:00
maccess.c um: Implement probe_kernel_read() 2013-09-07 10:38:34 +02:00
Makefile um: Support kcov 2016-08-04 00:18:06 +02:00
mem.c mm: reference totalram_pages and managed_pages once per function 2018-12-28 12:11:47 -08:00
physmem.c mm: remove include/linux/bootmem.h 2018-10-31 08:54:16 -07:00
process.c um: Fix FP register size for XSTATE/XSAVE 2017-09-13 22:24:38 +02:00
ptrace.c signal/um: Use force_sig_fault where appropriate 2018-04-25 10:44:11 -05:00
reboot.c sched/headers: Prepare to remove the <linux/mm_types.h> dependency from <linux/sched.h> 2017-03-02 08:42:37 +01:00
sigio.c um: get rid of pointless include "..." where include <...> will do 2012-10-09 22:28:45 +02:00
signal.c Revert "um: Fix get_signal() usage" 2016-03-05 22:16:40 +01:00
stacktrace.c um: Add support for CONFIG_STACKTRACE 2014-10-13 21:46:25 +02:00
syscall.c mm: add ksys_mmap_pgoff() helper; remove in-kernel calls to sys_mmap_pgoff() 2018-04-02 20:16:11 +02:00
sysrq.c um: Fix _print_addr() 2017-05-03 22:30:20 +02:00
time.c um: time: Use timespec64 for persistent clock 2018-02-19 19:38:51 +01:00
tlb.c sched/headers: Prepare for new header dependencies before moving code to <linux/sched/signal.h> 2017-03-02 08:42:29 +01:00
trap.c um: trap: fix spelling mistake, EACCESS -> EACCES 2018-10-29 22:34:15 +01:00
um_arch.c Construct init thread stack in the linker script rather than by union 2018-01-09 23:21:02 +00:00
umid.c um: Use os_warn to print out pre-boot warning/error messages 2017-07-05 23:18:25 +02:00
uml.lds.S Construct init thread stack in the linker script rather than by union 2018-01-09 23:21:02 +00:00
vmlinux.lds.S arm, cris, mips, sparc, powerpc, um, xtensa: fix build with bash 4.0 2009-09-20 12:28:22 +02:00