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=-15.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS 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 CC283C4361B for ; Sat, 19 Dec 2020 10:20:43 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 52E9E23B7B for ; Sat, 19 Dec 2020 10:20:43 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 52E9E23B7B Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=konsulko.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id A31366B0068; Sat, 19 Dec 2020 05:20:42 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 9E22C6B006C; Sat, 19 Dec 2020 05:20:42 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 8F5C76B006E; Sat, 19 Dec 2020 05:20:42 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0155.hostedemail.com [216.40.44.155]) by kanga.kvack.org (Postfix) with ESMTP id 6FB596B0068 for ; Sat, 19 Dec 2020 05:20:42 -0500 (EST) Received: from smtpin29.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay02.hostedemail.com (Postfix) with ESMTP id 3739C248E for ; Sat, 19 Dec 2020 10:20:42 +0000 (UTC) X-FDA: 77609637924.29.ice29_0a03d7c27445 Received: from filter.hostedemail.com (10.5.16.251.rfc1918.com [10.5.16.251]) by smtpin29.hostedemail.com (Postfix) with ESMTP id 1E40618026B25 for ; Sat, 19 Dec 2020 10:20:42 +0000 (UTC) X-HE-Tag: ice29_0a03d7c27445 X-Filterd-Recvd-Size: 4546 Received: from mail-lf1-f46.google.com (mail-lf1-f46.google.com [209.85.167.46]) by imf02.hostedemail.com (Postfix) with ESMTP for ; Sat, 19 Dec 2020 10:20:41 +0000 (UTC) Received: by mail-lf1-f46.google.com with SMTP id h22so2433459lfu.2 for ; Sat, 19 Dec 2020 02:20:41 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=konsulko.com; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=0KuMNpEWRPz2T71g8hiLTxxkoiK9tvmHyh46ViDzZU4=; b=tdwnV2QUnapSUPLlbQ2+uohghX+wGoEaVxuEh7qeg/6XNoRfCe/HWZtWZp6qXKL+rZ H29h5u2iN0L+1gXvix/aN7d2fr7v/UdVAmTH5pCBj7g0BgMoDqwXhJvvlGxMDWtN4HGn 0Z43YzSDxyXqWwdhmMQkFkwpz86Bmo2kkBiTk= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=0KuMNpEWRPz2T71g8hiLTxxkoiK9tvmHyh46ViDzZU4=; b=AXrEXQD2q6EkiiJSDFsUEm7hHjfFFYa2CLfm9kT1I5tBKchqnTSmr8URm5PZ7Q1zop 7ojJOzFyai05P05a1QsKqDQbxLbezr0DX+o3vhgTgaXj+1hOvrFlxH5ijgLAwWBKb8NP Rl4ev0RlwvJvfxIDnhMIHmPu9fv4HjM8ljmKMEJznLSeoABZEfVL656JEwNrHQzwTnlU aRhpI8RqaJ+nwH0mb/e7tq5lVDgSBa9KVbswqKy+tpnIpac+GKAZtVjeTsLKpDSzT+K6 6fLqAbV9RwoAq6WJ+5XyXqWspRmMaiw3leV+Yw2U0+gUiXeM5CrWuQXOTurgOaetVS+c fNAw== X-Gm-Message-State: AOAM531eNKoL2XhNeIBD3N5MsCRNGxdJBkdqxGYrP+Md+aM9IBL5ncJR PoH9JMsgGjWoR2I/g4+uVODFM05clBLz/B7Mn6x4Rw== X-Google-Smtp-Source: ABdhPJyS5237VjZv8BaL8lzHDUw8/UMYpZzMyH8GXJUJoKKf130EFm9+Mt6/YnPzIPmJmwoia5/r7JZ7q9rUZreszHQ= X-Received: by 2002:a05:6512:54b:: with SMTP id h11mr3211671lfl.407.1608373240114; Sat, 19 Dec 2020 02:20:40 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: Vitaly Wool Date: Sat, 19 Dec 2020 11:20:29 +0100 Message-ID: Subject: Re: [patch] zswap: fix zswap_frontswap_load() vs zsmalloc::map/unmap() might_sleep() splat To: Mike Galbraith Cc: LKML , linux-mm , Barry Song , Sebastian Andrzej Siewior Content-Type: text/plain; charset="UTF-8" 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: Hi Mike, On Sat, Dec 19, 2020 at 11:12 AM Mike Galbraith wrote: > > (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 the > mutex outside of pool map/unmap methods in zswap_frontswap_load() as is done > in zswap_frontswap_store(). oh wait... So is zsmalloc taking a spin lock in its map callback and releasing it only in unmap? In this case, I would rather keep zswap as is, mark zsmalloc as RT unsafe and have zsmalloc maintainer fix it. Best regards, Vitaly > Signed-off-by: Mike Galbraith > Fixes: 1ec3b5fe6eec "mm/zswap: move to use crypto_acomp API for hardware acceleration" > --- > mm/zswap.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > --- a/mm/zswap.c > +++ b/mm/zswap.c > @@ -1258,20 +1258,20 @@ static int zswap_frontswap_load(unsigned > > /* decompress */ > dlen = PAGE_SIZE; > + acomp_ctx = raw_cpu_ptr(entry->pool->acomp_ctx); > + mutex_lock(acomp_ctx->mutex); > src = zpool_map_handle(entry->pool->zpool, entry->handle, ZPOOL_MM_RO); > if (zpool_evictable(entry->pool->zpool)) > src += sizeof(struct zswap_header); > > - acomp_ctx = 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 = 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: >