mirror of
https://github.com/Dasharo/linux.git
synced 2026-03-06 15:25:10 -08:00
Merge tag 'mm-nonmm-stable-2024-03-14-09-36' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm
Pull non-MM updates from Andrew Morton: - Kuan-Wei Chiu has developed the well-named series "lib min_heap: Min heap optimizations". - Kuan-Wei Chiu has also sped up the library sorting code in the series "lib/sort: Optimize the number of swaps and comparisons". - Alexey Gladkov has added the ability for code running within an IPC namespace to alter its IPC and MQ limits. The series is "Allow to change ipc/mq sysctls inside ipc namespace". - Geert Uytterhoeven has contributed some dhrystone maintenance work in the series "lib: dhry: miscellaneous cleanups". - Ryusuke Konishi continues nilfs2 maintenance work in the series "nilfs2: eliminate kmap and kmap_atomic calls" "nilfs2: fix kernel bug at submit_bh_wbc()" - Nathan Chancellor has updated our build tools requirements in the series "Bump the minimum supported version of LLVM to 13.0.1". - Muhammad Usama Anjum continues with the selftests maintenance work in the series "selftests/mm: Improve run_vmtests.sh". - Oleg Nesterov has done some maintenance work against the signal code in the series "get_signal: minor cleanups and fix". Plus the usual shower of singleton patches in various parts of the tree. Please see the individual changelogs for details. * tag 'mm-nonmm-stable-2024-03-14-09-36' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm: (77 commits) nilfs2: prevent kernel bug at submit_bh_wbc() nilfs2: fix failure to detect DAT corruption in btree and direct mappings ocfs2: enable ocfs2_listxattr for special files ocfs2: remove SLAB_MEM_SPREAD flag usage assoc_array: fix the return value in assoc_array_insert_mid_shortcut() buildid: use kmap_local_page() watchdog/core: remove sysctl handlers from public header nilfs2: use div64_ul() instead of do_div() mul_u64_u64_div_u64: increase precision by conditionally swapping a and b kexec: copy only happens before uchunk goes to zero get_signal: don't initialize ksig->info if SIGNAL_GROUP_EXIT/group_exec_task get_signal: hide_si_addr_tag_bits: fix the usage of uninitialized ksig get_signal: don't abuse ksig->info.si_signo and ksig->sig const_structs.checkpatch: add device_type Normalise "name (ad@dr)" MODULE_AUTHORs to "name <ad@dr>" dyndbg: replace kstrdup() + strchr() with kstrdup_and_replace() list: leverage list_is_head() for list_entry_is_head() nilfs2: MAINTAINERS: drop unreachable project mirror site smp: make __smp_processor_id() 0-argument macro fat: fix uninitialized field in nostale filehandles ...
This commit is contained in:
@@ -4211,6 +4211,7 @@
|
||||
bit 4: print ftrace buffer
|
||||
bit 5: print all printk messages in buffer
|
||||
bit 6: print all CPUs backtrace (if available in the arch)
|
||||
bit 7: print only tasks in uninterruptible (blocked) state
|
||||
*Be aware* that this option may print a _lot_ of lines,
|
||||
so there are risks of losing older messages in the log.
|
||||
Use this option carefully, maybe worth to setup a
|
||||
|
||||
@@ -594,6 +594,9 @@ default (``MSGMNB``).
|
||||
``msgmni`` is the maximum number of IPC queues. 32000 by default
|
||||
(``MSGMNI``).
|
||||
|
||||
All of these parameters are set per ipc namespace. The maximum number of bytes
|
||||
in POSIX message queues is limited by ``RLIMIT_MSGQUEUE``. This limit is
|
||||
respected hierarchically in the each user namespace.
|
||||
|
||||
msg_next_id, sem_next_id, and shm_next_id (System V IPC)
|
||||
========================================================
|
||||
@@ -850,6 +853,7 @@ bit 3 print locks info if ``CONFIG_LOCKDEP`` is on
|
||||
bit 4 print ftrace buffer
|
||||
bit 5 print all printk messages in buffer
|
||||
bit 6 print all CPUs backtrace (if available in the arch)
|
||||
bit 7 print only tasks in uninterruptible (blocked) state
|
||||
===== ============================================
|
||||
|
||||
So for example to print tasks and memory info on panic, user can::
|
||||
@@ -1274,15 +1278,20 @@ are doing anyway :)
|
||||
shmall
|
||||
======
|
||||
|
||||
This parameter sets the total amount of shared memory pages that
|
||||
can be used system wide. Hence, ``shmall`` should always be at least
|
||||
``ceil(shmmax/PAGE_SIZE)``.
|
||||
This parameter sets the total amount of shared memory pages that can be used
|
||||
inside ipc namespace. The shared memory pages counting occurs for each ipc
|
||||
namespace separately and is not inherited. Hence, ``shmall`` should always be at
|
||||
least ``ceil(shmmax/PAGE_SIZE)``.
|
||||
|
||||
If you are not sure what the default ``PAGE_SIZE`` is on your Linux
|
||||
system, you can run the following command::
|
||||
|
||||
# getconf PAGE_SIZE
|
||||
|
||||
To reduce or disable the ability to allocate shared memory, you must create a
|
||||
new ipc namespace, set this parameter to the required value and prohibit the
|
||||
creation of a new ipc namespace in the current user namespace or cgroups can
|
||||
be used.
|
||||
|
||||
shmmax
|
||||
======
|
||||
|
||||
@@ -30,7 +30,7 @@ you probably needn't concern yourself with pcmciautils.
|
||||
Program Minimal version Command to check the version
|
||||
====================== =============== ========================================
|
||||
GNU C 5.1 gcc --version
|
||||
Clang/LLVM (optional) 11.0.0 clang --version
|
||||
Clang/LLVM (optional) 13.0.1 clang --version
|
||||
Rust (optional) 1.76.0 rustc --version
|
||||
bindgen (optional) 0.65.1 bindgen --version
|
||||
GNU make 3.82 make --version
|
||||
|
||||
@@ -15501,7 +15501,6 @@ M: Ryusuke Konishi <konishi.ryusuke@gmail.com>
|
||||
L: linux-nilfs@vger.kernel.org
|
||||
S: Supported
|
||||
W: https://nilfs.sourceforge.io/
|
||||
W: https://nilfs.osdn.jp/
|
||||
T: git https://github.com/konis/nilfs2.git
|
||||
F: Documentation/filesystems/nilfs2.rst
|
||||
F: fs/nilfs2/
|
||||
|
||||
8
Makefile
8
Makefile
@@ -950,14 +950,6 @@ CC_FLAGS_LTO += -fvisibility=hidden
|
||||
|
||||
# Limit inlining across translation units to reduce binary size
|
||||
KBUILD_LDFLAGS += -mllvm -import-instr-limit=5
|
||||
|
||||
# Check for frame size exceeding threshold during prolog/epilog insertion
|
||||
# when using lld < 13.0.0.
|
||||
ifneq ($(CONFIG_FRAME_WARN),0)
|
||||
ifeq ($(call test-lt, $(CONFIG_LLD_VERSION), 130000),y)
|
||||
KBUILD_LDFLAGS += -plugin-opt=-warn-stack-size=$(CONFIG_FRAME_WARN)
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
ifdef CONFIG_LTO
|
||||
|
||||
@@ -18,18 +18,12 @@ static __always_inline __attribute_const__ struct task_struct *get_current(void)
|
||||
{
|
||||
struct task_struct *cur;
|
||||
|
||||
#if __has_builtin(__builtin_thread_pointer) && \
|
||||
defined(CONFIG_CURRENT_POINTER_IN_TPIDRURO) && \
|
||||
!(defined(CONFIG_THUMB2_KERNEL) && \
|
||||
defined(CONFIG_CC_IS_CLANG) && CONFIG_CLANG_VERSION < 130001)
|
||||
#if __has_builtin(__builtin_thread_pointer) && defined(CONFIG_CURRENT_POINTER_IN_TPIDRURO)
|
||||
/*
|
||||
* Use the __builtin helper when available - this results in better
|
||||
* code, especially when using GCC in combination with the per-task
|
||||
* stack protector, as the compiler will recognize that it needs to
|
||||
* load the TLS register only once in every function.
|
||||
*
|
||||
* Clang < 13.0.1 gets this wrong for Thumb2 builds:
|
||||
* https://github.com/ClangBuiltLinux/linux/issues/1485
|
||||
*/
|
||||
cur = __builtin_thread_pointer();
|
||||
#elif defined(CONFIG_CURRENT_POINTER_IN_TPIDRURO) || defined(CONFIG_SMP)
|
||||
|
||||
@@ -379,8 +379,8 @@ config BROKEN_GAS_INST
|
||||
config BUILTIN_RETURN_ADDRESS_STRIPS_PAC
|
||||
bool
|
||||
# Clang's __builtin_return_adddress() strips the PAC since 12.0.0
|
||||
# https://reviews.llvm.org/D75044
|
||||
default y if CC_IS_CLANG && (CLANG_VERSION >= 120000)
|
||||
# https://github.com/llvm/llvm-project/commit/2a96f47c5ffca84cd774ad402cacd137f4bf45e2
|
||||
default y if CC_IS_CLANG
|
||||
# GCC's __builtin_return_address() strips the PAC since 11.1.0,
|
||||
# and this was backported to 10.2.0, 9.4.0, 8.5.0, but not earlier
|
||||
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94891
|
||||
@@ -1387,7 +1387,6 @@ choice
|
||||
|
||||
config CPU_BIG_ENDIAN
|
||||
bool "Build big-endian kernel"
|
||||
depends on !LD_IS_LLD || LLD_VERSION >= 130000
|
||||
# https://github.com/llvm/llvm-project/commit/1379b150991f70a5782e9a143c2ba5308da1161c
|
||||
depends on AS_IS_GNU || AS_VERSION >= 150000
|
||||
help
|
||||
@@ -2018,8 +2017,6 @@ config ARM64_BTI_KERNEL
|
||||
depends on !CC_IS_GCC || GCC_VERSION >= 100100
|
||||
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106671
|
||||
depends on !CC_IS_GCC
|
||||
# https://github.com/llvm/llvm-project/commit/a88c722e687e6780dcd6a58718350dc76fcc4cc9
|
||||
depends on !CC_IS_CLANG || CLANG_VERSION >= 120000
|
||||
depends on (!FUNCTION_GRAPH_TRACER || DYNAMIC_FTRACE_WITH_ARGS)
|
||||
help
|
||||
Build the kernel with Branch Target Identification annotations
|
||||
@@ -2222,7 +2219,7 @@ config STACKPROTECTOR_PER_TASK
|
||||
|
||||
config UNWIND_PATCH_PAC_INTO_SCS
|
||||
bool "Enable shadow call stack dynamically using code patching"
|
||||
# needs Clang with https://reviews.llvm.org/D111780 incorporated
|
||||
# needs Clang with https://github.com/llvm/llvm-project/commit/de07cde67b5d205d58690be012106022aea6d2b3 incorporated
|
||||
depends on CC_IS_CLANG && CLANG_VERSION >= 150000
|
||||
depends on ARM64_PTR_AUTH_KERNEL && CC_HAS_BRANCH_PROT_PAC_RET
|
||||
depends on SHADOW_CALL_STACK
|
||||
|
||||
@@ -333,7 +333,6 @@ config PANIC_TIMEOUT
|
||||
config COMPAT
|
||||
bool "Enable support for 32bit binaries"
|
||||
depends on PPC64
|
||||
depends on !CC_IS_CLANG || CLANG_VERSION >= 120000
|
||||
default y if !CPU_LITTLE_ENDIAN
|
||||
select ARCH_WANT_OLD_COMPAT_IPC
|
||||
select COMPAT_OLD_SIGACTION
|
||||
|
||||
@@ -144,11 +144,11 @@ CFLAGS-$(CONFIG_PPC64) += $(call cc-option,-mno-pointers-to-nested-functions)
|
||||
CFLAGS-$(CONFIG_PPC64) += $(call cc-option,-mlong-double-128)
|
||||
|
||||
# Clang unconditionally reserves r2 on ppc32 and does not support the flag
|
||||
# https://bugs.llvm.org/show_bug.cgi?id=39555
|
||||
# https://llvm.org/pr39555
|
||||
CFLAGS-$(CONFIG_PPC32) := $(call cc-option, -ffixed-r2)
|
||||
|
||||
# Clang doesn't support -mmultiple / -mno-multiple
|
||||
# https://bugs.llvm.org/show_bug.cgi?id=39556
|
||||
# https://llvm.org/pr39556
|
||||
CFLAGS-$(CONFIG_PPC32) += $(call cc-option, $(MULTIPLEWORD))
|
||||
|
||||
CFLAGS-$(CONFIG_PPC32) += $(call cc-option,-mno-readonly-in-sdata)
|
||||
|
||||
@@ -55,7 +55,7 @@ void kvmhv_save_hv_regs(struct kvm_vcpu *vcpu, struct hv_guest_state *hr)
|
||||
hr->dawrx1 = vcpu->arch.dawrx1;
|
||||
}
|
||||
|
||||
/* Use noinline_for_stack due to https://bugs.llvm.org/show_bug.cgi?id=49610 */
|
||||
/* Use noinline_for_stack due to https://llvm.org/pr49610 */
|
||||
static noinline_for_stack void byteswap_pt_regs(struct pt_regs *regs)
|
||||
{
|
||||
unsigned long *addr = (unsigned long *) regs;
|
||||
|
||||
@@ -175,8 +175,6 @@ config RISCV
|
||||
|
||||
config CLANG_SUPPORTS_DYNAMIC_FTRACE
|
||||
def_bool CC_IS_CLANG
|
||||
# https://github.com/llvm/llvm-project/commit/6ab8927931851bb42b2c93a00801dc499d7d9b1e
|
||||
depends on CLANG_VERSION >= 130000
|
||||
# https://github.com/ClangBuiltLinux/linux/issues/1817
|
||||
depends on AS_IS_GNU || (AS_IS_LLVM && (LD_IS_LLD || LD_VERSION >= 23600))
|
||||
|
||||
@@ -313,7 +311,7 @@ config AS_HAS_INSN
|
||||
def_bool $(as-instr,.insn r 51$(comma) 0$(comma) 0$(comma) t0$(comma) t0$(comma) zero)
|
||||
|
||||
config AS_HAS_OPTION_ARCH
|
||||
# https://reviews.llvm.org/D123515
|
||||
# https://github.com/llvm/llvm-project/commit/9e8ed3403c191ab9c4903e8eeb8f732ff8a43cb4
|
||||
def_bool y
|
||||
depends on $(as-instr, .option arch$(comma) +m)
|
||||
|
||||
|
||||
@@ -13,16 +13,6 @@
|
||||
#endif
|
||||
#define HAVE_FUNCTION_GRAPH_RET_ADDR_PTR
|
||||
|
||||
/*
|
||||
* Clang prior to 13 had "mcount" instead of "_mcount":
|
||||
* https://reviews.llvm.org/D98881
|
||||
*/
|
||||
#if defined(CONFIG_CC_IS_GCC) || CONFIG_CLANG_VERSION >= 130000
|
||||
#define MCOUNT_NAME _mcount
|
||||
#else
|
||||
#define MCOUNT_NAME mcount
|
||||
#endif
|
||||
|
||||
#define ARCH_SUPPORTS_FTRACE_OPS 1
|
||||
#ifndef __ASSEMBLY__
|
||||
|
||||
@@ -30,7 +20,7 @@ extern void *return_address(unsigned int level);
|
||||
|
||||
#define ftrace_return_address(n) return_address(n)
|
||||
|
||||
void MCOUNT_NAME(void);
|
||||
void _mcount(void);
|
||||
static inline unsigned long ftrace_call_adjust(unsigned long addr)
|
||||
{
|
||||
return addr;
|
||||
@@ -80,7 +70,7 @@ struct dyn_arch_ftrace {
|
||||
* both auipc and jalr at the same time.
|
||||
*/
|
||||
|
||||
#define MCOUNT_ADDR ((unsigned long)MCOUNT_NAME)
|
||||
#define MCOUNT_ADDR ((unsigned long)_mcount)
|
||||
#define JALR_SIGN_MASK (0x00000800)
|
||||
#define JALR_OFFSET_MASK (0x00000fff)
|
||||
#define AUIPC_OFFSET_MASK (0xfffff000)
|
||||
|
||||
@@ -50,8 +50,8 @@
|
||||
|
||||
SYM_TYPED_FUNC_START(ftrace_stub)
|
||||
#ifdef CONFIG_DYNAMIC_FTRACE
|
||||
.global MCOUNT_NAME
|
||||
.set MCOUNT_NAME, ftrace_stub
|
||||
.global _mcount
|
||||
.set _mcount, ftrace_stub
|
||||
#endif
|
||||
ret
|
||||
SYM_FUNC_END(ftrace_stub)
|
||||
@@ -80,7 +80,7 @@ SYM_FUNC_END(return_to_handler)
|
||||
#endif
|
||||
|
||||
#ifndef CONFIG_DYNAMIC_FTRACE
|
||||
SYM_FUNC_START(MCOUNT_NAME)
|
||||
SYM_FUNC_START(_mcount)
|
||||
la t4, ftrace_stub
|
||||
#ifdef CONFIG_FUNCTION_GRAPH_TRACER
|
||||
la t0, ftrace_graph_return
|
||||
@@ -126,6 +126,6 @@ SYM_FUNC_START(MCOUNT_NAME)
|
||||
jalr t5
|
||||
RESTORE_ABI_STATE
|
||||
ret
|
||||
SYM_FUNC_END(MCOUNT_NAME)
|
||||
SYM_FUNC_END(_mcount)
|
||||
#endif
|
||||
EXPORT_SYMBOL(MCOUNT_NAME)
|
||||
EXPORT_SYMBOL(_mcount)
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
#ifndef __ASSEMBLY__
|
||||
|
||||
#ifdef CONFIG_CC_IS_CLANG
|
||||
/* https://bugs.llvm.org/show_bug.cgi?id=41424 */
|
||||
/* https://llvm.org/pr41424 */
|
||||
#define ftrace_return_address(n) 0UL
|
||||
#else
|
||||
#define ftrace_return_address(n) __builtin_return_address(n)
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
#define PFX DRV_MODULE_NAME ": "
|
||||
#define DRV_MODULE_VERSION "0.2"
|
||||
|
||||
MODULE_AUTHOR("David S. Miller (davem@davemloft.net)");
|
||||
MODULE_AUTHOR("David S. Miller <davem@davemloft.net>");
|
||||
MODULE_DESCRIPTION("UltraSPARC-III memory controller driver");
|
||||
MODULE_LICENSE("GPL");
|
||||
MODULE_VERSION(DRV_MODULE_VERSION);
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
|
||||
static char version[] =
|
||||
DRV_MODULE_NAME ".c:v" DRV_MODULE_VERSION " (" DRV_MODULE_RELDATE ")\n";
|
||||
MODULE_AUTHOR("David S. Miller (davem@davemloft.net)");
|
||||
MODULE_AUTHOR("David S. Miller <davem@davemloft.net>");
|
||||
MODULE_DESCRIPTION("Sun LDOM domain services driver");
|
||||
MODULE_LICENSE("GPL");
|
||||
MODULE_VERSION(DRV_MODULE_VERSION);
|
||||
|
||||
@@ -221,12 +221,6 @@ endif
|
||||
|
||||
KBUILD_LDFLAGS += -m elf_$(UTS_MACHINE)
|
||||
|
||||
ifdef CONFIG_LTO_CLANG
|
||||
ifeq ($(call test-lt, $(CONFIG_LLD_VERSION), 130000),y)
|
||||
KBUILD_LDFLAGS += -plugin-opt=-stack-alignment=$(if $(CONFIG_X86_32),4,8)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifdef CONFIG_X86_NEED_RELOCS
|
||||
LDFLAGS_vmlinux := --emit-relocs --discard-none
|
||||
else
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
CFLAGS_cpu.o := -fno-stack-protector
|
||||
|
||||
# Clang may incorrectly inline functions with stack protector enabled into
|
||||
# __restore_processor_state(): https://bugs.llvm.org/show_bug.cgi?id=47479
|
||||
# __restore_processor_state(): https://llvm.org/pr47479
|
||||
CFLAGS_REMOVE_cpu.o := $(CC_FLAGS_LTO)
|
||||
|
||||
obj-$(CONFIG_PM_SLEEP) += cpu.o
|
||||
|
||||
@@ -102,7 +102,7 @@ static void blake2b_compress_one_generic(struct blake2b_state *S,
|
||||
ROUND(10);
|
||||
ROUND(11);
|
||||
#ifdef CONFIG_CC_IS_CLANG
|
||||
#pragma nounroll /* https://bugs.llvm.org/show_bug.cgi?id=45803 */
|
||||
#pragma nounroll /* https://llvm.org/pr45803 */
|
||||
#endif
|
||||
for (i = 0; i < 8; ++i)
|
||||
S->h[i] = S->h[i] ^ v[i] ^ v[i + 8];
|
||||
|
||||
@@ -6086,9 +6086,7 @@ static void print_binder_node_nilocked(struct seq_file *m,
|
||||
struct binder_work *w;
|
||||
int count;
|
||||
|
||||
count = 0;
|
||||
hlist_for_each_entry(ref, &node->refs, node_entry)
|
||||
count++;
|
||||
count = hlist_count_nodes(&node->refs);
|
||||
|
||||
seq_printf(m, " node %d: u%016llx c%016llx hs %d hw %d ls %d lw %d is %d iw %d tr %d",
|
||||
node->debug_id, (u64)node->ptr, (u64)node->cookie,
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user