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 2C46FC3ABC3 for ; Mon, 12 May 2025 19:03:20 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id AA7596B000A; Mon, 12 May 2025 15:03:17 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id A54666B0082; Mon, 12 May 2025 15:03:17 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 943186B0083; Mon, 12 May 2025 15:03:17 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 743206B000A for ; Mon, 12 May 2025 15:03:17 -0400 (EDT) Received: from smtpin22.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id B7A14160818 for ; Mon, 12 May 2025 19:03:18 +0000 (UTC) X-FDA: 83435178876.22.622E35A Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf10.hostedemail.com (Postfix) with ESMTP id CFF0AC001A for ; Mon, 12 May 2025 19:03:15 +0000 (UTC) Authentication-Results: imf10.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=m8nKzx19; spf=none (imf10.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1747076596; 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=6TU8lovtR+mIfquQ2rCbk6fwLvKUBUsDQ9Gbh5JlI78=; b=khWsz586WnrzxHy+hHkNg7/IwMVAqCwMWPCk7nLDPOrkF1MMYLeg8hPOy/NkkJeb/y2UDl naTO8kGoRFq3+ziFrQ7pa7lhlOfwiHX69VRHmEyEfr1xCRCF9B4hIuQVjY7qnGkcQ2nN+z IREy8DRLoSXdjTf38fq/nAxYqWh12bU= ARC-Authentication-Results: i=1; imf10.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=m8nKzx19; spf=none (imf10.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1747076596; a=rsa-sha256; cv=none; b=yttwv7TJlnBhSXRTPv0zI/1TZ+Wh+rrk6oZ8f+LNVNUNyk0+o7dIZ+xSpzolMpiBE2z+42 cMCZ5WoP2G1X2Vis4UgxLUJFbCDevkcXDkTzb5IY23ZHP8GPiqroMjVdzLAesdkqaQzEiA ckKsXwgf3e1x8NcVhWr3CZDIsviSUzQ= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; 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; bh=6TU8lovtR+mIfquQ2rCbk6fwLvKUBUsDQ9Gbh5JlI78=; b=m8nKzx198g557xXfy33UFRw+Kr qoyVHoc5J/ZHQWHjy+CmISnWIg9QilqxqRc8j5FTIC44xRVH68NBsZBcQtK0pJzqoGQ8aNBSUKezj 4AoX90aHZB39mu2IfgjZn4nJg61ODpbKGnlMQGDPjujcsDYFgY2ao9ddJgjrhc3+qC7gpe6Ow9ytz 9EpqnIuyHFh+fWWZZLlL6mGmjat0WVnJ7Fth3pWkzPpGj9onP41kYaYjM5iKCJngX659kfFbAtkxU oi6USOiKVK6s1Y9R8W5CYVaxs50SuOTOrGBQA/Cd64UgKVuoz5Ju26v890On9g7o86334/Ia0xUI3 LwARxIjg==; Received: from willy by casper.infradead.org with local (Exim 4.98.2 #2 (Red Hat Linux)) id 1uEYQh-0000000AAGr-304E; Mon, 12 May 2025 19:03:11 +0000 Date: Mon, 12 May 2025 20:03:11 +0100 From: Matthew Wilcox To: Nhat Pham Cc: akpm@linux-foundation.org, hannes@cmpxchg.org, yosryahmed@google.com, yosry.ahmed@linux.dev, chengming.zhou@linux.dev, linux-mm@kvack.org, kernel-team@meta.com, linux-kernel@vger.kernel.org Subject: Re: [PATCH v4] page_io: zswap: do not crash the kernel on decompression failure Message-ID: References: <20250306205011.784787-1-nphamcs@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20250306205011.784787-1-nphamcs@gmail.com> X-Rspamd-Queue-Id: CFF0AC001A X-Rspam-User: X-Rspamd-Server: rspam11 X-Stat-Signature: x9f6bkfn4i3s147pekpdxapze37rkdsz X-HE-Tag: 1747076595-424149 X-HE-Meta: U2FsdGVkX19x3YXIOldO5DQXlS3VI6AGZOUeYUFPfTl+is1tBjjAJYLxDAWDlui448uEmok3nYYj4gsFg1KjU4E5X0SmUppExxD2ftcKt91/Z5bub+a/jhiTrlmV07FQcZD947/e6d2Kt/z+RMef3GhN5CudoimJTChm2eJx+7Eec4IEIkbO82DaZoZcjYlzZaiSOJg5nIlAGCsDvFtLRAY3Gp9Fnsye0DVO8kLpUO6GbV6OnPjO6hXh8y9ZIWQ6OL+EbxpgFvUvbWJxj1zTRxbQ+lVkzJ0xeMI087KQfVoU/RNw677xKyAnjvT3XyIMA4CeKamxOZ5fKyr7suK49pSg+bei4NOY0jdQXSnf5/ntSO6YMLPAd9ddeXGih0vF71tD6rCjupa09jrpKc628vZxfADzErGnom3p+tgrBb7jC5MVDTqvuoODo+vdXeYr2LFs2iFvhypgUI9FUtyv+foe7n6eHiIPyE0p2cDriLimj7W6nYh4ENnUfbeUW/XAXRUfqYltYy9WY3ejQS3X6MUYLg57C8D7b5kZvXL/pBkzEM+pLPtk5K32YKnRi3c4nHafJ6tagJU8qGy2dMi5lYjxQJtGpJU+yKWf50Rk7B+ZeXbuzZl7rc3KxBNvHoTiGDKhnDLJAX3kKZPQoEssdkHsKpTrjINRWvhAu61kq8ySjx3Ex3dcZ2v8nVBzSKm8JCbscDl+NlZVMLQoIzkdDscIjsqPJG01AgHb6oQNHC6AFJlIxnouhjf2ft/bX4agwBvrJckNjz6nestSusFg1oPyU+vSGR1u+RNbtROb/xbim+1w8tCwSx0t2H8A/vAHIg5jok7FQmpW6/QJ5mQW5XUcn4dhYew9w0s8R3rfUimz+wkBb1w3nufM254yupEUp9oSBKFF30dfQu5623GZzKA17vtExPtxjSH6NFJtSA/N0mebOqlBOP9y8HBg1nvFUzUhDeaszri0JXcQPdO UsVYscG0 fv3eWQvRyrH5ecwp4HhIVkVCXxihMGxkgn2JVW/OIHWVhkJOLtM94tLs9V0Erw0KtA78m2ymnkE6LEvPvCAu5oXo1rBFmncGCkCR+5TDq1o5y5PL5V3hUKtydIqGpfiPiQuch3E/DOwxEDH3HJqn5l1EhU71IuaIz3cGExT8tAeH2guPEXEvkjzsng58VfnpR+dTUnPISz269eapnZuiGe29cFh9OpHjlUtpZxwyEJhi+oebM15D5xM9e/ACyDZEBNVSWbpY+AI50irDDDvfgdImqtw== 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 Thu, Mar 06, 2025 at 12:50:10PM -0800, Nhat Pham wrote: > -static void zswap_decompress(struct zswap_entry *entry, struct folio *folio) > +static bool zswap_decompress(struct zswap_entry *entry, struct folio *folio) Hm, why do it this way? I had it as: -static void zswap_decompress(struct zswap_entry *entry, struct folio *folio) +static int zswap_decompress(struct zswap_entry *entry, struct folio *folio) ... + err = crypto_acomp_decompress(acomp_ctx->req); + err = crypto_wait_req(err, &acomp_ctx->wait); + if (!err && acomp_ctx->req->dlen != PAGE_SIZE) + err = -EIO; which allows us to return something more meaningful than -EIO. Or is doing that a bad idea and we should squash all decompression failures to EIO? (also i really dislike the chained approach: decomp_ret = crypto_wait_req(crypto_acomp_decompress(acomp_ctx->req), &acomp_ctx->wait); that's much harder to understand than the two lines i have above)