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 1D97CC4345F for ; Wed, 17 Apr 2024 04:35:49 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 95D7A6B007B; Wed, 17 Apr 2024 00:35:48 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 90E596B008C; Wed, 17 Apr 2024 00:35:48 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 7D4DF6B0092; Wed, 17 Apr 2024 00:35:48 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 5A9D26B007B for ; Wed, 17 Apr 2024 00:35:48 -0400 (EDT) Received: from smtpin19.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id E46E51C10C8 for ; Wed, 17 Apr 2024 04:35:47 +0000 (UTC) X-FDA: 82017760734.19.CA286D5 Received: from mail-ed1-f49.google.com (mail-ed1-f49.google.com [209.85.208.49]) by imf19.hostedemail.com (Postfix) with ESMTP id 1A1A71A000C for ; Wed, 17 Apr 2024 04:35:45 +0000 (UTC) Authentication-Results: imf19.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=RKlxnRFU; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf19.hostedemail.com: domain of ioworker0@gmail.com designates 209.85.208.49 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=1713328546; 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:in-reply-to:references:references:dkim-signature; bh=2WPlG9eiYEfwesF2hPVZ1q/BGXJT99jp6URTsnvCkUg=; b=PiKI/0jpB8AzQd4yGb8BDxplUJ1o0mUEFqPjOcUJpgBnQ0Just60Tr+v9OKSOezvRkQA6W PgXoYHu5qlwk7SK6CUt+bi1472P7cHB7d1IRNfrYQoYQZM/pNkjJzyZe6a1VIh0RA1vrl3 PJY7MVCQrm7aolTrVDa/R/FG6ECfci4= ARC-Authentication-Results: i=1; imf19.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=RKlxnRFU; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf19.hostedemail.com: domain of ioworker0@gmail.com designates 209.85.208.49 as permitted sender) smtp.mailfrom=ioworker0@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1713328546; a=rsa-sha256; cv=none; b=oLdBn4Jk28NdQO06qXyJf+eWwDWrLi+IUffNmlkW+G6BvzdqvfJcjHq1Kg0NNrwAv5jiZZ WltVvdZkeqaiWB/bHvhKKR8N82PZGLWBCLTfVyF2Kz1RexoXRZw1EKJoiJGQPIIu4lL5sm 4GR2cQkfkzBcaNXnDBcPq1E+MKpwO0c= Received: by mail-ed1-f49.google.com with SMTP id 4fb4d7f45d1cf-56e1baf0380so6005283a12.3 for ; Tue, 16 Apr 2024 21:35:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1713328544; x=1713933344; darn=kvack.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=2WPlG9eiYEfwesF2hPVZ1q/BGXJT99jp6URTsnvCkUg=; b=RKlxnRFUzGnxFKvGwGycGJrDjapz5FdaojeXHHqnX8UE3g8G+g58syOkwYvZYOQC/Z FWmhqLx90K53sQGvTC0lJZOnewBkm9ZuZCixxObWX5mIqz6niQc0Vh5LENdw1iLGvK/g Z76W6tuSwyyJ+aPcztJtYwA0C4Pq5KDAsK6mdD6oEfcPsbkc6ozqbwfc3PNb5/3swhnV jsw1FJUttjkq2D0x0Cm7tmyD3bM85JOAIiNpV5ufUL0qsSCNjad7GMUPjIsSgY9UqpYa hF+QTTko8+19yIABAIOMXzBZH4nHW8sxGgeghSzNaotU166AzjL2dWm2Voubj10YxJi6 8q7g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1713328544; x=1713933344; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=2WPlG9eiYEfwesF2hPVZ1q/BGXJT99jp6URTsnvCkUg=; b=nHrPyP7H3avSRApV460F5E1VybYQOQKWxmB78zcGUvWhaMv6sULMyDkYfsbH5ueGv9 ++/c3nzAkgs9Syfa1RlSZa9sn07ybi2Vq9/rLKI4TgmZ60AX8PGzsJSBNTZdbcsiPO6V Lk2FmU2LQCEltci1K1PW/THebOxHy+sc9bB76/HYIHlUQfp2gq0P2HW2gQtnXU7ydUYJ zsSX7CKjNaDWVvzNHO2RJkHb3jUGfUqYYWE6a0zKKQ4uZo27v2Z26qZ5ODFSPUvFJM9C x8fBiLk0JveR175Df+QCHV8l6YkbqG4gwum/Uwv7L651Jj8AYy7TVf8SqXZIeaCWUz8R Op9w== X-Forwarded-Encrypted: i=1; AJvYcCUwIcNLX9UWhnkq7W9sT/DfXv13cDuunzgYs07/ty/MMFGHQNqrNCwo/qkk9XFx9oU7ZtkXn3vwgMgUf3TLKOD52ZQ= X-Gm-Message-State: AOJu0Yx4RgIzDv+h5cvMZLINg0w3xo87lpkkLmwI5VPD11dPK3YCeDKB ayxtYKXmLbU5h4Ws/8sZV8K1Jnbj1Esf7a9rMo1+lsTI1DcZeIRjz53JThzhQqQp+jEcLscaSTo utVfNsBWRR16LPZoy09rFSiuopwA= X-Google-Smtp-Source: AGHT+IGgXcMhJrXthZF6eoYhPniPoKU3Zw19yX2pWOyOem/YYivdlYkAaLkEWW9KRkMlzl0Dy0jiltdpUeHmo/YysSE= X-Received: by 2002:a50:d68a:0:b0:570:4b51:edc6 with SMTP id r10-20020a50d68a000000b005704b51edc6mr1743101edi.28.1713328544377; Tue, 16 Apr 2024 21:35:44 -0700 (PDT) MIME-Version: 1.0 References: <20240416033457.32154-1-ioworker0@gmail.com> <20240416033457.32154-4-ioworker0@gmail.com> <3a0d1d1c-97f4-4c9d-bc25-9de3f3659b67@redhat.com> In-Reply-To: <3a0d1d1c-97f4-4c9d-bc25-9de3f3659b67@redhat.com> From: Lance Yang Date: Wed, 17 Apr 2024 12:35:33 +0800 Message-ID: Subject: Re: [PATCH v7 3/3] mm/madvise: optimize lazyfreeing with mTHP in madvise_free To: David Hildenbrand Cc: Ryan Roberts , akpm@linux-foundation.org, 21cnbao@gmail.com, mhocko@suse.com, fengwei.yin@intel.com, zokeefe@google.com, shy828301@gmail.com, xiehuan09@gmail.com, wangkefeng.wang@huawei.com, songmuchun@bytedance.com, peterx@redhat.com, minchan@kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: 1A1A71A000C X-Rspam-User: X-Stat-Signature: fwfhgcdpb7ir1uceqyq3ei6o3ufwm63m X-HE-Tag: 1713328545-15043 X-HE-Meta: U2FsdGVkX192RUDwbxHclNAZy9hHoGvlcNSPDP5Er+TEVsRoaE9/7H74Da6YQqISBrT5vRdL+UOKp/4jdy4On5QzRpZV6S8H8/ilSRFDK7yZ2NDDt7atuZisBQF/wyQPOZXxdK7wjLNtm10kim+m0+5QPWe7WXV84/10K5hvnD7h3mFJtcfmOk1kXGofUCRPk+p9IWPTL+SH3EmFUBOxiT5ykBMJTqjQzBA7catO11lARISzFR+3aic4IK+UVdfqj4SEAe1wrCNB4JsHRJTFeTZihdbMVu3vfZbFqqoQfio5Wn+ep/ag7v5R6gdQ4Xc1uH6vCvDGfYuBr1HWf4PhQ+rpXnmJkwnfOv/Q1/TNXq1JtEY2RAgwnZyJq0JluAy38jkWjkuwGx09iZG38OlQ5U8Ga3hDbXA3m4QBs6399pH8DpIAZ0ZgaUAXqR7icEPYaNMwiTp7V4fqfLYBXEWh4kCUBHFtSNxfCfcJcSj/8ZNvt/OCQ2rIlxUCWqANSPgI92rxqpWtbPyL+jUihjAkqJtCmxqeeCV1bx6WCZXruL88AijOZM0y2Si/td5DF6GUU/sS7g0wLZNTngIgA/Bio3kzwU7ETVuA/frcr66rgkRpNbN0gRNTVoLdD3I0sZ17PXPAHysWbHgtVIWpkJteHr5+1fY3qAwt0xR+lLXzj20rR/XppGZ3d/ekLyCHntjGs2+xd02zRvNywm/bScDS8n7ScUvU9CPoOmwEE5AlSEmXqhF6eXxVJCic/pCDvAAqT9S8MgRBnMell351toMhlaqQyj7NjEmMU1eDhqmQKvQm3zKGmUfGktm9+N55k7RDH5f+sB0dLBtuxxeW9d8tm7MdpVWxf0Ke5wyPijUNBM6zHSW/lH1EEF1mvpv4op72SMPaxbmSLuy7tslFcU6r2KACcxsY6LFMldy6yYoF6cp9ZAHf0W7dbbM0WorGiFQOzblEyGeK0qegChb6MN0 E5XHwrz8 L6Rgmy0jsJ+IdwzGzxPbuq+0bTYvS8cTZ3BtmrkvSgWYF2vEhxDxHc9EJvntWeZHSyVgxOUNLnyI9hg5Ko1PbNAGSGCoNJIAywBOzBUI9o6ZM3bq0Rb3gmeY6VSURLWLYrjesu8lcAkKZbjOgasuSr8uTFI7yE4eBfrD1d5T+PhzHHsGqG+g6GBafXzl4i1yecQLsuZCt00lNejeuTWHhpUV+afuRHAoTtjqy3xBIguRxyOPVFkseuElbmTEcGu9cmdLOGhJcgMHi2uFfMT6cRl20xt2H4Y2rBtYrpaeiDJw8itnfxdQCsaQJAMjsGomlxRxgER9ZtzmuNPrnqxq5bRtmmbsN/U4iWCFV7HADORAps5uHPbxY4gOC099PTW/FC3PwsRcxV/1vMcRBNYhVOPnYgNOrxGzEflBdUv/wt9dYj9s= 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: Hey Ryan, David, Thanks for taking time to review! On Wed, Apr 17, 2024 at 12:52=E2=80=AFAM David Hildenbrand wrote: > > >> + nr =3D madvise_folio_pte_batch(addr, end, folio, = pte, > >> + ptent, &any_young, &= any_dirty); > >> + > >> + if (nr < folio_nr_pages(folio)) { > >> + if (folio_likely_mapped_shared(folio)) > >> + continue; > >> + > >> + arch_leave_lazy_mmu_mode(); > >> + if (madvise_pte_split_folio(mm, pmd, addr= , > >> + folio, &start= _pte, &ptl)) > >> + nr =3D 0; > >> + if (!start_pte) > >> + break; > >> + pte =3D start_pte; > >> + arch_enter_lazy_mmu_mode(); > >> + continue; > >> + } > >> + > >> + if (any_young) > >> + ptent =3D pte_mkyoung(ptent); > >> + if (any_dirty) > >> + ptent =3D pte_mkdirty(ptent); > >> } > >> > >> + if (folio_mapcount(folio) !=3D folio_nr_pages(folio)) > >> + continue; > > > > Why is this here? I thought we had previously concluded to only do this= test > > inside the below if statement (where you have it duplicated). My bad for this mistake - sorry! > > I stumbled over these same while reviewing. It's not exactly duplicate, > because it's unreliable without the folio lock. It looks more like an > best-effort early check. > > But then, we also add it to cases where we previously wouldn't check the > mapcount at all: when the folio was added to the swapcache or is already > dirty. > > In that case, we would even see a change for order-0 folios with that > new check. Thanks for pointing that out! I'll remove this check here in the next versi= on. I overlooked that this is a new check for order-0 folios :( Thanks, Lance > > -- > Cheers, > > David / dhildenb >