From mboxrd@z Thu Jan 1 00:00:00 1970 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 59C08C19F32 for ; Fri, 28 Feb 2025 02:31:03 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id BA48E6B0085; Thu, 27 Feb 2025 21:31:02 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id B52E06B0083; Thu, 27 Feb 2025 21:31:02 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 9F3FD6B008C; Thu, 27 Feb 2025 21:31:02 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 7B8AD6B0083 for ; Thu, 27 Feb 2025 21:31:02 -0500 (EST) Received: from smtpin04.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 05125B74D5 for ; Fri, 28 Feb 2025 02:31:01 +0000 (UTC) X-FDA: 83167775964.04.752A193 Received: from smtpout.efficios.com (smtpout.efficios.com [158.69.130.18]) by imf21.hostedemail.com (Postfix) with ESMTP id 8A7F61C0008 for ; Fri, 28 Feb 2025 02:31:00 +0000 (UTC) Authentication-Results: imf21.hostedemail.com; dkim=pass header.d=efficios.com header.s=smtpout1 header.b=dExi75r6; spf=pass (imf21.hostedemail.com: domain of mathieu.desnoyers@efficios.com designates 158.69.130.18 as permitted sender) smtp.mailfrom=mathieu.desnoyers@efficios.com; dmarc=pass (policy=none) header.from=efficios.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1740709860; 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-transfer-encoding:content-transfer-encoding: in-reply-to:references:dkim-signature; bh=KlUR6SfdadmkfMNB6HWuxuWWmOkoFDrpsnyCq1k+W20=; b=5Lgc7x6dHu75eY0fJ5DRVspI6fOk1UWoHocjhSd0TJ9sJuvV1+Ien+YgNZEPZmdLUqqBlM DYc8TmXMMAO6px5mYKF8UISkAYhvVcAq5clZgebdizmGYmf29EhxVYF5AGub9K64i8virE KeiQLMLMXSCM+rUYwwATcpESBlAgJtY= ARC-Authentication-Results: i=1; imf21.hostedemail.com; dkim=pass header.d=efficios.com header.s=smtpout1 header.b=dExi75r6; spf=pass (imf21.hostedemail.com: domain of mathieu.desnoyers@efficios.com designates 158.69.130.18 as permitted sender) smtp.mailfrom=mathieu.desnoyers@efficios.com; dmarc=pass (policy=none) header.from=efficios.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1740709860; a=rsa-sha256; cv=none; b=4jtQJXIO39xu6Lp1YjkO4M0mYmYukwgf6mskgOTvX7ZfWF8wkfnUx5gU5d1VEIB3eQn6QK 5OlpzaJLTsv3Nx4yErCmWYFlO9prWe8Ly8iCcGgPv0peWQXTlqTqlR4ONvDtetniEpsinc QG+B/NYSArlmDOaDYe7/4vkECD1aUhs= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=efficios.com; s=smtpout1; t=1740709859; bh=CajDnPXnEEJRA735qE5+L7uuscbI+D22NlEy0SQnEig=; h=From:To:Cc:Subject:Date:From; b=dExi75r6e3SIJcmQwT6cH1M7/LM5Rk/+nekjzXVqAF+0oZp86Ss6M5JEslTFYUjDg PPsoOl7XezYERI0QBlEH6y0ZU/TP3930DIafs3IV0IgnasZR++1IHm0XTRNazLjWiT iTHdmI+nB+Lvd+//atNAzwhIzGeVK0thUQshni5uAd6oUa+Gh8CRgA5rEo3qyVS+VW NgOBImEMgtlIOZofw0Gq9fTmPtyeNf68oZlbVZGmeuwYDFyDxpBob9DnqH3TSkHlnJ 7FYh04ofXk4RjIHwNpB9WHCmOfRoP5/AuDhxFwWTL/GQdPaLZFLORLpmw3hXQ/SH5O 2f3V4cT5/9epw== Received: from thinkos.internal.efficios.com (unknown [IPv6:2606:6d00:100:4000:cacb:9855:de1f:ded2]) by smtpout.efficios.com (Postfix) with ESMTPSA id 4Z3sdb426hz10GY; Thu, 27 Feb 2025 21:30:59 -0500 (EST) From: Mathieu Desnoyers To: Andrew Morton Cc: linux-kernel@vger.kernel.org, Mathieu Desnoyers , Linus Torvalds , Matthew Wilcox , Olivier Dion , linux-mm@kvack.org Subject: [RFC PATCH 0/2] SKSM: Synchronous Kernel Samepage Merging Date: Thu, 27 Feb 2025 21:30:41 -0500 Message-Id: <20250228023043.83726-1-mathieu.desnoyers@efficios.com> X-Mailer: git-send-email 2.39.5 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspam-User: X-Stat-Signature: 37zd1jic17qf39zqezpoktnr8hwkf8ue X-Rspamd-Queue-Id: 8A7F61C0008 X-Rspamd-Server: rspam07 X-HE-Tag: 1740709860-583021 X-HE-Meta: U2FsdGVkX18vQRL0wMZ3jD1r60g5da6jZygM7hT+LouXlgEtEZpHteOK8theouTi3RI4Oq84vmEBTIs3TdB7UpOPhi9OATusiJ9GeGQ62dhr1eIBcjQDU4b7tuwF1LYY1xD7ZYTamYpzIoBn7Ro+HX//aUPbvJ7OeiGZ3pSz+gIKzKTtwTwVGUezsZSaHkHNW3XjM1cWqZzUyWZhvuuynxQOtrefQDZsQaqhz3oNhjkMKEd4HMR1OoGnqKpOOlawV9wLmGJYDzjYYJIhUBegY8SN5iqsbzp9VhGqr1wtIFjzNRuHqvq5693w0ZVq70J+IwRq1seYRQ64CJataXiGptyYMR/bcRqJTSS4mfPuQlim6VdmM5qK0zRqk3X9ip9PkeTyc0XvwXH2vYVRlkKHF7NuXixyadBLowu+B8F70Wh+LuCxp4AROe+kg2kTsqfoJAH3/eD0LfGbL/zR4mvZGaqqiDIkPl7wA0tEY55ooi2RI+bLBsM6WdpuFRgvBjJdMcWbFISZtYYGIxLL3sEndXL8Pc789mM+DDM47F95oXOXggzRYJkNMR726bAe/YgZpV2gGUOztU3IGHEYy0d5Q+IgI+awhmssNWwcrdQugaj4eUyvCBmHhCgQoHqPrTkMjpZCtmvaCv34xZnM3gZDjX3Q2vw6GDi1rtewDUxQuuM/twZaJsqO3s4Se681b3oe8M0e0cGxli6tor1PmyIrNR8nD44GPKoNZebAzBIx+dKYb0MnhbZ5DWf7QX/d1L3s2paycKYVOQM3XTy+r5oGCDbGpaXUAGmpl46kgUN73zQlUbkMSl0MmglDPu3tKS5dKghUHap3jmxe1sNV4XAbXhywUSP0paj1yHbNNzz4hhsl79yjImARRf4+1wsXHVNtDPbm35TI5HN269aIH/qQPR4dNaUk+zGblyIXTXdnqr98S+4t3HRMCdydf/qCD6e9LaXpetpe4lW0m3hpgy6 JAy2FlTJ kKn0UKlXHTsR8BmAmyW4XeFuyE3h6cwvfe5liAk1cBKPrGc+2/BXHe+Ay8tOmcgNeCgXxR2E0lB75sd6oaLJwQBGHqcRPjGam0bNCkUiQq9xXYVb1mkv+xxP2WE64tbMJZBsQs6ikvahpnL0ufkkT65AagA15S/YGR4gagw8hWQsCGbI4W9O1iICO0g6LI+ZFtS3+ZAEFGAsxLvW4d26o/fESbgzWJd/pZ7wVmY5Lz2uwkfRVyLPu8Ryh6GY06gEq0nOqsU2FMTxxiuQ1ijgFn5QTwJakt1UjhldQ7g4Q5abyzQwgVCcNGwTCLYPQabusfZ7Mk9leGVn1/Qz+CglzeI26HjPF29OEtSk/QBsRnR/H1SCJMPWVtfm4A5OhfZ/0+oTDl93I+r7qkDGmCGoSXdYhhPAIL2PT36nAuFRhFOzySMsTffTsEdVg14TsGOqd1hokTcfPGgi07PVkDWmtugqM4dHJ1PcEjYPCQrA8lKcg4uocjjvUOO5sNWIrfQK4/DCT 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: This series introduces SKSM, a new page deduplication ABI, aiming to fix the limitations inherent to the KSM ABI. The implementation is simple enough: SKSM is implemented in about 100 LOC compared to 2.5k LOC for KSM (on top of the common KSM helpers). This is sent as a proof of concept. It applies on top of v6.13. Feedback is welcome! Mathieu Cc: Linus Torvalds Cc: Matthew Wilcox Cc: Olivier Dion Cc: linux-mm@kvack.org Mathieu Desnoyers (2): mm: Introduce SKSM: Synchronous Kernel Samepage Merging selftests/kskm: Introduce SKSM basic test include/linux/ksm.h | 4 + include/linux/mm_types.h | 7 + include/linux/page-flags.h | 42 ++++ include/linux/sksm.h | 27 +++ include/uapi/asm-generic/mman-common.h | 2 + mm/Kconfig | 5 + mm/Makefile | 1 + mm/ksm-common.h | 228 ++++++++++++++++++++++ mm/ksm.c | 219 +-------------------- mm/madvise.c | 6 + mm/memory.c | 2 + mm/page_alloc.c | 3 + mm/sksm.c | 190 ++++++++++++++++++ tools/testing/selftests/sksm/.gitignore | 2 + tools/testing/selftests/sksm/Makefile | 14 ++ tools/testing/selftests/sksm/basic_test.c | 217 ++++++++++++++++++++ 16 files changed, 751 insertions(+), 218 deletions(-) create mode 100644 include/linux/sksm.h create mode 100644 mm/ksm-common.h create mode 100644 mm/sksm.c create mode 100644 tools/testing/selftests/sksm/.gitignore create mode 100644 tools/testing/selftests/sksm/Makefile create mode 100644 tools/testing/selftests/sksm/basic_test.c -- 2.39.5