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 1EAE9C77B70 for ; Mon, 17 Apr 2023 08:29:45 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 70E3A8E0002; Mon, 17 Apr 2023 04:29:45 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 6BEA38E0001; Mon, 17 Apr 2023 04:29:45 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 5AC898E0002; Mon, 17 Apr 2023 04:29:45 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id 4EC538E0001 for ; Mon, 17 Apr 2023 04:29:45 -0400 (EDT) Received: from smtpin23.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 1E939C04DB for ; Mon, 17 Apr 2023 08:29:45 +0000 (UTC) X-FDA: 80690209530.23.E7D009F Received: from mail-ej1-f50.google.com (mail-ej1-f50.google.com [209.85.218.50]) by imf30.hostedemail.com (Postfix) with ESMTP id 596E480010 for ; Mon, 17 Apr 2023 08:29:42 +0000 (UTC) Authentication-Results: imf30.hostedemail.com; dkim=pass header.d=google.com header.s=20221208 header.b=ikboJsxq; spf=pass (imf30.hostedemail.com: domain of yosryahmed@google.com designates 209.85.218.50 as permitted sender) smtp.mailfrom=yosryahmed@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1681720182; 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=gRZ2tcvqDj6aA5FUk+mT9yobZjv/gI2nC0wcdO8PDjQ=; b=lLR71QiEI2VRdPAz11gVQj+ABLN6G8sfLYkeHfY3qbrMVP0rRf2+V4apfLdfa69UdFjE0Q eFXDBMi37ug3CZh0TjKpNYylS4k1vW920M2hAmcwKSN02w0m/JQD70zjUAverXIV0sRt3W BcGU01jRu9OcIaZu0miu2Glx6a2Xa0A= ARC-Authentication-Results: i=1; imf30.hostedemail.com; dkim=pass header.d=google.com header.s=20221208 header.b=ikboJsxq; spf=pass (imf30.hostedemail.com: domain of yosryahmed@google.com designates 209.85.218.50 as permitted sender) smtp.mailfrom=yosryahmed@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1681720182; a=rsa-sha256; cv=none; b=5+ApnxsFFhqL/BzQDQ5E2swiyTxLJ52S0ojLEXet4ue5QewYpXhM7cQshg5QSOvx6S9lel eDb3LllEJFXwoX8bJPjx13p6KZ4Ua7ForwUuU8MGeuGMrURX/z1BL6H3xMIQcQeNEwCDoP 5XuhJThs37gwaE1EPjGZJ59/0jcNMyA= Received: by mail-ej1-f50.google.com with SMTP id vc20so7035788ejc.10 for ; Mon, 17 Apr 2023 01:29:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20221208; t=1681720181; x=1684312181; 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=gRZ2tcvqDj6aA5FUk+mT9yobZjv/gI2nC0wcdO8PDjQ=; b=ikboJsxqosDpwuwxYfCOrfjOkg0PmSF0kOs5T9BGRAWMRjJJpHRi0SL9ChyQ8V2cL4 1WVSQ2Ng7zbBmG4MlxKyAA4oqulY+vi1Z0mO/wNfOK5x9YICgv9sQB3h+MqfX765PsjZ jbN5yLuyBgX34rF5hE6HUNk9a0NmJtSySTIy/1qtTB4sQuHmdHbOOcp6C48N/m6LHjS6 a9sQUNFp4po9LRTWqrDa+IGCsNtO11TWBAwsF2tDP5/3Z/DGR0wWM+XERF+CTJytWlpz BufYdP4rJcgrUCYAjKR4RrC6gAcuPvoamP5/YDcK0Q0Nkabkbob0tuPTgKChAp3B5TkD MyRQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1681720181; x=1684312181; 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=gRZ2tcvqDj6aA5FUk+mT9yobZjv/gI2nC0wcdO8PDjQ=; b=XxjeEBn9POoZ7eRbkMVjPRfm6UVINK7a7Rr225kM63b2JDvCree+9Owjnq2JOk0l5I 3hK3QCHzAMdXMCAi8nGdxTnp76No23dw1qu9EFcZR3SNdrsZqIDIAAhPeSbwgmxP4/jO dn5bEHjKRvMJ5MpX4gyR0k5z6MlBGEK+lyLx9T/OZpmbPuXJq0e3Fywp7+ycfLU6hxVV riut/lGy2u8ZQOdncp5MKFRqagRtr4qKAqER2TudIJ+PBJJPEwF8jAycTUinsvefZ2+C oYDqyCq6JqBimJ9JzPHSV2JTyYFEqQsIRxu1uiUXrzbXBuMVzMgjRZ7G3WcnNHsht6/2 b5oQ== X-Gm-Message-State: AAQBX9eFWGuY8F7+n5lZF/uCvJ+Su0ZkpBAF93AGAub9BYGZEG0eOpqL st4U3IGt7uCu6V2zdGng3LAvf5Sohe7m63u5kFT5+g== X-Google-Smtp-Source: AKy350Y88p1LEPIPcIBXXOw9rnSwIaYgMBGvCTzdmL/dFeAwUtYtbEzWCXawg/hXbe8eFrlAGw7uT/H5Byb020Cht/E= X-Received: by 2002:a17:906:ecb6:b0:94f:552:809f with SMTP id qh22-20020a170906ecb600b0094f0552809fmr2585524ejb.15.1681720180675; Mon, 17 Apr 2023 01:29:40 -0700 (PDT) MIME-Version: 1.0 References: <20230304034835.2082479-1-senozhatsky@chromium.org> <20230416151853.GK25053@google.com> <20230417024446.GL25053@google.com> <20230417035232.GM25053@google.com> In-Reply-To: <20230417035232.GM25053@google.com> From: Yosry Ahmed Date: Mon, 17 Apr 2023 01:29:03 -0700 Message-ID: Subject: Re: [PATCHv4 0/4] zsmalloc: fine-grained fullness and new compaction algorithm To: Sergey Senozhatsky Cc: Yu Zhao , Minchan Kim , Andrew Morton , linux-kernel@vger.kernel.org, linux-mm@kvack.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspam-User: X-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: 596E480010 X-Stat-Signature: kgu7utcda6re8ae8hqsdw9sfqbz3dhbi X-HE-Tag: 1681720182-641211 X-HE-Meta: U2FsdGVkX18mZo4kzjWlKHNJCyFDRLnvEGaWLjT+U6GB9OMzgp6DV5QjmT/+edgf31MVyJ9yL6mnseXUn6sWPDhg90HPIr1k6j0k8W/kcrxXF62skOdQ2xLUeIL2vtyN1Xphu1esaxr1nFSjg0z2FuJKQdysvlucmgIB21CAy6GzgMZEOjZEfwPM4cGim0dtWffdKy1d/bX6wRBn7x4fMgwTQGZAQlzPvMgzy8IpbO/9uByZOeWxnCrJ9wCWvdSAzUuXIpa8F55XOkgUsIyiCXEDuhcAUpwG3nf3HR0QpeMjz0A1yGZnJK6lQmVxYMRhhplIJDnVfFtzDi3KHD1WjzEZT2jmrOozpNvyv08LFn/SMSdJ2JWKOqmDpc/7Eh7AxV0YVpqphZMq0mc/aaI++/4hz4ii0QiqMp1fL58j+FyhVU2kG13Ng8BjQ00aV20Y7SENb1+UxuhNKDaKWhdqWsNLZy4bEQUwbsQx269YylKoCdgxDvj0ZcV7OzG7O8qg4ZA/qK0BqoSoIfzQtRHi53BR4/sDDWd+F1nriIrD0fXphThulBvHkNytrCc5+rcNncVAP8ZCzRTgh4h9GO2jdXYVIBob1BzaojtLBBZaUiKnJ2hKx6msXMqXmNDS4wpWo825J6tx/v4oyxq4CeT0e47v4R2OLaLvEMNtoqNB1Yuz/MqDgxFrp4XY5/gkjjR7I8LG1hjy1HYB4gYaDJd2tEuMvJZt2ojrce4kBxhqO/AIlDf3TR9PXB502jo4SayitWv7NUScwl9fXZCMv/B6hTi6xdDHvjishhgIQAjjI2fdCZhcoX5XftABR5vXBCRV0Tq3+3mlCW7cUsp6J8s5+F0cW4t8qvTYr0ArwqYhG8sGxA/LlCww13YJQCCzBmHdHkMijoslR91ZX43B8p0jz+NAZg4TftqDt/o5jmkKqcq+s0kYX3fNlj/mkD0+0CVXWSEPDjrdo9jp/1azAcI UX02SFM1 lYxIeJicpGumoYIxNt4gkqG/ylk8PH5xdW4ytqZbjdRkC53QnrMed+7HkY16AIZpElfqjyYW1kbhj5IbEtlWmwuk/uwdMPf78paVJFg0EYMpiRsMy0M+Xf4d/gm8XzbY6bjmCnEDiqep5LdEvD4RYtB06MBpgjj0wjo7iiY0pxWET6voHT6hdvajd54P3LamtwrPfLBvorwQNL0n2V2GKgYTsakqrDqFXoBnr/Ko+aDIT/SrFjPlQd5WITJFIgn3//Pk7HUWFy/Q8T/OZtRfIxTiNhxRjZyC2DfCx3S5D/CQPuXA= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000042, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: Hi Sergey, On Sun, Apr 16, 2023 at 8:52=E2=80=AFPM Sergey Senozhatsky wrote: > > On (23/04/16 20:55), Yu Zhao wrote: > > > Do you run some specific test? > > > > E.g., > > tools/testing/selftests/kvm/max_guest_memory_test -c 112 -m 800 -s 80= 0 > > with 112 CPUs and ~770GB DRAM + 32GB zram. > > Hmm ... > > Something like this maybe? > > The src zspage pointer is not NULL-ed after non-empty zspage is > put back to corresponding fullness list. > > --- > > @@ -2239,8 +2241,8 @@ static unsigned long __zs_compact(struct zs_pool *p= ool, > if (fg =3D=3D ZS_INUSE_RATIO_0) { > free_zspage(pool, class, src_zspage); > pages_freed +=3D class->pages_per_zspage; > - src_zspage =3D NULL; > } > + src_zspage =3D NULL; > > if (get_fullness_group(class, dst_zspage) =3D=3D ZS_INUSE= _RATIO_100 > || spin_is_contended(&pool->lock)) { For my own education, how can this result in the "next is NULL" debug error Yu Zhao is seeing? IIUC if we do not set src_zspage to NULL properly after putback, then we will attempt to putback again after the main loop in some cases. This can result in a zspage being present more than once in the per-class fullness list, right? I am not sure how this can lead to "next is NULL", which sounds like a corrupted list_head, because the next ptr should never be NULL as far as I can tell. I feel like I am missing something.