Received: by 2002:a05:7412:8d10:b0:f3:1519:9f41 with SMTP id bj16csp1487830rdb; Wed, 6 Dec 2023 23:45:01 -0800 (PST) X-Google-Smtp-Source: AGHT+IHqDOTOIM03u3wFp8sAqGt3BAxxVDLugpmYF/EMDSKookhcz0Qehzqk4VQFHh9I9ErXJVIF X-Received: by 2002:a9d:5e82:0:b0:6d8:74e2:94ed with SMTP id f2-20020a9d5e82000000b006d874e294edmr1914441otl.51.1701935100829; Wed, 06 Dec 2023 23:45:00 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1701935100; cv=none; d=google.com; s=arc-20160816; b=jGQN9Zg+sZNfJSyddltmwEX+hle+WW5Bb4l01Cpj0rT+0eGElcC+JPZrcp2svH3SQy 8SfrhXcAxnd7bTqjzsJ/VGijetOwTQLMldwAYJSGYcsEEIbiFNyXjDJckIzeK6MWv9io PU2fPjJjhTKO8tt1FVeY5SAOs2EVEaCBmhCrZrnMDE2FHZYQkRTpQDn62mftpLKl6+3x 2/kqg+4AEBzaLlquAo5pMP62paITU0Q14MpWwgTbop+80b+7FqXVuJpemIVNX7Gtp1+O LDIetWLkNb11EAzas0U8Hk8+X1XQQQjRUaogihrc3oL5Tx5mL3dzC+bDSL6+1rbT4X4C I3Iw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-transfer-encoding :content-disposition:mime-version:references:message-id:subject:cc :to:from:date:dkim-signature; bh=Q0/r8c8J5jaGf9nK/v5AUyuY2tHVneG34T5XTQysYnc=; fh=AW13tPlTZnRHVCg/xt3ndQ02jVb8m9ZDAMq9Q4Om4w4=; b=Zh/9YNRcohBMbkozYnoVsKL2bvcng48myxzdCMWoqfhCk8Nzr7VcJvA56fN3/7BvRC E00kNOIw4uNufmeIgby7qlJ2IY4rKTlq8EqIZDWD5v1thunyvsPhAhhy8mSEQaVuLc49 4ZX6ku1h/94H3/8ZM2CCLGbb5uYW8JzsOxtJRpj9+axOr0gMHaMDk4P2Q5ASoXQ9okTg 10296XXRp/c8N2p/H/J5fPcTYJoHlKgLLKHud3O6DFKagSVtWSq8CyHhlJmUPRYUXlPl KBdkT5vWQAiBJSBxZkHQjjlu0OONj//KWWNoXcSO1oreFz6Fbow3LLGXMQb6fWrq2beO hz1w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@infradead.org header.s=bombadil.20210309 header.b=cMZW8ORI; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:4 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from howler.vger.email (howler.vger.email. [2620:137:e000::3:4]) by mx.google.com with ESMTPS id bf15-20020a656d0f000000b005c685a2d34esi743405pgb.321.2023.12.06.23.45.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 06 Dec 2023 23:45:00 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:4 as permitted sender) client-ip=2620:137:e000::3:4; Authentication-Results: mx.google.com; dkim=pass header.i=@infradead.org header.s=bombadil.20210309 header.b=cMZW8ORI; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:4 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by howler.vger.email (Postfix) with ESMTP id 68A2984E98AD; Wed, 6 Dec 2023 23:44:58 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at howler.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1377989AbjLGHop (ORCPT + 99 others); Thu, 7 Dec 2023 02:44:45 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50418 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1377955AbjLGHoo (ORCPT ); Thu, 7 Dec 2023 02:44:44 -0500 Received: from bombadil.infradead.org (bombadil.infradead.org [IPv6:2607:7c80:54:3::133]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 81E77D5B; Wed, 6 Dec 2023 23:44:50 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=bombadil.20210309; h=In-Reply-To:Content-Transfer-Encoding :Content-Type:MIME-Version:References:Message-ID:Subject:Cc:To:From:Date: Sender:Reply-To:Content-ID:Content-Description; bh=Q0/r8c8J5jaGf9nK/v5AUyuY2tHVneG34T5XTQysYnc=; b=cMZW8ORI7DHj6gN+gkCkoJLzEj WrbuHAOomTaAjazFGBbrj3B+nmpoMgHILgaNWp+K1x75GzpAVyaRscrYXw56OH/W6rPOJXkg5MQ5F 0kcaf+bOvizfkStikj7nmnkN603fmedKzgvrNRM2uH6cdQ8LHup2zANzETckon1GpKFNXD8QwMNE/ dyWTMOuje8JkC9T04AO4Nay/0EST7teYpfzJmCz0Tu/rhGaw0Cu9ZKwe20EKuBSVubo6cDdrMuSKS EYOwt5s1Kyc81YQtwq/IGVgTKTOYOhzGPP/u0nr399nKZIbVFXqFSd8z+GzRegqgFmQngtp6a6xOQ a/vMMhyw==; Received: from hch by bombadil.infradead.org with local (Exim 4.96 #2 (Red Hat Linux)) id 1rB93d-00C71X-1x; Thu, 07 Dec 2023 07:44:29 +0000 Date: Wed, 6 Dec 2023 23:44:29 -0800 From: Christoph Hellwig To: Sergei Shtepa Cc: axboe@kernel.dk, hch@infradead.org, corbet@lwn.net, snitzer@kernel.org, mingo@redhat.com, peterz@infradead.org, juri.lelli@redhat.com, viro@zeniv.linux.org.uk, brauner@kernel.org, linux-block@vger.kernel.org, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, Sergei Shtepa , Donald Buczek , Fabio Fantoni Subject: Re: [PATCH v6 02/11] block: Block Device Filtering Mechanism Message-ID: References: <20231124165933.27580-1-sergei.shtepa@linux.dev> <20231124165933.27580-3-sergei.shtepa@linux.dev> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20231124165933.27580-3-sergei.shtepa@linux.dev> X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org. See http://www.infradead.org/rpr.html X-Spam-Status: No, score=-0.9 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on howler.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (howler.vger.email [0.0.0.0]); Wed, 06 Dec 2023 23:44:58 -0800 (PST) > + struct request_queue *q = bdev_get_queue(bio->bi_bdev); > + bool skip_bio = false; > + > + if (unlikely(bio_queue_enter(bio))) > + return; > + > + if (bio->bi_bdev->bd_filter && > + bio->bi_bdev->bd_filter != current->blk_filter) { > + struct blkfilter *prev = current->blk_filter; > + > + current->blk_filter = bio->bi_bdev->bd_filter; > + skip_bio = bio->bi_bdev->bd_filter->ops->submit_bio(bio); > + current->blk_filter = prev; > + } > + > + blk_queue_exit(q); This currently adds a queue enter/exit pair even if no filter driver is used, which іs probably not acceptable. We probably need some way to avoid the check in the fast path. In general an unlocked check for bio->bi_bdev->bd_filter outside the protection seems fine to here, we just need to find a good way to make sure it is visible by the time a filter is actually set and the filter driver initialization. > if (!bio->bi_bdev->bd_has_submit_bio) { > blk_mq_submit_bio(bio); > - } else if (likely(bio_queue_enter(bio) == 0)) { > + return; > + } > + > + if (likely(bio_queue_enter(bio) == 0)) { This is just stray reformatting and we can drop it.