linux/Documentation
NeilBrown 2973d8229b mm: discard __GFP_ATOMIC
__GFP_ATOMIC serves little purpose.  Its main effect is to set
ALLOC_HARDER which adds a few little boosts to increase the chance of an
allocation succeeding, one of which is to lower the water-mark at which it
will succeed.

It is *always* paired with __GFP_HIGH which sets ALLOC_HIGH which also
adjusts this watermark.  It is probable that other users of __GFP_HIGH
should benefit from the other little bonuses that __GFP_ATOMIC gets.

__GFP_ATOMIC also gives a warning if used with __GFP_DIRECT_RECLAIM.
There is little point to this.  We already get a might_sleep() warning if
__GFP_DIRECT_RECLAIM is set.

__GFP_ATOMIC allows the "watermark_boost" to be side-stepped.  It is
probable that testing ALLOC_HARDER is a better fit here.

__GFP_ATOMIC is used by tegra-smmu.c to check if the allocation might
sleep.  This should test __GFP_DIRECT_RECLAIM instead.

This patch:
 - removes __GFP_ATOMIC
 - allows __GFP_HIGH allocations to ignore watermark boosting as well
   as GFP_ATOMIC requests.
 - makes other adjustments as suggested by the above.

The net result is not change to GFP_ATOMIC allocations.  Other
allocations that use __GFP_HIGH will benefit from a few different extra
privileges.  This affects:
  xen, dm, md, ntfs3
  the vermillion frame buffer
  hibernation
  ksm
  swap
all of which likely produce more benefit than cost if these selected
allocation are more likely to succeed quickly.

