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 614BDC36010 for ; Tue, 1 Apr 2025 21:17:16 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 3E89B280003; Tue, 1 Apr 2025 17:17:14 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 3720B280001; Tue, 1 Apr 2025 17:17:14 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 239F0280003; Tue, 1 Apr 2025 17:17:14 -0400 (EDT) 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 01F78280001 for ; Tue, 1 Apr 2025 17:17:13 -0400 (EDT) Received: from smtpin25.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 177251208D4 for ; Tue, 1 Apr 2025 21:17:15 +0000 (UTC) X-FDA: 83286735630.25.83F658C Received: from nyc.source.kernel.org (nyc.source.kernel.org [147.75.193.91]) by imf20.hostedemail.com (Postfix) with ESMTP id 7BF9D1C0006 for ; Tue, 1 Apr 2025 21:17:13 +0000 (UTC) Authentication-Results: imf20.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=WBlYRQgh; spf=pass (imf20.hostedemail.com: domain of sj@kernel.org designates 147.75.193.91 as permitted sender) smtp.mailfrom=sj@kernel.org; dmarc=pass (policy=quarantine) header.from=kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1743542233; 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:in-reply-to:references:references:dkim-signature; bh=UxZ4cCKh74ks8Z8TM3t2F1NzZXvrM/fpI5JXWWuDJ0k=; b=06omiyPT2CHn98RmRQ9j+RF4ldf5FNOCtM5R1wQ6f0IlQU76jNqDprbXQ0dDmYiL3cGcdu uOdAtOB6WtIhzwEmP63A5E1D5hnl73A3CDXdCeEVpZEGxN4Gn0+l8va4MEZi2N5W8mqYdj DM0RcR/u58nggZqxpeLqSS4/2vnLoIY= ARC-Authentication-Results: i=1; imf20.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=WBlYRQgh; spf=pass (imf20.hostedemail.com: domain of sj@kernel.org designates 147.75.193.91 as permitted sender) smtp.mailfrom=sj@kernel.org; dmarc=pass (policy=quarantine) header.from=kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1743542233; a=rsa-sha256; cv=none; b=aeLI3cq92likeXJnLrjB90bIXaXtQZYcQEAqRVo48hiSAsW8gbIydvi44pH7emBt+JRpIr 4WmlszCkZkepN91bOklKlDddXdOVSd/Wgock+A/Id1y1bn9CfjG+WXDiAemPMXU7nXDUYT hUw1466Eb3YiI+9stxbnpCPTPhxGHMo= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by nyc.source.kernel.org (Postfix) with ESMTP id DBA00A42C56; Tue, 1 Apr 2025 21:11:43 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 3FC6CC4CEE4; Tue, 1 Apr 2025 21:17:12 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1743542232; bh=sX0uf6dTSoK1pXLNS3g6kVfp/ORevvzcF4TTEuOeOP8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=WBlYRQghV9GjjY04Fhkn0tx30g4uvZuAYJXcnswFOaWa7BGv4WKD+IK9bYbKG0feG ss19aS4ZGnSuCk5zVlvBZDT9AJ6El6xld0tUBqrpCqjEdWSY0+pkes+ObOlujcCKOB dQb6TIgHuE3v88eueeh/X4CcCK2Q6Q9ifaPohOxddHLvucjwxrxgwD0zi7QbNpr5Bq JNTsJXAdNA0KkZrSazU9IxcpU3hnubl6AXoSZtZ/ImncLnDeOw3Dq4+3BCdMNJlpiT OZo8DP1CDFr3ceM8AijdHPYZ9kvT+kYznrFVn1Xtly413Me/AUvNc/BirYJq1T2CX7 /UJ55ZNVjxCCQ== From: SeongJae Park To: SeongJae Park Cc: Andrew Morton , "Liam R. Howlett" , David Hildenbrand , Lorenzo Stoakes , Shakeel Butt , Vlastimil Babka , kernel-team@meta.com, linux-kernel@vger.kernel.org, linux-mm@kvack.org Subject: Re: [PATCH 8/9] mm/madvise: batch tlb flushes for [process_]madvise(MADV_{DONTNEED[_LOCKED],FREE}) Date: Tue, 1 Apr 2025 14:17:09 -0700 Message-Id: <20250401211709.81552-1-sj@kernel.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250310172318.653630-9-sj@kernel.org> References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 7BF9D1C0006 X-Rspamd-Server: rspam05 X-Rspam-User: X-Stat-Signature: z76g1ur5aqncij5z8wrwyask78z45cgr X-HE-Tag: 1743542233-514824 X-HE-Meta: U2FsdGVkX1/mRpE1JYA0Ver23J0zsdt9oS4IwvQ6DtETuqz/LTSQJfSJlBKeUvuGbX+j5cSo/GI+CGXl6AmSzlGC8pTNCeYkUOol6eVGSqmerhuf5/7N5QxpriHIHvklMKDjhWzHHltPuWrKS3y08ahYq1MrtSY9ROZ3wwhXJVld7lMpIWnkK8EmlDDpdBETT5MZS9WhhQbICC9bppreqhafdKIsbdUQEaqBuwWVB+ZeAf3cTVjwYHI3JTlRjIa5OUnSQup6bmzODosgTz2vLpQfopDJgZ2CFYkYzYDJRGSyoHdW5sJPvEkDbuGjKtIUiV3zIrpUiNk0fGI04MkdOcV5iyCEyIbEpIN3ZJ5+wn+05eIJ+klK+qCAKQ3NBV9hNYsIJKET5DTf0I4vQIuG/oNmLMvFO56hwSdW3klZfSBmNJHa/Ql89PkuQ20Kw7eJCtPh9NpykpifqA8lwz59rRIhXl0TH6vYEykvyguXRj41gObMwGpYWUnpSMDynUSOs+/PXVI4XsgzV++hqH6UoqBkGLt+lY00FT19zmu2fJWPQS+oIqjK+Yv3qk6YOLgIuF8PFBhO8XAcbdnDGNUN4VrQj/LwMP31KGFQUXo8gDN0heYYlko30j6gOG6lvn2TcGzaF+M+RxALOsYNIewJ6hhbm4AF2+edL/81lVIz9VjAav1UCMCbidzqSwhlyEpJES5knJLnlapnVHlpaq+tOT312UqK24A7b7jxyT+eCFMCut1EYeUwnQ2usdlyMlUQK1to1H+AmoFXmGgc4A3dIbVHIZyEKsuijYVCic3187+GflIp4nsq7OPyHapcddtx6JuKQS9c5Ap2092qtXd2Z3Uy+wTvF+xujd9+gkkckeBZ4NZ8cAHaM0cVq1AR36FUmoLmZMheZrqbNjmqb1sHMy55B+FbCirFELcqKVXcVNLMWjxrzCbo7Uw/8ZaCnh9XWTRq9aLTwzhV+veoo+S vAvvv1a5 PArXePT7OrdUSccIFS1bBRYPvxZi0vnYWTZIIsG++3c8+jAGQJ0wOkYBDknx67CyYHtH3veLCmHQBlAV+/3U/v9R3jGJdoVOGmfJnCTvpL9n18kk7rOYg8eaePfuP+Y3lb4HazYj57xSO4hJUBQudX7jo+JP2YVEvj+svpGv8ACTImZ8XpUKsolpDos2026AkgLAgXs4tPF/L5eN3vaBaDZzq0cAssinSxO7aNlWJWc03KS4lkq6b8vqdQLWUGUOiEKIw9XT3LhRsyX5BufwqmdZQxw== 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: On Mon, 10 Mar 2025 10:23:17 -0700 SeongJae Park wrote: > MADV_DONTNEED[_LOCKED] and MADV_FREE internal logics for > [process_]madvise() can be invoked with batched tlb flushes. Update > vector_madvise() and do_madvise(), which are called for the two system > calls respectively, to use those in the efficient way. Initialize an > mmu_gather object before starting the internal works, and flush the > gathered tlb entries at once after all the internal works are done. > > Signed-off-by: SeongJae Park > --- > mm/madvise.c | 51 +++++++++++++++++++++++++++++++++++++++++++++++---- > 1 file changed, 47 insertions(+), 4 deletions(-) > > diff --git a/mm/madvise.c b/mm/madvise.c > index d7ea71c6422c..d5f4ce3041a4 100644 > --- a/mm/madvise.c > +++ b/mm/madvise.c [...] > @@ -1639,6 +1642,32 @@ static void madvise_unlock(struct mm_struct *mm, int behavior) > mmap_read_unlock(mm); > } > > +static bool madvise_batch_tlb_flush(int behavior) > +{ > + switch (behavior) { > + case MADV_DONTNEED: > + case MADV_DONTNEED_LOCKED: > + return true; > + default: > + return false; > + } > +} The above function should return true for MADV_FREE, too. I will make so in the next spin. Thanks, SJ [...]