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 X-Spam-Level: X-Spam-Status: No, score=-10.7 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 0ACD0C4361B for ; Sat, 19 Dec 2020 10:12:27 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 8C1F523B84 for ; Sat, 19 Dec 2020 10:12:26 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 8C1F523B84 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmx.de Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id D4B4B6B005D; Sat, 19 Dec 2020 05:12:25 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id D21F66B0068; Sat, 19 Dec 2020 05:12:25 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C5DEE6B006C; Sat, 19 Dec 2020 05:12:25 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0188.hostedemail.com [216.40.44.188]) by kanga.kvack.org (Postfix) with ESMTP id AF6E06B005D for ; Sat, 19 Dec 2020 05:12:25 -0500 (EST) Received: from smtpin15.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay05.hostedemail.com (Postfix) with ESMTP id 72BFB181AF5C3 for ; Sat, 19 Dec 2020 10:12:25 +0000 (UTC) X-FDA: 77609617050.15.hole23_4513f5027445 Received: from filter.hostedemail.com (10.5.16.251.rfc1918.com [10.5.16.251]) by smtpin15.hostedemail.com (Postfix) with ESMTP id 5223C1814B0C1 for ; Sat, 19 Dec 2020 10:12:25 +0000 (UTC) X-HE-Tag: hole23_4513f5027445 X-Filterd-Recvd-Size: 4346 Received: from mout.gmx.net (mout.gmx.net [212.227.17.22]) by imf25.hostedemail.com (Postfix) with ESMTP for ; Sat, 19 Dec 2020 10:12:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1608372732; bh=6Lbh6Y5L+z/nVaTAt2yAOl/p4XTy7MmOdTh62bkdRLc=; h=X-UI-Sender-Class:Subject:From:To:Cc:Date:In-Reply-To:References; b=Sc9IcmgWNG3Qf5TTnemIQm4mhDpvQM73/R7EKSm+EDx0V04cC3zjh0c1X3aQLggja i7b9PMlpZ22C2b66uQgiSjYHhyLpDOMiXhyFh9vZq0Rfto/zEZGDEx6jgjS6SjnSgw Lrjw3ObINbflr1Ndm/vz8te5To/FitfiqKCWg5u8= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from homer.fritz.box ([185.221.150.14]) by mail.gmx.com (mrgmx105 [212.227.17.168]) with ESMTPSA (Nemesis) id 1MIdeX-1ktc0f37sT-00Ea16; Sat, 19 Dec 2020 11:12:12 +0100 Message-ID: Subject: Re: [patch] zswap: fix zswap_frontswap_load() vs zsmalloc::map/unmap() might_sleep() splat From: Mike Galbraith To: LKML Cc: linux-mm , Barry Song , Vitaly Wool , Sebastian Andrzej Siewior Date: Sat, 19 Dec 2020 11:12:10 +0100 In-Reply-To: References: Content-Type: text/plain; charset="ISO-8859-15" User-Agent: Evolution 3.34.4 MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:Idz0oKSM/QsVBcDqW56HRXUxdiKTtZgytnkZ1B7Fnhhx+zHUovd 8PQAE0NulElwTdORx9igmQW89VuEn4Nrff0gP7nfoyNEDyYAS8N9ySv1m1hJEOU1yVaaTEy 9YxFvwhL2BVVougcR8g/gdPnP39jQY8JFHwLRpgGJBliCodw1++Yc+SSr0rk1lmv0Ou1OZo apQhPdmrn8Wv8dIxzguHw== X-UI-Out-Filterresults: notjunk:1;V03:K0:Ez/aHxnshM8=:SudlIm4DiRO9TB9rSPQd4J ij3HZyc6T7n+FIRt8vliuV5wwuCYkpDSl60D4iKb/5xF5Z3/Drek3r8A26re4iSD3nfbk2muc CFlNKCkDZmoTzxLeXjXvMhv6k31ErZu6UX2UGz/CkmLYLWkIs2hQP0JvlcN/1d7vIQXk7BIA6 2hEHpa/MCXp/kdgST58vVIVeOoc1p44SLJ7JGdQmeWChSaYLEGJG7ZrLsNN825pzr0ZiaYN+n NOWoNhlXKXFIlPSUPssfHAdNPJzpwBiBs4gvTzxDlDH5jxFVoYwG9RoW9Py+3ubDLKy6TPQoD xXov1pxjNk8gxKp0IWvHCzUG7VapmDY/YC0QEML3ni6qPXMJX+uMRQFp/nY9QD+CaaQdNLNLZ S/0ayu4luxFzC+yYIWRU+wGEEt/UGM8mriwRp12I/MawIzQf+ATnyy9wmlLH3lQ8z23ImCU6h 3F8rWvoCx7iyF/d49V2YKUw/vUhQfBdFLwNut9EILWh46lnzKXRcbIp53qar93NEi3QfIffm9 J9J8DlCPtn4INGh3PzoTAqlnnII/66Yrp+ij7x+Kx1z6bL7Mv4HcyUaG6yw8lo6A4WT6eifEU zjS64j9GjVUa9rF5Rv3hXvE3JwDbl9m8y7vdn4LBA18p/jTrwGpsu6tSrrrHmu+YhEV0t4sJH 1dKP6qxA5J0U16cwio0UnXpgzlgyLMhDdsAFoQxHHilAKjNAux/XmLL+XHo+3b2T6TuBAAjsp mGkiN0tmvHavujXR0FvamYrE3KNanvRguIdWCJK60Zyec+okuXYAaqN8wHTSTXNKVnedj8irY e9dC7SkaIQXhz3RJLgY6hynZjL18Di8YMsKktMx+72ZH3z7WhOt2T8qlZ2tmB1OETNT60KEvV dKBsK12WNf5e57spHTsQ== 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: (mailer partially munged formatting? resend) mm/zswap: fix zswap_frontswap_load() vs zsmalloc::map/unmap() might_sleep(= ) splat zsmalloc map/unmap methods use preemption disabling bit spinlocks. Take t= he mutex outside of pool map/unmap methods in zswap_frontswap_load() as is do= ne in zswap_frontswap_store(). Signed-off-by: Mike Galbraith Fixes: 1ec3b5fe6eec "mm/zswap: move to use crypto_acomp API for hardware a= cceleration" =2D-- mm/zswap.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) =2D-- a/mm/zswap.c +++ b/mm/zswap.c @@ -1258,20 +1258,20 @@ static int zswap_frontswap_load(unsigned /* decompress */ dlen =3D PAGE_SIZE; + acomp_ctx =3D raw_cpu_ptr(entry->pool->acomp_ctx); + mutex_lock(acomp_ctx->mutex); src =3D zpool_map_handle(entry->pool->zpool, entry->handle, ZPOOL_MM_RO)= ; if (zpool_evictable(entry->pool->zpool)) src +=3D sizeof(struct zswap_header); - acomp_ctx =3D raw_cpu_ptr(entry->pool->acomp_ctx); - mutex_lock(acomp_ctx->mutex); sg_init_one(&input, src, entry->length); sg_init_table(&output, 1); sg_set_page(&output, page, PAGE_SIZE, 0); acomp_request_set_params(acomp_ctx->req, &input, &output, entry->length,= dlen); ret =3D crypto_wait_req(crypto_acomp_decompress(acomp_ctx->req), &acomp_= ctx->wait); - mutex_unlock(acomp_ctx->mutex); zpool_unmap_handle(entry->pool->zpool, entry->handle); + mutex_unlock(acomp_ctx->mutex); BUG_ON(ret); freeentry: