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 5D807C282C5 for ; Fri, 28 Feb 2025 09:55:14 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id EC3CF6B0093; Fri, 28 Feb 2025 04:55:13 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id E73406B0095; Fri, 28 Feb 2025 04:55:13 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id D3B2B280001; Fri, 28 Feb 2025 04:55:13 -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 B601C6B0093 for ; Fri, 28 Feb 2025 04:55:13 -0500 (EST) Received: from smtpin17.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 4465812063A for ; Fri, 28 Feb 2025 09:55:13 +0000 (UTC) X-FDA: 83168895306.17.D49DE66 Received: from abb.hmeau.com (abb.hmeau.com [144.6.53.87]) by imf04.hostedemail.com (Postfix) with ESMTP id 1746A40004 for ; Fri, 28 Feb 2025 09:55:10 +0000 (UTC) Authentication-Results: imf04.hostedemail.com; dkim=pass header.d=hmeau.com header.s=formenos header.b=A2OX01+o; spf=pass (imf04.hostedemail.com: domain of herbert@gondor.apana.org.au designates 144.6.53.87 as permitted sender) smtp.mailfrom=herbert@gondor.apana.org.au; dmarc=pass (policy=quarantine) header.from=apana.org.au ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1740736511; 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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=3QxnKmPCIrpbafs8gtBdhqxy0ZPebazEt9nrU8BgjK8=; b=YdqLP2YD1eyDYbr4o0QA3KoHQhXkVxVecww2Qq+3t+55yA86ulAnJ9dDSJcAjHYIRAzoof pmLFKA/K8dtEqxwB8pi57SaWE1eQehJlLTsEIl6LOdHDnA3L06xmqOhwjaVWa1ZqDD50VO KG0nYK+sueYiZoAap712efv/SnzNjns= ARC-Authentication-Results: i=1; imf04.hostedemail.com; dkim=pass header.d=hmeau.com header.s=formenos header.b=A2OX01+o; spf=pass (imf04.hostedemail.com: domain of herbert@gondor.apana.org.au designates 144.6.53.87 as permitted sender) smtp.mailfrom=herbert@gondor.apana.org.au; dmarc=pass (policy=quarantine) header.from=apana.org.au ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1740736511; a=rsa-sha256; cv=none; b=gN7Tmet0rqBJBo9DIqAr/xlArh9Ed+YK2ZjcGbdIu7DYJ6ee/jZteFVe/hxFwvWX0+UxZ2 quKeC2JbEFYeWnGpCXW3RP6St/6jgnLd/SGJV1pUL81G8WNGHG6xIS7bDGu4uiJcewz7ZK 13niW0sk34ntEzxPXiW/p1dhD0RCyeQ= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=hmeau.com; s=formenos; h=In-Reply-To:Content-Type:MIME-Version:References:Message-ID: Subject:Cc:To:From:Date:Sender:Reply-To:Content-Transfer-Encoding:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=3QxnKmPCIrpbafs8gtBdhqxy0ZPebazEt9nrU8BgjK8=; b=A2OX01+oOL3q4Tt5zHvZlhhlf5 h37RmCKoUNihQQFTL/Kymqg0P0VJlmnFmQrwsLhyOY1MLaV9uH1UxDZaqea5t1Iw/E8g1DpvVxRMK g2kA6FXbCvNUFHJHWy5wZ1MtSyAt38MqWRpFdYKYqedWcVwDTIlU6twN1TavsExoQg2y/p7ILnWCZ KvmK8XXdX+S9XfREhdAmmUanD1arYnll5tf62o0VVjCkVwTgQZs2W8sr1asiN2yWJBNCt7ygVym2N bGQfrd/1UdMBTn/XgD8V+XsnvL8WaddXl0OZ13LBh9VfFD6Fkn8zC8wJWZ9spkLzDQILTgZptB1KH vvOF/qWw==; Received: from loth.rohan.me.apana.org.au ([192.168.167.2]) by formenos.hmeau.com with smtp (Exim 4.96 #2 (Debian)) id 1tnx53-002XTu-1H; Fri, 28 Feb 2025 17:54:54 +0800 Received: by loth.rohan.me.apana.org.au (sSMTP sendmail emulation); Fri, 28 Feb 2025 17:54:53 +0800 Date: Fri, 28 Feb 2025 17:54:53 +0800 From: Herbert Xu To: Yosry Ahmed Cc: Eric Biggers , Linux Crypto Mailing List , linux-mm@kvack.org Subject: Re: [RFC PATCH 7/7] mm: zswap: Use acomp virtual address interface Message-ID: References: <153c340a52090f2ff82f8f066203186a932d3f99.1740651138.git.herbert@gondor.apana.org.au> <20250227183847.GB1613@sol.localdomain> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Rspam-User: X-Stat-Signature: o8sff9nnxcfspy5r9mpomu6reade6yqk X-Rspamd-Queue-Id: 1746A40004 X-Rspamd-Server: rspam07 X-HE-Tag: 1740736510-606534 X-HE-Meta: U2FsdGVkX18jdC3Mom+ZX+bS8NmLLdc60bmH39jLnDY4slyXCIGVeExQUcgY1VHWni1ENCi//TvfCCg8YAXE4VVChT+A4wvN0/z08jeatzqKFcykIceThjpMBHbeyzzMMDbw6HZQPFPq+9FfL4XEfkw3wkxub1HtMeG2u8H/0Aiq+qW60wMkg6YqZ68Ce6XVhvRtofkQjOaxJeBeATKAy4R4UQ190LR2z5SeqLse02T4yYkB1sjGDKMYFAxg81wWGw2d2PJ6xT1jIPIRZaFTA64G5UTbwTB5n0A0/VEY2i8kc/Rhv/A7fXIOToJZuNuVCfmnzj/LdUzMOSAFjjkZfeppI4qyHvDt/pmB2M9lPGi/0I5QAGo9OEzNkMXv4wQdxdqNAvpkuyumZHqCmu0e0pmGtZKnm02ihYtpLoT9fIlqY9jwurl82rblvZm7/akflfKNftNvDMf/29bghyuqEO7cZASc0ObcCrO8YVFM137UpSac1COZ6Ez83WgU34yYPIP8YNGLZ0WfG4Df0ialmv3fyHOJ2UPKDzjhi8m2g+nwPEHofomgohxpwsdWnZZrRLgfh0CvJM9eszWX8msl+BlN3jSJpJyl+jiSDTAGke7btCB/eFB4BBCMsiF+cWdALIrWXNUDeH1WLypn56z9iHZU/zEK342swMFUS9OAHOimBM4/IKnResHDKWlrrwbinOQ0CkAkG23Qv3Kqj3sv1xpd+tEn8O2S+5Aw3/yELj/KUn4sM+KowyFFln8Cy/aOMMF+fnhG19gOVfBD/RSASe6ELrkpPrv139q9zeVuZ6af+P7QuUftcpGB6OkcJwjiJJCcyaxASHjieu8IuJd7fppB3QobUCohHuQvPRLR/hfNIy6tB6z1x9ZZgIJ93zZ5INVN6GdhV3nub4oX4pEqgxPFylHFZReK7IPdRWcuwy/2jCWhXWXRBTvpPokSP5Za5AZGiUqYhjrOD5xYP9R RCkzn42Y gR7F4FDWIrNftATXRQkNjOdw43y5mVUqCdKI43LjZCp0ZuYrZ/czlSxg8tpKHslZIQP/CvhbxGBMkYY9aIPNXrv8h7IdcWwblXkqOvEIncDMWTJcY7PzwyfTe+IialzWXKOqc9hXpyv/rX6t6LjMWK3DQgs7sVU4SECFvQuradngOR6qBz+zC3VGud7UpnouUzjfe+UXzTDYo9YJDg3n7KBDFpf3+WrTVaN7XRVvuImllknGb7mKH14/D0q3movMqkn5PRLIBWPaQieo= 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: List-Subscribe: List-Unsubscribe: On Fri, Feb 28, 2025 at 04:13:08PM +0800, Herbert Xu wrote: > > I'll respin this. FWIW this is what the interface looks like. Does it look OK? Longer term hardware offload drivers should handle these non-DMA pointers directly by having their own buffers. For the time being I'm simply redirecting these to a software fallback. diff --git a/mm/zswap.c b/mm/zswap.c index 2b5a2398a9be..2fd241c65f80 100644 --- a/mm/zswap.c +++ b/mm/zswap.c @@ -994,30 +994,16 @@ static void zswap_decompress(struct zswap_entry *entry, struct folio *folio) acomp_ctx = acomp_ctx_get_cpu_lock(entry->pool); src = zpool_map_handle(zpool, entry->handle, ZPOOL_MM_RO); - /* - * If zpool_map_handle is atomic, we cannot reliably utilize its mapped buffer - * to do crypto_acomp_decompress() which might sleep. In such cases, we must - * resort to copying the buffer to a temporary one. - * Meanwhile, zpool_map_handle() might return a non-linearly mapped buffer, - * such as a kmap address of high memory or even ever a vmap address. - * However, sg_init_one is only equipped to handle linearly mapped low memory. - * In such cases, we also must copy the buffer to a temporary and lowmem one. - */ - if ((acomp_ctx->is_sleepable && !zpool_can_sleep_mapped(zpool)) || - !virt_addr_valid(src)) { - memcpy(acomp_ctx->buffer, src, entry->length); - src = acomp_ctx->buffer; - zpool_unmap_handle(zpool, entry->handle); - } - dst = kmap_local_folio(folio, 0); - acomp_request_set_virt(acomp_ctx->req, src, dst, entry->length, PAGE_SIZE); + if (!zpool_can_sleep_mapped(zpool) || !virt_addr_valid(src)) + acomp_request_set_nondma(acomp_ctx->req, src, dst, entry->length, PAGE_SIZE); + else + acomp_request_set_virt(acomp_ctx->req, src, dst, entry->length, PAGE_SIZE); BUG_ON(crypto_wait_req(crypto_acomp_decompress(acomp_ctx->req), &acomp_ctx->wait)); kunmap_local(dst); BUG_ON(acomp_ctx->req->dlen != PAGE_SIZE); - if (src != acomp_ctx->buffer) - zpool_unmap_handle(zpool, entry->handle); + zpool_unmap_handle(zpool, entry->handle); acomp_ctx_put_unlock(acomp_ctx); } -- Email: Herbert Xu Home Page: http://gondor.apana.org.au/~herbert/ PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt