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 616C4C282E5 for ; Wed, 5 Mar 2025 19:34:14 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 6B372280013; Wed, 5 Mar 2025 14:34:11 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 6330528001B; Wed, 5 Mar 2025 14:34:11 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 30902280016; Wed, 5 Mar 2025 14:34:11 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id F3226280013 for ; Wed, 5 Mar 2025 14:34:10 -0500 (EST) Received: from smtpin02.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 1811AB6828 for ; Wed, 5 Mar 2025 14:48:28 +0000 (UTC) X-FDA: 83187778296.02.7779B5D Received: from mail-qt1-f179.google.com (mail-qt1-f179.google.com [209.85.160.179]) by imf03.hostedemail.com (Postfix) with ESMTP id 363F82000C for ; Wed, 5 Mar 2025 14:48:25 +0000 (UTC) Authentication-Results: imf03.hostedemail.com; dkim=pass header.d=cmpxchg-org.20230601.gappssmtp.com header.s=20230601 header.b=cJDxry+q; spf=pass (imf03.hostedemail.com: domain of hannes@cmpxchg.org designates 209.85.160.179 as permitted sender) smtp.mailfrom=hannes@cmpxchg.org; dmarc=pass (policy=none) header.from=cmpxchg.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1741186106; 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=24D6lXOQ+l56ePiaj5GY2KChhMLcLv5f1xh2j/ejLd0=; b=J53l73JVBvYIhYAxpI3ZVz9Lu7t6JfCHeOTyW7G/3NEM1fFoOx18IsmBKz20R0sdP7n3oy aHlUcDV8OA7z/pqDTwiDejS9f69eisOVjxvEjIjR7J4cW6N3Rsp8w2ytR+3opgmL643Td3 pI6qAQ7o4VmtTF/vJ0FFolBgarGD8Kg= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1741186106; a=rsa-sha256; cv=none; b=7I8ibFd3klLdK2VLZh9+CXo1bf6UXk+SHVx46/fIXOuazxBkJfo8knZhwx9d39+FTo7cZG obcov0PfOPY55otgWaJInxzV8rX3N8unFwRX+SI/37qDIaP3Cc5dI90ApP9sQxvAyD35yU HBW5cX55vEPiNVxFLGGyCnhr/6IGUqE= ARC-Authentication-Results: i=1; imf03.hostedemail.com; dkim=pass header.d=cmpxchg-org.20230601.gappssmtp.com header.s=20230601 header.b=cJDxry+q; spf=pass (imf03.hostedemail.com: domain of hannes@cmpxchg.org designates 209.85.160.179 as permitted sender) smtp.mailfrom=hannes@cmpxchg.org; dmarc=pass (policy=none) header.from=cmpxchg.org Received: by mail-qt1-f179.google.com with SMTP id d75a77b69052e-471f686642cso62454171cf.2 for ; Wed, 05 Mar 2025 06:48:25 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cmpxchg-org.20230601.gappssmtp.com; s=20230601; t=1741186105; x=1741790905; darn=kvack.org; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=24D6lXOQ+l56ePiaj5GY2KChhMLcLv5f1xh2j/ejLd0=; b=cJDxry+qWfc9hoa2XSqc782ejCBfyITz7SfjK2tg1X+embTVWRgyS44Wirbm9g2QBn wQSwrLyIY/WtMR+pZklA83dtP9ubGlqhxYBXvo9alh/3PtqVBq+uaUZPpeWVpp9xxJYc V2ILlwsXgxgB4JLFwUbQYhcl16ROrNWyMpdQg1Lyuv5bsBKHXANRZXNs4NGpfMHMuQnh vdyfY2GSL3g+0oKQ+8sTRozhVQNoGC0IKPo2z8DTZQhJJAtpX1KgziWnYjVy6qSasd9L 20Fl7rdTlK0vJw8TgzEgC+83PeIyaqC6qpUMRvY6fSDpXlT35G730+EYrH1vZCPpydnC Q8nw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741186105; x=1741790905; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=24D6lXOQ+l56ePiaj5GY2KChhMLcLv5f1xh2j/ejLd0=; b=olAzzCAXPRTH1AEGlE8h0ocqOu02tGHvA/46HhdoeT/pwKeH5aDJ/hT7r1yu9JLXpb r1Y6YwDCkMBrlluw2hRTMBAz4jWUdAZQ7h2e5sjT7s9B72fCFJNJV3acq+dTSB8a/iG7 EwtY/Fpuc5y9WJmkYo2ZS9clRh1I6HYHzA8UzRDyHo7xek26NEamJVfA4a1CYfmTRKK8 EklKiZgGPBQF0mnaUTDnujRQenZPPoBSPg0c/VKkn1Us603GEqzvj9zzkADYctEQVnsS ZjgQ55iwWx9e79qEnnXle0n2i4MuPZj4fl4QGtHqP6+ATTlGwpRvMsTssMzbIhD1+XCW rIdA== X-Forwarded-Encrypted: i=1; AJvYcCXDbc8qc4+4/9K21I5I/aaG9sXzTP9K6QUSOLYbIbkUSCArBEMWL7cPDgOOP85gcrclHZ2gPpyfQg==@kvack.org X-Gm-Message-State: AOJu0YyxApWo4xsdmmNXx7Rkge7xYWUqNVMn0fdydKIAI+PZaf2yyG21 XoSGNYk6JLnKmTSdoN3dDYtknuH1x8ptHG6rm3Jbazop+kvkYcnMwmI4tdbqcOk= X-Gm-Gg: ASbGncs6LEFZAjU7+ftX+GtBEXheQBpLGgsVDq5LFgmz88j2RVhOsM80RIv0u1C10OV Pyn12fgqBtpXzWLWpH9bRh/4k9RP16kPBwt8PNh/JtdpUdXyNyJ9804P0JwzzAZShsJ4oH+cVld tumCLyW2tjled4AKV/cGOnDCUrakqjar0uWh/cYGevQLAPLrBnpw78Ui2awQ4e+xm0MD+oRBSH+ Sj+oCYsyNAbqT7BTik2Cli8A9e/KftBA1v1dgbaOA3+zhVDw3xY1yrWOFibYpJGlvZ/Uq9rRlSo HZq015NTr832oBIi2+E/NuhhkBufOyFIVHdVoQCvQzY= X-Google-Smtp-Source: AGHT+IHWvywE6Bow3A7Liu9GCH87L5pfv4FN3FUQ8NcLUcFsOL/tgYX1eDIq8dtWSOkW13iZRkbEGA== X-Received: by 2002:a05:622a:52:b0:472:2021:b76a with SMTP id d75a77b69052e-4750b23c744mr53858061cf.11.1741186105155; Wed, 05 Mar 2025 06:48:25 -0800 (PST) Received: from localhost ([2603:7000:c01:2716:da5e:d3ff:fee7:26e7]) by smtp.gmail.com with UTF8SMTPSA id d75a77b69052e-474ff3aa7d8sm22803941cf.30.2025.03.05.06.48.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 05 Mar 2025 06:48:24 -0800 (PST) Date: Wed, 5 Mar 2025 09:48:23 -0500 From: Johannes Weiner To: Yosry Ahmed Cc: Andrew Morton , Nhat Pham , Chengming Zhou , Minchan Kim , Sergey Senozhatsky , Herbert Xu , Thomas Gleixner , Peter Zijlstra , linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH mm-unstable 2/5] mm: zswap: Use object read/write APIs instead of object mapping APIs Message-ID: <20250305144823.GB185622@cmpxchg.org> References: <20250305061134.4105762-1-yosry.ahmed@linux.dev> <20250305061134.4105762-3-yosry.ahmed@linux.dev> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20250305061134.4105762-3-yosry.ahmed@linux.dev> X-Rspamd-Server: rspam02 X-Stat-Signature: zxd6w39pyppd8btq38hji3pydfaef836 X-Rspamd-Queue-Id: 363F82000C X-Rspam-User: X-HE-Tag: 1741186105-529826 X-HE-Meta: U2FsdGVkX19Cl9vHl56C+d4oDjWIvE0HJ/mlvCpuWQWUi7PT8C8Z17L95NeZ903c+pQtDmoKP2G//OXefzKoDP2ipwwerfe9FoMxi/N8+GIf/A5UuqZQ9NToCshFN/gk931fG7M/PpfK3g7//nZSpfmYJOKEnb8ykUA4hey8zbEm75nI3lmWtvkmPZovOLcB7IJNmYE0E/SCC4UacYWDCHu0NeoGOE3s2v/tDNu024OoauSSZDaRRUqxC2tpo3WZvyh9L1ZJEHK3bo549QJbyDsmn1+DSIioBJJhDlt81iD1t65CckrvRI8h3jjXR3iUT79+xHljPjXbqSLoK1tgbCz5zu9cTuGn4LZBLTDzcyZRmeqqKvzk7vQFq3Hc2wCWyDb0Et6HyeJrDEvLw+tQRg+Ifnw0PQ4/VDshU7uaethJ1AQrk1IxTYiyn5JV6XPAoKvYdhkCr/LCpz3e5JRum7x312rW+ugUjDguMkWXD4wOgbsamDEy2c0bvT66HGdiFKhvLYnMChcwHtk0Vni3QeBsQQreVI6BCfBitQtY08drbPUThVTiniAUQczKwcaf3oOwJb/QHLWTXT7TMkVLe1PQsiUnSDu7x/GIKz/VZS0AxHjhomqtqL06MA24dLlAePjqkKePquLyW10tmRK8dj4+TpDtUy+/BAEvMBeXiOamw5u8EXVE5U0v8VvhS8+kEvsu80GrfgdhrQJ8ZLPVqlQut+2xooGy4dFjYa/yhIZGN0Ecu/ePeQd2nfXvxr5cO3GRrsrZ6hGZs4sDq06O7sDpnzM7us9do87sorL/uj0wN2PKvwlxhuGy70n0c/3Nbk+8iWd8uvAFA8+4fvXl03LfDe/5Oij8/67xzSB1H7wlJIePZsnTaIq1efAMPtUH6SEW1wRoU2g4P3SFZS++uy5ibrsBaizQcgF14jOcJREfOo+LXtMb4eu29/ZzbfuXGhYmPGglSIWQh9fe2Sj CxaOJ1pq KsGtfAvIuLhF2gUzWcVMYR2HJ8RXfwSSBtJ+Fjic/o43y/sVg0uEREihn2t9jlyNnx40ni1CYl3BA8KML20ijQjQ8+QbErDlnEjLoAoNfADK83xD+9BeJgXdzIb6md2NqwcE3D7QpBGnJnQafVrNgTK+4Crhfe6tFOMVEK2diH99ZAbFvRuqS4lXyi3l5WfDmplnYFkuTC+5DY+hEpQmI8RVNAIKDRN6AyH4lNHlXHEfrp3ig6yJIYDNc3Mv+Ffb+YsuqbH6HC0Yiee92Vh6MdU0X1GMnSLJSXSAkgtwB9uQyyrgqz2bSl5xDK9XBRcZERqSjN5kEZUpYfRg8GCf0djGtPOGq8AmLJag9l+8HRn0QJkyywOePPLAqRHXmXX8TaE8R05dpEkR62/GNSji0psd+BPMw//9aSbx0szeN2VUcTwOpx9aCKbREWW1UFkT56bsrXfDBfWySqPBVZXj6P0vK81bxndtxb49rVfWMEehET8Q= 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 Wed, Mar 05, 2025 at 06:11:30AM +0000, Yosry Ahmed wrote: > Use the new object read/write APIs instead of mapping APIs. > > On compress side, zpool_obj_write() is more concise and provides exactly > what zswap needs to write the compressed object to the zpool, instead of > map->copy->unmap. > > On the decompress side, zpool_obj_read_begin() is sleepable, which > allows avoiding the memcpy() for zsmalloc and slightly simplifying the > code by: > - Avoiding checking if the zpool driver is sleepable, reducing special > cases and shrinking the huge comment. > - Having a single zpool_obj_read_end() call rather than multiple > conditional zpool_unmap_handle() calls. > > The !virt_addr_valid() case can be removed in the future if the crypto > API supports kmap addresses or by using kmap_to_page(), completely > eliminating the memcpy() path in zswap_decompress(). This a step toward > that. In that spirit, opportunistically make the comment more specific > about the kmap case instead of generic non-linear addresses. This is the > only case that needs to be handled in practice, and the generic comment > makes it seem like a bigger problem that it actually is. > > Signed-off-by: Yosry Ahmed Acked-by: Johannes Weiner