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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id D88F8CA5FF5 for ; Mon, 5 Oct 2026 20:45:49 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1xDpZ5-0007iB-AR; Mon, 05 Oct 2026 16:45:39 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1xDpYz-0007he-93 for qemu-devel@nongnu.org; Mon, 05 Oct 2026 16:45:36 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1xDpYx-0006bZ-NO for qemu-devel@nongnu.org; Mon, 05 Oct 2026 16:45:33 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1791233130; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=KTwljtIwsp61Xvy967oAlTkQuEUzVzhc7fM3dx44lu0=; b=UXpuL8RZf7HEDz8xBd+nXKn3YZx6lEumamdknUadph6p9QN0RFCyvZuBTnVCTzvBKMvQyp jhEuogZBPin3JpfbdKpBINbBioNgbs+m2u3d2pprsTb2dnirKJoxvd9dDw7D9hsJWwNIJu 8IrxM4ZT4CB5oAKu17JyGoK9ne1NB/M= Received: from mx-prod-mc-01.mail-002.prod.us-west-2.aws.redhat.com (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-677-wHqYzX8oOC2GUio-oKleXA-1; Mon, 05 Oct 2026 16:45:27 -0400 X-MC-Unique: wHqYzX8oOC2GUio-oKleXA-1 X-Mimecast-MFC-AGG-ID: wHqYzX8oOC2GUio-oKleXA_1791233126 Received: from mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 1E6031955EB5; Mon, 5 Oct 2026 20:45:26 +0000 (UTC) Received: from redhat.com (headnet05.pony-001.prod.iad2.dc.redhat.com [10.2.32.117]) by mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id EDFEA3001D2D; Mon, 5 Oct 2026 20:45:23 +0000 (UTC) Date: Mon, 5 Oct 2026 15:45:21 -0500 From: Eric Blake To: "Denis V. Lunev" Cc: qemu-devel@nongnu.org, qemu-block@nongnu.org, Kevin Wolf , Hanna Reitz , Vladimir Sementsov-Ogievskiy , Andrey Drobyshev , Markus Armbruster Subject: Re: [PATCH 12/13] block: add blkdebug events for a write before it is tracked Message-ID: References: <20260930165000.303236-1-den@openvz.org> <20260930165000.303236-13-den@openvz.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20260930165000.303236-13-den@openvz.org> User-Agent: NeoMutt/20260616 X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.4 Received-SPF: pass client-ip=170.10.129.124; envelope-from=eblake@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: 10 X-Spam_score: 1.0 X-Spam_bar: + X-Spam_report: (1.0 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.24, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=0.001, RCVD_IN_SBL_CSS=3.335, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org On Wed, Sep 30, 2026 at 06:49:58PM +0200, Denis V. Lunev wrote: > From: Denis V. Lunev > > A breakpoint on pwritev or pwritev_zero stops a request that has > already joined the list of tracked requests, so it is ordered against > everything that arrives later. There was no way to hold a request in > the window before that, which is where a filter has published its > state but the block layer does not yet know the request exists. > > Fire pwritev_untracked and pwritev_zero_untracked from > bdrv_co_pwritev_part() once the request counts as in flight and before > tracked_request_begin(). They come in a pair like the events they > mirror, so that a test can tell a preallocation from the writes racing > with it: blkdebug matches on the event, not on the request. > > Signed-off-by: Denis V. Lunev > CC: Kevin Wolf > CC: Hanna Reitz > CC: Vladimir Sementsov-Ogievskiy > CC: Andrey Drobyshev > CC: Eric Blake > CC: Markus Armbruster > --- > block/io.c | 3 +++ > qapi/block-core.json | 10 +++++++++- > 2 files changed, 12 insertions(+), 1 deletion(-) > > +++ b/qapi/block-core.json > @@ -3897,6 +3897,13 @@ > # > # @none: triggers once at creation of the blkdebug node (since 4.1) > # > +# @pwritev_untracked: a write, before it joins the list of tracked > +# requests and so before it is ordered against any other request > +# (since 11.2) > +# > +# @pwritev_zero_untracked: the same for a write zeroes request > +# (since 11.2) I don't know if Markus has any guidance to whether the text for one parameter can reliably refer to an earlier one. But I'm assuming that the generated docs list things sequentially by declaration order rather than reordering to alphabetical or randomized hash layout ordering, so the shorter second text is probably fine. Reviewed-by: Eric Blake -- Eric Blake, Principal Software Engineer Red Hat, Inc. Virtualization: qemu.org | libguestfs.org