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 BE08CC54E58 for ; Mon, 18 Mar 2024 21:12:43 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 2E7626B0089; Mon, 18 Mar 2024 17:12:43 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 2978E6B008C; Mon, 18 Mar 2024 17:12:43 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 15EC26B0092; Mon, 18 Mar 2024 17:12:43 -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 062166B0089 for ; Mon, 18 Mar 2024 17:12:43 -0400 (EDT) Received: from smtpin04.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id C69F31409B4 for ; Mon, 18 Mar 2024 21:12:42 +0000 (UTC) X-FDA: 81911408964.04.C62BE72 Received: from mail-vk1-f170.google.com (mail-vk1-f170.google.com [209.85.221.170]) by imf20.hostedemail.com (Postfix) with ESMTP id 4047B1C0016 for ; Mon, 18 Mar 2024 21:12:40 +0000 (UTC) Authentication-Results: imf20.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=bgudCu00; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf20.hostedemail.com: domain of 21cnbao@gmail.com designates 209.85.221.170 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=1710796360; 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=zlB2IBskv+pb6Y21WlslfXrWn1gChW7bUWNPd3xKciM=; b=AL7sIKgG3CDMmWKshaIVyhQykVvf43TkhPmQaXj7kR7yfY49IdDpVjiX0HN0+YWllQLJqi 4s263MJ0SGncp5x0m/jmqAzou3MfliHFq5dPDl0A9QcJ5HCS2BSgUL1SWdriWHUEs2e69X dmjIDLb7Ennke9Ew7My3KXFi5Ffz6rg= ARC-Authentication-Results: i=1; imf20.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=bgudCu00; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf20.hostedemail.com: domain of 21cnbao@gmail.com designates 209.85.221.170 as permitted sender) smtp.mailfrom=21cnbao@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1710796360; a=rsa-sha256; cv=none; b=1qmpSleXILvIKCBfKxBM8teUMinAwEX1hEnord/sLyUhk6J/IrY5MDPCz0ePT5CldBlQ3M tBmUyHKx9xFIUN0svbPNmMPje8D4MMRQK28P9HrkXsLWNkutX6C1bCbttBtUGlknFvKepk 8RoenU71iSNG/SB1QMpHp7tUpbpIVuA= Received: by mail-vk1-f170.google.com with SMTP id 71dfb90a1353d-4d43d602cd6so759415e0c.0 for ; Mon, 18 Mar 2024 14:12:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1710796359; x=1711401159; 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=zlB2IBskv+pb6Y21WlslfXrWn1gChW7bUWNPd3xKciM=; b=bgudCu00kikdGc7W75TPxFAcsuvNLvriODIokAN215A8YRa8j9U4seiFy0X5WRgeJF 2TZCwlk/fF2nIKGHRtDLbfk1n9kcYcZQv4IL3EXic5/8KDsap5Lkr35VNHjqwmO9eXBK 3CDgnXrdbp1gt79fLQudpJ6k4l7AxSr+YFWHu2zEvEgB2DIjEFryb/YGn4KC1MIQA3+o w5g58aslkbPz2gFJIwrTvJtt67aFQc1GGhvyxLAqOfsjo/fZTuJrKtS+QLylO8AoH1aA nMXXi/iXdqTk5FIL9JaShD3860tVUFj1m5BWaf5WPLkQo8m2XhMro59Pwt2/3q23aeNu f7xQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1710796359; x=1711401159; 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=zlB2IBskv+pb6Y21WlslfXrWn1gChW7bUWNPd3xKciM=; b=N2jQFyG5OKadqc7G3snURVKHGCMgb3BlgKGuvLXVT0SM96E6TKHGksQsBKgvrRUeiH UYp9MWEgpPCR5pHBztxC9zktKExzOzQftobO8NH/4GsBzIOmnC9Xdv4/u8lTsgqpH+GI c1CyoDiTVoQAFcPIMbgx0rNv1ChYDZlf5XoMC0CqTsXACV1qbUA4YyrWT06cw64BL758 OPQfKRA/4o0G+ykC9EN1mmNRItgH53n8w9aqfTeGwr0lcze1iES+lLHo+yZa2wMnT1VW mQyxIoxo18mDGYCdEpp6yycN3ERz+0+ZBqYQr84NfEWp8b21zDIFGSdGlVM5ykGk/aDg b6lQ== X-Forwarded-Encrypted: i=1; AJvYcCV3FXE+5sl7cDn+L2oNp8PN0A3SfWAEadAtLKvyhJcqY+n81dNdzSR2N0WnnVj4IOPxTZOE0PW3N/pa/kT7LuL9JdY= X-Gm-Message-State: AOJu0YwDOM/MDI4XY+WflkDzlm8xUchK52YM4T5GhBNpvl2UdDONqLJ8 EcBue9hLfLv27fykTBdpmARDlovZvFmCNXR88dVtHLtyfR43ypDJ6ZCr1Kf6E/IHep8K8InY4Vw NY7iAh3dBybIf66q2p7Ef0B6rSgQ= X-Google-Smtp-Source: AGHT+IH6nNI7kAYp9hdUHVHAEoerdfDrfXI1sQHCSXBSe302uiu29a/CWmWw7OpFggD4+7kus4h7qpPmoMuEozc1OXU= X-Received: by 2002:ac5:c7b7:0:b0:4cd:b718:4b08 with SMTP id d23-20020ac5c7b7000000b004cdb7184b08mr7207012vkn.11.1710796359326; Mon, 18 Mar 2024 14:12:39 -0700 (PDT) MIME-Version: 1.0 References: <000000000000bbb3d80613f243a6@google.com> In-Reply-To: From: Barry Song <21cnbao@gmail.com> Date: Tue, 19 Mar 2024 10:12:27 +1300 Message-ID: Subject: Re: [syzbot] [mm?] kernel BUG in sg_init_one To: Yosry Ahmed Cc: Nhat Pham , syzbot , akpm@linux-foundation.org, chengming.zhou@linux.dev, hannes@cmpxchg.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, syzkaller-bugs@googlegroups.com, Barry Song Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Queue-Id: 4047B1C0016 X-Rspam-User: X-Rspamd-Server: rspam04 X-Stat-Signature: 7u58c84jnsedrxn5iprasndp6n1hsu3f X-HE-Tag: 1710796360-978192 X-HE-Meta: U2FsdGVkX1/PZkJUoNlJTRwW+6XfY2kknDkoBMK7wZ987Z6LQhos1CcBdM/BWdsaxPp+CactB6AGxqLsMGpWTTeDVw9M0dkYhoKzRtUWo93T5xbYvPjAoAUTwqFIQCOnvhzZIduMsPVLPVZ9o1jl7ECOoEkvES7BV5VW2qI0H2qnfi1RulAeom3lsc8WiiwYFyMZjhPvJJcsYT8IHz3AcwS2pIj0imhVwU+xoMp04JoERst725IFKLrReNAD/cQJunW8bQ7q8wcTM1QgVY5m2cWJQfxJwkvqMzVJ16rME6nC/FA+aie52+0Sc57MWlYYXS7Q2g3q49luIori9ui8RSv/RTebDp1tf/mXmzsHOCYVklmQ41rk9gzZcSqwsa04lqSmzaJ28D51PpiuaEE5Q+kgoR5OThbFyJp+DsNez0qKEKBCrNQeEGBaPe1sc5M3u55ieG1gjQT/yhrvw23CPjyq95Y9ZNlByP5ZTn+zzZIkEme7F0lgeRUz04nzX01t4c7BnCdbDiLo3yoapswiZxnt6lty8GDHgLy9dk0ao/HPpVfJuX0Z7iJb4E1U5pBhFsi1Y3CfjeD3+9aFrE/mVQ+X6mCTRVQtgSWfn1imaKlaTI4LF963PlMDe2x1Ygn9SoxZ4dPt58v9k3aIF+M1Kwt2zlJ2EVvmEJLR1IsFA2UMgCEmngZJiiy6n7aDrXUVoz8bSPw7ixLtI8yRfWf92HXSvvooZCpZZ/eWN3ZckpY2wcyTHMkI2/33z1C77W5GFtBNQHJeajJQdHuJGeafrmuz3q7Jp+WExuHIPdQr5ydX67NHRccnKeNqfqgPSJ2g5S3428nHvAOcG9jHuZCS2TLMAQlF8hPWt7U6XsPCSLoJNRZ9sJNNgmxlPlJ42XbMnlZuzCA5/1sadgltw1uu8mhYF47dhigausxxOYbZIOnfsPvc06jjrvFmpn2y4SQSUcEg20K4y6KVCfEK/Je egN83lMh 3T3zsEqpkpVc8CPH+boqbp08wc9n+Me6j4f7fpdW5t6mmKZVwjByIU9SaSneOl2gzIsNS+yQX/PqwI5Ep1ILeMS/w3rTTQ7Mbzf1pwIXhZdmDG3Ig/Mj2pTRHD7fK6zcH44lpWLhuSA69gTiKHCSqDhaWrbdHuI4VNAoxLYsKwI8NZrfCMozGZXRz0pnzvycweuKqoIcsxYTSHcB9DmCs+xJhXUf3sNVEAdRVNQWn4K19wT3Qi8G55NPM+Kggjiwh6cHp7MyBqea5oU3ZRxx91p5SKemrE26tSrZ5o7/ftArA60RK7qCBVA8XN1wA7A0YuwEKu6IVNAqiv3CRua2wKoODa6KzyDAvH1h5CL4jsIG9FT67BV2UB8My1rx14jI6nfV5HzM8ZOIXPgUyogl9DJIr1jYCATTb9b34gIFlf1b+AxIBKNOhI+2g2YsJ9J5H/1aHhlvY0EFWXUpSDSRfxqd+8M9bItVpYfU94ZDBoDS599wPhdZFb4Up6pCs96FgZ8JjqdX4QaIr0hbx/UWUwnOyHimPvvRWCWpz7grJ3/6INFNPGvcUDyVK0w== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000003, 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, Mar 19, 2024 at 10:00=E2=80=AFAM Yosry Ahmed wrote: > > [..] > > > > I guess that is because on arm32 , we have highmem but > > > > sg_init_one supports lowmem only. the below should be > > > > able to fix? > > > > > > > > diff --git a/mm/zswap.c b/mm/zswap.c > > > > index 9dec853647c8..47c0386caba2 100644 > > > > --- a/mm/zswap.c > > > > +++ b/mm/zswap.c > > > > @@ -1086,7 +1086,8 @@ static void zswap_decompress(struct zswap_ent= ry > > > > *entry, struct page *page) > > > > zpool_unmap_handle(zpool, entry->handle); > > > > } > > > > > > > > - sg_init_one(&input, src, entry->length); > > > > + sg_init_table(&input, 1); > > > > + sg_set_page(&input, kmap_to_page(src), entry->length, > > > > offset_in_page(src)); > > > > > > Is this working around the debug check in sg_init_one()? IIUC, only > > > > I wouldn't characterize it as a workaround; it's more of a solution. > > I assumed that the debug check in sg_set_buf() is because > sg_set_page() cannot handle highmem pages, sorry if that isn't the > case. Apparently we are hitting a warning with kmap_to_page() though > as syzbot just reported. > > > > > > lowmem pages are supported. We may be passing in a highmem page to > > > sg_set_page() now, right? > > > > we can pass highmem to sg_set_page(). This is perfectly fine. > > So the debug check is only because we are using virt_to_page() in sg_set_= buf()? yes. it is checking if linear_mapping can apply on the buffer. > > > > > > > > > Also, it seems like if src is a lowmem address kmap_to_page() will be > > > doing unnecessary checks (assuming it's working correctly)? > > > > In practice, we consistently use kmap and kunmap even on systems with > > low memory. > > However, it's worth noting that for low memory scenarios, kmap > > essentially returns > > page_to_virt(page_address). Thus, the overhead of kmap_to_page shouldn'= t be > > significant on low memory systems, especially considering that it simpl= ifies to > > virt_to_page(). > > > > Another approach is to consistently employ page_to_virt() for low > > memory situations > > and reserve kmap for high memory scenarios. However, since we always > > utilize kmap > > regardless of whether the page is low or high memory, we don't need to = concern > > ourselves with this distinction > > I see. Thanks for elaborating. > > > > > > > > > Would it be more robust to just use the temporary buffer if src is a > > > kmap address? > > > > I don't think so because we will need a memcpy then. > > I thought that was necessary because sg_set_page() cannot take in > highmem pages, but you mentioned that this isn't the case. I think both sg_init_one() and sg_set_page() lack docs. as apparently sg_init_one() can't take highmem. sg_set_page() can definitely take highmem as crypto/scompress.c takes care of both high and low. and scatterwalk_map_and_copy() can handle both. Thanks Barry