Go to file
Liam R. Howlett 11bc9f5c70 maple_tree: add GFP_KERNEL to allocations in mas_expected_entries()
commit 099d7439ce upstream.

Users complained about OOM errors during fork without triggering
compaction.  This can be fixed by modifying the flags used in
mas_expected_entries() so that the compaction will be triggered in low
memory situations.  Since mas_expected_entries() is only used during fork,
the extra argument does not need to be passed through.

Additionally, the two test_maple_tree test cases and one benchmark test
were altered to use the correct locking type so that allocations would not
trigger sleeping and thus fail.  Testing was completed with lockdep atomic
sleep detection.

The additional locking change requires rwsem support additions to the
tools/ directory through the use of pthreads pthread_rwlock_t.  With this
change test_maple_tree works in userspace, as a module, and in-kernel.

Users may notice that the system gave up early on attempting to start new
processes instead of attempting to reclaim memory.

Link: https://lkml.kernel.org/r/20230915093243epcms1p46fa00bbac1ab7b7dca94acb66c44c456@epcms1p4
Link: https://lkml.kernel.org/r/20231012155233.2272446-1-Liam.Howlett@oracle.com
Fixes: 54a611b605 ("Maple Tree: add new data structure")
Signed-off-by: Liam R. Howlett <Liam.Howlett@oracle.com>
Reviewed-by: Peng Zhang <zhangpeng.00@bytedance.com>
Cc: <jason.sim@samsung.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2023-11-02 09:36:48 +01:00
Documentation docs: rust: update Rust docs output path 2023-10-25 12:16:30 +02:00
LICENSES LICENSES: Add the copyleft-next-0.3.1 license 2022-11-08 15:44:01 +01:00
arch arm64: dts: rockchip: Fix i2s0 pin conflict on ROCK Pi 4 boards 2023-11-02 09:36:47 +01:00
block block: Don't invalidate pagecache for invalid falloc modes 2023-10-19 23:11:06 +02:00
certs KEYS: Add missing function documentation 2023-04-24 16:15:52 +03:00
crypto KEYS: asymmetric: Fix sign/verify on pkcs1pad without a hash 2023-10-25 12:16:27 +02:00
drivers i40e: sync next_to_clean and next_to_process for programming status desc 2023-11-02 09:36:47 +01:00
fs smb: client: prevent new fids from being removed by laundromat 2023-11-02 09:36:45 +01:00
include hugetlbfs: extend hugetlb_vma_lock to private VMAs 2023-11-02 09:36:48 +01:00
init sched/psi: Select KERNFS as needed 2023-09-13 09:52:59 +02:00
io_uring io-wq: fully initialize wqe before calling cpuhp_state_add_instance_nocalls() 2023-10-25 12:16:20 +02:00
ipc Merge branch 'work.namespace' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2023-02-24 19:20:07 -08:00
kernel tracing/kprobes: Return EADDRNOTAVAIL when func matches several symbols 2023-10-25 12:16:27 +02:00
lib maple_tree: add GFP_KERNEL to allocations in mas_expected_entries() 2023-11-02 09:36:48 +01:00
mm hugetlbfs: extend hugetlb_vma_lock to private VMAs 2023-11-02 09:36:48 +01:00
net vsock/virtio: initialize the_virtio_vsock before using VQs 2023-11-02 09:36:46 +01:00
rust rust: docs: fix logo replacement 2023-10-25 12:16:29 +02:00
samples samples/hw_breakpoint: fix building without module unloading 2023-09-23 11:14:33 +02:00
scripts modpost: add missing else to the "of" check 2023-10-10 22:03:01 +02:00
security KEYS: trusted: Remove redundant static calls usage 2023-10-19 23:10:57 +02:00
sound ASoC: cs42l42: Fix missing include of gpio/consumer.h 2023-10-25 12:16:28 +02:00
tools maple_tree: add GFP_KERNEL to allocations in mas_expected_entries() 2023-11-02 09:36:48 +01:00
usr initramfs: Encode dependency on KBUILD_BUILD_TIMESTAMP 2023-06-06 17:54:49 +09:00
virt kvm/vfio: ensure kvg instance stays around in kvm_vfio_group_add() 2023-09-13 09:53:29 +02:00
.clang-format iommu: Add for_each_group_device() 2023-05-23 08:15:51 +02:00
.cocciconfig
.get_maintainer.ignore get_maintainer: add Alan to .get_maintainer.ignore 2022-08-20 15:17:44 -07:00
.gitattributes .gitattributes: set diff driver for Rust source code files 2023-05-31 17:48:25 +02:00
.gitignore Revert ".gitignore: ignore *.cover and *.mbx" 2023-07-04 15:05:12 -07:00
.mailmap mailmap: add entries for Simon Horman 2023-08-16 09:53:10 +01:00
.rustfmt.toml rust: add `.rustfmt.toml` 2022-09-28 09:02:20 +02:00
COPYING COPYING: state that all contributions really are covered by this file 2020-02-10 13:32:20 -08:00
CREDITS - Address -Wmissing-prototype warnings 2023-06-26 16:43:54 -07:00
Kbuild Kbuild updates for v6.1 2022-10-10 12:00:45 -07:00
Kconfig kbuild: ensure full rebuild when the compiler is updated 2020-05-12 13:28:33 +09:00
MAINTAINERS sound fixes for 6.5 2023-08-25 08:48:14 -07:00
Makefile Linux 6.5.9 2023-10-25 12:16:30 +02:00
README Drop all 00-INDEX files from Documentation/ 2018-09-09 15:08:58 -06:00

README

Linux kernel
============

There are several guides for kernel developers and users. These guides can
be rendered in a number of formats, like HTML and PDF. Please read
Documentation/admin-guide/README.rst first.

In order to build the documentation, use ``make htmldocs`` or
``make pdfdocs``.  The formatted documentation can also be read online at:

    https://www.kernel.org/doc/html/latest/

There are various text files in the Documentation/ subdirectory,
several of them using the Restructured Text markup notation.

Please read the Documentation/process/changes.rst file, as it contains the
requirements for building and running the kernel, and information about
the problems which may result by upgrading your kernel.