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 E37FFC3DA7A for ; Thu, 5 Jan 2023 16:49:18 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 313768E0002; Thu, 5 Jan 2023 11:49:18 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 2EA2E8E0001; Thu, 5 Jan 2023 11:49:18 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 18B1E8E0002; Thu, 5 Jan 2023 11:49:18 -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 05E068E0001 for ; Thu, 5 Jan 2023 11:49:18 -0500 (EST) Received: from smtpin05.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id B6453AAD4D for ; Thu, 5 Jan 2023 16:49:17 +0000 (UTC) X-FDA: 80321330754.05.0E39401 Received: from NAM10-BN7-obe.outbound.protection.outlook.com (mail-bn7nam10on2062.outbound.protection.outlook.com [40.107.92.62]) by imf17.hostedemail.com (Postfix) with ESMTP id 68A0040010 for ; Thu, 5 Jan 2023 16:49:13 +0000 (UTC) Authentication-Results: imf17.hostedemail.com; dkim=pass header.d=Nvidia.com header.s=selector2 header.b=O5XJelbJ; spf=pass (imf17.hostedemail.com: domain of yishaih@nvidia.com designates 40.107.92.62 as permitted sender) smtp.mailfrom=yishaih@nvidia.com; arc=pass ("microsoft.com:s=arcselector9901:i=1"); dmarc=pass (policy=reject) header.from=nvidia.com ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1672937354; 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=46HH5jU30E4uMtkSMdWxGR48qFBI2bk7uI63FWW7Pnc=; b=o0PRwRt04yzmxsBtsNZhEJJ0tIWGD39qgrcWG3ktipQgkZ+ed4IvV/BvI2oWzYfqGCGC8t heRp7AxUHTyqhdEaBijwiPZalGHfWGId8Xm1Qo6SdzJCRo0doNIftko1dVbMdzvD+A4Qcl QhTqU/UdPn7LzEgGJzgees8+gLQEiWo= ARC-Authentication-Results: i=2; imf17.hostedemail.com; dkim=pass header.d=Nvidia.com header.s=selector2 header.b=O5XJelbJ; spf=pass (imf17.hostedemail.com: domain of yishaih@nvidia.com designates 40.107.92.62 as permitted sender) smtp.mailfrom=yishaih@nvidia.com; arc=pass ("microsoft.com:s=arcselector9901:i=1"); dmarc=pass (policy=reject) header.from=nvidia.com ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1672937354; a=rsa-sha256; cv=pass; b=YxJKUZja0r66S5W2OHsK7lLD8MCOtdZiP6o2raacj7ksTVwJbc+Ii+c7Elbl6kCID5CD4G 3GgYEJxs519qYjd4wwZoy22ZP0fRTuopUVw3vY4TOh13pfZPnMj4ygbJY+NB/R8YIYqI1w 0L9zT9jA3hP/Lj8q4hnU0VS3+M2zFSY= ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=MBlFFwPLQO/1TFReSPwfNLv3MywTb7SuI/SAggATRPHQ/wddtkoOiAuqM4hLsGOQet+kh0s1lnMFltUY9nr5xP5W0VopPwwwhR2Dusq5p6G6vAR6tOLihmlWmzWkpXa7SuUVNsec4qY2VSAFJc/YasR/psr85P4BbDeNFkcC5xFzIr5V0O/9LDgwR63XEfg+vX9l38qvFyKD7Fb6nDxV/NOX9R+mv/DwGwi5wUqWsLxCPckMHWKjU8DFeJ3/GQWH6eV9B+ozeqk7Z3G1D7rdxqBQy741inUFkGecQPJRy7juq+dUzN6A10qOmdir9If9v2trTh5PQ5fpXniSLFBdow== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=46HH5jU30E4uMtkSMdWxGR48qFBI2bk7uI63FWW7Pnc=; b=JWG4CxgkrQ7yJYoEhfMzqiC2qiacHi3k8c3t+fVh7s+MoHRkUfi7lwaAstgMPi6VeQk6OCGbubUCNrzTAe5sCNtzZHCxQZruUDH3pzAJtWbvTOMBDe0cqNTkHOR8IUCDEwF3jtH8YBDW0W7KL28CmwbxwIvjrBys3nVR94gwfy8CofTi+iYRgOGJgu/TLTKlraOWmI/xCwLZXu8Fos5SWB0FR63RM1XOMFc2eK0IvWDM6T22mclTv162lTZY3Y9pFgDom9k+JCfp3Q++GFYv0jfa14x8jp1CDY7Fja9cf2Ucl4grXh5rKFrhE/1GZhGtcZLOJQz6XLWBC0CLCGtYrg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.160) smtp.rcpttodomain=vger.kernel.org smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=46HH5jU30E4uMtkSMdWxGR48qFBI2bk7uI63FWW7Pnc=; b=O5XJelbJoWlO04Gpwu4PWEfkKXLoR2zn5bsdw+TYJAlWcyZ7lvmR/DyZkuFIq76VN+I6MhNSEk2sWn9MHo1QKOlFT0ox4U/naJcyBOTa2etzkP7pY5Yq69IPJEDf8WENiDVMhZg0sZhjQm+UXXQOzlyTES0qEEl+nPcwLNqF7bL7fHTAdaM8+D30nJdearztkNMNGw694Rch8zhHyp/Eunft0woNLeGxCxbZ4aUIxzTqZp5v8w9Ap5T1peKjZlijiyP0AGdQJ+NiWAa1NltmmasMzVmtzYn8OlxO8JUf2mP1iO2RDV6wHE4kTjbXHZuhnkz3sJaSbKlK4Xrt14F4aw== Received: from BN9PR03CA0691.namprd03.prod.outlook.com (2603:10b6:408:ef::6) by DS7PR12MB8347.namprd12.prod.outlook.com (2603:10b6:8:e5::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5944.19; Thu, 5 Jan 2023 16:49:11 +0000 Received: from BN8NAM11FT010.eop-nam11.prod.protection.outlook.com (2603:10b6:408:ef:cafe::f6) by BN9PR03CA0691.outlook.office365.com (2603:10b6:408:ef::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5986.15 via Frontend Transport; Thu, 5 Jan 2023 16:49:11 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.160) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.117.160 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.160; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.160) by BN8NAM11FT010.mail.protection.outlook.com (10.13.177.53) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5944.17 via Frontend Transport; Thu, 5 Jan 2023 16:49:10 +0000 Received: from rnnvmail201.nvidia.com (10.129.68.8) by mail.nvidia.com (10.129.200.66) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.36; Thu, 5 Jan 2023 08:48:55 -0800 Received: from [172.27.14.162] (10.126.231.37) by rnnvmail201.nvidia.com (10.129.68.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.36; Thu, 5 Jan 2023 08:48:52 -0800 Message-ID: <3b48a6c7-7834-6ca0-db85-df3c23ac745d@nvidia.com> Date: Thu, 5 Jan 2023 18:48:50 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.6.1 Subject: Re: [PATCH] lib/scatterlist: Fix to merge contiguous pages into the last SG properly Content-Language: en-US To: Jason Gunthorpe CC: , , , , , , , , References: <20230105112339.107969-1-yishaih@nvidia.com> From: Yishai Hadas In-Reply-To: Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [10.126.231.37] X-ClientProxiedBy: rnnvmail201.nvidia.com (10.129.68.8) To rnnvmail201.nvidia.com (10.129.68.8) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BN8NAM11FT010:EE_|DS7PR12MB8347:EE_ X-MS-Office365-Filtering-Correlation-Id: 301bfc73-1c2f-41c3-dad3-08daef3cc527 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: kXprou7LtqZKhBapJZ7jh0Kc0Nb7PliXo3stHLdb5P8pwLRf+E2q7DL7olvNwCtrQk8W15INd24DPG6qVrKccOivhoaW2FmAvK4zHuJIapU0Sh1JBrONAO6ZUObKjVWdaEKpWsGRoq4kbRgZ0y/389FWR32E6b7bI1i4dywavkeaMZ+05DzVJ/SDJNqT+2ezctOs9lYFeHCEmqLw3w8fe8SQRj8DOkGOb4UJRx5THJaei4sT9i5G3CVpZ8eEVxAWXx2NqysUUkxCodQLHQqWHeRxOhJ8Pj1buaCfYbyWDw7XZMVQFDLXXQtHGk+i+H5SyNufNKYJEU8bYztRuH2aPCVu7sIOHJYfaEFUSzXsBHEsU5TT8x6u1E+sEAreoN5uiJVqaxcWdp4eMv7uoxycVLR2NQijKAhkQh7qxgKIRQWNASL+I5UA1X9Z420StuefZ308hSiScsEyD67S9Vv+jYdt5rBh61LqawE4HMr4Wyl2HMTNmhz/wvFYAp8f3W/L3Z/xTAMKSFqsNCEPzO769dVaXv2gOjTZBu3O5Cgq91w9iB9qaPNB/isBwSvppR8E8msmVdJOk5DVTbXpJK+v2zAuW4zlHOHLIhDSzRaEt0rHFLCmt25AzjBtNiOe0WwUIHqq9mslru4GfE1wrWFcXSXLw9hlT+LrKSwn/M5fqMly+x/llEvnvVhUSJyxe/+kmKxFs/E5O78zqVp7cU89vkmAgsT7Z6fjRg8FvnTMtQg= X-Forefront-Antispam-Report: CIP:216.228.117.160;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc6edge1.nvidia.com;CAT:NONE;SFS:(13230022)(4636009)(39860400002)(396003)(376002)(136003)(346002)(451199015)(36840700001)(46966006)(40470700004)(70586007)(5660300002)(6862004)(8936002)(41300700001)(8676002)(4326008)(2906002)(16576012)(70206006)(37006003)(316002)(6636002)(54906003)(31686004)(478600001)(2616005)(336012)(186003)(26005)(82310400005)(40480700001)(16526019)(107886003)(83380400001)(426003)(53546011)(47076005)(82740400003)(7636003)(356005)(86362001)(40460700003)(31696002)(36756003)(36860700001)(43740500002);DIR:OUT;SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Jan 2023 16:49:10.8646 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 301bfc73-1c2f-41c3-dad3-08daef3cc527 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.117.160];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: BN8NAM11FT010.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR12MB8347 X-Rspamd-Queue-Id: 68A0040010 X-Stat-Signature: hh8ihm48n4hmpagokyyp3bpkks5ujx1g X-Rspam-User: X-Rspamd-Server: rspam08 X-HE-Tag: 1672937353-591747 X-HE-Meta: U2FsdGVkX1+RJS5rBgxKsFjWsgGu/PPFtDMVYRGPzpS9XyWvd4G7lLgYh3WlJQBOud1jEexEX0hpi7cvO3c1NwWyFx6WR3B+t4q/jZVsXl2yoMl7XSdg+sY6HSv/kG7hpBrww/3gj3d7Oos6hiKsgiCe08bsTvc+jU8TUL5RA6WyNM0zEyMy2IA0GB6Zf9MvPyiPYcUYBxWT/o4nlIAm6Cm/uS1PiFYt/zdLPK8OKkf1XzmbksAApC+7C/whhgWtN7SXoZ63SpXZD1dDoq6hx8jcUbOZYcEOtnKHqP7GlCejXsyjKU/1Yb1Mxu/xLcnEbr9bY0liwtAIKoCExyjCkh3C+fPU4B5FxliFTEdyqm7jUAT9rtrAGApT/lKsPT8kKP58dXJhXmLZhYu0Dqe5s3h8v822rw/2B7dyRgzrejFpY5my8hvSe9YeQO77Ce0eb2SyitVf4pKtKa9gRpDXXqygMuIVzNXsGqQY9WfNi07/2zo57KkcH9VDs9HBOkFn2IVBFRNTV/sl41Omemp5d/2IDGT0ExKc+vPS1Oe+dqPN12L+RTE/QSdbF1YEsK79CR+HYD1igsYmG7/WYHlGRJCPctjW0E4rs9gy43NWN0V6bxuiYPF+3RJV8bIXzUlhZT4nzPA9AVGdtVIq2KLSFdp6TYpBXI1Rp+xUI38rpv2cUp4lqzvVrxmKjhPWYG/eR1ayYAbS/AWyImra0tS8c+QuNWcDenblXw2vc83a6kC4x106ozUItCkDeotdsxIP1Kfv8PrOTcxOOjBiRVXRshQAhbvvdiTgFneSFah+iU9TdL7euhOynMKRBioMT3NvrKBmV1E3zPxITqGPNuFLGDXd5nSWMshh69Tq+EI9K4v7ZEAX3CHC2oJihZHTjDHR5M0DQZZrdU98MjV5WgyJEU2buTubKyeA6jr5D/Oznn24djG72lFtO5gYMgjIkeMb 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: On 05/01/2023 15:36, Jason Gunthorpe wrote: > On Thu, Jan 05, 2023 at 01:23:39PM +0200, Yishai Hadas wrote: >> When sg_alloc_append_table_from_pages() calls to pages_are_mergeable() >> in its 'sgt_append->prv' flow to check whether it can merge contiguous >> pages into the last SG, it passes the page arguments in the wrong order. >> >> The first parameter should be the next candidate page to be merged to >> the last page and not the opposite. >> >> The current code leads to a corrupted SG which resulted in OOPs and >> unexpected errors when non-contiguous pages are merged wrongly. >> >> Fix to pass the page parameters in the right order. >> >> Fixes: 1567b49d1a40 ("lib/scatterlist: add check when merging zone device pages") >> Signed-off-by: Yishai Hadas >> --- >> lib/scatterlist.c | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) > Reviewed-by: Jason Gunthorpe Thanks Jason > > Also, I'm looking more closely at '156 and this is not right either: > > - unsigned long paddr = > - (page_to_pfn(sg_page(sgt_append->prv)) * PAGE_SIZE + > - sgt_append->prv->offset + sgt_append->prv->length) / > - PAGE_SIZE; > - > - while (n_pages && page_to_pfn(pages[0]) == paddr) { > + last_pg = sg_page(sgt_append->prv); > + while (n_pages && pages_are_mergeable(last_pg, pages[0])) { > > This change will break things like multi-page combining, sub page > scenarios and maybe more. > > The contiguity test here has to be done a phys, it should go back to > struct page to check if the pgmap is OK. > > Can you fix it as well? Yes, I have locally some candidate patch as you asked, on top of this one. I would like to run some extra testing on, then may send it. Yishai