Go to file
Zach O'Keefe ae63c898f4 mm/MADV_COLLAPSE: set EAGAIN on unexpected page refcount
During collapse, in a few places we check to see if a given small page has
any unaccounted references.  If the refcount on the page doesn't match our
expectations, it must be there is an unknown user concurrently interested
in the page, and so it's not safe to move the contents elsewhere. 
However, the unaccounted pins are likely an ephemeral state.

In this situation, MADV_COLLAPSE returns -EINVAL when it should return
-EAGAIN.  This could cause userspace to conclude that the syscall
failed, when it in fact could succeed by retrying.

Link: https://lkml.kernel.org/r/20230125015738.912924-1-zokeefe@google.com
Fixes: 7d8faaf155 ("mm/madvise: introduce MADV_COLLAPSE sync hugepage collapse")
Signed-off-by: Zach O'Keefe <zokeefe@google.com>
Reported-by: Hugh Dickins <hughd@google.com>
Acked-by: Hugh Dickins <hughd@google.com>
Reviewed-by: Yang Shi <shy828301@gmail.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
2023-02-16 18:11:59 -08:00
Documentation Revert "mm: add nodes= arg to memory.reclaim" 2023-01-31 16:44:07 -08:00
LICENSES
arch sh: define RUNTIME_DISCARD_EXIT 2023-01-31 16:44:09 -08:00
block block-6.2-2023-01-13 2023-01-13 17:41:19 -06:00
certs
crypto
drivers of: reserved_mem: Have kmemleak ignore dynamically allocated reserved mem 2023-02-09 15:56:51 -08:00
fs revert "squashfs: harden sanity check in squashfs_read_xattr_id_table" 2023-02-03 17:52:25 -08:00
include mm: shrinkers: fix deadlock in shrinker debugfs 2023-02-09 15:56:51 -08:00
init Sync with v6.2-rc4 2023-01-18 16:52:20 -08:00
io_uring io_uring: lock overflowing for IOPOLL 2023-01-13 07:32:46 -07:00
ipc
kernel modules-6.2-rc4 2023-01-14 08:17:27 -06:00
lib lib: parser: optimize match_NUMBER apis to use local array 2023-02-09 15:56:51 -08:00
mm mm/MADV_COLLAPSE: set EAGAIN on unexpected page refcount 2023-02-16 18:11:59 -08:00
net Including fixes from rxrpc. 2023-01-12 18:20:44 -06:00
rust
samples
scripts scripts/gdb: fix 'lx-current' for x86 2023-02-09 15:56:51 -08:00
security kernel hardening fixes for v6.2-rc1 2022-12-23 12:00:24 -08:00
sound sound fixes for 6.2-rc4 2023-01-13 08:20:29 -06:00
tools selftests/filesystems: grant executable permission to run_fat_tests.sh 2023-01-19 17:27:25 -08:00
usr
virt KVM: Ensure lockdep knows about kvm->lock vs. vcpu->mutex ordering rule 2023-01-11 13:32:21 -05:00
.clang-format
.cocciconfig
.get_maintainer.ignore
.gitattributes
.gitignore .gitignore: ignore *.rpm 2022-12-30 17:22:14 +09:00
.mailmap mailmap: add entry for Alexander Mikhalitsyn 2023-02-03 17:52:24 -08:00
.rustfmt.toml
COPYING
CREDITS
Kbuild
Kconfig
MAINTAINERS Sync with v6.2-rc4 2023-01-18 16:52:20 -08:00
Makefile Linux 6.2-rc4 2023-01-15 09:22:43 -06:00
README

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.