[mgorman: Minor adjustments to rework on top of a series]
Link: https://lkml.kernel.org/r/163712397076.13692.4727608274002939094@noble.neil.brown.name
Link: https://lkml.kernel.org/r/20230113111217.14134-7-mgorman@techsingularity.net
Signed-off-by: NeilBrown <neilb@suse.de>
Signed-off-by: Mel Gorman <mgorman@techsingularity.net>
Acked-by: Vlastimil Babka <vbabka@suse.cz>
Acked-by: Michal Hocko <mhocko@suse.com>
Cc: Matthew Wilcox <willy@infradead.org>
Cc: Thierry Reding <thierry.reding@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
2023-02-02 22:33:13 -08:00
..
ABI Docs/ABI/damon: document scheme filters files 2023-01-18 17:12:44 -08:00
accel doc: add documentation for accel subsystem 2022-11-22 13:14:52 +02:00
accounting
admin-guide Docs/admin-guide/mm/damon/usage: update DAMOS actions/filters supports of each DAMON operations set 2023-02-02 22:32:51 -08:00
arc
arm Documentation: arm: marvell: Add Orion codenames and archive homepage 2022-11-01 17:13:03 -06:00
arm64 arm64: errata: Workaround possible Cortex-A715 [ESR|FAR]_ELx corruption 2023-01-06 17:14:55 +00:00
block blk-crypto: don't use struct request_queue for public interfaces 2022-11-21 11:39:05 -07:00
bpf docs/bpf: Reword docs for BPF_MAP_TYPE_SK_STORAGE 2022-12-14 18:35:41 +01:00
cdrom
core-api mm: remove folio_pincount_ptr() and head_compound_pincount() 2023-02-02 22:32:54 -08:00
cpu-freq cpufreq: Remove CVS version control contents from documentation 2022-12-06 12:24:51 +01:00
crypto crypto: doc - use correct function name 2022-11-04 17:35:44 +08:00
dev-tools kasan: allow sampling page_alloc allocations for HW_TAGS 2023-01-18 17:12:45 -08:00
devicetree sound fixes for 6.2-rc4 2023-01-13 08:20:29 -06:00
doc-guide Merge branch 'alabaster-rb' into docs-mw 2022-10-18 16:29:50 -06:00
driver-api dmaengine updates for v6.2 2022-12-19 08:54:17 -06:00
fault-injection debugfs: fix error when writing negative value to atomic_t debugfs file 2022-11-30 16:13:16 -08:00
fb docs/fb: Document current named modes 2022-11-15 10:07:40 +01:00
features RISC-V Patches for the 6.2 Merge Window, Part 1 2022-12-14 15:23:49 -08:00
filesystems ntfs3 for 6.2 2022-12-21 10:18:17 -08:00
firmware_class
firmware-guide Merge branches 'acpi-misc', 'acpi-tools' and 'acpi-docs' 2022-10-03 20:03:49 +02:00
fpga
gpu drm/amdgpu: add GART, GPUVM, and GTT to glossary 2022-12-02 10:05:33 -05:00
hid
hwmon hwmon: (aquacomputer_d5next) Add support for Quadro flow sensor pulses 2022-12-04 16:45:03 -08:00
i2c
ia64 docs: ia64: Fix a typo ("identify mappings") 2022-11-09 14:03:51 -07:00
iio
images
infiniband
input Merge branch 'next' into for-linus 2022-10-09 22:30:23 -07:00
isdn
kbuild Documentation: kbuild: Add description of git for reproducible builds 2022-10-28 00:16:29 +09:00
kernel-hacking Updates for timers, timekeeping and drivers: 2022-12-12 12:52:02 -08:00
leds
litmus-tests
livepatch
locking
loongarch This was a not-too-busy cycle for documentation; highlights include: 2022-12-12 17:18:50 -08:00
m68k
maintainer docs, nvme: add a feature and quirk policy document 2022-12-28 05:37:12 -10:00
mhi
mips
misc-devices
mm mm: discard __GFP_ATOMIC 2023-02-02 22:33:13 -08:00
netlabel
networking rxrpc: Move call state changes from sendmsg to I/O thread 2023-01-06 09:43:33 +00:00
nios2
nvdimm
nvme docs, nvme: add a feature and quirk policy document 2022-12-28 05:37:12 -10:00
openrisc
parisc
PCI cxl for 6.2 2022-12-12 13:55:31 -08:00
pcmcia
peci
power
powerpc docs: powerpc: add POWER9 and POWER10 to CPU families 2022-11-24 23:31:47 +11:00
process docs: netdev: convert to a non-FAQ document 2022-12-28 10:06:06 +00:00
RCU Updates for timers, timekeeping and drivers: 2022-12-12 12:52:02 -08:00
riscv RISC-V Patches for the 6.2 Merge Window, Part 1 2022-12-14 15:23:49 -08:00
rust
s390 vfio/mdev: embedd struct mdev_parent in the parent data structure 2022-10-04 12:06:58 -06:00
scheduler
scsi scsi: core: Change the return type of .eh_timed_out() 2022-10-22 03:25:59 +00:00
security KEYS: encrypted: fix key instantiation with user-provided data 2022-10-19 13:01:23 -04:00
sh
sound
sparc
sphinx docs: Fix the docs build with Sphinx 6.0 2023-01-06 13:04:00 -07:00
sphinx-static docs: Don't wire font sizes for HTML output 2022-11-01 15:59:40 -06:00
spi
staging docs: put atomic*.txt and memory-barriers.txt into the core-api book 2022-09-29 12:55:06 -06:00
target
timers Documentation: Replace del_timer/del_timer_sync() 2022-11-24 15:09:11 +01:00
tools Documentation/rv: Add verification/rv man pages 2022-12-09 18:06:24 -05:00
trace Trace probes updates for 6.2: 2022-12-21 18:57:24 -08:00
translations tools/vm: rename tools/vm to tools/mm 2023-01-18 17:12:55 -08:00
usb Documentation: USB: correct possessive "its" usage 2022-11-21 14:33:23 -07:00
userspace-api iommufd for 6.2 2022-12-14 09:15:43 -08:00
virt KVM: x86/xen: Avoid deadlock by adding kvm->arch.xen.xen_lock leaf node lock 2023-01-11 17:45:58 -05:00
w1
watchdog
x86 Add TDX guest attestation infrastructure and driver 2022-12-12 14:27:49 -08:00
xtensa
.gitignore
arch.rst
atomic_bitops.txt
atomic_t.txt
Changes
CodingStyle
conf.py docs/conf.py: Use about.html only in sidebar of alabaster theme 2023-01-11 15:06:50 -07:00
docutils.conf
dontdiff
index.rst Rust introduction for v6.1-rc1 2022-10-03 16:39:37 -07:00
Kconfig
Makefile doc: add texinfodocs and infodocs targets 2022-11-21 14:13:57 -07:00
memory-barriers.txt docs/memory-barriers.txt: Add a missed closing parenthesis 2022-10-18 15:14:52 -07:00
SubmittingPatches
subsystem-apis.rst doc: add documentation for accel subsystem 2022-11-22 13:14:52 +02:00