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 EE905E77197 for ; Wed, 8 Jan 2025 00:54:42 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 3D5BB6B0082; Tue, 7 Jan 2025 19:54:42 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 35E306B0083; Tue, 7 Jan 2025 19:54:42 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 1B1616B0088; Tue, 7 Jan 2025 19:54:42 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id ED9FD6B0082 for ; Tue, 7 Jan 2025 19:54:41 -0500 (EST) Received: from smtpin07.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 721FB44FE8 for ; Wed, 8 Jan 2025 00:54:41 +0000 (UTC) X-FDA: 82982464362.07.2567BF8 Received: from mail-qv1-f54.google.com (mail-qv1-f54.google.com [209.85.219.54]) by imf22.hostedemail.com (Postfix) with ESMTP id 9C276C0004 for ; Wed, 8 Jan 2025 00:54:39 +0000 (UTC) Authentication-Results: imf22.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b="J/2Il1r8"; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf22.hostedemail.com: domain of yosryahmed@google.com designates 209.85.219.54 as permitted sender) smtp.mailfrom=yosryahmed@google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1736297679; 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=fu4gV03LbEWWS2BurC2o4kZ2gxbwPy5c9cxU6vR/qqg=; b=W+VnMtDWtvvnJzFNSGGuYZbZT6OUbt8dCsSWmLGQhQKjQ6yi85+rhLfqlbT/l6fdDyfl4i 81soHQlNJxzR7P5RknTFaSSdfjPKBcXPeIPoqyIh5pohZn0ySDx9p1n93yPZgMJ3DR4z7v fjEUmvu0Al+nkmP9krDyJfeOoVCSITk= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1736297679; a=rsa-sha256; cv=none; b=LBwhgRVMiIMAmSNDDgW+J5xb5wRccn14rFenwjFIwxaebKUZFH6DmoD079eT5e1GpwkpUu O/0pwB46uJBZfvzX/lAPFHwH9nGhDxnN+UwDyCZUN/FJxgM6G7a2HWpfJdapCZvSGSoKa6 PWBRrHPQ9dzgsIl9su1NKV8Lh/MWTrI= ARC-Authentication-Results: i=1; imf22.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b="J/2Il1r8"; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf22.hostedemail.com: domain of yosryahmed@google.com designates 209.85.219.54 as permitted sender) smtp.mailfrom=yosryahmed@google.com Received: by mail-qv1-f54.google.com with SMTP id 6a1803df08f44-6dd420f82e2so116608306d6.1 for ; Tue, 07 Jan 2025 16:54:39 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1736297679; x=1736902479; 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=fu4gV03LbEWWS2BurC2o4kZ2gxbwPy5c9cxU6vR/qqg=; b=J/2Il1r8prLiVeUuQqmPyPvocPtuC2o9f0kRb/fKTOX6cYQbU9LugG8nq60LYbZDJK 9TYVBkjEwCt9PjtTa59k+bIAyt0/GIpaWCp2+WJhOLSxKizjqh11kDmgyC7a/kJnymaW jzr1QhzO3123pk4Njd9Tt2YW+mansBm57t6id8uhoLVeUvQZ5Sz0+/ag2A7UJwTizP5p SSqJ7miZa3thHey8IzQPkNXwWTBQiEvWaBUkJLR75xGL8L59fgBoc+t+WqYyCoiyDJHv 3ztarutQo8guSFQ3Zddlt4nhFA+3mYo0J5Ht4kMr0g51rpDCjZQsmTzAc+uiqypjmHk4 hTMg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1736297679; x=1736902479; 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=fu4gV03LbEWWS2BurC2o4kZ2gxbwPy5c9cxU6vR/qqg=; b=d+wSSSVD8CJYxrzFomLcqIWxcD4Kk6OKO96nUZ1NR8afumfbyuHKFOnLm272vUr+rP s6j4fOYGETv4+el7km0f6AnxrbFaHLjQexCQ2HW/betRIB5fC+agEz3W28QMhL7Dvkkv dlwMj/+WMe4blMj1E+tq6sp6thZ42D0/PLtq4m5TQ3tY/aEteIceT0HkovkRHzeyTdFE SjA+A3qaKOa0VWUGApkBZFVUIHAwzT+if4TTi4IEaD8pahyBVTQxRck9MODQxktR+R/A VsEtDceWQcTN6MsU+PD94VaoaOCi261EKAQdAnAOpOBsbN28GTNqn86iTCML15EBChiQ Iqsg== X-Forwarded-Encrypted: i=1; AJvYcCUeyYqyUsPzttYPLWnfZa1SxbyfCMBhut6b+TIABqhrd71cIVXHIGCz5RJuKsDRsOyrm/iBUAJ6aw==@kvack.org X-Gm-Message-State: AOJu0Yy5VXNH3EClZgH2qhUjiZ/UV/2vHfhc+S07Mtk1ivA1cE4gM30K IpYyZf79c3qLl1wjrnx/UnFJA75ZQFw/mkRNr3qE9qGK+1zs+6vL+swHLxag5kNBSjLX8AsBAu+ HTxJ+S6hliMxJxFvLFLkAeqRbFPT7W3K22eQo X-Gm-Gg: ASbGncuCctg9UCBe8POrFgincHEPtRHqBdZYDNPDJEJwkkpT/E1zoGWF2nUAEXyVund TD85bQrW3nLhtDZHepYliwTdQ7sJ8jJmM3u4yC7/cYmUc+YZIl3JB+r1LHZI9oXWFM1wK X-Google-Smtp-Source: AGHT+IEzASF2Krv2FoHpKWxDrukcFJxGL6Ky42BpZbVJkQh/jaeK3TZUJby0+DLYM5gApS29bSogCzG8Ye5DXHO43c0= X-Received: by 2002:a05:6214:528a:b0:6d8:8d87:e5b4 with SMTP id 6a1803df08f44-6df9b1eac96mr18184126d6.19.1736297678649; Tue, 07 Jan 2025 16:54:38 -0800 (PST) MIME-Version: 1.0 References: <20250107222236.2715883-1-yosryahmed@google.com> In-Reply-To: From: Yosry Ahmed Date: Tue, 7 Jan 2025 16:54:02 -0800 X-Gm-Features: AbW1kvYxMG_rmmuS-xc72uw6gpcnX_TmubqiQpbTxouX3ulqiIHsxR1IEZwEOLc Message-ID: Subject: Re: [PATCH v2 1/2] Revert "mm: zswap: fix race between [de]compression and CPU hotunplug" To: Barry Song Cc: Andrew Morton , Johannes Weiner , Nhat Pham , Chengming Zhou , Vitaly Wool , Sam Sun , Kanchana P Sridhar , linux-mm@kvack.org, linux-kernel@vger.kernel.org, syzbot Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Stat-Signature: f3d9kciq7ei65sw3rjrnxt16h37wqf8h X-Rspamd-Queue-Id: 9C276C0004 X-Rspam-User: X-Rspamd-Server: rspam01 X-HE-Tag: 1736297679-348280 X-HE-Meta: U2FsdGVkX1/tMJjppmRpvjmZUGmgRrk1atkDte81KZki+okz5U0QyUFKBbYUbar0py5afZUpwxSGGYllwE6wOkGAhDest/MKznv4cG7jF6FgFEsWEYgR3aqbsIxtxjVtMeVESwvRqUrpLFOzrtDJgMPSEghQwW4++TchKloM3sE7A8lsjzw4rknmloQUZsGRgvGXgE/nvd0jca4rKGHiKhiFoDJ7LOmdP6OMfPnU5YafWxZt3io7epL7XoO8bx23uJFhM4iAqaz7y+xOUKgKwgsydbXqQGLWbrLFCdl/LZMn4DgXNsipjjOCtQbzBKiZqQT1+QlpUfeYd02OVFiCNlRdjdkLdxgTqIzfLJBGr2bCwLBbs1td3iEsKAYEXQWQLexAreJBa8Fp6mCGN71SRKce21DeuGu3z4Iz9C71r1c5/jEK12tbqLZQA2P8M34OZqDY7ZQHPUQpY68vXNxSmgmLpij7rVDvBqkEY5NJ1JpR2W9hQGbrVQfQu7dNxR3Kwj5/shdfbUHTyHCTgcqb6WmrmVJsE/33HhvE4IBmU2J9Q989Dn3XTUcMC5RoDUDq2bUKqBWObbfTUSgd0aFMP26ZWPip6bEDFPU0+a5UVO60hO++7eUia3pZXD5BhBXDZmP+0gGGNqd2+P9S7Q3QDD4zSu8JhpJlygVpwxjKNyn2zM4sGyAnJFAC4q7EnJsEPyL+TzUqlpuyQ2o4SzPuG8+2q0Wls03rcrreO4OjFtDMdtZ9DksR/heL6tk3DxPum2qt3MQopurEqSP23r0mb/BEmTBCU1hzcv5JBqFPtycnKefD3JxwglOHmKXLaVjZq3hVOceUDGgsnG710nGQaq3yq0g9vU0Se82g6Njqd2qDNfOsfiXqFBTR30cJiMEyxPxlU9itgb22o29yfNoI+SpURntOjmQsAQerz1yN+lWISZEhH5sDX8l6aYUisV6rul//NljqqipenExKFxH m6ZisgjX 4/HS88XxyhfVZ03IhlsHbgfQUu8YhLgcyuUKH2w5ApsYskVVv6wmqXYxDTlPTo1mc3MXYE+1Jzkg4C776E0bTOrrAElyc1Gdx/E4Gaj7CreS7jZ/bx/OavM/HVodRGZz9Y3UdOrCxQoKlmgGteNcFG+0gu9/zxFz7EgpsdlQutGLXkUZABZP+X3NQRtpuuEwvgjQhchIG6SyQnbqzz8Ad61OFYwR3KGn3kpDsIdcAkuzlJ1g1/YjwtHWV0A== 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 Tue, Jan 7, 2025 at 4:34=E2=80=AFPM Barry Song wrote= : > > On Wed, Jan 8, 2025 at 12:39=E2=80=AFPM Yosry Ahmed wrote: > > > > On Tue, Jan 7, 2025 at 3:01=E2=80=AFPM Barry Song w= rote: > > > > > > On Wed, Jan 8, 2025 at 11:22=E2=80=AFAM Yosry Ahmed wrote: > > > > > > > > This reverts commit eaebeb93922ca6ab0dd92027b73d0112701706ef. > > > > > > > > Commit eaebeb93922c ("mm: zswap: fix race between [de]compression a= nd > > > > CPU hotunplug") used the CPU hotplug lock in zswap compress/decompr= ess > > > > operations to protect against a race with CPU hotunplug making some > > > > per-CPU resources go away. > > > > > > > > However, zswap compress/decompress can be reached through reclaim w= hile > > > > the lock is held, resulting in a potential deadlock as reported by > > > > syzbot: > > > > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D > > > > WARNING: possible circular locking dependency detected > > > > 6.13.0-rc6-syzkaller-00006-g5428dc1906dd #0 Not tainted > > > > ------------------------------------------------------ > > > > kswapd0/89 is trying to acquire lock: > > > > ffffffff8e7d2ed0 (cpu_hotplug_lock){++++}-{0:0}, at: acomp_ctx_get= _cpu mm/zswap.c:886 [inline] > > > > ffffffff8e7d2ed0 (cpu_hotplug_lock){++++}-{0:0}, at: zswap_compres= s mm/zswap.c:908 [inline] > > > > ffffffff8e7d2ed0 (cpu_hotplug_lock){++++}-{0:0}, at: zswap_store_p= age mm/zswap.c:1439 [inline] > > > > ffffffff8e7d2ed0 (cpu_hotplug_lock){++++}-{0:0}, at: zswap_store+0= xa74/0x1ba0 mm/zswap.c:1546 > > > > > > > > but task is already holding lock: > > > > ffffffff8ea355a0 (fs_reclaim){+.+.}-{0:0}, at: balance_pgdat mm/vm= scan.c:6871 [inline] > > > > ffffffff8ea355a0 (fs_reclaim){+.+.}-{0:0}, at: kswapd+0xb58/0x2f30= mm/vmscan.c:7253 > > > > > > > > which lock already depends on the new lock. > > > > > > We have functions like percpu_is_write_locked(), > > > percpu_is_read_locked(), and cpus_read_trylock(). > > > Could they help prevent circular locking dependencies if we perform a > > > check before acquiring the lock? > > > > Yeah we can do that but it feels a bit hacky, we may have to > > unnecessarily fail the operation in some cases, right? Not sure tbh. > > Not sure if it can be as simple as the following: > > locked =3D cpus_read_trylock(); > .... > if (locked) > cpus_read_unlock(); > > If this works, it seems better than migrate_disable(), which could affect > the scheduler's select_rq especially given that swap is a hot path :-) I didn't look too closely into this, but I'd prefer the simpler fix unless it causes any noticeable regressions. Unless others are also concerned about disabling migration.. > > Thanks > Barry