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 2646DC48BC4 for ; Tue, 20 Feb 2024 05:00:04 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id B6E9A6B0085; Tue, 20 Feb 2024 00:00:03 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id B1E816B0087; Tue, 20 Feb 2024 00:00:03 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 9E60E6B0088; Tue, 20 Feb 2024 00:00:03 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 8C02E6B0085 for ; Tue, 20 Feb 2024 00:00:03 -0500 (EST) Received: from smtpin19.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 3EAD516056B for ; Tue, 20 Feb 2024 05:00:03 +0000 (UTC) X-FDA: 81810980286.19.B514C3C Received: from mail-pl1-f181.google.com (mail-pl1-f181.google.com [209.85.214.181]) by imf27.hostedemail.com (Postfix) with ESMTP id 7DC3C4001D for ; Tue, 20 Feb 2024 04:59:59 +0000 (UTC) Authentication-Results: imf27.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=JeU4lEvE; dmarc=pass (policy=quarantine) header.from=bytedance.com; spf=pass (imf27.hostedemail.com: domain of zhouchengming@bytedance.com designates 209.85.214.181 as permitted sender) smtp.mailfrom=zhouchengming@bytedance.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1708405201; 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=WmfkLuOZGRlJcYuRzNNhWOooi71NhJh+zOe71aSAaNU=; b=rJ4cvUGmSOOrCxi4Db9fjWtsJDKAx5YBa11qhCQ3DPOUUnh2T1Ye5lM76KQSTMMOLTlJ5c mmcvTZqaj+Ef9/xisSVmMsD5ib+elFFHrK7Rsqe4fId5e8KghAEtIaMLtPQ/Y5Og3v+qzE gGQduR1yjvh74XCUmWftVt+SAi9KXh0= ARC-Authentication-Results: i=1; imf27.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=JeU4lEvE; dmarc=pass (policy=quarantine) header.from=bytedance.com; spf=pass (imf27.hostedemail.com: domain of zhouchengming@bytedance.com designates 209.85.214.181 as permitted sender) smtp.mailfrom=zhouchengming@bytedance.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1708405201; a=rsa-sha256; cv=none; b=Zu+ML1Pu7/skAMxthiQdlMAq/MtqrfZUhbBLFcOoXUkowFI+jU8wwBsVbK3e8pd3B693eK T6OjNxG9zJIq2uW4qwwAckO08RK3u5tN+QfsPhcgEdrtCEI6hEVQl1ZGI6qTI+gvPNA3jR MpFr+IqPDDxEBCGwCeiGsIZWIHytVBU= Received: by mail-pl1-f181.google.com with SMTP id d9443c01a7336-1d944e8f367so40823785ad.0 for ; Mon, 19 Feb 2024 20:59:58 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance.com; s=google; t=1708405198; x=1709009998; darn=kvack.org; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=WmfkLuOZGRlJcYuRzNNhWOooi71NhJh+zOe71aSAaNU=; b=JeU4lEvECStEsfjaPIfH+2apDuDBRIPYhr4lHdoHh3lGxg+aqTSyNSr9AGm80muG/Y uG5AtDoKf0e3RDF1UFvMCrwFzD+So7NYnuKwx4Puf4WdgkNkl4iHmheyAM6hpcLBOicq 0De1c7Bh5Ym7xxxSHo1Zajobf6LKxC4dpJHVQcjHZHtaRnCxNAiMuVYHyQAWqhXcsp19 sTHlPBk8QaecVFwdWy/+eiTruC2G5hAzfRCapfnVhp3Ba28ZRgAQPP8LS2vmtjck3FCk LQVXrDYkfGedVTjRSE+AGNIf39XRypTP9bXdr8UxtSbW2apObqayFydr7ndYxs/yXVo2 RAug== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1708405198; x=1709009998; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=WmfkLuOZGRlJcYuRzNNhWOooi71NhJh+zOe71aSAaNU=; b=STZao4XcwVQsnQGSE+kZqbjtG4KaIJzkSA+m0RYsocu84bSN+XgY8hbD3jJy5kjBiP WhbMpKORNVSp4lIvxra7OU3mrvIc2fKyYDYQ1NDe6t9FKjU2PhJsaCrHwxkCHdSvsJR1 zP115wvDQfwAzqFFytcl4GQRBCWtc2l3ZmYD+DFt+gESEXLIg2ZEJ+84VmKKRxuE88dX Q3qiQZvevdQFKpaNj4ZdHCLSxGY1Ts9dmciZunI0FRn/ppKlxuTI4MV/Xr/AFhmXOF/x dWNTzIrFNBWzZ/fT9uq/qvPUS9vJcJklVpHrl1P3aPFbV3390MPaLsPoZJpxygKHgfIg HxxQ== X-Forwarded-Encrypted: i=1; AJvYcCW42ls4ugli3x1NQfekKFIjxiAL4thfEDoiPOMlkJf3l+ns+GpPPHKq43bIfzdTSV7JcJsKXZQMt7fxac/4iG198nw= X-Gm-Message-State: AOJu0YwCo3SxO3f7NxRFGddpEW4g0ZLa4TAghwsYE5VjIz2U3ZHlOm39 DedUa8UDjrcmu8+K5Fuqd9d7flpw0aHLz9RJZ/rwF5I243cVSFUPmBSpHY+41XY= X-Google-Smtp-Source: AGHT+IGcgHQKBdYsumZ9p9EwZ9OT2Vm52iRT9Bn95nkv/sNY/YZC3wBRaeyvMR8/9/UbdN4UPVXfXA== X-Received: by 2002:a17:902:d382:b0:1db:c704:97d with SMTP id e2-20020a170902d38200b001dbc704097dmr7182876pld.16.1708405198123; Mon, 19 Feb 2024 20:59:58 -0800 (PST) Received: from [10.254.117.3] ([139.177.225.234]) by smtp.gmail.com with ESMTPSA id y11-20020a170903010b00b001db8f7720e2sm5255001plc.288.2024.02.19.20.59.55 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 19 Feb 2024 20:59:57 -0800 (PST) Message-ID: Date: Tue, 20 Feb 2024 12:59:53 +0800 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH 2/3] mm/zsmalloc: remove migrate_write_lock_nested() Content-Language: en-US To: Sergey Senozhatsky Cc: nphamcs@gmail.com, yosryahmed@google.com, Minchan Kim , Andrew Morton , hannes@cmpxchg.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org References: <20240219-b4-szmalloc-migrate-v1-0-34cd49c6545b@bytedance.com> <20240219-b4-szmalloc-migrate-v1-2-34cd49c6545b@bytedance.com> <20240220044825.GD11472@google.com> <4f3c6c96-3bea-4369-a2de-e3c559505bba@bytedance.com> <20240220045340.GE11472@google.com> From: Chengming Zhou In-Reply-To: <20240220045340.GE11472@google.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Rspam-User: X-Stat-Signature: o5s4w1rjmpbtcfb4ku1kfd51cy4p3ykc X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: 7DC3C4001D X-HE-Tag: 1708405199-192190 X-HE-Meta: U2FsdGVkX1/7Xt6DMNVk7qwl7/dBv7dP1WgPDkIBNGd4Ay2dViN093P5HWrnnmS+mpjdW2JbECQwjW8eQEdPyd6HKQxJCiI/4md4qix/+ul/nfDRmYX8GcAa8HY2eQmhp8Akto70r0YcALCAFBpiFN/Zmmj6jVgsqH5b4kPF9tPwnUOvev+tcFVVChHhMT5/iKCi4JsM1+xk9DOzQPhM38pK8Kn7amGXjl6dM1p/ph/WFzpBnWIkiqIkfTnJLAowDIDh/GiuNXwdD0kyJ/sfTa/mdIBacGWZT2KkoaRzsLAingvLKf9/habfUSIOLWyJCLmu0jl7uD1c6VGK1tyKfuk16aebZDhBn+M9esidf9Z5KatrS2FNVS3fEEgL+em4R5/eYj6NufIO8+HWeP9snHTaE9IzQQuUmBtvgxOU0jtHna9SFfuN5L9gjBRWEaS8dC5DTNwr9fDnizRE9uGCcypHWcRIfW4CSco1CnFdaRrGAHRUPPYQ+AKhC8QawIhdOb80Nh7B6kktuqVv11Yhk5rMMln6hoTHICBMzGcbrTYoHZsdxNJHVE6CAMV48XeoxbbKv/MtdJjydiYduPFVoXv5emRkgtQ6Tpy52Y2z3u2CpLBG0pn7kphSvrv4trht8QyYBmwPO96z/TGh0aLP/Hv+xlNhUIjgPTXzDkGQwpVdJ1vTLMvDwrZiE7IKjzu6Vu2TzkUMoZ0+Di7b03+Ii2xI06yZ/kjiOxcuAiw0UXyGOfXeot1xJut2s8X1nVzBWks67+HPjND0Es5eB1RKWfK6KPsj6WhT4NkfY20AzPwH05EasgMyxWP241XHBeKv+QE4Wbzj3xWewMeY2ZX0oxB0EA2rBJVfQk/7Y51Cn0R9WTy8MirJEkwHX6V85Qf7Eve9xC1PtaxjMTUrY9cmj71yXlOTSlDlDRDU/m3YYpVHZGw1G4izSsOi1YUqEh8WNwn/y0DpCa6+J0wyHd8 D0Ddd3Hd jD+ExPXprrSxbpHJOJ4baYs5//JufY0y/lDUc8hUKjTqOhf0ai4UN/OC9y9/KTJ9WH8J+Md/LZiMgbU4dUodTEldnwGUPseoNFy/XgfkGHsgJG2Drn4KsyOIoGdSrsES5B/ZTiXWBuAa5r+N9rUMTTsQk8YQklvegfY3oe2QSVYTi6bfl1hdo0oi7ow== X-Bogosity: Ham, tests=bogofilter, spamicity=0.020600, 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 2024/2/20 12:53, Sergey Senozhatsky wrote: > On (24/02/20 12:51), Chengming Zhou wrote: >> On 2024/2/20 12:48, Sergey Senozhatsky wrote: >>> On (24/02/19 13:33), Chengming Zhou wrote: >>>> static void migrate_write_unlock(struct zspage *zspage) >>>> { >>>> write_unlock(&zspage->lock); >>>> @@ -2003,19 +1997,17 @@ static unsigned long __zs_compact(struct zs_pool *pool, >>>> dst_zspage = isolate_dst_zspage(class); >>>> if (!dst_zspage) >>>> break; >>>> - migrate_write_lock(dst_zspage); >>>> } >>>> >>>> src_zspage = isolate_src_zspage(class); >>>> if (!src_zspage) >>>> break; >>>> >>>> - migrate_write_lock_nested(src_zspage); >>>> - >>>> + migrate_write_lock(src_zspage); >>>> migrate_zspage(pool, src_zspage, dst_zspage); >>>> - fg = putback_zspage(class, src_zspage); >>>> migrate_write_unlock(src_zspage); >>>> >>>> + fg = putback_zspage(class, src_zspage); >>> >>> Hmm. Lockless putback doesn't look right to me. We modify critical >>> zspage fileds in putback_zspage(). >> >> Which I think is protected by pool->lock, right? We already held it. > > Not really. We have, for example, the following patterns: > > get_zspage_mapping() > spin_lock(&pool->lock) Right, this pattern is not safe actually, since we can't get stable fullness value of zspage outside pool->lock. But this pattern usage is only used in free_zspage path, so should be ok. Actually we don't use the fullness value returned from get_zspage_mapping() in the free_zspage() path, only use the class value to get the class. Anyway, this pattern is confusing, I think we should clean up that? Thanks.