Received: by 2002:a05:7412:cfc7:b0:fc:a2b0:25d7 with SMTP id by7csp1461463rdb; Mon, 19 Feb 2024 17:28:24 -0800 (PST) X-Forwarded-Encrypted: i=3; AJvYcCXVywWVDNRsJGFnj5PdFmMkqU1fzCxVX1J+kxiEvcz9rTZKUq1d7F4URLQ9Qm7ZePYrFtz75jmBpLaq5aJgBYcWyvAkQ3zyJYcxNCYpgQ== X-Google-Smtp-Source: AGHT+IHq4eCp8sJLGgX7rmDohJbRK0+1cRD2zDt0kI2aBKhMEwHG7+npnAAY20hbIv86v0iU/GuA X-Received: by 2002:a05:6358:120b:b0:178:7f06:a5a6 with SMTP id h11-20020a056358120b00b001787f06a5a6mr15596702rwi.12.1708392503925; Mon, 19 Feb 2024 17:28:23 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1708392503; cv=pass; d=google.com; s=arc-20160816; b=S/qbxp79CD3cIp8fyUkmD8OkiEmfAra04K7vHh88NeymTWZD1HyeOp1XEIzQLBuPIZ OsZtrMuxYkGAAB4HFdvg7eBahL8e2T3oemnZIJ6PB84IkN2Nu7O325AatGmTcW8xH4lL I1QiKjNlH3dphDTk8RBwGQzoasA5oEvLoOw8+JCFw42155syU8qAX9wisRw7eUGipc+9 uC05AgRkC/ndJVRr89634yoPNo1kmQhLGPrlr3SL51iSsz7RQACax2gPZXHORyWSV0lc pQxroKGFd0Fsk0AjJGuCiIBwLeMciKLBMwj3j4NmMg/FOAx0YaASvmbJJ2KweF8H/Hh7 Ro/w== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:list-unsubscribe:list-subscribe :list-id:precedence:dkim-signature; bh=ZK31cEr9hehp80gGWlXDH0T921MmH50qjE0kSGVtUsY=; fh=Sk+sGgdF1HPYzRp+w2lknLZ24lG/fI5V19uwGY0+Ymk=; b=kmEB+SXZkCgAGazKVozFMPj3m05wp1i4pyNV4dgAGr2Uw3dXKAhayXl8orQaqG2N/3 GzpqLEL8gIL9egyeBzog3L0+5W3Q6HyZARmHxhlXg6MRcC2KHpGpcLwYlaWGVCyIFel3 ZAyFDWImolPYCZb/nKQveAAKGt+VPvdjtuDTidjvwY+yTM6al3A8+8ye683bP0y0DGEJ MmdljXTP0WonL2SmQ2zoaFqr7ucwe34WiOQBcRANoAY6BADrf7RWcEcbCUluewff9RMX NIGHYMoOtTSVh3u+86njyGmNVvbBQofvKbjLz3vQNoMCpmpCZCoIKh5zrEPN14sgFSRw TrWw==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=EPQwd81Z; arc=pass (i=1 spf=pass spfdomain=gmail.com dkim=pass dkdomain=gmail.com dmarc=pass fromdomain=gmail.com); spf=pass (google.com: domain of linux-kernel+bounces-72182-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-72182-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org. [2604:1380:45e3:2400::1]) by mx.google.com with ESMTPS id ca27-20020a056a02069b00b005dc500d9af0si5428963pgb.450.2024.02.19.17.28.23 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 19 Feb 2024 17:28:23 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-72182-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) client-ip=2604:1380:45e3:2400::1; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=EPQwd81Z; arc=pass (i=1 spf=pass spfdomain=gmail.com dkim=pass dkdomain=gmail.com dmarc=pass fromdomain=gmail.com); spf=pass (google.com: domain of linux-kernel+bounces-72182-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-72182-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sv.mirrors.kernel.org (Postfix) with ESMTPS id 93BED283C11 for ; Tue, 20 Feb 2024 01:28:23 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 9055B23751; Tue, 20 Feb 2024 01:28:19 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="EPQwd81Z" Received: from mail-io1-f43.google.com (mail-io1-f43.google.com [209.85.166.43]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 44C94224E3 for ; Tue, 20 Feb 2024 01:28:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.43 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708392498; cv=none; b=BlqGZjp4xemOutMDxFBc4gYQKVe2BCH9SZPJiBMft9ansaFEDXt/WgdPEOkQtzsHvAS5H/jAR5bzGVUGgHKUDI9HZ1RiQ7flj7TLdAfZHHuEjxhxDgSy5woaVYmXvhOCslsQv+iYOAT7/otLEaHpBb2Y1DwqVvfzOQDbhWERazE= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708392498; c=relaxed/simple; bh=osHX4x61ZN7VgpHKzXYPBh6RSLEqmlpGN9LLP9KCFDg=; h=MIME-Version:References:In-Reply-To:From:Date:Message-ID:Subject: To:Cc:Content-Type; b=Ipzz2LATxU3AZey/XnIvDPa/QJvrgnBX7CQe/uUworWzoqV3D+QIQN+PS1BhSQIrNq9kyXKyN4UlqaPBnNz8Rxof/5MDTOSMGA7xpSdYdJ9n4r+DwqgkvR/zpkwuunzc01fOpli7hx4RCeg75IEvXPCMwtW2GUYFzUo+McKCSKE= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=EPQwd81Z; arc=none smtp.client-ip=209.85.166.43 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-io1-f43.google.com with SMTP id ca18e2360f4ac-7bf7e37dc60so290127139f.3 for ; Mon, 19 Feb 2024 17:28:17 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1708392496; x=1708997296; darn=vger.kernel.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=ZK31cEr9hehp80gGWlXDH0T921MmH50qjE0kSGVtUsY=; b=EPQwd81Z6IGb1M/gWh3k347Jq0ZNQ4DPdTZ9sFJyGr5AEXqGvJqHkzm8Q7zLzDoPy4 R1zAeESHq8xe1ZZICtBP/pkkXHObeIWunQEsba0ETPs1uvBTqcv4Xb+CyJXbuARvxpiM jW4AIl+2hO2HIzKZhkjnzsdxFvV3VZt3/1nXGPGt6QypsI8XkphnPcWUo1laPMG3Crww wszeyMNekZAki5OfikD+dbV8BpPrwf7obMlz/rLKcUC442v2yjC1BHiIHrH8zgUuOB0a Btl1o06QWvKkvIaFlTW1fN3Iv6ln+f5jTfKO47EtGD7unI9ZrSMKra714g5YOj1Jzywu kqsQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1708392496; x=1708997296; 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=ZK31cEr9hehp80gGWlXDH0T921MmH50qjE0kSGVtUsY=; b=LstQdFqfS+OARC8k6c0aqs97b8Nx1vAtPuVgtU8wr4YtF4efNFHoHkd4PYRWICzAWK 0efUWKZIwR0oVhSuxmnEwvg2jGDzqVRrBOj/9zi59Jp2KLTOQNrJ4v6FR8XWNX9AefWb wEv/yYQ+5EhVuGKHamcGgt9KZIWcphd9mr1isRQSREWzWpCM3iS0cB3TbA9FmisD2APq 7tLuTHu538EAqSCMPg08+0p2GmYuSvmLGf0FXvx4WP8vdf6HZkrG0Twgzj8Wm0ehwpO8 y8S6Dz3OTs2AyIKcNq6ITrM3YQu9SiLqJRKNOejgxZbcufSD3ZUe/iShrYgJZDJS5gB6 QG0w== X-Forwarded-Encrypted: i=1; AJvYcCWNyaphDVC3gIdBiKPA7s/L7+fjCs0V2tjKBTNVttbdkhH3RXJ7F++XmBa5OAaIRkeHgcndOvu0t0KTkc0FaHgIObLFU7CjqwRDMNMx X-Gm-Message-State: AOJu0Yw8ubCTtLpfAuhEGTracqzV9IZWNSj2pVQ5RKTfgZL70JRdxT2L Ku0DNQy/uztBlDy+APu2eBHqr8jkfgwe83wJz86pvw+UTthczr3+NDd17bMQMuswMoVxRBLDoBV c7u+ET1n8SZ0VNfCfZQKoXtm0Pak= X-Received: by 2002:a6b:c8c4:0:b0:7c3:f3e4:8ed9 with SMTP id y187-20020a6bc8c4000000b007c3f3e48ed9mr16741687iof.6.1708392496280; Mon, 19 Feb 2024 17:28:16 -0800 (PST) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 References: <20240210-zswap-global-lru-v3-0-200495333595@bytedance.com> <20240210-zswap-global-lru-v3-1-200495333595@bytedance.com> In-Reply-To: <20240210-zswap-global-lru-v3-1-200495333595@bytedance.com> From: Nhat Pham Date: Mon, 19 Feb 2024 17:28:04 -0800 Message-ID: Subject: Re: [PATCH v3 1/2] mm/zswap: global lru and shrinker shared by all zswap_pools To: Chengming Zhou Cc: Johannes Weiner , Yosry Ahmed , Andrew Morton , linux-mm@kvack.org, linux-kernel@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Fri, Feb 16, 2024 at 12:55=E2=80=AFAM Chengming Zhou wrote: > > Dynamic zswap_pool creation may create/reuse to have multiple > zswap_pools in a list, only the first will be current used. > > Each zswap_pool has its own lru and shrinker, which is not > necessary and has its problem: > > 1. When memory has pressure, all shrinker of zswap_pools will > try to shrink its own lru, there is no order between them. > > 2. When zswap limit hit, only the last zswap_pool's shrink_work > will try to shrink its lru list. The rationale here was to > try and empty the old pool first so that we can completely > drop it. However, since we only support exclusive loads now, > the LRU ordering should be entirely decided by the order of > stores, so the oldest entries on the LRU will naturally be > from the oldest pool. > > Anyway, having a global lru and shrinker shared by all zswap_pools > is better and efficient. > > Acked-by: Yosry Ahmed > Signed-off-by: Chengming Zhou > --- > mm/zswap.c | 171 ++++++++++++++++++++++++-------------------------------= ------ > 1 file changed, 66 insertions(+), 105 deletions(-) > > diff --git a/mm/zswap.c b/mm/zswap.c > index 62fe307521c9..d275eb523fc4 100644 > --- a/mm/zswap.c > +++ b/mm/zswap.c > @@ -176,14 +176,19 @@ struct zswap_pool { > struct kref kref; > struct list_head list; > struct work_struct release_work; > - struct work_struct shrink_work; > struct hlist_node node; > char tfm_name[CRYPTO_MAX_ALG_NAME]; > +}; > + > +static struct { > struct list_lru list_lru; > - struct mem_cgroup *next_shrink; > - struct shrinker *shrinker; > atomic_t nr_stored; > -}; > + struct shrinker *shrinker; > + struct work_struct shrink_work; > + struct mem_cgroup *next_shrink; > + /* The lock protects next_shrink. */ > + spinlock_t shrink_lock; > +} zswap; nit: Is there a reason why we're putting these in a struct instead of just a bunch of static variables (perhaps prefixed with zswap?)