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 98D88C47258 for ; Thu, 25 Jan 2024 12:28:44 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E986C6B009B; Thu, 25 Jan 2024 07:28:43 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id E49286B009D; Thu, 25 Jan 2024 07:28:43 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id D11806B009E; Thu, 25 Jan 2024 07:28:43 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id C091F6B009B for ; Thu, 25 Jan 2024 07:28:43 -0500 (EST) Received: from smtpin25.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 9610A407FD for ; Thu, 25 Jan 2024 12:28:43 +0000 (UTC) X-FDA: 81717762126.25.E54ADEE Received: from mail-yb1-f171.google.com (mail-yb1-f171.google.com [209.85.219.171]) by imf30.hostedemail.com (Postfix) with ESMTP id EDAAD80013 for ; Thu, 25 Jan 2024 12:28:41 +0000 (UTC) Authentication-Results: imf30.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=XJeCJ+sJ; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf30.hostedemail.com: domain of ioworker0@gmail.com designates 209.85.219.171 as permitted sender) smtp.mailfrom=ioworker0@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1706185722; 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:in-reply-to: references:dkim-signature; bh=FsEMNDz/TCbZ3OWB1+o43WxaCaXQ2tk62us41F8uHDg=; b=o1cYz4AIOl82JWD+FX+PwIT7yOEKQcE7SHiqdFNGTLUWye0WZWoUhjNLMZtKuML81PaoHR qpEmd0wPuJN+CFHBkWnk5sl9YS5aFBmTGj6VXvGKmvOHdL2l13iTqZGvy5/G5aw/rovp76 krqvTgZfCeexjpnCqKkTgifrFZ3MwqU= ARC-Authentication-Results: i=1; imf30.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=XJeCJ+sJ; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf30.hostedemail.com: domain of ioworker0@gmail.com designates 209.85.219.171 as permitted sender) smtp.mailfrom=ioworker0@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1706185722; a=rsa-sha256; cv=none; b=p1SbAHK+dm/DnVUV7NAH0AfXQBvBEdBRjafeRp81SV30u+qJqMMCZ4DIE105BPPZSf2jGV yeMG9OEvYK225BVpxOG5puWehmTPHlNNZuQstIlblHrqIyi6aAHZUwzWlrTLqDW2xJYziG eKiOVsGNZagYu6x83bwNjvAnc/LZx6k= Received: by mail-yb1-f171.google.com with SMTP id 3f1490d57ef6-dc239f84ba4so5757666276.3 for ; Thu, 25 Jan 2024 04:28:41 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1706185721; x=1706790521; darn=kvack.org; h=cc:to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=FsEMNDz/TCbZ3OWB1+o43WxaCaXQ2tk62us41F8uHDg=; b=XJeCJ+sJQG8De6yxpasDsb5OgvSYgfTLs4hXeaECDVplxTGN9wag0fvv+fcM6LzIok sO8aVH5xQtrg6U+NiPPn+P9/K8ERGwZ6QQpjKpmAZqxkpgoGJFlfTM4K3JYQ1LQypaqc ARN5EKK2xs36IX4/lwxu+qxDRkQAxGDCorPYFAYLI+n1S91Ppa2dVu2CYM74IUXUYjaI xbBSPaTkSKPvQqrFjXK9O2vQsj04kuzKGYedlVs5oikqeklSN+SrpATvQ/CvQdhhY895 9bfSUn18KNl0TcAIcpqfTc71KD8mo4XcMA1bFavYHWMXrZs/CHPS12J2DFwRLqW1vMLz 2zwA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1706185721; x=1706790521; h=cc:to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=FsEMNDz/TCbZ3OWB1+o43WxaCaXQ2tk62us41F8uHDg=; b=qQ0kgGe1APmxFSnSCH5DwbooMDyhcCXLGs4YdJaK931RZnm2fCf/uDJTddPofgJ2n2 tPnqDdWLL1zFtjiM5fwVwTvT0b2zoRsw9HR256O/+nQbrI53nLzdu4p81VszRs3L+Ehr VtLAcsZWuU3fuQyVoa9SGEWK39yfviOZHABOgfF/AmwJT5QF7wnF0bSF8ycLJovQ5bYt VUTU9PY/B8KuctKGpogQmdk0WztCC4SLmKa9J3m0g3MF+XfAVHgHIRPazijKXACbsTBO rOzojGo7W2rvhpmeriDvoq5hLcOFFTXQMeNwNeSShtEBfHHuesO2urkfp9xT7xoXFteO F5ug== X-Gm-Message-State: AOJu0Yx/cNsppMmixs0lWFSWeae0qVdqX4qEtN3Y7nU16NHS6RoZhSkO MHO+U2XcJUw4125sY4TG43fqFn/+TTWns2nE04bJwhTLGDVa5CiguUEQiJpaRWhWt2iPiz3KecI SGZwiEGup96qpERB0LzwoDkW7f04= X-Google-Smtp-Source: AGHT+IEpdt3UvjbFwRYPy9eemcVY69jID/MnPXS/Og2ZuflLOp3ifa2QO32mEciL8A6P7qCy8i+BfNHNLvju966Um4A= X-Received: by 2002:a25:a2d2:0:b0:dc6:9a3:b95b with SMTP id c18-20020a25a2d2000000b00dc609a3b95bmr764196ybn.108.1706185721027; Thu, 25 Jan 2024 04:28:41 -0800 (PST) MIME-Version: 1.0 From: Lance Yang Date: Thu, 25 Jan 2024 20:28:30 +0800 Message-ID: Subject: [Issue] mprotect+madvise may be better than mmap for permission changes and page zeroing To: linux-kernel@vger.kernel.org Cc: Michal Hocko , linux-mm@kvack.org Content-Type: text/plain; charset="UTF-8" X-Rspam-User: X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: EDAAD80013 X-Stat-Signature: j3ywf9mzuu837xsn9pkz66sgqehw8hig X-HE-Tag: 1706185721-148607 X-HE-Meta: U2FsdGVkX1/Qgk5L6uQc7tBzwJdYcQMUhhtadfwV5OPODaOPVaPKTWqjCqh5swKXkOc8nkwAISs6XBe+8SztYXdKq3SkAxfsnsHd+rmjbz2fPrmBVR4dc24pLD5OTGKB+EnDSYWL7f1VXnU5v1On34JzIdXWKlfuNuEicOQGqr22ph3csdsZ7PWEHbpnLBFhkPx+wnD7gi1e6vmdHCpY7DJ3FGeJy6nROe7RMGnMw5PPV/UkP9OofVl+CEO+q21W3D8H4gFNO1t2CCzvEvvbabfnd+6AN1jTpIV1IumhGGV54JtX/0dcrs2rTzklqUMK2qkZQ8zZCkBRlXOyz5aj0wj3sjI74sJZ9JyX4yQ+TIJH5nIUPy2Ho/Pbqxa7AarQoyDcikXZ2F0WjfI1JNUV6QOU6enhNVx+5+p1Hoe7TL4J5hnTOUtaghUiqJazVv8ObpzCtEQyLrfmZ0+ExUuRk5isvvahy8KYufKZ3Jnv440tjKKrhvqpd5f54Hr6DeuF68H/G0SPv2/x51KcFIBHKRcps0A1X9xquByjBYpGzY9uGKhFQJYHAUnSLc3VaJTgqH9+uFrSY7yM1ysHPBD5INsxALTPn7flp21RvKTDZQt9VzsMr7AbF88TK7erzELbJaODAlKyH+1dyEJ/3Bf7m9SqRPSXfcSwsNUbcCzfJpT3NMc0Qbsns3oulYDKVv/XTm2xBnf+0EzYhkxL2bGF2boYmwAJac2ne1h3Me94s5pPO/RKJqgBFNvxGBlkkWOzKBkjzGsGeNemrnQ62HU4NKcnx0piAK57iHOkqM8sZGlKJKRfUnvmVANPx0K6R52bZ6vFe5dR60xyJCIo1PflN/pk46NAQOOjPZKYMGWVyUiv4DcFSLMOyl7ae/mpYUTb0qq4xyZXTStoFi4yify6pUQfazM+g7fyytuV0Rj+rUaHxsJafGKk7jjGBOexX8Z1+Xp0XFemwxgfWYuTwiz BaO6PjWU G8r9nYEyYbzfomPeLKQxYzrk8iZNK5Rq0oXUsz8lFmnRFgUvAT2kQl31DdIUSgXEzBabxll8ux1FGnwHsKtoMRmiOera6xs5kNk2WPn2PTACxJlrn2GLKHvAgG2ZvddgrdsyWNntSvK75F0jVGrx1MCAS3BlnQul/qK0Tk2WJOZbgoOvWdpockzLDV9YWcplKcS/cb/Xi+AnOpMQrR4OtBnOrttrb+r+tG3ahmviT8hcST9FJZ9UMouIJzYlRPzLQ1DUG2ld/vU6e4bxwg5mVBxjXp6ZCNVlTiUhw6YzCum+YvPBcSEwDR4/jPwEr+YZtOBNKZOgnOwmLjskbHDBTw676lPE50Z2vaaVeXcxaR1gOPpjgLcAwDAF8twRnD0zWXP4yX3sjvYUG7Qnr2AH6LvEM+oVww/PPs0XmOpe/xiBbYCuGZVycvGszWA== X-Bogosity: Ham, tests=bogofilter, spamicity=0.168075, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: Hello Everyone, I've noticed that using mprotect(PROT_NONE) with madvise(MADV_DONTNEED) is much faster than mmap(PROT_NONE, MAP_FIXED) alone for changing permissions and zeroing pages. I have maintained a chunk-allocator internally at the company. It allocates a chunk using mmap(PROT_READ|PROT_WRITE, MAP_ANON|MAP_PRIVATE, -1, 0), releases a chunk using mmap(PROT_NONE, MAP_ANON|MAP_FIXED|MAP_PRIVATE, -1, 0), and reuses a chunk using mprotect(PROT_READ|PROT_WRITE). Recently, I replaced mmap(PROT_NONE, MAP_FIXED) with mprotect(PROT_NONE) + madvise(MADV_DONTNEED) to reduce the latency of releasing chunks. Test code: https://github.com/ioworker0/mmapvsmprotect/blob/main/test2.c Here are the test results on my machine: CPU: AMD EPYC 7R13 Processor Kernel: 6.2.0 Elapsed Time for mprotect+madvise: 3670 nanoseconds Elapsed Time for mmap: 5520 nanoseconds Thanks for your time! Lance Yang