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 13015EB64D7 for ; Sat, 24 Jun 2023 02:29:25 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 59B478D0002; Fri, 23 Jun 2023 22:29:25 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 54ACC8D0001; Fri, 23 Jun 2023 22:29:25 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 4128D8D0002; Fri, 23 Jun 2023 22:29:25 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 30E008D0001 for ; Fri, 23 Jun 2023 22:29:25 -0400 (EDT) Received: from smtpin17.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id E4B391A0DFB for ; Sat, 24 Jun 2023 02:29:24 +0000 (UTC) X-FDA: 80936059848.17.21BDD29 Received: from mail-pg1-f175.google.com (mail-pg1-f175.google.com [209.85.215.175]) by imf02.hostedemail.com (Postfix) with ESMTP id 08EDD8000A for ; Sat, 24 Jun 2023 02:29:22 +0000 (UTC) Authentication-Results: imf02.hostedemail.com; dkim=pass header.d=chromium.org header.s=google header.b=cPnU1I2S; spf=pass (imf02.hostedemail.com: domain of senozhatsky@chromium.org designates 209.85.215.175 as permitted sender) smtp.mailfrom=senozhatsky@chromium.org; dmarc=pass (policy=none) header.from=chromium.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1687573763; 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=11YyvRRAb5IUX+NMds870r+K11ScAeUGmh7sZi++E+8=; b=3q9izYooAtUqhyWMjynWcIjv8y0PYGAnxfs83jWvi7fRq6D93jY7rmiUjOFdBjrz1/lliB RPH3gq0/RpLSq6adKBxLwiMVMWP6mB2GJXAL6Fs5XZxA4BNId3LFgjQbzdmjSzqj3dbde6 Uxv284vwQvM5zmkdQdD2KzTpGTl1EnA= ARC-Authentication-Results: i=1; imf02.hostedemail.com; dkim=pass header.d=chromium.org header.s=google header.b=cPnU1I2S; spf=pass (imf02.hostedemail.com: domain of senozhatsky@chromium.org designates 209.85.215.175 as permitted sender) smtp.mailfrom=senozhatsky@chromium.org; dmarc=pass (policy=none) header.from=chromium.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1687573763; a=rsa-sha256; cv=none; b=L3UXHMnt0HC2+A9+gtI+ojo4gjXhdjeGipLxQyoY/wSUYOe7CQ4BSObxLPZ/FhuVmajEDJ PveEc+rOETfcyHfk0UoiOJEXg1Y5DrLJXrGbTpZfiHYSsGLMzwDqQkVX0PwfdMGf1HFxAf 8/0/oki9WUziDmXwvbw0e5T+m1v2pb0= Received: by mail-pg1-f175.google.com with SMTP id 41be03b00d2f7-544c0d768b9so1097949a12.0 for ; Fri, 23 Jun 2023 19:29:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1687573761; x=1690165761; 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=11YyvRRAb5IUX+NMds870r+K11ScAeUGmh7sZi++E+8=; b=cPnU1I2S7CS0GBUJSTTWf2V3U4gplDBnYXRmSxMs0isGKgs+cZSVgES/5dxAbzmguc AeoYHPTjHl9KMLC2xtKpfnDBkRy/qpub3z9s2inBFV4d4k5+g+cwsGRqSL7ViflLC7sH eJ98cEFVhYI22uNfeGYFyYVnfrOwjmahdDUiM= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687573761; x=1690165761; 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=11YyvRRAb5IUX+NMds870r+K11ScAeUGmh7sZi++E+8=; b=WyU4B/3f4od+WSb+E0TO6XiMnrGhyvkuSkXYTtq+47CbCqfjNDefJoY6HyJX9BD1G7 ltHmQtMbz8QsrrvjtdEc0XfgnG4/YkxcPIsEtcJZo9pUnh6kTNZrWHWy5D158UkrOJ0/ 8M+bMwBZp/l9LzZ9WPTHI7Z4ij4Vy3yfArKD5x9WqAghCfF1RKLj3Ynm360JyvgzeJ+p HiV1BowxDEP8MkmrMp4DcLDxarTXGRrhVF+uBFqtptGs5bwZg6olYBCHh1M1ZEO5ohl/ nZnT7PAwAMMb19SYCFkCQPfymi5dk5KkQLKFw4tHXq1XI29bzI1F4z4xl/kFXpbmJn8G +uiw== X-Gm-Message-State: AC+VfDwWLNNNsf11y+WqM8EVEt2k4UgZKjc9+3TjrW7dDm4IB7Asol9Y UtciVZuJNtiHN4U9RKZ6KGZbjw== X-Google-Smtp-Source: ACHHUZ6G7LKAO1qkjb9+GVt71O+HN8+8TN8PHJ8SXjS/nRGjq2BrtxZTp9fukBdBJ0fuwRK7FsA+fw== X-Received: by 2002:a17:902:c944:b0:1b2:1a79:147d with SMTP id i4-20020a170902c94400b001b21a79147dmr1247425pla.2.1687573761547; Fri, 23 Jun 2023 19:29:21 -0700 (PDT) Received: from google.com (KD124209188001.ppp-bb.dion.ne.jp. [124.209.188.1]) by smtp.gmail.com with ESMTPSA id i9-20020a17090332c900b00192aa53a7d5sm226294plr.8.2023.06.23.19.29.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 23 Jun 2023 19:29:21 -0700 (PDT) Date: Sat, 24 Jun 2023 11:29:17 +0900 From: Sergey Senozhatsky To: Alexey Romanov Cc: Sergey Senozhatsky , Minchan Kim , Andrew Morton , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" Subject: Re: [PATCH 1/2] zsmalloc: do not scan for allocated objects in empty zspage Message-ID: <20230624022917.GF2934656@google.com> References: <20230623044016.366793-1-senozhatsky@chromium.org> <20230623044016.366793-2-senozhatsky@chromium.org> <20230623104917.2n6vcxvhvlwmjm2m@cab-wsm-0029881> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20230623104917.2n6vcxvhvlwmjm2m@cab-wsm-0029881> X-Rspamd-Queue-Id: 08EDD8000A X-Rspam-User: X-Stat-Signature: zuj7id5af5eix4e3g3kdnhuqt3mdwhax X-Rspamd-Server: rspam01 X-HE-Tag: 1687573762-280878 X-HE-Meta: U2FsdGVkX1/+n83oTZKaJlmXy0wY4nGxvSM6gLqnEK/q3k+4TzZ+Bk1Roxb/jIIlym5sfkBfnb3dn+SL+uNe0lO/ri6i5Alh2kjdJEq4/uUaO7ajg8aQKG4aDHF/gMXIT4h+D3qH+X3DRIx99vjrmDvYTnAr0ss8W+y+F9i2mrNE8abp3Eotb2+bPP+iE//lpqQ3qgjKmUBEfsXIhmoUmaWLQDxRadqcr/BbsZPwQd6QLkK7QMtEaVaQsTY8WCFydg2NUyODG7+KnA7frk8vXLKmjyxXNHbltLA+y3INaDA7wvW/F69f/GBRjYmy/DSRhKcoLa5xneg7lnyO8F0J3ORZUcSYxxvOPe1wEkSSXKjqF10pXBV1/bQAI+ZsxwzGYstti7N6lXAnH4xrzgCgrU1kgThw9py7WqFw1XOeMabt+FjCvxP6uy6gjIFyHYo5+F+yCXkK5V0UE0QPTMlHZR2wVY3e7qjkEd7naMcAmEkO0QSUYFJUbTaKa0v2L81ekQWRqx9ZLiTmPlDSG2x14GhiPkgU7xSriCZ738L5OOskUYW2VOwoePwEAGtWkvlAgxh12rJdX5SH/6CVpRjLv4477V2TJFnz/Fxp+JD0zqhK+ztyjV5rJM8Rw0EdygqXm59++kwGDXhgnr/IGSEiLJ2pbNChkiKv7MevrPfQVzNzLwA7/GUVYj2t1O1Y10alOJdlGGRA3QMydqHsDN4dFdU/EHOUhwdWtS4ZQH0HA8YIlwpWd+4KzA2WLhjCQBQYzjqX+2xByrJNC8cP9736FzEuPOrTflq5Z6vqYvyowUUkU8gzAsotlQA5K/76ETlg2sUwJU7rxLExPURitGEdR9njX+H6CbgymW7pmBnJSk0DMMLTfzLHHMBMekw9SKnGwrzrVFF9hRFdj8vf1L0EBqidQ97IGWW1sYEoUcLFvbkbka6YMlH5qoP1BjiFt883nhNP9YpbAWJj9TAz6Hq 4jthdJiS UfCq4TtGSZbabjMfTQ7FbnYMbMNPohtkMLL2a/iX2Empr+C3k8Hh7rg/TwNyaJrapAXvPZbYsijBL3FO0ezEIet+vwdJ4e1Mwccj0M8XvZPOz8O6k4QzJ/UsvfdHbeFAjhcbdIdsShg5XTxpccCdQCs0u/9OTTM95iN86baqHzzIumjho0L+g9i+qTvV4phAsLYPenAMYomtVetX9XQL3bBaPJ1AX8okQV/zykoWZL/y2w+K+QOH63V5TdBSuzphhNyP+be95q8gPGansaCOkSEGioUYW1e+lQUUDJQcNzwpH0jT4ZzNYvP8xbX4xicEKfOOEmTMQmLa2S+4sqbmv51y7UlAKDXZ2Y4zFgtPkQI2tzzBKNJ4oXtGYaZt3O2dRkp9e X-Bogosity: Ham, tests=bogofilter, spamicity=0.010092, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: On (23/06/23 10:49), Alexey Romanov wrote: > > +static bool zspage_empty(struct zspage *zspage) > > +{ > > + return get_zspage_inuse(zspage) == 0; > > +} > > + > > /** > > * zs_lookup_class_index() - Returns index of the zsmalloc &size_class > > * that hold objects of the provided size. > > @@ -1625,6 +1630,10 @@ static void migrate_zspage(struct zs_pool *pool, struct size_class *class, > > obj_idx++; > > record_obj(handle, free_obj); > > obj_free(class->size, used_obj); > > + > > + /* Stop if there are no more objects to migrate */ > > + if (zspage_empty(get_zspage(s_page))) > > + break; > > } > > > > /* Remember last position in this iteration */ > > -- > > 2.41.0.162.gfafddb0af9-goog > > > > I think we can add similar check in zs_reclaim_page() function. > There we also scan zspage to find the allocated object. LRU was moved to zswap, so zs_reclaim_page() doesn't exist any longer (in linux-next).