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 0446DC67861 for ; Tue, 9 Apr 2024 14:41:44 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 54FFB6B0088; Tue, 9 Apr 2024 10:41:44 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 4D83C6B0089; Tue, 9 Apr 2024 10:41:44 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 378C56B008A; Tue, 9 Apr 2024 10:41:44 -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 197026B0088 for ; Tue, 9 Apr 2024 10:41:44 -0400 (EDT) Received: from smtpin23.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id C82F28046A for ; Tue, 9 Apr 2024 14:41:43 +0000 (UTC) X-FDA: 81990257286.23.017C838 Received: from mail-pl1-f178.google.com (mail-pl1-f178.google.com [209.85.214.178]) by imf26.hostedemail.com (Postfix) with ESMTP id 4596F140017 for ; Tue, 9 Apr 2024 14:41:41 +0000 (UTC) Authentication-Results: imf26.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=CEavSdO4; spf=pass (imf26.hostedemail.com: domain of liuzhaoyu.zackary@bytedance.com designates 209.85.214.178 as permitted sender) smtp.mailfrom=liuzhaoyu.zackary@bytedance.com; dmarc=pass (policy=quarantine) header.from=bytedance.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1712673701; 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:in-reply-to:references:references:dkim-signature; bh=KCNea12o/6VUNWUfcyPcbIWG4VttNplpFFNalEKl1QU=; b=C2PVbB0wRPjjgOJ4Rm2HeQnIsDGbP6rm9OAzdWrZ1D+hpfuAvY/rQWFoUxhnP+Y1cIh/33 1Hxi6EEANKafYyhr3uv/DRBQABmEmN3/K0X5oHhneZTR//AZLbFf0wgYG/0gdmMQ/La+ks JqfNzZZw778Z1U/I/CogXboI4peKgEY= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1712673701; a=rsa-sha256; cv=none; b=CRxdXH3yS7OvidIX33y0apFJuNhr1kifuR3xV6Dzw/TmE3c1KnK+T+gAJm7Vcd13UBnmIK Hz4JwkX93C0k3pfAvTaChbKi5X0nW0Zb2+q+1buqUZcrQH5S+LvSC2XBqJcVsT1aEOBDiE hmGbPrKqEh+6InkTgyvz+1neokI3Zx0= ARC-Authentication-Results: i=1; imf26.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=CEavSdO4; spf=pass (imf26.hostedemail.com: domain of liuzhaoyu.zackary@bytedance.com designates 209.85.214.178 as permitted sender) smtp.mailfrom=liuzhaoyu.zackary@bytedance.com; dmarc=pass (policy=quarantine) header.from=bytedance.com Received: by mail-pl1-f178.google.com with SMTP id d9443c01a7336-1e40042c13eso16234325ad.2 for ; Tue, 09 Apr 2024 07:41:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance.com; s=google; t=1712673700; x=1713278500; darn=kvack.org; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=KCNea12o/6VUNWUfcyPcbIWG4VttNplpFFNalEKl1QU=; b=CEavSdO4aScCjQ1IbcBYozW9QSoWoCgNW6jPu4eg61fqCK0iUHcyX95JdDSqyrCY5m mPsSyz32j8sWQT5uDV+9lr+mu6OAmoytYplpyG7eM4K3k0yyoQ5nma0uHq9IqSBzJkr6 ABz1PWRbXLQcWQk6cFKFpcm63SJWy6wAd2a8HHBnJCc8BfFHQE3/0hTwlu15I6CUccod dht5j0mRROk8xAoA2ND1aK4KGq1v1F7+pK/PJyfulEitbtXBdiNWs1kBKa9Lw8ifgJor JBqxErwyWpIRGkDHnnqBmfx8d9cYW8mvBvKaEbn168DDEC4GFQfObgo33XfAHdVajaaR /4JA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712673700; x=1713278500; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=KCNea12o/6VUNWUfcyPcbIWG4VttNplpFFNalEKl1QU=; b=FZaVwF49MjU/5hBeoYS6+KYmP+EV5SxGsOWCC9kBsG0Z1BJVTK4NiNKBw1lG4v5dek gQsm25eAmX5W7PQ1341DPTa3NKMwBb4bFoQIQDmu1nn/S3xS2k/cGGBCP697dlgmbFWr xhCet9FnRRn7DGAdt0RooH7UlJtFaiffnd/YPm467gc6HM4iHoJjpuI+k689+iW9MZJF fMTskmwzQQbAUqphOdUhD4+cV+iZUcAYfDDiBScLw7HXUm7i4zKdcq6QFh6Gb08JlZeK E4pV6p/LnxVUCnoP6BM/xvOeBi4o/YIbC/QRDlEZJjpPYKr6XlX5wrFEkbwjWqOnuxrA Or2g== X-Forwarded-Encrypted: i=1; AJvYcCUG2G2YATuGOt4JzCXOIqqaZ7M+uoEKr1hqMXuUg8+vieIp4pRjZr8jrZkAJW5JA5hi6tSu4XrLSNNzp4fvm/gQICk= X-Gm-Message-State: AOJu0YzGKEr5P9JDM+nTfbfeqnv4wDSWrO8j667yojgW2jpKhA2GJwjg k9+pkwqqdVeFy8U9dPZ8BWFMpwk264T/5Ko4y0R6guQctUoHZSmcjG5Ny7WRtQA= X-Google-Smtp-Source: AGHT+IGRw2dBpQjaGcDhXFkJbiyZJFy2cQnXUEeD7DIfCfoahwMGNRpxCQuIp2dqwMnS8QCDwuCNIQ== X-Received: by 2002:a17:902:eccb:b0:1e3:cfc5:589e with SMTP id a11-20020a170902eccb00b001e3cfc5589emr10181571plh.64.1712673699804; Tue, 09 Apr 2024 07:41:39 -0700 (PDT) Received: from bytedance ([61.213.176.6]) by smtp.gmail.com with ESMTPSA id d8-20020a170902654800b001e120a9e964sm8798565pln.126.2024.04.09.07.41.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 09 Apr 2024 07:41:39 -0700 (PDT) Date: Tue, 9 Apr 2024 22:41:32 +0800 From: Zhaoyu Liu To: Andrew Morton Cc: ryncsn@gmail.com, nphamcs@gmail.com, ying.huang@intel.com, songmuchun@bytedance.com, david@redhat.com, chrisl@kernel.org, guo.ziliang@zte.com.cn, yosryahmed@google.com, linux-kernel@vger.kernel.org, linux-mm@kvack.org Subject: Re: [PATCH v2] mm: swap: prejudgement swap_has_cache to avoid page allocation Message-ID: <20240409144132.GA542987@bytedance> References: <20240408121439.GA252652@bytedance> <20240408132704.f966adc8d3928df4d3b8c0a9@linux-foundation.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20240408132704.f966adc8d3928df4d3b8c0a9@linux-foundation.org> X-Rspamd-Queue-Id: 4596F140017 X-Rspam-User: X-Rspamd-Server: rspam11 X-Stat-Signature: 49o4s3qzcny6yoewiwkrdq5a8wxpx957 X-HE-Tag: 1712673701-414246 X-HE-Meta: U2FsdGVkX1/EXE/QLvYduDBY1PRLJjoh1kDBd1VL+iW3xzoj7nEevFXQAq9qGbpmeUp/ipPwYt2eutA69psS6CDjkVtWgfcCHO7RyV8mR29mI1r+a2MKJGLZTU6LzB+qDbV2BsIUCS5pX45LToxa9/qTi/elUpuwVcO18tfxlwNrWNMGGwSq9Py/aYxHVfn+7OuN3PKmw+bj4BOkibwi7b1sJxQOo/zE2r84lML5Ol4YEGPo9+S4Y0aTkqRhRFPRb4lAoUgYOrIV/O18B2kUI4ufcvpHOuu0p5YyFgqiJDGLPCOXh9RY+PHCg9sZ041ufJkJgWFyjDtq02lmWvzZVp8Wqi4xUT05CotuH9GBZU5oqwlJ/LyKxp5AsCONaNgkO0x2PRCzB2u1QzQZZDzL8yL9I9YmRJKmPIQSUrfL95DPNvYbiWCGPWtQJdZk5Bu0Axt7YudcpMedhEH99aWFqTsXTwPxj/wXOd2E9vR2T8JY3cuvAfj2PO3Hz1xf/TW0pXzjofiPd5OvphMC6kIywlyDZy+KpHxEO3Ik2sOHGsTKJHnmz9gK0XEVbp1FHuOyyObfDJWbA/UGYosEEplqDfp1cRMbJkr6YdVej36LwhR/sHZb62u3XJiEpPoWPzJyQoFyTqxDovGga+zzCAP2slyWP57dndu80u2oSLwBnNxaUTAM6jRkYHizPkoVZ3fy5ij3ugpxpjwQnz5cl5YuPB/r75tp2cZd2zpOsAD5cZu3II8nkvo/agR625t0IczeyYV5//umcO+iRGCrhfnLhI9CpufIQ4g0GCHQN0iwizQqex11Bb6R1ZYEeVvc4XK2deRETLz5jOHVdv9QYa0QbyGW8qQQJtAHfhRDtRft4oNyh4RwoNIXNfaMrE1X1/HaaG3WU/b5OCqxhTM/EvPwVFFD7XNZjnGwYIEshehQ45UABH3ATN+CsEq7GdBGML+O81nPsIJ8rVuWGFYSnRl zOpMIQrm mH3Y6hRMVv+GQ25GTScNrzbyOms9ke9nQQsF6ignU0BhyMeLW/8PPVCU5orhob1souzKjhJNQmqx2BEoaJju/pUyZYFAxD46+nyDELL6E1KNWCn6LjL9+8HzaC43QMNGOCR+44bHF3AIYDJII7kFuauEqQHF3RmUiextLw02jpOrJRTHVcD4YCGagvrwv4B4p1OaU1hNnuKaQt/jIjEKNDCVOw2ooJAFudnuyE3RaZ4w1TYRsZFEQkVQ3/v8248Ki0cI5MIK4cOu1XfSvkNBEcIXKrT3bsPZnvyUmj86qCVQNmrhFV1AnORHa1OwXr1n0jhuIQWHRNIIxMtgMnt28ZY0qJueEbBmY3eHt5FcvycMhMHyvjrIA2ps+MZzdulECdXUKfCIqELGSAHoCgx7Nf4Mco09SLjP3QE7aZ49UsaAarv5VCbtWK6+2O1TFkmEWw2JPRNrgxiBs2LAzwXzFIsmV8w== 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, Apr 08, 2024 at 01:27:04PM -0700, Andrew Morton wrote: > On Mon, 8 Apr 2024 20:14:39 +0800 Zhaoyu Liu wrote: > > > Based on qemu arm64 - latest kernel + 100M memory + 1024M swapfile. > > Create 1G anon mmap and set it to shared, and has two processes > > randomly access the shared memory. When they are racing on swap cache, > > on average, each "alloc_pages_mpol + swapcache_prepare + folio_put" > > took about 1475 us. > > And what effect does this patch have upon the measured time? ANd upon > overall runtime? Hi Andrew, When share memory between two or more processes has swapped and pagefault now, it would readahead swap and call __read_swap_cache_async(). If one of the processes calls swapcache_prepare() and finds that the cache has been EXIST(another process added), it will folio_put on the basis of the alloc_pages_mpol() that has been called, and then try filemap_get_folio() again. I think the page alloc in this process is wasteful. when the memory pressure is large, alloc_pages_mpol() will be time-consuming, so the purpose of my patch is to judge whether the page has cache before page alloc, then skip page alloc and retry filemap_get_folio() to save the time of the function. Thank you. > > > So skip page allocation if SWAP_HAS_CACHE was set, just > > schedule_timeout_uninterruptible and continue to acquire page > > via filemap_get_folio() from swap cache, to speedup > > __read_swap_cache_async.