From patchwork Tue Mar 2 11:10:36 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Klaus Jensen X-Patchwork-Id: 12111417 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=-11.5 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT 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 A90D6C433E0 for ; Tue, 2 Mar 2021 11:14:53 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 80CF364E56 for ; Tue, 2 Mar 2021 11:14:52 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 80CF364E56 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=irrelevant.dk Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:36494 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lH2zL-00016x-DX for qemu-devel@archiver.kernel.org; Tue, 02 Mar 2021 06:14:51 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:36810) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lH2vR-0006XH-Cd; Tue, 02 Mar 2021 06:10:49 -0500 Received: from out3-smtp.messagingengine.com ([66.111.4.27]:48067) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lH2vP-0007Hx-9d; Tue, 02 Mar 2021 06:10:49 -0500 Received: from compute4.internal (compute4.nyi.internal [10.202.2.44]) by mailout.nyi.internal (Postfix) with ESMTP id 888EC5C0167; Tue, 2 Mar 2021 06:10:45 -0500 (EST) Received: from mailfrontend2 ([10.202.2.163]) by compute4.internal (MEProxy); Tue, 02 Mar 2021 06:10:45 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=irrelevant.dk; h=from:to:cc:subject:date:message-id:content-type:mime-version :content-transfer-encoding; s=fm2; bh=0c0wgf35XxKiPYZZTxg9jlvChP A4mrC8DL/ySxMKcNw=; b=PJ4uY3WFIR51XKCxzzyBkmn+kg/IQENyt1R+y7Vx4T BtsBxdHu1Qjb0xAZZc+xmEdTGGdNy28PHtMxphrKEcumquSz78YNZpD1ZX+97z7I DcSxnIJ+n3F8qAvSWsPHAw2x5+vy4qoNhhuxacxKenzZjxLGXzEyYBGBK51x+8x9 5qZkhnFGOy75xxV2ao4KUQuLsf5phknoTtvOgejPCftAtnm5DxC6uNSDB0NQ9XQi GDMjYlsiNiH7vQmOXNKEJ5Zj9iUKwJag+gP5IYwwDLKlJQExL5rlA9BxipXttFoe Z59rNw7gCmaZrJru4QuBzWiiTy7r05Pkm+I2AvFgriTg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:content-type :date:from:message-id:mime-version:subject:to:x-me-proxy :x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm2; bh=0c0wgf 35XxKiPYZZTxg9jlvChPA4mrC8DL/ySxMKcNw=; b=ecuSKK2tSH/NWB/Ibexaht U0mLNFGL69rgjGyhOQjd0AEzZi+M5Q0MLwiumy8FiyITcw5D0MXEYXf30BDiHXzH 7ffMg4rdPKZba3cTNSr1PClbw1hswW+XJiiTCl2hmkeeJJZNS9Ndl8VHDK0qn9dS w/AZQT2RBqD/xrrnUYIL1tuEzw2WnbZJ/58zNtGT0KJ1HpFYuq6uRvYzJWaV5Odf Vy73nlySoyyOqTF2+k6Ivuljz/tOBqJg5M3HppS9U9WfFHxfr5XsPweQQusF2MPQ aS3hTV0gPRiBlyIsxv4EVIm68a0292Nk3QqxT1kmKPBAgbuNI6F5Ddskq/L4lLdQ == X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduledruddttddgvdefucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurhephffvufffkffotggggfesthhqredtredtjeenucfhrhhomhepmfhlrghushcu lfgvnhhsvghnuceoihhtshesihhrrhgvlhgvvhgrnhhtrdgukheqnecuggftrfgrthhtvg hrnhephfegveekiefgkeevvdetjeejkeekudfgvdehieejfffgkeffvdevlefftedvgefh necukfhppeektddrudeijedrleekrdduledtnecuvehluhhsthgvrhfuihiivgeptdenuc frrghrrghmpehmrghilhhfrhhomhepihhtshesihhrrhgvlhgvvhgrnhhtrdgukh X-ME-Proxy: Received: from apples.local (80-167-98-190-cable.dk.customer.tdc.net [80.167.98.190]) by mail.messagingengine.com (Postfix) with ESMTPA id 74E8E108005C; Tue, 2 Mar 2021 06:10:43 -0500 (EST) From: Klaus Jensen To: qemu-devel@nongnu.org Subject: [PATCH RFC 0/4] hw/block/nvme: convert ad-hoc aio tracking to aiocbs Date: Tue, 2 Mar 2021 12:10:36 +0100 Message-Id: <20210302111040.289244-1-its@irrelevant.dk> X-Mailer: git-send-email 2.30.1 MIME-Version: 1.0 Received-SPF: pass client-ip=66.111.4.27; envelope-from=its@irrelevant.dk; helo=out3-smtp.messagingengine.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Kevin Wolf , qemu-block@nongnu.org, Klaus Jensen , Max Reitz , Klaus Jensen , Stefan Hajnoczi , Keith Busch Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" From: Klaus Jensen The nvme device currently uses an ad-hoc approach to tracking AIO completion when a request results in multiple issued AIOs. This series convert those operations (DSM, Copy, Flush and Zone Reset) to use "proper" QEMU AIOCB processing instead. This requires more code, but the end result of this is that we gain proper cancellation support (something that the device would not do correctly in the existing ad-hoc approach, and something that would have required more code anyway). This series makes SQ deletions "just work" and allows Abort to be implemented such that it actually does something. Marking RFC, since I've not really done anything with QEMU AIOs and BHs on this level before, so I'd really like some block-layer eyes on it. Klaus Jensen (4): hw/block/nvme: convert dsm to aiocb hw/block/nvme: convert copy to aiocb hw/block/nvme: convert flush to aiocb hw/block/nvme: convert zone reset to aiocb hw/block/nvme.c | 945 ++++++++++++++++++++++++------------------ hw/block/trace-events | 2 +- 2 files changed, 537 insertions(+), 410 deletions(-)