From patchwork Sun Mar 30 23:57:32 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrew Morton X-Patchwork-Id: 14033793 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id A143BC36011 for ; Mon, 31 Mar 2025 16:31:18 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 97D4228000A; Mon, 31 Mar 2025 12:31:16 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 92BDA280005; Mon, 31 Mar 2025 12:31:16 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 72FD228000A; Mon, 31 Mar 2025 12:31:16 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 37C98280005 for ; Mon, 31 Mar 2025 12:31:16 -0400 (EDT) Received: from smtpin20.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 7ECD7552EB for ; Mon, 31 Mar 2025 14:05:11 +0000 (UTC) X-FDA: 83282018022.20.8689C10 Received: from relay.hostedemail.com (unirelay05 [10.200.18.68]) by imf02.hostedemail.com (Postfix) with ESMTP id CBAB580027 for ; Mon, 31 Mar 2025 14:05:08 +0000 (UTC) Authentication-Results: imf02.hostedemail.com; arc=pass ("hostedemail.com:s=arc-20220608:i=2") ARC-Message-Signature: i=3; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1743429908; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding:in-reply-to: references:dkim-signature; bh=jT7yCWhpM9iUNQzkmRvRknQdc0300+qG7Pflmpi+vK0=; b=xKzpPtEkONNOhdI8ZTfNnAtObrO6zI+rD7aDrrA92lXm3gAehdSU6hk3B4d8FGKpIzUE+m 2Eg8dNzLHFcaBf5P4ebva6dJEMZzezbnzYoAUr0T29aLcZKHA4Cf50BPMqQeT4liFbgCsE hpxRoXhRqHdX9lDo5i5kBUGtKOvQ9B4= ARC-Seal: i=3; s=arc-20220608; d=hostedemail.com; t=1743429908; a=rsa-sha256; cv=pass; b=6y5M6zapHMwPG1w+kh0SSAoGVaT487rZEYXk5gqliph9bze9HqY7LJaRoSZoeBZw3vCQ4b Lqird+oVBWyO22rUIYdNjkpKOl8sx+mwYftFuLsvyYZ60/dteWE6uWOdgGLTNvWB2MiSGE 66JpbQTW3OYnX2F2D8PvCJbe3OIGgJ4= ARC-Authentication-Results: i=3; imf02.hostedemail.com; arc=pass ("hostedemail.com:s=arc-20220608:i=2") Received: from relay.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id B6A4658D62 for ; Mon, 31 Mar 2025 14:05:06 +0000 (UTC) Received: from smtpin25.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 652DB161687 for ; Mon, 31 Mar 2025 14:05:06 +0000 (UTC) X-FDA: 83282017812.25.2E30222 Received: from relay.hostedemail.com (unirelay10 [10.200.18.73]) by imf09.hostedemail.com (Postfix) with ESMTP id 5222B140021 for ; Mon, 31 Mar 2025 14:05:04 +0000 (UTC) ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1743429904; a=rsa-sha256; cv=pass; b=mtX80wHIOz+DZys5oYUf1SNYhLvVXeVdT3iY5N/s0ZSjOyQdonHhQAExH/PWwdHRKnc5+V KSZKz0aPgAV+P/ZFqvSoJeYwG6GbudGX92oGlpFVzt651phlI3Je2sznRI1/4PvavDlfOy q8MF+I1sI9y5jyLW93H+nx+xjKZ6doE= ARC-Authentication-Results: i=2; imf09.hostedemail.com; arc=pass ("hostedemail.com:s=arc-20220608:i=1") ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1743429904; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding:in-reply-to: references:dkim-signature; bh=jT7yCWhpM9iUNQzkmRvRknQdc0300+qG7Pflmpi+vK0=; b=qFq3SpeGcgYADeW8dJt0Dt2UXX9H/aQYI2BH206IUtbNh2wCtKVr5bjeDA+2CYYWyWpg4j CNdQYJzS+Y3p63YxgaSuHmV0PD6xO5/gesxPPfBn4CbZPJwT5rHbYE1VZF67TkSPcsr8M7 FcpMG+7gJ3wmvjKTeuzZQUO0OydeHZo= Received: from relay.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 9348FC15CC for ; Mon, 31 Mar 2025 14:04:52 +0000 (UTC) Received: from smtpin25.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 8428F16011E for ; Sun, 30 Mar 2025 23:57:36 +0000 (UTC) X-FDA: 83279882112.25.F42643D Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254]) by imf30.hostedemail.com (Postfix) with ESMTP id DD1A280007 for ; Sun, 30 Mar 2025 23:57:34 +0000 (UTC) ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1743379055; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding:in-reply-to: references:dkim-signature; bh=jT7yCWhpM9iUNQzkmRvRknQdc0300+qG7Pflmpi+vK0=; b=lTP4lVn45I4GezgqsH5epe38ktiBTAGwQOPrnt8xmsQ/JdPy8xCgRgJQJHZ48f5pcc2atD IQus3CQAzCNYTdM0uIKpd5/DpPQ9zLAmCwY8r8riBiKMXJkFx+eibIksfhPoI83bclLxMM 8eD5Ayxj1KHUIDvHh/9TzL9n+0iGU5I= ARC-Authentication-Results: i=1; imf30.hostedemail.com; dkim=pass header.d=linux-foundation.org header.s=korg header.b=ZHRYWd1c; spf=pass (imf30.hostedemail.com: domain of akpm@linux-foundation.org designates 172.105.4.254 as permitted sender) smtp.mailfrom=akpm@linux-foundation.org; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1743379055; a=rsa-sha256; cv=none; b=oUc7/m962VLTjGWQCyBEJFyginzUmF7hJDjl2XiSIndEmmFjMaTPN4RjdfF6D5ObsZfr8I X3rQ+UJctz7Kqd6z5zWi+7fjVhD+flmKVGeUD1NrLPVmdkYyEyAY9sw/QvYM35mFbwTyju naP0TSjvVRzAnenmsAQPTCv3sHKVulc= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by tor.source.kernel.org (Postfix) with ESMTP id 457976111E; Sun, 30 Mar 2025 23:57:27 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 5A538C4CEDD; Sun, 30 Mar 2025 23:57:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linux-foundation.org; s=korg; t=1743379053; bh=u0FAlYE9D0XM4EFyDGSOD+wiv+zcqAXlbkZCwWZjOBI=; h=Date:From:To:Cc:Subject:From; b=ZHRYWd1cB64LHpGzZcjERaH8ml8s6BYpqD6GcxpU9/FIaKa4w537aLOkYzx6NX6NH e0F/H+186eKGVHJvvPz9qnl/vS4L4oluOwfdYS5cKg/N64gZsEOzcRiytj7sG+fR1Y 4x/KIUtdWQFTdaO0VyW0pgxpGO+qhRzoCD7Hjqy8= Date: Sun, 30 Mar 2025 16:57:32 -0700 From: Andrew Morton To: Linus Torvalds Cc: linux-mm@kvack.org, mm-commits@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [GIT PULL] MM updates for 6.15-rc1 Message-Id: <20250330165732.f4c1493615375623f67e38eb@linux-foundation.org> X-Mailer: Sylpheed 3.8.0beta1 (GTK+ 2.24.33; x86_64-pc-linux-gnu) Mime-Version: 1.0 X-HE-Meta: U2FsdGVkX1+tX3a75Owf4M7mZ7LRjJagS+5ZWXUZv5y7est12P7VT9QP0L7Qb2gPDKfVH3Kdp3XESdxC4SWyzwA3WgQJ8OGJLlXYQm2yhPKMAlA8idUM6pQkVYdbX00EXHnqNYJB1tjh4bPkI5thl/evVmCLMJzQ9EwUVf/lVZBsv46ib57beF9sRde3KWbhlcqP52jqlt69HHSnOocVyeGEeygmK68BZ+Z5gx/J5iAUseAqA/1W/i6/14kIaw6rL3/tIwetIBLxyIxWYaBzCMNDD8iH0YAQOQlj5L+Omnk7gTEUANaLhub7/m8Je1LinpeoJvehtisWZ9TyQmaMxOfBYdg9aWdaxDsazhLT/SYAYO995uE3DaHOUbyxp1T7hqsG87WA4TscVAxBzjQqONQQPNMjADfq3JxM8jyxzZ4UA36Sos2CEsJxrDt81OZ6+PO0Fp9F63IiGSmFZ2bHKZSkjHPA550osT+rJCyaGL885e4qQ4O+tOlU54Gujm+YPww67w/IpVk0JfdwXVpy5j3biO/+ROitLLJi1prRIT2Xjvzd9oTyQdNtciSdiE1e+Gz61+wie3ZKPY4NuLz+qQrBQPzu1TL+q2v+TqM0btMMRe08KiqEc9zzdtm8R7yjacVkiyx4U59LjGzw2sRSV2+1da4rNzG9CKIZOYRzXQgi8mpU9ssQxZI+8ziYWXl7gJyU6XxVY6TvE1rxGSBifsdg9SCP1xb45KL6aB2EhfbA+RroHUDfgeEi0nCgxbCM89t+zcMLGqbhdZ3Sn6NfzxN870x0xRzOjyLqhvxhAAqfLwaaq+reY7wq/lYUSAQOW+e1amUcaM9Ou3u2JCaRaS38cQf6EuhjPyEhq5VKDL3bZbU4OkABKi2mdQfwWeySiNAgpIf75ifEnAKjct8MlnacJJ002lA1tOMGgUCu8HTXdQi8w6UQEAiTj/cpOwTNRbLlvlxU5coRF1jVU2O hsw3jSZi /VncoJjL/1Rycmn0RXRJxW7tzTeBmc4r3+M2JbgTc5W1RGCCrvqQf3c/MIBkEmqDOb2GzYwZkYkHpPiU44ZwotogJHsShVL7uGIMgBoypIXvVcVZae1POuq6c/6kr6z/gdd5l1U0gFldSO8/+FUxlEmaBkOwizl1Cgo8tV4Ea++OVUAZ2sL3Mvf21dmDztHAD7N5mR7tAw5TThMgVMINj9O64SD73+X642mVjj2FCfrn3pVuzaHBYrcrGnwDz5915hIFF1W78doLMaUTcutgd2ALHtuUWOflyzlhjZ+jPEGA/nyF9fHKk0sJ44foTeu0dFvkORHObOvDCW8N9uXk38iRF4bu99voIj8FwMrk9Rw7j+Ls= X-HE-Tag-Orig: 1743379054-133803 X-HE-Meta: U2FsdGVkX1/ENFzIb1aGeKWEZE7X0JFm+di17noXtm7UVnhCWttxI2YMBWnE/o6umVmHEtWu/akwEj2SaBJbDbLMn5rSu5jAJL6FD73vMT+he41mXwr9eb3v/80ynSaAwXG5Okagv+Hm1A3AMEHqTGFcEYPOGOsaCjAcOH20foVlrKcX9Ui8j+n2aocvPf59h7CrIcNdEesQLArxmr/cgvDfXxSJTVl2/SD6Nz11nYhGuXE0EIyhTXeZyBMcZQZAwBXWzYerYgPV40K9oTLAJ5O0JinYA66ER4P/FhMKp+eGSVroBVJsQmchNvqyzdlTE3G6y3eiMS1n0FgCSC4EfbvSl8glm5fxJ09mPD+oOtVQ/5Z12/JWXLlYC/A1Q9/kxbQfJtShniJUTBDlGs/hEvLG2CFHb8EmfyHBqMcl4hNCFcTcidmuThPZv4hNKZwi9KZNfyAnzzy9axshPVDHWEMzomZ0Ntmjwpzmrp0U69QKgc5+MYs5UiCgMqiQqsIU+BHoO9HZdh0XI1bYmY4a5iCFeMGRDFwJkWlJHXuhS8bPZCokpMlAYHrjNlIRTQxW6UnD7nBVq6gqEwizSyTEeS/IwYVJ5vQdkXShgVfeQ0AWxK5VsSnOIg9sZDnt23Zi8RfRwD9NdVpTDiwhHqUBRcfY+TCPDhltYP70FFjx46rHO2fYYFWPV1NZOStsoQHje8fEdkQfeC/3U3MyNaqDM9hbCMMNkGtoH6qOo+9zxnJr30G7nLIW2KfU6imDQFgWqXPQOiizUikyjvf7/EnEF0fMoBCXpJROstbSougZAG9oodP5JKwbHqExAWUx06CU50oeUSf6ccF2nMpubbj5wvxtjac7CQFGNV01/AzpbRM= X-Rspam-User: X-Rspamd-Server: rspam10 X-Rspamd-Queue-Id: CBAB580027 X-Stat-Signature: 5kho97dwi45gy3wrk356ec8ctump1o9x X-HE-Tag-Orig: 1743429904-154707 X-HE-Tag: 1743429908-22992 X-HE-Meta: U2FsdGVkX18bt71f4JICCR8QuMTtnEV+PhPo+iUmBksMpLHqK4kdvkdKDDtYJYrhsSV9mxVoFR0opiG6yIlVasb9DJVRyB8rGWNizMJH9nXlFPJ/pdMZbHp8R1G6YAb0IB6IQLVfUc8oQip4lHSey6wfqWWg8jGI/vIRIIBvwz2ikz4DE9snoC1g3SMdid43OZJ/qcY5uqDFYitZJq5QHWU2xzSioSBD27/zV8O0+eJgUIxcFYpVGlwU0VPGfaODfg/2Vr3PsxCSScZ33vCW8L5e7Y4DXO4rBcrcknVkMeyPZBwB6586TZVlWuBBkCPRjefXp9tF9QFt0VUKl8neaeLZp9/b52Ol9Nuu7FMcrG583gJhjPyneM0rxosUJnSr+MCfj7EUCUzrvkMda/0cua7/DU93pljKQ2q/SkrFHN4vtV0eYLDlgrR38FsHU7nXujtb4pHytJddLz8DwSWvbqu3wko7hwxLmfr3fixW4wPh8QQha2eUSxsdv17zTKkLRzchK7FT6FEgdiON8dozJ98jmJsTiOsT/JTnH37+jdpv+yo8X8irLn0kCgyRN5nHgroe0bYsKlIQIaHu/fyZlnr8KuQHfY0oJFj4VuxvJgVZZg/WtGc/SRxkwvW4blZZrGzU839w6Nzh9keLm0Xznzp+nZBYOamsHdiimZXCWrvy3TpVjEQqL0csTTQ+3A1KXfNYQsNQHpSjQYa/iYm5ksAI3cOTIKkho9wQeGloPDmayNcoLaQS/eGsqkfnyJk+C6me5hVNoCj3iTyPHj05FWrZPzgJFRl5ldHYpBRWUQQfOs+jmOwiE8HArdbcH/o/t+C9SYcAvT/21oOfLW2m13tVqtCh1qxsaQ8svyha7cxpy11UKyV3/kQ2GwxwiEGp2e/rETJYzWFn+Gr6s/9z4hltziUsCl536R8HA9KHUdZ57nClynZdpywS47gENfaPbl6gHZVdDK+9NBgFrJA sI1nQuIp YfrNR+3f9QmMG3GSVaygoMK0ZqJ9sz+50axDznFYVZAFk0XPUIH31SZvYbZuY6v/wn1p5d7Vhc+br3AvEMRbOd2qeRr2GuzerzfgKALxCA59I9IqkZbRDu+VhMNIYGshdLSUXe4KSId6VMdHxA0+n0+SfuN8NnpEdBU0EjU83jP2iX5lD1Z4bkZQvqOu6r4xv0iNqQ04EjK4ny6T6f7CkE3TlV0LnqVgKNsGQv5Ey9egtUkYS6pw+rCfaHjaUlhSEw6SV+2Vr73V+q5Dm6M07eCxIUMOFynO6DXNgp6aK4QcI8JU= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: Linus, please merge the MM updates for this development cycle. I'll be preparing a second batch of updates later in the week - some tens of patches. Leftovers and tricky things which awaited a tip tree merge. Thanks. Conflicts which I observed, along with their linux-next resolutions: arch/riscv/include/asm/io.h, vs tip tree: https://lkml.kernel.org/r/20250224144240.7b5bca3f@canb.auug.org.au arch/s390/include/asm/io.h, vs s390 tree: https://lkml.kernel.org/r/20250312120734.4a1e4f4f@canb.auug.org.au include/linux/mm.h, vs sysctl tree: https://lkml.kernel.org/r/20250311202126.1150e018@canb.auug.org.au mm/memory.c, vs drm-xe tree: https://lkml.kernel.org/r/20250307122954.1ab65809@canb.auug.org.au mm/page_owner.c, vs bpf-next tree: https://lkml.kernel.org/r/20250311120422.1d9a8f80@canb.auug.org.au Build errors, along with their linux-next resolutions: drivers/gpu/drm/drm_gpusvm.c, vs drm-xe tree: https://lkml.kernel.org/r/20250307125803.198cdedb@canb.auug.org.au drivers/gpu/drm/xe/xe_svm.c, vs drm-xe tree: https://lkml.kernel.org/r/20250307132112.18b6ce90@canb.auug.org.au kernel/locking/qspinlock.c, vs bpf-next tree: https://lkml.kernel.org/r/20250319133309.6fce6404@canb.auug.org.au Possible upcoming conflicts, along with their linux-next resolutions: lib/Makefile, vs kspp tree: https://lkml.kernel.org/r/20250317213953.01ca90e9@canb.auug.org.au arch/um/kernel/mem.c, vs uml tree: https://lkml.kernel.org/r/20250319105554.2e2f3aab@canb.auug.org.au kernel/auditsc.c, vs security tree: https://lkml.kernel.org/r/20241014144648.1923104a@canb.auug.org.au security/lsm_audit.c, vs security tree: https://lkml.kernel.org/r/20241023123139.127ad800@canb.auug.org.au The following changes since commit 800f1059c99e2b39899bdc67a7593a7bea6375d8: mm/page_alloc: fix memory accept before watermarks gets initialized (2025-03-16 17:40:26 -0700) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm tags/mm-stable-2025-03-30-16-52 for you to fetch changes up to 0a1e082b64ccce165e7307a7b49d22b2504f9d1f: mm/page_alloc: remove unnecessary __maybe_unused in order_to_pindex() (2025-03-21 22:03:17 -0700) ---------------------------------------------------------------- - The 6 patch series "Enable strict percpu address space checks" from Uros Bizjak uses x86 named address space qualifiers to provide compile-time checking of percpu area accesses. This has caused a small amount of fallout - two or three issues were reported. In all cases the calling code was founf to be incorrect. - The 4 patch series "Some cleanup for memcg" from Chen Ridong implements some relatively monir cleanups for the memcontrol code. - The 17 patch series "mm: fixes for device-exclusive entries (hmm)" from David Hildenbrand fixes a boatload of issues which David found then using device-exclusive PTE entries when THP is enabled. More work is needed, but this makes thins better - our own HMM selftests now succeed. - The 2 patch series "mm: zswap: remove z3fold and zbud" from Yosry Ahmed remove the z3fold and zbud implementations. They have been deprecated for half a year and nobody has complained. - The 5 patch series "mm: further simplify VMA merge operation" from Lorenzo Stoakes implements numerous simplifications in this area. No runtime effects are anticipated. - The 4 patch series "mm/madvise: remove redundant mmap_lock operations from process_madvise()" from SeongJae Park rationalizes the locking in the madvise() implementation. Performance gains of 20-25% were observed in one MADV_DONTNEED microbenchmark. - The 12 patch series "Tiny cleanup and improvements about SWAP code" from Baoquan He contains a number of touchups to issues which Baoquan noticed when working on the swap code. - The 2 patch series "mm: kmemleak: Usability improvements" from Catalin Marinas implements a couple of improvements to the kmemleak user-visible output. - The 2 patch series "mm/damon/paddr: fix large folios access and schemes handling" from Usama Arif provides a couple of fixes for DAMON's handling of large folios. - The 3 patch series "mm/damon/core: fix wrong and/or useless damos_walk() behaviors" from SeongJae Park fixes a few issues with the accuracy of kdamond's walking of DAMON regions. - The 3 patch series "expose mapping wrprotect, fix fb_defio use" from Lorenzo Stoakes changes the interaction between framebuffer deferred-io and core MM. No functional changes are anticipated - this is preparatory work for the future removal of page structure fields. - The 4 patch series "mm/damon: add support for hugepage_size DAMOS filter" from Usama Arif adds a DAMOS filter which permits the filtering by huge page sizes. - The 4 patch series "mm: permit guard regions for file-backed/shmem mappings" from Lorenzo Stoakes extends the guard region feature from its present "anon mappings only" state. The feature now covers shmem and file-backed mappings. - The 4 patch series "mm: batched unmap lazyfree large folios during reclamation" from Barry Song cleans up and speeds up the unmapping for pte-mapped large folios. - The 18 patch series "reimplement per-vma lock as a refcount" from Suren Baghdasaryan puts the vm_lock back into the vma. Our reasons for pulling it out were largely bogus and that change made the code more messy. This patchset provides small (0-10%) improvements on one microbenchmark. - The 5 patch series "Docs/mm/damon: misc DAMOS filters documentation fixes and improves" from SeongJae Park does some maintenance work on the DAMON docs. - The 27 patch series "hugetlb/CMA improvements for large systems" from Frank van der Linden addresses a pile of issues which have been observed when using CMA on large machines. - The 2 patch series "mm/damon: introduce DAMOS filter type for unmapped pages" from SeongJae Park enables users of DMAON/DAMOS to filter my the page's mapped/unmapped status. - The 19 patch series "zsmalloc/zram: there be preemption" from Sergey Senozhatsky teaches zram to run its compression and decompression operations preemptibly. - The 12 patch series "selftests/mm: Some cleanups from trying to run them" from Brendan Jackman fixes a pile of unrelated issues which Brendan encountered while runnimg our selftests. - The 2 patch series "fs/proc/task_mmu: add guard region bit to pagemap" from Lorenzo Stoakes permits userspace to use /proc/pid/pagemap to determine whether a particular page is a guard page. - The 7 patch series "mm, swap: remove swap slot cache" from Kairui Song removes the swap slot cache from the allocation path - it simply wasn't being effective. - The 5 patch series "mm: cleanups for device-exclusive entries (hmm)" from David Hildenbrand implements a number of unrelated cleanups in this code. - The 5 patch series "mm: Rework generic PTDUMP configs" from Anshuman Khandual implements a number of preparatoty cleanups to the GENERIC_PTDUMP Kconfig logic. - The 8 patch series "mm/damon: auto-tune aggregation interval" from SeongJae Park implements a feedback-driven automatic tuning feature for DAMON's aggregation interval tuning. - The 5 patch series "Fix lazy mmu mode" from Ryan Roberts fixes some issues in powerpc, sparc and x86 lazy MMU implementations. Ryan did this in preparation for implementing lazy mmu mode for arm64 to optimize vmalloc. - The 2 patch series "mm/page_alloc: Some clarifications for migratetype fallback" from Brendan Jackman reworks some commentary to make the code easier to follow. - The 3 patch series "page_counter cleanup and size reduction" from Shakeel Butt cleans up the page_counter code and fixes a size increase which we accidentally added late last year. - The 3 patch series "Add a command line option that enables control of how many threads should be used to allocate huge pages" from Thomas Prescher does that. It allows the careful operator to significantly reduce boot time by tuning the parallalization of huge page initialization. - The 3 patch series "Fix calculations in trace_balance_dirty_pages() for cgwb" from Tang Yizhou fixes the tracing output from the dirty page balancing code. - The 9 patch series "mm/damon: make allow filters after reject filters useful and intuitive" from SeongJae Park improves the handling of allow and reject filters. Behaviour is made more consistent and the documention is updated accordingly. - The 5 patch series "Switch zswap to object read/write APIs" from Yosry Ahmed updates zswap to the new object read/write APIs and thus permits the removal of some legacy code from zpool and zsmalloc. - The 6 patch series "Some trivial cleanups for shmem" from Baolin Wang does as it claims. - The 20 patch series "fs/dax: Fix ZONE_DEVICE page reference counts" from Alistair Popple regularizes the weird ZONE_DEVICE page refcount handling in DAX, permittig the removal of a number of special-case checks. - The 4 patch series "refactor mremap and fix bug" from Lorenzo Stoakes is a preparatoty refactoring and cleanup of the mremap() code. - The 20 patch series "mm: MM owner tracking for large folios (!hugetlb) + CONFIG_NO_PAGE_MAPCOUNT" from David Hildenbrand reworks the manner in which we determine whether a large folio is known to be mapped exclusively into a single MM. - The 8 patch series "mm/damon: add sysfs dirs for managing DAMOS filters based on handling layers" from SeongJae Park adds a couple of new sysfs directories to ease the management of DAMON/DAMOS filters. - The 13 patch series "arch, mm: reduce code duplication in mem_init()" from Mike Rapoport consolidates many per-arch implementations of mem_init() into code generic code, where that is practical. - The 13 patch series "mm/damon/sysfs: commit parameters online via damon_call()" from SeongJae Park continues the cleaning up of sysfs access to DAMON internal data. - The 3 patch series "mm: page_ext: Introduce new iteration API" from Luiz Capitulino reworks the page_ext initialization to fix a boot-time crash which was observed with an unusual combination of compile and cmdline options. - The 8 patch series "Buddy allocator like (or non-uniform) folio split" from Zi Yan reworks the code to split a folio into smaller folios. The main benefit is lessened memory consumption: fewer post-split folios are generated. - The 2 patch series "Minimize xa_node allocation during xarry split" from Zi Yan reduces the number of xarray xa_nodes which are generated during an xarray split. - The 2 patch series "drivers/base/memory: Two cleanups" from Gavin Shan performs some maintenance work on the drivers/base/memory code. - The 3 patch series "Add tracepoints for lowmem reserves, watermarks and totalreserve_pages" from Martin Liu adds some more tracepoints to the page allocator code. - The 4 patch series "mm/madvise: cleanup requests validations and classifications" from SeongJae Park cleans up some warts which SeongJae observed during his earlier madvise work. - The 3 patch series "mm/hwpoison: Fix regressions in memory failure handling" from Shuai Xue addresses two quite serious regressions which Shuai has observed in the memory-failure implementation. - The 5 patch series "mm: reliable huge page allocator" from Johannes Weiner makes huge page allocations cheaper and more reliable by reducing fragmentation. - The 5 patch series "Minor memcg cleanups & prep for memdescs" from Matthew Wilcox is preparatory work for the future implementation of memdescs. - The 4 patch series "track memory used by balloon drivers" from Nico Pache introduces a way to track memory used by our various balloon drivers. - The 2 patch series "mm/damon: introduce DAMOS filter type for active pages" from Nhat Pham permits users to filter for active/inactive pages, separately for file and anon pages. - The 2 patch series "Adding Proactive Memory Reclaim Statistics" from Hao Jia separates the proactive reclaim statistics from the direct reclaim statistics. - The 2 patch series "mm/vmscan: don't try to reclaim hwpoison folio" from Jinjiang Tu fixes our handling of hwpoisoned pages within the reclaim code. ---------------------------------------------------------------- Alistair Popple (20): fuse: fix dax truncate/punch_hole fault path fs/dax: return unmapped busy pages from dax_layout_busy_page_range() fs/dax: don't skip locked entries when scanning entries fs/dax: refactor wait for dax idle page fs/dax: create a common implementation to break DAX layouts fs/dax: always remove DAX page-cache entries when breaking layouts fs/dax: ensure all pages are idle prior to filesystem unmount fs/dax: remove PAGE_MAPPING_DAX_SHARED mapping flag mm/gup: remove redundant check for PCI P2PDMA page mm/mm_init: move p2pdma page refcount initialisation to p2pdma mm: allow compound zone device pages mm/memory: enhance insert_page_into_pte_locked() to create writable mappings mm/memory: add vmf_insert_page_mkwrite() mm/rmap: add support for PUD sized mappings to rmap mm/huge_memory: add vmf_insert_folio_pud() mm/huge_memory: add vmf_insert_folio_pmd() mm/gup: don't allow FOLL_LONGTERM pinning of FS DAX pages fs/dax: properly refcount fs dax pages device/dax: properly refcount device dax pages when mapping fs/dax: don't disassociate zero page entries Andrew Morton (1): Merge branch 'mm-hotfixes-stable' into mm-stable in order to pick up memcg and DAMON changes which are required by mm-stable material. Anshuman Khandual (5): configs: drop GENERIC_PTDUMP from debug.config arch/powerpc: drop GENERIC_PTDUMP from mpc885_ads_defconfig docs: arm64: drop PTDUMP config options from ptdump.rst mm: make DEBUG_WX depdendent on GENERIC_PTDUMP mm: rename GENERIC_PTDUMP and PTDUMP_CORE Baolin Wang (6): mm: shmem: drop the unused macro mm: shmem: remove 'fadvise()' comments mm: shmem: remove duplicate error validation mm: shmem: change the return value of shmem_find_swap_entries() mm: shmem: factor out the within_size logic into a new helper MAINTAINERS: add Baolin as shmem reviewer Baoquan He (14): mm/swap_state.c: fix the obsolete code comment mm/swap_state.c: optimize the code in clear_shadow_from_swap_cache() mm/swap: remove SWAP_FLAG_PRIO_SHIFT mm/swap: skip scanning cluster range if it's empty cluster mm/swap: rename swap_is_has_cache() to swap_only_has_cache() mm/swapfile.c: update the code comment above swap_count_continued() mm/swapfile.c: optimize code in setup_clusters() mm/swap_state.c: remove the meaningless code comment mm/swapfile.c: remove the unneeded checking mm/swap: rename swap_swapcount() to swap_entry_swapped() mm/swapfile.c: remove the incorrect code comment mm/swapfile.c: open code cluster_alloc_swap() mm/mmu_gather: remove unused __tlb_remove_page() mm/mmu_gather: clean up the stale code comment Barry Song (4): mm: set folio swapbacked iff folios are dirty in try_to_unmap_one mm: support tlbbatch flush for a range of PTEs mm: support batched unmap for lazyfree large folios during reclamation mm: avoid splitting pmd for lazyfree pmd-mapped THP in try_to_unmap Bart Van Assche (1): mm/vmstat: revert "fix a W=1 clang compiler warning" Bertrand Wlodarczyk (1): vmscan, cleanup: add for_each_managed_zone_pgdat macro Brendan Jackman (17): mm/mmu_gather: update comment on RCU freeing selftests/mm: report errno when things fail in gup_longterm selftests/mm: skip uffd-stress if userfaultfd not available selftests/mm: skip uffd-wp-mremap if userfaultfd not available selftests/mm/uffd: rename nr_cpus -> nr_parallel selftests/mm: print some details when uffd-stress gets bad params selftests/mm: don't fail uffd-stress if too many CPUs selftests/mm: skip map_populate on weird filesystems selftests/mm: skip gup_longterm tests on weird filesystems selftests/mm: drop unnecessary sudo usage selftests/mm: ensure uffd-wp-mremap gets pages of each size selftests/mm: skip mlock tests if nobody user can't read it selftests/mm/mlock: print error on failure mm/page_alloc: warn on nr_reserved_highatomic underflow mm/page_alloc: clarify terminology in migratetype fallback code mm/page_alloc: clarify should_claim_block() commentary selftests/mm: add commentary about 9pfs bugs Carlos Llamas (1): mm/oom_kill: fix trivial typo in comment Catalin Marinas (2): mm: kmemleak: add support for dumping physical and __percpu object info samples: kmemleak: print the raw pointers for debugging purposes Chen Ridong (4): memcg: use OFP_PEAK_UNSET instead of -1 memcg: call the free function when allocation of pn fails memcg: factor out the replace_stock_objcg function memcg: add CONFIG_MEMCG_V1 for 'local' functions Christoph Hellwig (1): vmalloc: drop Christoph from Reviewers Colin Ian King (1): mm/mincore: improve performance by adding an unlikely hint Cyan Yang (1): selftests/mm/cow: fix the incorrect error handling Dan Williams (1): dcssblk: mark DAX broken, remove FS_DAX_LIMITED support David Hildenbrand (42): mm/gup: reject FOLL_SPLIT_PMD with hugetlb VMAs mm/rmap: reject hugetlb folios in folio_make_device_exclusive() mm/rmap: convert make_device_exclusive_range() to make_device_exclusive() mm/rmap: implement make_device_exclusive() using folio_walk instead of rmap walk mm/memory: detect writability in restore_exclusive_pte() through can_change_pte_writable() mm: use single SWP_DEVICE_EXCLUSIVE entry type mm/page_vma_mapped: device-exclusive entries are not migration entries kernel/events/uprobes: handle device-exclusive entries correctly in __replace_page() mm/ksm: handle device-exclusive entries correctly in write_protect_page() mm/rmap: handle device-exclusive entries correctly in try_to_unmap_one() mm/rmap: handle device-exclusive entries correctly in try_to_migrate_one() mm/rmap: handle device-exclusive entries correctly in page_vma_mkclean_one() mm/page_idle: handle device-exclusive entries correctly in page_idle_clear_pte_refs_one() mm/damon: handle device-exclusive entries correctly in damon_folio_young_one() mm/damon: handle device-exclusive entries correctly in damon_folio_mkold_one() mm/rmap: keep mapcount untouched for device-exclusive entries mm/rmap: avoid -EBUSY from make_device_exclusive() lib/test_hmm: make dmirror_atomic_map() consume a single page mm/memory: remove PageAnonExclusive sanity-check in restore_exclusive_pte() mm/memory: pass folio and pte to restore_exclusive_pte() mm/memory: document restore_exclusive_pte() mm/mmu_notifier: use MMU_NOTIFY_CLEAR in remove_device_exclusive_entry() mm: factor out large folio handling from folio_order() into folio_large_order() mm: factor out large folio handling from folio_nr_pages() into folio_large_nr_pages() mm: let _folio_nr_pages overlay memcg_data in first tail page mm: move hugetlb specific things in folio to page[3] mm: move _pincount in folio to page[2] on 32bit mm: move _entire_mapcount in folio to page[2] on 32bit mm/rmap: pass dst_vma to folio_dup_file_rmap_pte() and friends mm/rmap: pass vma to __folio_add_rmap() mm/rmap: abstract large mapcount operations for large folios (!hugetlb) bit_spinlock: __always_inline (un)lock functions mm/rmap: use folio_large_nr_pages() in add/remove functions mm/rmap: basic MM owner tracking for large folios (!hugetlb) mm: Copy-on-Write (COW) reuse support for PTE-mapped THP mm: convert folio_likely_mapped_shared() to folio_maybe_mapped_shared() mm: CONFIG_NO_PAGE_MAPCOUNT to prepare for not maintain per-page mapcounts in large folios fs/proc/page: remove per-page mapcount dependency for /proc/kpagecount (CONFIG_NO_PAGE_MAPCOUNT) fs/proc/task_mmu: remove per-page mapcount dependency for PM_MMAP_EXCLUSIVE (CONFIG_NO_PAGE_MAPCOUNT) fs/proc/task_mmu: remove per-page mapcount dependency for "mapmax" (CONFIG_NO_PAGE_MAPCOUNT) fs/proc/task_mmu: remove per-page mapcount dependency for smaps/smaps_rollup (CONFIG_NO_PAGE_MAPCOUNT) mm: stop maintaining the per-page mapcount of large folios (CONFIG_NO_PAGE_MAPCOUNT) David Laight (1): mm: remove the access_ok() call from gup_fast_fallback() Dev Jain (1): mm: remove redundant return in set_huge_zero_folio() Enrico Bravi (1): mm/shmem: fix functions documentation Eric Salem (1): selftests: mm: fix typo Frank van der Linden (27): mm/cma: export total and free number of pages for CMA areas mm, cma: support multiple contiguous ranges, if requested mm/cma: introduce cma_intersects function mm, hugetlb: use cma_declare_contiguous_multi mm/hugetlb: remove redundant __ClearPageReserved mm/hugetlb: use online nodes for bootmem allocation mm/hugetlb: convert cmdline parameters from setup to early x86/mm: make register_page_bootmem_memmap handle PTE mappings mm/bootmem_info: export register_page_bootmem_memmap mm/sparse: allow for alternate vmemmap section init at boot mm/hugetlb: set migratetype for bootmem folios mm: define __init_reserved_page_zone function mm/hugetlb: check bootmem pages for zone intersections mm/sparse: add vmemmap_*_hvo functions mm/hugetlb: deal with multiple calls to hugetlb_bootmem_alloc mm/hugetlb: move huge_boot_pages list init to hugetlb_bootmem_alloc mm/hugetlb: add pre-HVO framework mm/hugetlb_vmemmap: fix hugetlb_vmemmap_restore_folios definition mm/hugetlb: do pre-HVO for bootmem allocated pages x86/setup: call hugetlb_bootmem_alloc early x86/mm: set ARCH_WANT_HUGETLB_VMEMMAP_PREINIT mm/cma: simplify zone intersection check mm/cma: introduce a cma validate function mm/cma: introduce interface for early reservations mm/hugetlb: add hugetlb_cma_only cmdline option mm/hugetlb: enable bootmem allocation from CMA areas mm/hugetlb: move hugetlb CMA code in to its own file Gavin Shan (2): drivers/base/memory: improve add_boot_memory_block() drivers/base/memory: correct the field name in the header Ge Yang (1): mm/cma: using per-CMA locks to improve concurrent allocation performance Guanjun (1): filemap: remove redundant folio_test_large check in filemap_free_folio Hao Jia (2): mm: vmscan: split proactive reclaim statistics from direct reclaim statistics cgroup: docs: add pswpin and pswpout items in cgroup v2 doc Hao Zhang (1): mm/vmscan: extract calculated pressure balance as a function I Hsin Cheng (2): maple_tree: correct comment for mas_start() maple_tree: use ma_dead_node() in mte_dead_node() Jane Chu (1): mm: make page_mapped_in_vma() hugetlb walk aware Jinjiang Tu (2): mm/hwpoison: introduce folio_contain_hwpoisoned_page() helper mm/vmscan: don't try to reclaim hwpoison folio Jiwen Qi (1): docs/mm: Physical Memory: Populate the "Zones" section Johannes Weiner (12): mm: memcontrol: unshare v2-only charge API bits again mm: memcontrol: move stray ratelimit bits to v1 mm: memcontrol: move memsw charge callbacks to v1 mm: page_alloc: don't steal single pages from biggest buddy mm: page_alloc: remove remnants of unlocked migratetype updates mm: page_alloc: group fallback functions together mm: swap_cgroup: remove double initialization of locals mm: compaction: push watermark into compaction_suitable() callers mm: page_alloc: trace type pollution from compaction capturing mm: page_alloc: defrag_mode mm: page_alloc: defrag_mode kswapd/kcompactd assistance mm: page_alloc: defrag_mode kswapd/kcompactd watermarks Kairui Song (7): mm, swap: avoid reclaiming irrelevant swap cache mm, swap: drop the flag TTRS_DIRECT mm, swap: avoid redundant swap device pinning mm, swap: don't update the counter up-front mm, swap: use percpu cluster as allocation fast path mm, swap: remove swap slot cache mm, swap: simplify folio swap allocation Kemeng Shi (3): mm, swap: remove setting SWAP_MAP_BAD for discard cluster mm, swap: correct comment in swap_usage_sub() mm: swap: remove stale comment of swap_reclaim_full_clusters() Liu Shixin (1): mm/hugetlb: update nr_huge_pages and surplus_huge_pages together Liu Ye (6): mm/memfd: fix spelling and grammatical issues mm/folio_queue: delete __folio_order and use folio_order directly mm/shrinker: fix name consistency issue in shrinker_debugfs_rename() mm/vmalloc: refactor __vmalloc_node_range_noprof() mm/debug: add line breaks mm/page_alloc: remove unnecessary __maybe_unused in order_to_pindex() Lorenzo Stoakes (22): mm: simplify vma merge structure and expand comments mm: further refactor commit_merge() mm: eliminate adj_start parameter from commit_merge() mm: make vmg->target consistent and further simplify commit_merge() mm: completely abstract unnecessary adj_start calculation mm: use READ/WRITE_ONCE() for vma->vm_flags on migrate, mprotect mm: refactor rmap_walk_file() to separate out traversal logic mm: provide mapping_wrprotect_range() function fb_defio: do not use deprecated page->mapping, index fields mm: allow guard regions in file-backed and read-only mappings selftests/mm: rename guard-pages to guard-regions tools/selftests: expand all guard region tests to file-backed tools/selftests: add file/shmem-backed mapping guard region tests fs/proc/task_mmu: add guard region bit to pagemap tools/selftests: add guard region test for /proc/$pid/pagemap mm/mremap: correctly handle partial mremap() of VMA starting at 0 mm/mremap: refactor mremap() system call implementation mm/mremap: introduce and use vma_remap_struct threaded state mm/mremap: initial refactor of move_vma() mm/mremap: complete refactor of move_vma() mm/mremap: refactor move_page_tables(), abstracting state mm/mremap: thread state through move page table operation Luiz Capitulino (3): mm: page_ext: add an iteration API for page extensions mm: page_table_check: use new iteration API mm: page_owner: use new iteration API Lukas Bulwahn (1): MAINTAINERS: adjust file entry in MAPLE TREE Marcelo Moreira (1): Docs/mm/damon: fix spelling and grammar in monitoring_intervals_tuning_example.rst Mark Brown (2): selftests/mm: fix thuge-gen test name uniqueness selftests/mm: allow tests to run with no huge pages support Martin Liu (3): mm/page_alloc: add trace event for per-zone watermark setup mm/page_alloc: add trace event for per-zone lowmem reserve setup mm/page_alloc: add trace event for totalreserve_pages calculation Mathieu Desnoyers (2): mm: add missing release barrier on PGDAT_RECLAIM_LOCKED unlock mm: lock PGDAT_RECLAIM_LOCKED with acquire memory ordering Matthew Wilcox (Oracle) (14): fs: convert block_commit_write() to take a folio fs: remove page_file_mapping() fs: remove folio_file_mapping() mm: assert the folio is locked in folio_start_writeback() dax: remove access to page->index dax: use folios more widely within DAX hugetlb: convert hugetlb_vma_maps_page() to hugetlb_vma_maps_pfn() hugetlb: convert adjust_range_hwpoison() to take a folio mm: convert lru_add_page_tail() to lru_add_split_folio() mm: separate folio_split_memcg_refs() from split_page_memcg() mm: simplify split_page_memcg() mm: remove references to folio in split_page_memcg() mm: simplify folio_memcg_charged() mm: remove references to folio in __memcg_kmem_uncharge_page() Michal Hocko (1): mm, percpu: do not consider sleepable allocations atomic Mike Rapoport (Microsoft) (16): arm: mem_init: use memblock_phys_free() to free DMA memory on SA1111 csky: move setup_initrd() to setup.c hexagon: move initialization of init_mm.context init to paging_init() MIPS: consolidate mem_init() for NUMA machines MIPS: make setup_zero_pages() use memblock nios2: move pr_debug() about memory start and end to setup_arch() s390: make setup_zero_pages() use memblock xtensa: split out printing of virtual memory layout to a function arch, mm: set max_mapnr when allocating memory map for FLATMEM arch, mm: set high_memory in free_area_init() arch, mm: streamline HIGHMEM freeing arch, mm: introduce arch_mm_preinit arch, mm: make releasing of memory to page allocator more explicit mm/mm_init: rename __init_reserved_page_zone to __init_page_from_nid mm/mm_init: rename init_reserved_page to init_deferred_page x86/mm: restore early initialization of high_memory for 32-bits Nhat Pham (3): page_io: zswap: do not crash the kernel on decompression failure mm/damon: implement a new DAMOS filter type for active pages docs/mm/damon/design: document active DAMOS filter type Nico Pache (5): meminfo: add a per node counter for balloon drivers balloon_compaction: update the NR_BALLOON_PAGES state hv_balloon: update the NR_BALLOON_PAGES state xen: balloon: update the NR_BALLOON_PAGES state MM documentation: add "Unaccepted" meminfo entry Petr Tesarik (1): maple_tree: remove a BUG_ON() in mas_alloc_nodes() Ryan Roberts (9): mm/ioremap: pass pgprot_t to ioremap_prot() instead of unsigned long mm: fix lazy mmu docs and usage fs/proc/task_mmu: reduce scope of lazy mmu region sparc/mm: disable preemption in lazy mmu mode sparc/mm: avoid calling arch_enter/leave_lazy_mmu() in set_ptes Revert "x86/xen: allow nesting of same lazy mode" mm: use ptep_get() instead of directly dereferencing pte_t* selftests/mm: uffd-unit-tests support for hugepages > 2M selftests/mm: speed up split_huge_page_test SeongJae Park (58): mm/madvise: split out mmap locking operations for madvise() mm/madvise: split out madvise input validity check mm/madvise: split out madvise() behavior execution mm/madvise: remove redundant mmap_lock operations from process_madvise() mm/damon: avoid applying DAMOS action to same entity multiple times mm/damon/core: unset damos->walk_completed after confimed set mm/damon/core: do not call damos_walk_control->walk() if walk is completed mm/damon/core: do damos walking in entire regions granularity Docs/mm/damon/design: fix typo on DAMOS filters usage doc link Docs/mm/damon/design: document hugepage_size filter Docs/damon: move DAMOS filter type names and meaning to design doc Docs/mm/damon/design: clarify handling layer based filters evaluation sequence Docs/mm/damon/design: categorize DAMOS filter types based on handling layer mm/damon: implement a new DAMOS filter type for unmapped pages Docs/mm/damon/design: document unmapped DAMOS filter type mm/damon: add data structure for monitoring intervals auto-tuning mm/damon/core: implement intervals auto-tuning mm/damon/sysfs: implement intervals tuning goal directory mm/damon/sysfs: commit intervals tuning goal mm/damon/sysfs: implement a command to update auto-tuned monitoring intervals Docs/mm/damon/design: document for intervals auto-tuning Docs/ABI/damon: document intervals auto-tuning ABI Docs/admin-guide/mm/damon/usage: add intervals_goal directory on the hierarchy mm/damon/core: introduce damos->ops_filters mm/damon/paddr: support ops_filters mm/damon/core: support committing ops_filters mm/damon/core: put ops-handled filters to damos->ops_filters mm/damon/paddr: support only damos->ops_filters mm/damon: add default allow/reject behavior fields to struct damos mm/damon/core: set damos_filter default allowance behavior based on installed filters mm/damon/paddr: respect ops_filters_default_reject Docs/mm/damon/design: update for changed filter-default behavior mm/damon/sysfs-schemes: let damon_sysfs_scheme_set_filters() be used for different named directories mm/damon/sysfs-schemes: implement core_filters and ops_filters directories mm/damon/sysfs-schemes: commit filters in {core,ops}_filters directories mm/damon/core: expose damos_filter_for_ops() to DAMON kernel API callers mm/damon/sysfs-schemes: record filters of which layer should be added to the given filters directory mm/damon/sysfs-schemes: return error when for attempts to install filters on wrong sysfs directory Docs/ABI/damon: document {core,ops}_filters directories Docs/admin-guide/mm/damon/usage: update for {core,ops}_filters directories mm/damon/sysfs: validate user inputs from damon_sysfs_commit_input() mm/damon/core: invoke kdamond_call() after merging is done if possible mm/damon/core: make damon_set_attrs() be safe to be called from damon_call() mm/damon/sysfs: handle commit command using damon_call() mm/damon/sysfs: remove damon_sysfs_cmd_request code from damon_sysfs_handle_cmd() mm/damon/sysfs: remove damon_sysfs_cmd_request_callback() and its callers mm/damon/sysfs: remove damon_sysfs_cmd_request and its readers mm/damon/sysfs-schemes: remove obsolete comment for damon_sysfs_schemes_clear_regions() mm/damon: remove damon_callback->private mm/damon: remove ->before_start of damon_callback mm/damon: remove damon_callback->after_sampling mm/damon: remove damon_callback->before_damos_apply mm/damon: remove damon_operations->reset_aggregated mm/damon/sysfs-schemes: avoid Wformat-security warning on damon_sysfs_access_pattern_add_range_dir() mm/madvise: use is_memory_failure() from madvise_do_behavior() mm/madvise: split out populate behavior check logic mm/madvise: deduplicate madvise_do_behavior() skip case handlings mm/madvise: remove len parameter of madvise_do_behavior() Seongjun Kim (1): samples/damon: a typo in the kconfig - sameple Sergey Senozhatsky (19): zram: sleepable entry locking zram: permit preemption with active compression stream zram: remove unused crypto include zram: remove max_comp_streams device attr zram: remove second stage of handle allocation zram: add GFP_NOWARN to incompressible zsmalloc handle allocation zram: remove writestall zram_stats member zram: limit max recompress prio to num_active_comps zram: filter out recomp targets based on priority zram: rework recompression loop zram: move post-processing target allocation zsmalloc: rename pool lock zsmalloc: sleepable zspage reader-lock zsmalloc: introduce new object mapping API zram: switch to new zsmalloc object mapping API zram: permit reclaim in zstd custom allocator zram: do not leak page on recompress_store error path zram: do not leak page on writeback_store error path zram: add might_sleep to zcomp API Shakeel Butt (6): memcg: don't call propagate_protected_usage() for v1 page_counter: track failcnt only for legacy cgroups page_counter: reduce struct page_counter size memcg: bypass root memcg check for skmem charging memcg: avoid refill_stock for root memcg memcg: move do_memsw_account() to CONFIG_MEMCG_V1 Shiyang Ruan (1): drivers/base/memory: simplify outputting of valid_zones_show() Shuai Xue (3): x86/mce: use is_copy_from_user() to determine copy-from-user context mm/hwpoison: do not send SIGBUS to processes with recovered clean pages mm: memory-failure: enhance comments for return value of memory_failure() Suchit K (1): Documentation/mm: fix spelling mistake Suren Baghdasaryan (21): mm: avoid extra mem_alloc_profiling_enabled() checks alloc_tag: uninline code gated by mem_alloc_profiling_key in slab allocator alloc_tag: uninline code gated by mem_alloc_profiling_key in page allocator mm: introduce vma_start_read_locked{_nested} helpers mm: move per-vma lock into vm_area_struct mm: mark vma as detached until it's added into vma tree mm: introduce vma_iter_store_attached() to use with attached vmas mm: mark vmas detached upon exit types: move struct rcuwait into types.h mm: allow vma_start_read_locked/vma_start_read_locked_nested to fail mm: move mmap_init_lock() out of the header file mm: uninline the main body of vma_start_write() refcount: provide ops for cases when object's memory can be reused refcount: introduce __refcount_{add|inc}_not_zero_limited_acquire mm: replace vm_lock and detached flag with a reference count mm: move lesser used vma_area_struct members into the last cacheline mm/debug: print vm_refcnt state when dumping the vma mm: remove extra vma_numab_state_init() call mm: prepare lock_vma_under_rcu() for vma reuse possibility mm: make vma cache SLAB_TYPESAFE_BY_RCU docs/mm: document latest changes to vm_lock Tang Yizhou (3): writeback: let trace_balance_dirty_pages() take struct dtc as parameter writeback: rename variables in trace_balance_dirty_pages() writeback: fix calculations in trace_balance_dirty_pages() for cgwb Thomas Prescher (3): mm: hugetlb: improve parallel huge page allocation time mm: hugetlb: add hugetlb_alloc_threads cmdline option mm: hugetlb: log time needed to allocate hugepages Thorsten Blum (1): arm/pgtable: remove duplicate included header file Ujwal Kundur (1): selftests/mm: fix spelling Uladzislau Rezki (Sony) (1): fork: use __vmalloc_node() for stack allocation Uros Bizjak (6): x86/kgdb: use IS_ERR_PCPU() macro compiler.h: introduce TYPEOF_UNQUAL() macro percpu: use TYPEOF_UNQUAL() in variable declarations percpu: use TYPEOF_UNQUAL() in *_cpu_ptr() accessors percpu: repurpose __percpu tag as a named address space qualifier percpu/x86: enable strict percpu checks via named AS qualifiers Usama Arif (5): mm/damon/ops: have damon_get_folio return folio even for tail pages mm/damon: introduce DAMOS filter type hugepage_size mm/damon/sysfs-schemes: add files for setting damos_filter->sz_range Docs/ABI/damon: document DAMOS sysfs files to set the min/max folio_size Docs/admin-guide/mm/damon/usage: document hugepage_size filter type Wei Yang (3): mm/mm_init.c: use round_up() to align movable range mm/mm_init.c: only align start of ZONE_MOVABLE on nodes with memory mm/mm_init.c: use round_up() to calculate usermap size Yosry Ahmed (7): mm: z3fold: remove z3fold mm: zbud: remove zbud mm: zpool: add interfaces for object read/write APIs mm: zswap: use object read/write APIs instead of object mapping APIs mm: zpool: remove object mapping APIs mm: zsmalloc: remove object mapping APIs and per-CPU map areas mm: zpool: remove zpool_malloc_support_movable() Zeng Jingxiang (1): mm/list_lru: make the case where mlru is NULL as unlikely Zi Yan (13): selftests/mm: make file-backed THP split work by writing PMD size data mm/huge_memory: allow split shmem large folio to any lower order selftests/mm: test splitting file-backed THP to any lower order xarray: add xas_try_split() to split a multi-index entry mm/huge_memory: add two new (not yet used) functions for folio_split() mm/huge_memory: move folio split common code to __folio_split() mm/huge_memory: add buddy allocator like (non-uniform) folio_split() mm/huge_memory: remove the old, unused __split_huge_page() mm/huge_memory: add folio_split() to debugfs testing interface mm/truncate: use folio_split() in truncate operation selftests/mm: add tests for folio_split(), buddy allocator like split mm/filemap: use xas_try_split() in __filemap_add_folio() mm/shmem: use xas_try_split() in shmem_split_large_entry() CREDITS | 3 + Documentation/ABI/testing/sysfs-block-zram | 8 - Documentation/ABI/testing/sysfs-kernel-mm-cma | 13 + Documentation/ABI/testing/sysfs-kernel-mm-damon | 60 + Documentation/RCU/whatisRCU.rst | 10 + Documentation/admin-guide/blockdev/zram.rst | 36 +- Documentation/admin-guide/cgroup-v1/memory.rst | 4 + Documentation/admin-guide/cgroup-v2.rst | 25 +- Documentation/admin-guide/kernel-parameters.txt | 30 +- Documentation/admin-guide/mm/cma_debugfs.rst | 10 +- Documentation/admin-guide/mm/damon/usage.rst | 87 +- Documentation/admin-guide/mm/hugetlbpage.rst | 10 + Documentation/admin-guide/mm/pagemap.rst | 21 +- Documentation/admin-guide/mm/zswap.rst | 10 +- Documentation/admin-guide/sysctl/vm.rst | 9 + Documentation/arch/arm64/ptdump.rst | 2 - Documentation/core-api/refcount-vs-atomic.rst | 37 +- Documentation/core-api/xarray.rst | 14 +- Documentation/filesystems/dax.rst | 1 - Documentation/filesystems/proc.rst | 43 +- Documentation/mm/balance.rst | 2 +- Documentation/mm/damon/design.rst | 123 +- .../damon/monitoring_intervals_tuning_example.rst | 8 +- Documentation/mm/hmm.rst | 2 +- Documentation/mm/index.rst | 1 - Documentation/mm/physical_memory.rst | 266 +++- Documentation/mm/process_addrs.rst | 44 +- Documentation/mm/transhuge.rst | 39 +- Documentation/mm/z3fold.rst | 28 - Documentation/mm/zsmalloc.rst | 5 +- Documentation/translations/zh_CN/mm/hmm.rst | 2 +- Documentation/translations/zh_CN/mm/index.rst | 1 - Documentation/translations/zh_CN/mm/z3fold.rst | 31 - MAINTAINERS | 20 +- arch/alpha/mm/init.c | 8 - arch/arc/mm/init.c | 25 +- arch/arc/mm/ioremap.c | 6 +- arch/arm/include/asm/pgtable.h | 5 +- arch/arm/mm/init.c | 43 +- arch/arm64/Kconfig | 2 +- arch/arm64/include/asm/io.h | 6 +- arch/arm64/include/asm/ptdump.h | 4 +- arch/arm64/include/asm/tlbflush.h | 23 +- arch/arm64/kernel/acpi.c | 2 +- arch/arm64/kvm/Kconfig | 4 +- arch/arm64/mm/Makefile | 2 +- arch/arm64/mm/contpte.c | 2 +- arch/arm64/mm/init.c | 12 +- arch/arm64/mm/ioremap.c | 3 +- arch/csky/include/asm/io.h | 2 +- arch/csky/kernel/setup.c | 43 + arch/csky/mm/init.c | 67 - arch/hexagon/mm/init.c | 32 +- arch/loongarch/configs/loongson3_defconfig | 3 +- arch/loongarch/include/asm/io.h | 10 +- arch/loongarch/kernel/numa.c | 6 - arch/loongarch/mm/init.c | 8 - arch/m68k/mm/init.c | 2 - arch/microblaze/mm/init.c | 25 - arch/mips/include/asm/io.h | 8 +- arch/mips/include/asm/mmzone.h | 2 - arch/mips/loongson64/numa.c | 7 - arch/mips/mm/init.c | 51 +- arch/mips/mm/ioremap.c | 4 +- arch/mips/mm/ioremap64.c | 4 +- arch/mips/sgi-ip27/ip27-memory.c | 9 - arch/nios2/kernel/setup.c | 3 +- arch/nios2/mm/init.c | 16 +- arch/openrisc/mm/init.c | 6 - arch/parisc/include/asm/io.h | 2 +- arch/parisc/mm/init.c | 4 - arch/parisc/mm/ioremap.c | 4 +- arch/powerpc/Kconfig | 2 +- arch/powerpc/configs/mpc885_ads_defconfig | 2 +- arch/powerpc/include/asm/book3s/64/hugetlb.h | 6 + arch/powerpc/include/asm/io.h | 2 +- arch/powerpc/kernel/setup-common.c | 2 - arch/powerpc/mm/Makefile | 2 +- arch/powerpc/mm/hugetlbpage.c | 1 + arch/powerpc/mm/init_64.c | 4 + arch/powerpc/mm/ioremap.c | 4 +- arch/powerpc/mm/mem.c | 18 +- arch/powerpc/platforms/ps3/spu.c | 4 +- arch/riscv/Kconfig | 2 +- arch/riscv/include/asm/io.h | 2 +- arch/riscv/include/asm/tlbflush.h | 3 +- arch/riscv/kernel/acpi.c | 2 +- arch/riscv/mm/Makefile | 2 +- arch/riscv/mm/init.c | 5 +- arch/riscv/mm/tlbflush.c | 3 +- arch/s390/Kconfig | 2 +- arch/s390/configs/debug_defconfig | 2 +- arch/s390/configs/defconfig | 2 +- arch/s390/include/asm/io.h | 4 +- arch/s390/mm/Makefile | 2 +- arch/s390/mm/init.c | 33 +- arch/s390/pci/pci.c | 4 +- arch/sh/boards/mach-landisk/setup.c | 2 +- arch/sh/boards/mach-lboxre2/setup.c | 2 +- arch/sh/boards/mach-sh03/setup.c | 2 +- arch/sh/include/asm/io.h | 2 +- arch/sh/mm/init.c | 10 - arch/sh/mm/ioremap.c | 3 +- arch/sparc/include/asm/pgtable_64.h | 2 - arch/sparc/mm/init_32.c | 31 +- arch/sparc/mm/init_64.c | 4 - arch/sparc/mm/tlb.c | 5 +- arch/um/include/shared/mem_user.h | 1 - arch/um/kernel/mem.c | 9 +- arch/um/kernel/physmem.c | 12 - arch/um/kernel/um_arch.c | 2 - arch/x86/Kconfig | 3 +- arch/x86/Kconfig.debug | 2 +- arch/x86/include/asm/highmem.h | 3 - arch/x86/include/asm/io.h | 2 +- arch/x86/include/asm/numa.h | 4 - arch/x86/include/asm/numa_32.h | 13 - arch/x86/include/asm/percpu.h | 33 +- arch/x86/include/asm/tlbflush.h | 3 +- arch/x86/include/asm/xen/hypervisor.h | 15 +- arch/x86/kernel/cpu/mce/severity.c | 11 +- arch/x86/kernel/kgdb.c | 2 +- arch/x86/kernel/setup.c | 6 +- arch/x86/mm/Makefile | 4 +- arch/x86/mm/highmem_32.c | 34 - arch/x86/mm/init_32.c | 38 +- arch/x86/mm/init_64.c | 25 +- arch/x86/mm/ioremap.c | 4 +- arch/x86/xen/enlighten_pv.c | 1 - arch/xtensa/include/asm/io.h | 6 +- arch/xtensa/mm/init.c | 66 +- arch/xtensa/mm/ioremap.c | 4 +- drivers/base/memory.c | 29 +- drivers/block/zram/backend_zstd.c | 11 +- drivers/block/zram/zcomp.c | 48 +- drivers/block/zram/zcomp.h | 8 +- drivers/block/zram/zram_drv.c | 330 +++-- drivers/block/zram/zram_drv.h | 17 +- drivers/dax/device.c | 24 +- drivers/gpu/drm/nouveau/nouveau_dmem.c | 3 +- drivers/gpu/drm/nouveau/nouveau_svm.c | 5 +- drivers/hv/hv_balloon.c | 2 + drivers/nvdimm/pmem.c | 4 +- drivers/pci/p2pdma.c | 19 +- drivers/s390/block/Kconfig | 12 +- drivers/s390/block/dcssblk.c | 27 +- drivers/video/fbdev/core/fb_defio.c | 43 +- drivers/xen/balloon.c | 4 + fs/Kconfig | 1 + fs/bcachefs/util.h | 2 +- fs/buffer.c | 14 +- fs/dax.c | 369 +++-- fs/ext4/inline.c | 2 +- fs/ext4/inode.c | 18 +- fs/ext4/move_extent.c | 2 +- fs/fuse/dax.c | 30 +- fs/fuse/dir.c | 2 +- fs/fuse/file.c | 4 +- fs/fuse/virtio_fs.c | 3 +- fs/hugetlbfs/inode.c | 28 +- fs/iomap/buffered-io.c | 2 +- fs/ocfs2/aops.c | 4 +- fs/ocfs2/file.c | 2 +- fs/proc/internal.h | 43 + fs/proc/meminfo.c | 2 + fs/proc/page.c | 11 +- fs/proc/task_mmu.c | 56 +- fs/udf/file.c | 2 +- fs/xfs/xfs_inode.c | 31 +- fs/xfs/xfs_inode.h | 2 +- fs/xfs/xfs_super.c | 12 + include/asm-generic/io.h | 4 +- include/asm-generic/memory_model.h | 5 +- include/asm-generic/percpu.h | 39 +- include/asm-generic/tlb.h | 31 +- include/linux/bit_spinlock.h | 8 +- include/linux/bootmem_info.h | 7 + include/linux/buffer_head.h | 2 +- include/linux/cma.h | 9 + include/linux/compaction.h | 5 +- include/linux/compiler-clang.h | 8 + include/linux/compiler-gcc.h | 8 + include/linux/compiler.h | 20 + include/linux/compiler_types.h | 2 +- include/linux/cpuhotplug.h | 1 - include/linux/damon.h | 118 +- include/linux/dax.h | 28 + include/linux/fb.h | 1 + include/linux/folio_queue.h | 12 +- include/linux/huge_mm.h | 44 +- include/linux/hugetlb.h | 35 + include/linux/memblock.h | 1 - include/linux/memcontrol.h | 32 +- include/linux/memory.h | 2 +- include/linux/memremap.h | 17 +- include/linux/migrate.h | 4 +- include/linux/mm.h | 331 +++-- include/linux/mm_types.h | 203 ++- include/linux/mmap_lock.h | 6 - include/linux/mmu_notifier.h | 8 +- include/linux/mmzone.h | 55 +- include/linux/page-flags.h | 16 +- include/linux/page_counter.h | 9 +- include/linux/page_ext.h | 93 ++ include/linux/pagemap.h | 25 - include/linux/part_stat.h | 2 +- include/linux/percpu-defs.h | 6 +- include/linux/pgalloc_tag.h | 77 +- include/linux/pgtable.h | 14 +- include/linux/rcuwait.h | 13 +- include/linux/refcount.h | 125 ++ include/linux/rmap.h | 293 +++- include/linux/slab.h | 15 +- include/linux/swap.h | 41 +- include/linux/swap_slots.h | 28 - include/linux/swapops.h | 27 +- include/linux/types.h | 12 + include/linux/vm_event_item.h | 2 + include/linux/vmstat.h | 2 +- include/linux/writeback.h | 24 + include/linux/xarray.h | 13 + include/linux/zpool.h | 47 +- include/linux/zsmalloc.h | 29 +- include/linux/zswap.h | 6 +- include/net/snmp.h | 5 +- include/trace/events/kmem.h | 78 ++ include/trace/events/writeback.h | 33 +- kernel/configs/debug.config | 1 - kernel/events/uprobes.c | 13 +- kernel/fork.c | 171 ++- kernel/locking/percpu-rwsem.c | 2 +- lib/alloc_tag.c | 6 +- lib/maple_tree.c | 10 +- lib/test_hmm.c | 72 +- lib/test_xarray.c | 52 + lib/xarray.c | 157 ++- mm/Kconfig | 74 +- mm/Kconfig.debug | 11 +- mm/Makefile | 9 +- mm/balloon_compaction.c | 2 + mm/bootmem_info.c | 4 +- mm/cma.c | 746 ++++++++-- mm/cma.h | 47 +- mm/cma_debug.c | 61 +- mm/cma_sysfs.c | 20 + mm/compaction.c | 95 +- mm/damon/core.c | 303 +++- mm/damon/ops-common.c | 25 +- mm/damon/paddr.c | 86 +- mm/damon/sysfs-schemes.c | 179 ++- mm/damon/sysfs.c | 357 +++-- mm/damon/tests/core-kunit.h | 6 +- mm/damon/vaddr.c | 1 - mm/debug.c | 46 +- mm/filemap.c | 50 +- mm/gup.c | 29 +- mm/hmm.c | 2 +- mm/huge_memory.c | 1019 +++++++++----- mm/hugetlb.c | 661 +++++---- mm/hugetlb_cgroup.c | 31 +- mm/hugetlb_cma.c | 275 ++++ mm/hugetlb_cma.h | 57 + mm/hugetlb_vmemmap.c | 199 ++- mm/hugetlb_vmemmap.h | 23 +- mm/init-mm.c | 1 + mm/internal.h | 93 +- mm/ioremap.c | 4 +- mm/khugepaged.c | 8 +- mm/kmemleak.c | 52 +- mm/ksm.c | 9 +- mm/list_lru.c | 15 +- mm/madvise.c | 229 +++- mm/memblock.c | 3 +- mm/memcontrol-v1.c | 102 +- mm/memcontrol-v1.h | 52 +- mm/memcontrol.c | 294 ++-- mm/memfd.c | 4 +- mm/memory-failure.c | 27 +- mm/memory.c | 379 +++-- mm/memory_hotplug.c | 3 +- mm/mempolicy.c | 8 +- mm/memremap.c | 60 +- mm/migrate.c | 11 +- mm/migrate_device.c | 18 +- mm/mincore.c | 2 +- mm/mlock.c | 2 + mm/mm_init.c | 184 ++- mm/mmap.c | 10 +- mm/mmu_gather.c | 12 +- mm/mprotect.c | 16 +- mm/mremap.c | 1448 ++++++++++++++------ mm/nommu.c | 10 +- mm/oom_kill.c | 2 +- mm/page-writeback.c | 38 +- mm/page_alloc.c | 748 ++++++---- mm/page_counter.c | 4 +- mm/page_ext.c | 13 + mm/page_idle.c | 9 +- mm/page_io.c | 6 +- mm/page_owner.c | 86 +- mm/page_table_check.c | 44 +- mm/page_vma_mapped.c | 16 +- mm/percpu.c | 8 +- mm/rmap.c | 939 ++++++++----- mm/shmem.c | 167 ++- mm/show_mem.c | 4 +- mm/shrinker_debug.c | 8 +- mm/slub.c | 51 +- mm/sparse-vmemmap.c | 168 ++- mm/sparse.c | 92 +- mm/swap.c | 2 - mm/swap.h | 6 - mm/swap_cgroup.c | 3 +- mm/swap_slots.c | 295 ---- mm/swap_state.c | 91 +- mm/swapfile.c | 432 +++--- mm/truncate.c | 53 +- mm/userfaultfd.c | 38 +- mm/vma.c | 352 ++--- mm/vma.h | 101 +- mm/vmalloc.c | 20 +- mm/vmscan.c | 252 ++-- mm/vmstat.c | 5 + mm/z3fold.c | 1447 ------------------- mm/zbud.c | 455 ------ mm/zpool.c | 97 +- mm/zsmalloc.c | 498 +++---- mm/zswap.c | 164 ++- net/mpls/internal.h | 4 +- samples/damon/Kconfig | 4 +- samples/kmemleak/kmemleak-test.c | 36 +- tools/include/linux/refcount.h | 5 + tools/testing/radix-tree/Makefile | 1 + tools/testing/selftests/mm/.gitignore | 2 +- tools/testing/selftests/mm/Makefile | 2 +- tools/testing/selftests/mm/cow.c | 2 +- .../mm/{guard-pages.c => guard-regions.c} | 968 +++++++++++-- tools/testing/selftests/mm/gup_longterm.c | 41 +- tools/testing/selftests/mm/map_populate.c | 5 + tools/testing/selftests/mm/mlock-random-test.c | 4 +- tools/testing/selftests/mm/mlock2.h | 8 +- tools/testing/selftests/mm/run_vmtests.sh | 95 +- tools/testing/selftests/mm/split_huge_page_test.c | 106 +- tools/testing/selftests/mm/thuge-gen.c | 4 +- tools/testing/selftests/mm/uffd-common.c | 12 +- tools/testing/selftests/mm/uffd-common.h | 2 +- tools/testing/selftests/mm/uffd-stress.c | 42 +- tools/testing/selftests/mm/uffd-unit-tests.c | 7 +- tools/testing/selftests/mm/uffd-wp-mremap.c | 5 +- tools/testing/selftests/mm/vm_util.h | 19 + tools/testing/vma/linux/atomic.h | 5 + tools/testing/vma/vma.c | 105 +- tools/testing/vma/vma_internal.h | 131 +- 353 files changed, 12718 insertions(+), 8829 deletions(-) delete mode 100644 Documentation/mm/z3fold.rst delete mode 100644 Documentation/translations/zh_CN/mm/z3fold.rst delete mode 100644 arch/x86/include/asm/numa_32.h delete mode 100644 arch/x86/mm/highmem_32.c delete mode 100644 include/linux/swap_slots.h create mode 100644 mm/hugetlb_cma.c create mode 100644 mm/hugetlb_cma.h delete mode 100644 mm/swap_slots.c delete mode 100644 mm/z3fold.c delete mode 100644 mm/zbud.c rename tools/testing/selftests/mm/{guard-pages.c => guard-regions.c} (56%)