Received: by 2002:ab2:3141:0:b0:1ed:23cc:44d1 with SMTP id i1csp220585lqg; Fri, 1 Mar 2024 03:18:02 -0800 (PST) X-Forwarded-Encrypted: i=3; AJvYcCUNTYcbHvYtfra38pKB/JYDnH83beZhLVZ3XCCq/ZvhUgXpGhjPwhqorXWoOxciFqJKEZ0+LGqbVFCFi6PndjFL26eR6yCuMZcJHbrx+Q== X-Google-Smtp-Source: AGHT+IGdFu5qPrWl5C3MoxKTb/fkA+WK93Sp5X/sQhAUg/3PTf2+I/0RjOZwYj69J5gydaJROCZf X-Received: by 2002:a9d:6e04:0:b0:6e4:738c:a034 with SMTP id e4-20020a9d6e04000000b006e4738ca034mr1412839otr.27.1709291882454; Fri, 01 Mar 2024 03:18:02 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1709291882; cv=pass; d=google.com; s=arc-20160816; b=r6b9iRCDCpdPiAA42nN7TwqJTi6pwRIoMCMiUtcuhA1GOd1Pi69r/itYmbKduQ/f/B m7P3aNmAbYXels/kDK++csJQYWDi1ED5z7N8i5tjEof44qqwGqaGu3uMS/LrsEqUQabV NZ5TYv1M/85zKmiyKQO+SOvHpN0zkRMU7nXEIti8JIeMI+BigQynBpSAfTDMOkKVEPV8 g72vkGDxZAkjvP4D3278VengEw5c+tsi9bb8zxSuTYMe9SEF+pNlCsj2ny+JwZOnPPEc BnXmD7Bmye+V1OJnKjtdLlD0lQaw2OlRGOe81ljXuaL9ZnVnKcpERRKRCeOsUVFHlAuB HTUw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:list-unsubscribe:list-subscribe :list-id:precedence:dkim-signature; bh=4PIzBFt3045Qodp8Tc294RcaDOpUCULciO01suUMZ2Y=; fh=I/c0KdI5CkHG5HL3PpdOZ0kiBCbCg6LiH1bsf1qEOr8=; b=ACp4E2rZ7HfmZwpwa9I2YGRCgr+pWQUguZCnG8gTL9KrE3X3bpp+tPv5TNhk8YNR1t JKNbgr31r9ty7DcOvwSEUhbdIn1gIWr93KM2e3D0z0gjZ9+aLHz/cWoSWQEqKO+tzbYq rXrcuOBs4RN/Pa29lTKaHaxkN1SpWdXNw1RADBTWCAoduU6PjmEiFKtRYuHnjfacg5JD fC5jXeW+EOyxQKapZcqRmhzG/Y4IbOKn5C6g8yadBOd5KBIbiHvBIIqPsV7dDuMNqvXs MTnS6tUuXLcczXofhEzSaeOEkqYnzUd3ib7cDiejeBM1S7CoOMdLD+++mOffiNhrtcPX ScuA==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=FckhzRTP; arc=pass (i=1 spf=pass spfdomain=gmail.com dkim=pass dkdomain=gmail.com dmarc=pass fromdomain=gmail.com); spf=pass (google.com: domain of linux-crypto+bounces-2424-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) smtp.mailfrom="linux-crypto+bounces-2424-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org. [2604:1380:45e3:2400::1]) by mx.google.com with ESMTPS id z12-20020a63190c000000b005dc85a7bfe6si3350748pgl.109.2024.03.01.03.18.02 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 01 Mar 2024 03:18:02 -0800 (PST) Received-SPF: pass (google.com: domain of linux-crypto+bounces-2424-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) client-ip=2604:1380:45e3:2400::1; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=FckhzRTP; arc=pass (i=1 spf=pass spfdomain=gmail.com dkim=pass dkdomain=gmail.com dmarc=pass fromdomain=gmail.com); spf=pass (google.com: domain of linux-crypto+bounces-2424-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) smtp.mailfrom="linux-crypto+bounces-2424-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sv.mirrors.kernel.org (Postfix) with ESMTPS id 1BEA4284825 for ; Fri, 1 Mar 2024 11:18:02 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id EB8316A8D9; Fri, 1 Mar 2024 11:17:56 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="FckhzRTP" X-Original-To: linux-crypto@vger.kernel.org Received: from mail-vs1-f54.google.com (mail-vs1-f54.google.com [209.85.217.54]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4342820E6; Fri, 1 Mar 2024 11:17:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.217.54 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709291876; cv=none; b=baQMZuOrPBwW43LCA6i4uTld2CRlHszgW1JjzU3NtS4wbMS3n6F04Ia4TQX+uJXsuRbhMcXupYVXawUCJHiJzR8eQzs3Yu2Uo3N6f6PxqVBi6BKg6o2MK0zupBcAV4uYjb7P24uBbCK/c6lAx2UZVbrUN561D2z43GA/2i0U4UM= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709291876; c=relaxed/simple; bh=D4Yzpe7+BaiWIZI79CoBEFuH6u33sbHObSSwGbqQXoM=; h=MIME-Version:References:In-Reply-To:From:Date:Message-ID:Subject: To:Cc:Content-Type; b=Eiw2ECyPmKy3zdt2Ndocw5RoV3iHAwTV0ga/hXz8bkuqjYCIzkCZP0D+b5UuvhscE0SxoUkmdtJdCfGRFNSwjPUFkU79AulSU+L1D9l9NHkCmJ0QOjWppXOvEJR/r7ntpJrdn2svjsXYDo7e3iAaIW5hXhVVRAWELBKmRfwQWwQ= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=FckhzRTP; arc=none smtp.client-ip=209.85.217.54 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-vs1-f54.google.com with SMTP id ada2fe7eead31-47265631782so444049137.0; Fri, 01 Mar 2024 03:17:55 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1709291874; x=1709896674; darn=vger.kernel.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=4PIzBFt3045Qodp8Tc294RcaDOpUCULciO01suUMZ2Y=; b=FckhzRTPYbWyFXi9YY/sEKAy+XOj6ov05hbjcmLGM68HWsQ5jZs+s4CcF4O/d7Hz5z oT9TzAH4NWnBOATDnOsBsrvG+kXO6Arqk7qLxvPL17rs4WzzM8gbnpR8poKla+kPlhUu EQEzonpCDWC2TWipoxd1/7k6wwqKk5wNKLSehPkOW3lV96DSO2ALyznauTBDEnudkqgD qFFvjYTzAzkadBaQsWdZm2Gs7UOCGdy5YiL8qG1s0INwZZF/ces7NLgpgXa/Opzz+Ghb mWNurQqkkakAKixewxTn4nPiXqgTkPbzGnWRdeoASlWbrMH+utScjbCe+zxDzSew2aJm Kk7A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1709291874; x=1709896674; 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=4PIzBFt3045Qodp8Tc294RcaDOpUCULciO01suUMZ2Y=; b=RP7249RX6wzSILBsJ+9TGU5YlJe9jv1qVJN5ntkdLKV5/5NbllgaTcG3gDU8Es1LGG Fx/U20VYV8Z6ZgrnwdmMCfNWuoXxM40U6Vi2UMYlKuy3c42xaf6qvICgLwiwpQhZliiU cXl4/gTmN0Boz+6crZ5vkLBq6liGOSKahTOi4GSpOuD/p3OAM2uQMFdDdxGJzgvvuubz xJBACs8j1QJtfvQR8hNlMzC4AWl4SypNj+4h23v+Tt/n3ZYlGtdD2gPkQtTWX5v3rLTt +eji3nsVamfUUxeVwnsyiGzbp7N81D8+3jKwpfH4FhYqIYWw1x22uz+xuHtpFKaUONcd QoEg== X-Forwarded-Encrypted: i=1; AJvYcCXuwpEwCeABbt7nrpzUOQEGLPzo4N2fnJFcCFENFZraNuYb9M1hG4D5rJdkVTWHm9O7/lBuEy/QGKdDmqK+QIZf9wdXcv1GTsIVTGisyb/dOG4UQP9tKIjP+dNfjl+43sKSjeQsG+7dCd2j X-Gm-Message-State: AOJu0Yx+ZeuiX1uzZP5I2PJ5+GKHyO1dBCujMbKkPbJpU1iOr+QHCYxf bnXqKBzt+E57LgTRQqVioJy4XQrknSnRTIskiQ9kPtX0P8B9xuD2Tnr4MZiahnkOTm1OphKjJKj EQNDHc/hju1Mj3DaIC3EYGTYbs0w= X-Received: by 2002:a05:6102:134f:b0:470:3ade:7b99 with SMTP id j15-20020a056102134f00b004703ade7b99mr1036570vsl.23.1709291874194; Fri, 01 Mar 2024 03:17:54 -0800 (PST) Precedence: bulk X-Mailing-List: linux-crypto@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 References: <20240222020617.31041-1-21cnbao@gmail.com> In-Reply-To: From: Barry Song <21cnbao@gmail.com> Date: Sat, 2 Mar 2024 00:17:42 +1300 Message-ID: Subject: Re: [PATCH v6] crypto: scompress: remove memcpy if sg_nents is 1 and pages are lowmem To: Herbert Xu Cc: David Miller , linux-crypto@vger.kernel.org, Andrew Morton , LKML , Johannes Weiner , Chris Li , Chris Li , Seth Jennings , Vitaly Wool , Barry Song , Nhat Pham , Yosry Ahmed , Chengming Zhou , Matthew Wilcox , Kent Overstreet , "Darrick J. Wong" , Christoph Hellwig , Al Viro Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Fri, Mar 1, 2024 at 11:28=E2=80=AFPM Herbert Xu wrote: > > On Thu, Feb 22, 2024 at 03:06:17PM +1300, Barry Song wrote: > > > > - scatterwalk_map_and_copy(scratch->src, req->src, 0, req->slen, 0)= ; > > + if (sg_nents(req->src) =3D=3D 1 && !PageHighMem(sg_page(req->src)= )) { > > + src =3D page_to_virt(sg_page(req->src)) + req->src->offse= t; > > Incidentally this made me look at other uses of PageHighMem in > the kernel. > > The one in copy_page_from_iter_atomic looks buggy because it assumes > that the kmap never maps a page if PageHighMem is false, which is not > the case for CONFIG_DEBUG_KMAP_LOCAL_FORCE_MAP. You are right. This needs to be fixed. > > > @@ -152,8 +165,12 @@ static int scomp_acomp_comp_decomp(struct acomp_re= q *req, int dir) > > ret =3D -ENOSPC; > > goto out; > > } > > - scatterwalk_map_and_copy(scratch->dst, req->dst, 0, req->= dlen, > > - 1); > > + if (dst =3D=3D scratch->dst) { > > + scatterwalk_map_and_copy(scratch->dst, req->dst, = 0, > > + req->dlen, 1); > > + } else { > > + flush_dcache_page(sg_page(req->dst)); > > I think this is still wrong for the > PAGE_SIZE case. The existing > code flushes each page sequentially but the new code only flushes the > first page. right, can it be fixed like the below? diff --git a/crypto/scompress.c b/crypto/scompress.c index 185d2359f28b..d85f0318f273 100644 --- a/crypto/scompress.c +++ b/crypto/scompress.c @@ -169,7 +169,11 @@ static int scomp_acomp_comp_decomp(struct acomp_req *req, int dir) scatterwalk_map_and_copy(scratch->dst, req->dst, 0, req->dlen, 1); } else { - flush_dcache_page(sg_page(req->dst)); + int nr_pages =3D DIV_ROUND_UP(req->dst->offset + req->dlen, PAGE_SIZE); + int i; + + for (i =3D 0; i < nr_pages; i++) + flush_dcache_page(sg_page(req->dst) + i); } } out: > > Thanks, > -- > Email: Herbert Xu > Home Page: http://gondor.apana.org.au/~herbert/ > PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt > Thanks Barry