From patchwork Fri Aug 21 19:53:54 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= X-Patchwork-Id: 275831 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=-12.6 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,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 C1FD3C433DF for ; Fri, 21 Aug 2020 20:00:06 +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 8534B20724 for ; Fri, 21 Aug 2020 20:00:06 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="TJ64AV0F" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 8534B20724 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:59816 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1k9DCn-00018K-O5 for qemu-devel@archiver.kernel.org; Fri, 21 Aug 2020 16:00:05 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:36590) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1k9D7r-0007jZ-Iw for qemu-devel@nongnu.org; Fri, 21 Aug 2020 15:54:59 -0400 Received: from us-smtp-2.mimecast.com ([205.139.110.61]:22212 helo=us-smtp-delivery-1.mimecast.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1k9D7p-0002m5-UU for qemu-devel@nongnu.org; Fri, 21 Aug 2020 15:54:59 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1598039697; 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: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=y47Rdgq2E7ETUgE+8WKfJU6kiExsJ3jsfjk0oBdiMjg=; b=TJ64AV0FaDSDhIjX/pMdz3rLfOWxGJO9vv7QH7Gj+oR7hTXSSM5jmsvDVAbkL0jMEV+BVk gdDW/H7DGMQ6NK7NVwLBbwqXi7S73xcSE8iSbugnKAoSeRlLjkaAC2co2qcTlkGs9gQP1p czof4O23uf9L+gizQr39ThvyodvMHJM= Received: from mail-wr1-f70.google.com (mail-wr1-f70.google.com [209.85.221.70]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-172-nHx7pFaTP42wJU8jJIPdOQ-1; Fri, 21 Aug 2020 15:54:55 -0400 X-MC-Unique: nHx7pFaTP42wJU8jJIPdOQ-1 Received: by mail-wr1-f70.google.com with SMTP id f7so900439wrs.8 for ; Fri, 21 Aug 2020 12:54:55 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=y47Rdgq2E7ETUgE+8WKfJU6kiExsJ3jsfjk0oBdiMjg=; b=X8kBhiy/gjJRtK0BXXVUD1+LFqTmqz3G9dUILARY4Gi+lwrokVRSDsCwSsu5ilS2Hi 3eAmZEnk+64U81oGgq7Zoe7OD+2C1kkTREImIOpBQ/MGB94DANFbDfAozvEM90+7XB8V xBpowBxEbJKr1l2+THvBS/zHPsU+OK+p3WWALg8eVUMR0/Q3/umIRhv8WmZGFTLvQEXA pvJInXQMPF0t7//zYJVorlWoF9DDR3//jOFQhbWGy0AfT8iEfjJaFqNjh1wpwg8WpYoj 78F6+IbkD5znaREq41Y5t2y7xPl93mLtTtNs5whjTyCYqtbDv0jkdwr5nFBmwLHXMPHj ARnw== X-Gm-Message-State: AOAM531Gi/x+FqZSBuUARB3zahpkyf0p5e+jPTmZmKBJNuhwWsKZI9iO +WZUyJr5i0fZ/bTkiv0n7vmep9tGcPEFOZ4giRKGhUn8Hsc1Xk8DlXHz06orj3M7W6EXOR9Fnav Cp80WYCfRIFqZruc= X-Received: by 2002:adf:fecc:: with SMTP id q12mr4209767wrs.374.1598039694245; Fri, 21 Aug 2020 12:54:54 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzioq88rRY1lsto/f0vK6mEJOfEKayI8VG4T5ieTqOXLbkNG36iLjFInRQfyeieUbNVwqsYGA== X-Received: by 2002:adf:fecc:: with SMTP id q12mr4209751wrs.374.1598039694016; Fri, 21 Aug 2020 12:54:54 -0700 (PDT) Received: from x1w.redhat.com (121.red-81-40-121.staticip.rima-tde.net. [81.40.121.121]) by smtp.gmail.com with ESMTPSA id o124sm6607073wmb.2.2020.08.21.12.54.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 21 Aug 2020 12:54:53 -0700 (PDT) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Subject: [PATCH v6 10/15] block/nvme: Replace qemu_try_blockalign(bs) by qemu_try_memalign(pg_sz) Date: Fri, 21 Aug 2020 21:53:54 +0200 Message-Id: <20200821195359.1285345-11-philmd@redhat.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200821195359.1285345-1-philmd@redhat.com> References: <20200821195359.1285345-1-philmd@redhat.com> MIME-Version: 1.0 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=philmd@redhat.com X-Mimecast-Spam-Score: 0.003 X-Mimecast-Originator: redhat.com Received-SPF: pass client-ip=205.139.110.61; envelope-from=philmd@redhat.com; helo=us-smtp-delivery-1.mimecast.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/08/21 01:00:15 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -40 X-Spam_score: -4.1 X-Spam_bar: ---- X-Spam_report: (-4.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-1, 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=-1, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable 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 , Fam Zheng , qemu-block@nongnu.org, Max Reitz , Stefan Hajnoczi , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Stefano Garzarella Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" qemu_try_blockalign() is a generic API that call back to the block driver to return its page alignment. As we call from within the very same driver, we already know to page alignment stored in our state. Remove indirections and use the value from BDRVNVMeState. This change is required to later remove the BlockDriverState argument, to make nvme_init_queue() per hardware, and not per block driver. Reviewed-by: Stefan Hajnoczi Reviewed-by: Stefano Garzarella Signed-off-by: Philippe Mathieu-Daudé --- block/nvme.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/block/nvme.c b/block/nvme.c index 7e21a2d7ece..3742e0535aa 100644 --- a/block/nvme.c +++ b/block/nvme.c @@ -174,7 +174,7 @@ static void nvme_init_queue(BlockDriverState *bs, NVMeQueue *q, bytes = ROUND_UP(nentries * entry_bytes, s->page_size); q->head = q->tail = 0; - q->queue = qemu_try_blockalign(bs, bytes); + q->queue = qemu_try_memalign(s->page_size, bytes); if (!q->queue) { error_setg(errp, "Cannot allocate queue"); return; @@ -223,7 +223,7 @@ static NVMeQueuePair *nvme_create_queue_pair(BlockDriverState *bs, if (!q) { return NULL; } - q->prp_list_pages = qemu_try_blockalign(bs, + q->prp_list_pages = qemu_try_memalign(s->page_size, s->page_size * NVME_NUM_REQS); if (!q->prp_list_pages) { goto fail; @@ -522,7 +522,7 @@ static void nvme_identify(BlockDriverState *bs, int namespace, Error **errp) .cdw10 = cpu_to_le32(0x1), }; - id = qemu_try_blockalign(bs, sizeof(*id)); + id = qemu_try_memalign(s->page_size, sizeof(*id)); if (!id) { error_setg(errp, "Cannot allocate buffer for identify response"); goto out; @@ -1141,7 +1141,7 @@ static int nvme_co_prw(BlockDriverState *bs, uint64_t offset, uint64_t bytes, return nvme_co_prw_aligned(bs, offset, bytes, qiov, is_write, flags); } trace_nvme_prw_buffered(s, offset, bytes, qiov->niov, is_write); - buf = qemu_try_blockalign(bs, bytes); + buf = qemu_try_memalign(s->page_size, bytes); if (!buf) { return -ENOMEM; @@ -1285,7 +1285,7 @@ static int coroutine_fn nvme_co_pdiscard(BlockDriverState *bs, assert(s->nr_queues > 1); - buf = qemu_try_blockalign(bs, s->page_size); + buf = qemu_try_memalign(s->page_size, s->page_size); if (!buf) { return -ENOMEM; }