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 856ACC54E41 for ; Wed, 28 Feb 2024 10:09:57 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 184226B00A4; Wed, 28 Feb 2024 05:09:57 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 135146B00A5; Wed, 28 Feb 2024 05:09:57 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id F3E7A6B00A6; Wed, 28 Feb 2024 05:09:56 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id E4FD46B00A4 for ; Wed, 28 Feb 2024 05:09:56 -0500 (EST) Received: from smtpin18.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id B8E3DA155F for ; Wed, 28 Feb 2024 10:09:56 +0000 (UTC) X-FDA: 81840791592.18.8AC98F9 Received: from mail-vs1-f45.google.com (mail-vs1-f45.google.com [209.85.217.45]) by imf11.hostedemail.com (Postfix) with ESMTP id F158240009 for ; Wed, 28 Feb 2024 10:09:54 +0000 (UTC) Authentication-Results: imf11.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=NkNGPaAZ; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf11.hostedemail.com: domain of 21cnbao@gmail.com designates 209.85.217.45 as permitted sender) smtp.mailfrom=21cnbao@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1709114995; 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=BkbZnM4zUKTeRZ6grRhqdDU4kcmxS6+jabdIxX7mZ+8=; b=R+PJFbvdJE9NPZNa55niajyPyaMd4Hb+qXKcYT1WsyiL+PMVXnFaFU/qAhMUb7ffcXiole y2d03eSQHcaxZnUJv5L9XqckWE80Fj1fmOCCuWBOi3qchl2EnTVCSMq6+t1zKFwzg9+A56 M97IVcdhuBvRVYl7WEoD3J/K2Iex4FQ= ARC-Authentication-Results: i=1; imf11.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=NkNGPaAZ; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf11.hostedemail.com: domain of 21cnbao@gmail.com designates 209.85.217.45 as permitted sender) smtp.mailfrom=21cnbao@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1709114995; a=rsa-sha256; cv=none; b=NXvZm7QA9C0dRTdoOw6bTqKM3UZlXlXU35blB2c3tDFli54l6hElZF4raB5z0uXTz1k2eN czCh9mu9LfipIcKVjjFLWHe2qApq9Q9eVRuUAW+EZvTon6TbSAUWQV6PrgHSvL/R4caGi0 9DUrHlc2SxAa742uWHSOtj9RH8brlBA= Received: by mail-vs1-f45.google.com with SMTP id ada2fe7eead31-471e395f6baso655690137.0 for ; Wed, 28 Feb 2024 02:09:54 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1709114994; x=1709719794; 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=BkbZnM4zUKTeRZ6grRhqdDU4kcmxS6+jabdIxX7mZ+8=; b=NkNGPaAZd/0LhrwoXpNcSvLcH/t0WKCO20h7OBm6Hbp11J/FpuOmnm7lyiI4xB562t iC31qVsw13Z+QkYQLhkKjn9eov3apWp3bOF00K6nj9v1xMODERfUTfuCugtwrvR6dWHQ veHqd248K3EYK3EN2R58K1+sE3Ve7VAZqgshWCEEVMNGN9V51Zr4o6z13tTiS37RejhA Rear1RH4AlI5S/aGvWxhO5JrRxGqKdaPkT6kN0FankHB6LjWYt2PojofM4y6x9OHLvfL 5PpraxOkInJ5ttevQhI3Cie6Ob/jt1+qAsuba9X73k7wbfHXNo3JtNFcmCRLy3lYu72x zPZg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1709114994; x=1709719794; 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=BkbZnM4zUKTeRZ6grRhqdDU4kcmxS6+jabdIxX7mZ+8=; b=d4ykdh6z2CqZIuDxmqkkam2KedbDqxXo0LI/EQ3MolQEbt5a9eoT7l0CCTdMVXTVBc oIRa7vuvfmlqrY4owP5UydplsFb99/PucwexUOLSmojgQF9io9qIVycUGeruKVnFDx3K mzRftKp1yij5tYsbZZfEWbKzPyvrhS2HabUx9zwoamF0RMteKGZP36cWODQaIjNNmbe1 xGyZo2QMpu6cwJYGI8kN5/NUmOnmtKEiPp8dTSKUpdgwCX6Afv70zXtkq9RhzTCMg6eS ofn2qDmKe/VGQPpfig0ArV4kBTOxoBITFFoonZKpVTJ2c4ookye/+KEZstbSJKa5e3Z+ 14wg== X-Forwarded-Encrypted: i=1; AJvYcCVJl39ew6yloQZXUKKY/5gRqEJHNgoiT5IacscVBmfwlHI5lBLvfzuEDDrZM4RCNeRHjgIMHddDOI33oOVwbU+3JXs= X-Gm-Message-State: AOJu0YyJcDrhe66o0XKQe+mrvPTffJL5ccSHfv/z3q7fyY+qUeVZ5VXN twV16FwNOIt0Hao0bShWGBsL08nDoNiJfu81WqeAeiprq4HRo6sPXRFM/jGLCDHEsCyKOuX9+7w 8HQl1IywmZXkiAvEHHu+5/0DQYiQ= X-Google-Smtp-Source: AGHT+IF/SEs+hX15r1XGp/VDiYdDgU0ARaAjEu/4Jr+jiImJahk5OhxM1h5WTeI+Kzyuae0ylWCRvDOq9tjbqwZ3aas= X-Received: by 2002:a05:6102:1942:b0:472:5572:fe32 with SMTP id jl2-20020a056102194200b004725572fe32mr3525827vsb.13.1709114994045; Wed, 28 Feb 2024 02:09:54 -0800 (PST) MIME-Version: 1.0 References: <84d7cd03-1cf8-401a-8edf-2524db0bd6d5@oppo.com> In-Reply-To: From: Barry Song <21cnbao@gmail.com> Date: Wed, 28 Feb 2024 23:09:42 +1300 Message-ID: Subject: Re: [PATCH] mm/vmalloc: Fix return value check for vb_alloc To: =?UTF-8?B?5YiY5rW36b6ZKExhb0xpdSk=?= Cc: "akpm@linux-foundation.org" , "urezki@gmail.com" , "hch@infradead.org" , "lstoakes@gmail.com" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Server: rspam09 X-Rspamd-Queue-Id: F158240009 X-Stat-Signature: bss13ecyr9xa5cr7snkoo6u79rpmwh3o X-Rspam-User: X-HE-Tag: 1709114994-403486 X-HE-Meta: U2FsdGVkX180E+YpnnsepcuYfbF2IGWy87t87w74zFc93O0jIvqSxGgpM1NYLY2IiEdGk8rk9l+1mFalXcx4tF2SbWYdeduS2kXP5Q3m/NBVMYnq2voaael7quzavJslnzOZQYTs8JqLgbip00os+/aCOy/aXSv1WhjVrU9LmpsLmuX3jRl5XU3YtIE4qmT13dWM3CMzj0cgze4SplAoQxC/AJpERuFh5ZGfvQAFXv95nbAdpUe0GR1zvYoxloT/9yYFf8P4cbb85etJKXDzS9TAt4WrFEXqHX81GS5qVDQdg5a3kWx0gwLfpx81ozlMNjKltlWDIWZevMf13IF2k8W8vHGjedQz7bHbpoXtfG9Yxg+Oo7V1/aJ317kbcWqCZGQjSaUAl0Jm/7779yUaJ9Zn4+QJg8hpaXyjFPj/6icHUsPSHkeLyrD9ojMtMimODB7xXDlGJAp8IkCGpUt73fQtJ0pn4SS83uSqvw1jKpzZfIUG2B2JYc9pAPD0+nSptuvdnqalFmxfPBeD1GxElNLx/i4sSclosBW9M6SQP4mToRQ/oiSNl39EMhPzB2CqMUViKA8Cx9AUVXZTHBI2SIrJS3OKdpVsj1jjK35ehOBPP3LUICuzHeEH9qXrVManoWj3wVrgnuIrTv3Vz9X7I1JBjaLSCatPUiRLZR3jgv9VY4UAOBA6byUnYKTgatN+pQBqpxfAZhIDOrCHkS99jPy8QidMDmwDChrobMt9FRudQiCrjVZucw7PDls67v6XUe3xjoFM86XDxZ7JG3r8LMy8lkZISBZIhSxrKNm/2DgWEMsTQv2wgI/ocvBPAfWvJ73O2c2eHIY9pqiMuCag+b/rkRkohTEJVBGP4D4PfJsQc7YdevWez7FerIaLKVOLtb8D87Yeq2e/H7NHuGBLZTJVqaw6AUuFb/WNO5Gq+v+BWfuz+5x1HjfdJuLMjLAAE2rHM79fg5V7woXTFlD xjisnPeg DwxEqDReuw7hwe85Im26Tcj575YNhJ0DgsoRTcIjAp9rOXL+zvDMlw6mCjsj9sea7XIvG2XVCViN/QZrtSig7/3NUpzMoRQo1E0UfHznpF2eyI8iadflGz7xgV4Z9RXp9bz5BtqrYcz24XDpHplAkKgig5oR8pNvXQEiAwdqjWB1SsNgkEJXEBo6VilweqYM79k6kD9T0TDvCQF6qfcyKSPazoKNrsQFwryagdOo4SPIOSWC16uAlzScFe4WBuUuq6huo3Uh0E/BA4AenxFx0qPRNB1Qu8IoSeimyJSLFUvDeaVBgwWBV7bDx96isQkFwoR4fDmBz7moGOmLCXbT9AUCpM+PhH4Hip4o8b9P+hfXAdqB5N/OYCpro05Kt8z7X/qEcQK855qfUR48EU2U96zJ+XIgSZ2tPr+TFIf4jbFBBdNBlTSon/vYfqxwFHakDDwnkSvkUoS13xh+thTSUJ4ysIojO+Xa+v3sw4sbbwLnOPCt5i7EXeEP9QJZ6IuYQQl1TN/xXvas0S9t+7+tM7kkqqw== X-Bogosity: Ham, tests=bogofilter, spamicity=0.050183, 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 Wed, Feb 28, 2024 at 11:02=E2=80=AFPM =E5=88=98=E6=B5=B7=E9=BE=99(LaoLiu= ) wrote: > > On 2024/2/28 17:34, Barry Song wrote: > > On Wed, Feb 28, 2024 at 9:51=E2=80=AFPM =E5=88=98=E6=B5=B7=E9=BE=99(Lao= Liu) wrote: > >> > >> If vm_map_ram(page, 0, 0) would cause panic by vmap_pages_range_noflus= h, so > >> change IS_ERR to IS_ERR_OR_NULL to fix this. > >> > >> Signed-off-by: Hailong.Liu > >> --- > >> mm/vmalloc.c | 2 +- > >> 1 file changed, 1 insertion(+), 1 deletion(-) > >> > >> diff --git a/mm/vmalloc.c b/mm/vmalloc.c > >> index d12a17fc0c17..109732006cf7 100644 > >> --- a/mm/vmalloc.c > >> +++ b/mm/vmalloc.c > >> @@ -2387,7 +2387,7 @@ void *vm_map_ram(struct page **pages, unsigned i= nt > >> count, int node) > >> > >> if (likely(count <=3D VMAP_MAX_ALLOC)) { > >> mem =3D vb_alloc(size, GFP_KERNEL); > >> - if (IS_ERR(mem)) > >> + if (IS_ERR_OR_NULL(mem)) > > > > it seems the only case for vb_alloc to return NULL is size =3D 0, isn't > > it a bug of > > caller? > vb_alloc had already checked the size =3D=3D 0, so it should be return NU= LL > to caller or not panic here. > > In fact, we encounter z_erofs_lz4_decompress issue. > > [54032.383633][T25392] vmap_pages_range_noflush+0x790/0x8f8 > [54032.383637][T25392] vm_map_ram+0x1c8/0x10b0 > [54032.383642][T25392] z_erofs_lz4_decompress+0x60/0x1e8 > [54032.383648][T25392] z_erofs_decompress_pcluster+0x624/0x9fc > [54032.383653][T25392] z_erofs_decompress_kickoff+0x18c/0x224 > [54032.383658][T25392] z_erofs_decompressqueue_endio+0x1a8/0x1e0 > [54032.383663][T25392] bio_endio+0x188/0x47c > [54032.383667][T25392] clone_endio+0x1a0/0x550 > [54032.383674][T25392] bio_endio+0x14c/0x47c > [54032.383678][T25392] verity_work.60258+0x7c/0x13c > [54032.383682][T25392] process_one_work+0x1b8/0xa98 > [54032.383687][T25392] worker_thread+0x160/0x6c0 > [54032.383691][T25392] kthread+0x15c/0x1d0 > [54032.383696][T25392] ret_from_fork+0x10/0x20 > > z_erofs_lz4_decompress has checked the return value, so it's reasonable > to return NULL if size =3D=3D 0. I agree. but there is no reason to activate a WARN_ON in vb_alloc as obviously it doesn't like it. so fix it earlier. I even feel z_erofs_lz4_decompress is a better place than vm_map_ram according to your description. but at least vm_map_ram is better than checking a vb_alloc's ret after it gives a parameter obviously hated and causes complaints. > > Brs, > Hailong. > > > >> return NULL; > >> addr =3D (unsigned long)mem; > >> } else { > >> -- > >> 2.34.1 > > Thanks Barry