From patchwork Tue Jan 18 12:02:11 2022 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: 12716272 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 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 smtp.lore.kernel.org (Postfix) with ESMTPS id DEBE9C433F5 for ; Tue, 18 Jan 2022 12:14:10 +0000 (UTC) Received: from localhost ([::1]:37384 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1n9nNJ-00070G-Po for qemu-devel@archiver.kernel.org; Tue, 18 Jan 2022 07:14:09 -0500 Received: from eggs.gnu.org ([209.51.188.92]:51236) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1n9nCC-0005zr-Hu; Tue, 18 Jan 2022 07:03:56 -0500 Received: from [2a00:1450:4864:20::32b] (port=41933 helo=mail-wm1-x32b.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1n9nCA-0005iw-4I; Tue, 18 Jan 2022 07:02:40 -0500 Received: by mail-wm1-x32b.google.com with SMTP id q141-20020a1ca793000000b00347b48dfb53so6872083wme.0; Tue, 18 Jan 2022 04:02:36 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=MO1wiroHmEXR7v0/BicKh1zjhy8mrqOByKV8ImIX2R4=; b=OUMgJMPgkSEOHWnBB4CbNLg01dImnRR9b9K42JhRz+eTGmHFxiWDWsskLlVtxHDgvp J0Wga250YSCVVtJWGM32nBM4uUQoMRMi63R/20xnOvpTNADyUNyjzPmz+ZWLUFQ8R/Ys YzW4CFTMxcIabGDsk7pjeSUvFAROH4esLHD3ivaQGUeEtK1alDM/0EFMr0fNw6Cfe8Z7 RTM7Ef5MhSVu0nvFg/QyK0bSdmgDiznaPq6eIdiyJBgkzfNMm64H4KbNWd/I/TS6MuDn lDZFF0UfaSKhvpi5L1DPLWNhGCSM4iaZm/LkMtt+HnLRFHEOMBXrYzofI1ZNkklHG0Jh v9iQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=MO1wiroHmEXR7v0/BicKh1zjhy8mrqOByKV8ImIX2R4=; b=BocffW8MH0/5qCM9v7ayECyU7CrB2/PTK5Ffyn3Er2cEelBCXOpMgoAU1y6uGIBu0Q Sfazq9wTo78f8AXbCcXBNmA5L8undNhWP8wBofRR5VlX6OYCgug9LuViNd7PEasm1YXE wJtpFMBq6MKkRhWh+OT0M6xomicFDdweSyKBeson6f9m7dOvxz+MEvFl2uxl5+ZZbzdl zpCd5JlCHmgBHFcGt53tdSAYqiFpWrb9CFWeY65vzdmp/rcnCHvjy6WdP7ItEMSp3j2F cdex/RiGu9359PZ2dLUcEAVf6/RDfB1Mx3xUogdLFc1l4uSqeHV+XCGXQZIlUk1oZoO1 vDSw== X-Gm-Message-State: AOAM5307bjUET1TKlFaSmXNTabJGROJ4Qp+NY7MH9xPAW4n7I4jRgjRb EB8V3zTAy/9/yWSsvK4YrEjioTRjt9M= X-Google-Smtp-Source: ABdhPJwb/vOZRF796fJSHfl3DOOjh+TRAgBg+Flqdq2jhPZk8YCOzAN+8SdYy09AYCaPcJwitx6zEQ== X-Received: by 2002:adf:e949:: with SMTP id m9mr1670317wrn.401.1642507355493; Tue, 18 Jan 2022 04:02:35 -0800 (PST) Received: from nuc.. (154.red-83-50-83.dynamicip.rima-tde.net. [83.50.83.154]) by smtp.gmail.com with ESMTPSA id 8sm17047839wrz.60.2022.01.18.04.02.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 18 Jan 2022 04:02:35 -0800 (PST) To: qemu-devel@nongnu.org Cc: Peter Xu , David Hildenbrand , Paolo Bonzini , qemu-block@nongnu.org, =?utf-8?q?Phili?= =?utf-8?q?ppe_Mathieu-Daud=C3=A9?= Subject: [PULL 01/19] memory: Directly dispatch alias accesses on origin memory region Date: Tue, 18 Jan 2022 13:02:11 +0100 Message-Id: <20220118120229.196337-2-f4bug@amsat.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220118120229.196337-1-f4bug@amsat.org> References: <20220118120229.196337-1-f4bug@amsat.org> MIME-Version: 1.0 X-Host-Lookup-Failed: Reverse DNS lookup failed for 2a00:1450:4864:20::32b (failed) Received-SPF: pass client-ip=2a00:1450:4864:20::32b; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-wm1-x32b.google.com X-Spam_score_int: -6 X-Spam_score: -0.7 X-Spam_bar: / X-Spam_report: (-0.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.248, PDS_HP_HELO_NORDNS=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RDNS_NONE=0.793, SPF_HELO_NONE=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: 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" Reply-to: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= X-Patchwork-Original-From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= via From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= Since commit 2cdfcf272d ("memory: assign MemoryRegionOps to all regions"), all newly created regions are assigned with unassigned_mem_ops (which might be then overwritten). When using aliased container regions, and there is no region mapped at address 0 in the container, the memory_region_dispatch_read() and memory_region_dispatch_write() calls incorrectly return the container unassigned_mem_ops, because the alias offset is not used. Consider the following setup: +--------------------+ < - - - - - - - - - - - + | Container | mr | (unassigned_mem) | | | | | | | | | alias_offset + + <- - - - - - +----------+---------+ | +----------------+ | | | | | MemoryRegion0 | | | | | +----------------+ | | Alias | addr1 | | MemoryRegion1 | | <~ ~ ~ ~ ~ | | <~~~~~~ | +----------------+ | | | | | +--------------------+ | | | | | | | | | +----------------+ | | | MemoryRegionX | | | +----------------+ | | | MemoryRegionY | | | +----------------+ | | | MemoryRegionZ | | | +----------------+ | +--------------------+ The memory_region_init_alias() flow is: memory_region_init_alias() -> memory_region_init() -> object_initialize(TYPE_MEMORY_REGION) -> memory_region_initfn() -> mr->ops = &unassigned_mem_ops; Later when accessing offset=addr1 via the alias, we expect to hit MemoryRegion1. The memory_region_dispatch_read() flow is: memory_region_dispatch_read(addr1) -> memory_region_access_valid(mr) <- addr1 offset is ignored -> mr->ops->valid.accepts() -> unassigned_mem_accepts() <- false <- false <- MEMTX_DECODE_ERROR The caller gets a MEMTX_DECODE_ERROR while the access is OK. Fix by dispatching aliases recursively, accessing its origin region after adding the alias offset. Signed-off-by: Philippe Mathieu-Daudé Reviewed-by: Peter Xu Message-Id: <20210418055708.820980-1-f4bug@amsat.org> --- softmmu/memory.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/softmmu/memory.c b/softmmu/memory.c index 7340e19ff5e..0c463e0fe53 100644 --- a/softmmu/memory.c +++ b/softmmu/memory.c @@ -1444,6 +1444,11 @@ MemTxResult memory_region_dispatch_read(MemoryRegion *mr, unsigned size = memop_size(op); MemTxResult r; + if (mr->alias) { + return memory_region_dispatch_read(mr->alias, + mr->alias_offset + addr, + pval, op, attrs); + } if (!memory_region_access_valid(mr, addr, size, false, attrs)) { *pval = unassigned_mem_read(mr, addr, size); return MEMTX_DECODE_ERROR; @@ -1488,6 +1493,11 @@ MemTxResult memory_region_dispatch_write(MemoryRegion *mr, { unsigned size = memop_size(op); + if (mr->alias) { + return memory_region_dispatch_write(mr->alias, + mr->alias_offset + addr, + data, op, attrs); + } if (!memory_region_access_valid(mr, addr, size, true, attrs)) { unassigned_mem_write(mr, addr, data, size); return MEMTX_DECODE_ERROR; From patchwork Tue Jan 18 12:02:12 2022 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: 12716284 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 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 smtp.lore.kernel.org (Postfix) with ESMTPS id F250BC433F5 for ; Tue, 18 Jan 2022 12:27:51 +0000 (UTC) Received: from localhost ([::1]:37400 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1n9naY-00020X-Vk for qemu-devel@archiver.kernel.org; Tue, 18 Jan 2022 07:27:51 -0500 Received: from eggs.gnu.org ([209.51.188.92]:51382) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1n9nDn-00065P-SF; Tue, 18 Jan 2022 07:04:25 -0500 Received: from [2a00:1450:4864:20::32b] (port=55107 helo=mail-wm1-x32b.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1n9nCK-0005jV-R5; Tue, 18 Jan 2022 07:02:53 -0500 Received: by mail-wm1-x32b.google.com with SMTP id p18so27133226wmg.4; Tue, 18 Jan 2022 04:02:42 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=DWxXs/yisq3shP3JsRPbu1icyNFhILJ+qdkOwqqhAt0=; b=O5L7l8X7EPmelOOW+n4cyoT9OMiWkBqCqr2cyEDt2As2s5dz/GKyveZo4LdYIgReRL JqXApVKoeFl/KorAES+Ebmg8Djy1bX8tcdHZ6appLtqTVBEtiyFjX4XUZTn2NKZ6+2Bf 2kQUKi+Z/Dv2AMK1cU9btdBFC14zS4nQg0YBwJXapDrXVZe2Nzb7/ZgCeqOF3BejEXBl WqRSkyYFPY1Tbb6MKAkhPOA2yftgme3qcp7WyY7KnpznTSTAJJ7+79rWVDk6jJMDxFbU JcMbQWm8zs8iG1xnsNjwwznn1O0sPcUYyIw/yBXkXpcPMw/Tm0XCTaRtoKhjaKYqneb1 jgPA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=DWxXs/yisq3shP3JsRPbu1icyNFhILJ+qdkOwqqhAt0=; b=vGia0nWQuLeLytXi5uo/dlN96+wYPv3ENa9aQiZSCTsoXvUIeMaBxrZNaMXEQ+/TLt cgPqQ+UeXtlVFrM56iAt3CH6sAXrZ8YB+H9lfp7BzprX2Gzcg7xbeDsloD5Nz2wV4fPr DHy89c82z5hs5XGtDXhM8qcp5kGPaTv8tWPsVFpjH5F3WS7upv+sCfpD74pPl5SDjgmI 5eDiqb40J9yzntBKknYURIvQBIquxIElNeg2yIsM4NUFE2jtIlsIuAu3CDIMOoD6Ofi5 elWSG3VkyLxjLj9fbjVoufPJYV3xzRQBTjq8fc92Cs8wfUfs2Jbjz9dRKNpCHffjgj1H eaWA== X-Gm-Message-State: AOAM531ekAerhum2/BpX6MclpG2UY5zf25mE8gy+tCi4VEnzXhhSVFtX C7nGI2uy7Z8RgERzfSRJsF3SVTGLg2k= X-Google-Smtp-Source: ABdhPJzT3j/PZ1SIy36c3A1rH/4JTGLVogV14luxYuulCccOOXeALBnYPgMQ1O6MIBvl748/MP/OHw== X-Received: by 2002:a05:600c:35d0:: with SMTP id r16mr17408118wmq.195.1642507360375; Tue, 18 Jan 2022 04:02:40 -0800 (PST) Received: from nuc.. (154.red-83-50-83.dynamicip.rima-tde.net. [83.50.83.154]) by smtp.gmail.com with ESMTPSA id g17sm3089762wmq.9.2022.01.18.04.02.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 18 Jan 2022 04:02:40 -0800 (PST) To: qemu-devel@nongnu.org Cc: Peter Xu , David Hildenbrand , Paolo Bonzini , qemu-block@nongnu.org, =?utf-8?q?Phili?= =?utf-8?q?ppe_Mathieu-Daud=C3=A9?= , Peter Maydell , Richard Henderson , =?utf-8?q?Philippe_Mathie?= =?utf-8?q?u-Daud=C3=A9?= Subject: [PULL 02/19] memory: Split mtree_info() as mtree_info_flatview() + mtree_info_as() Date: Tue, 18 Jan 2022 13:02:12 +0100 Message-Id: <20220118120229.196337-3-f4bug@amsat.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220118120229.196337-1-f4bug@amsat.org> References: <20220118120229.196337-1-f4bug@amsat.org> MIME-Version: 1.0 X-Host-Lookup-Failed: Reverse DNS lookup failed for 2a00:1450:4864:20::32b (failed) Received-SPF: pass client-ip=2a00:1450:4864:20::32b; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-wm1-x32b.google.com X-Spam_score_int: -6 X-Spam_score: -0.7 X-Spam_bar: / X-Spam_report: (-0.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.248, PDS_HP_HELO_NORDNS=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RDNS_NONE=0.793, SPF_HELO_NONE=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: 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" Reply-to: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= X-Patchwork-Original-From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= via From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= From: Philippe Mathieu-Daudé While mtree_info() handles both ASes and flatviews cases, the two cases share basically no code. Split mtree_info() as mtree_info_flatview() + mtree_info_as() to simplify. Suggested-by: Peter Maydell Reviewed-by: David Hildenbrand Reviewed-by: Peter Xu Reviewed-by: Richard Henderson Signed-off-by: Philippe Mathieu-Daudé Message-Id: <20210904231101.1071929-2-philmd@redhat.com> Signed-off-by: Philippe Mathieu-Daudé --- softmmu/memory.c | 87 ++++++++++++++++++++++++++---------------------- 1 file changed, 48 insertions(+), 39 deletions(-) diff --git a/softmmu/memory.c b/softmmu/memory.c index 0c463e0fe53..2cb823c642f 100644 --- a/softmmu/memory.c +++ b/softmmu/memory.c @@ -3284,50 +3284,50 @@ static gboolean mtree_info_flatview_free(gpointer key, gpointer value, return true; } -void mtree_info(bool flatview, bool dispatch_tree, bool owner, bool disabled) +static void mtree_info_flatview(bool dispatch_tree, bool owner) +{ + struct FlatViewInfo fvi = { + .counter = 0, + .dispatch_tree = dispatch_tree, + .owner = owner, + }; + AddressSpace *as; + FlatView *view; + GArray *fv_address_spaces; + GHashTable *views = g_hash_table_new(g_direct_hash, g_direct_equal); + AccelClass *ac = ACCEL_GET_CLASS(current_accel()); + + if (ac->has_memory) { + fvi.ac = ac; + } + + /* Gather all FVs in one table */ + QTAILQ_FOREACH(as, &address_spaces, address_spaces_link) { + view = address_space_get_flatview(as); + + fv_address_spaces = g_hash_table_lookup(views, view); + if (!fv_address_spaces) { + fv_address_spaces = g_array_new(false, false, sizeof(as)); + g_hash_table_insert(views, view, fv_address_spaces); + } + + g_array_append_val(fv_address_spaces, as); + } + + /* Print */ + g_hash_table_foreach(views, mtree_print_flatview, &fvi); + + /* Free */ + g_hash_table_foreach_remove(views, mtree_info_flatview_free, 0); + g_hash_table_unref(views); +} + +static void mtree_info_as(bool dispatch_tree, bool owner, bool disabled) { MemoryRegionListHead ml_head; MemoryRegionList *ml, *ml2; AddressSpace *as; - if (flatview) { - FlatView *view; - struct FlatViewInfo fvi = { - .counter = 0, - .dispatch_tree = dispatch_tree, - .owner = owner, - }; - GArray *fv_address_spaces; - GHashTable *views = g_hash_table_new(g_direct_hash, g_direct_equal); - AccelClass *ac = ACCEL_GET_CLASS(current_accel()); - - if (ac->has_memory) { - fvi.ac = ac; - } - - /* Gather all FVs in one table */ - QTAILQ_FOREACH(as, &address_spaces, address_spaces_link) { - view = address_space_get_flatview(as); - - fv_address_spaces = g_hash_table_lookup(views, view); - if (!fv_address_spaces) { - fv_address_spaces = g_array_new(false, false, sizeof(as)); - g_hash_table_insert(views, view, fv_address_spaces); - } - - g_array_append_val(fv_address_spaces, as); - } - - /* Print */ - g_hash_table_foreach(views, mtree_print_flatview, &fvi); - - /* Free */ - g_hash_table_foreach_remove(views, mtree_info_flatview_free, 0); - g_hash_table_unref(views); - - return; - } - QTAILQ_INIT(&ml_head); QTAILQ_FOREACH(as, &address_spaces, address_spaces_link) { @@ -3348,6 +3348,15 @@ void mtree_info(bool flatview, bool dispatch_tree, bool owner, bool disabled) } } +void mtree_info(bool flatview, bool dispatch_tree, bool owner, bool disabled) +{ + if (flatview) { + mtree_info_flatview(dispatch_tree, owner); + } else { + mtree_info_as(dispatch_tree, owner, disabled); + } +} + void memory_region_init_ram(MemoryRegion *mr, Object *owner, const char *name, From patchwork Tue Jan 18 12:02:13 2022 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: 12716283 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 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 smtp.lore.kernel.org (Postfix) with ESMTPS id 547F1C433F5 for ; Tue, 18 Jan 2022 12:25:19 +0000 (UTC) Received: from localhost ([::1]:34912 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1n9nY6-0008Hd-3S for qemu-devel@archiver.kernel.org; Tue, 18 Jan 2022 07:25:18 -0500 Received: from eggs.gnu.org ([209.51.188.92]:51438) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1n9nEB-0006BS-OH; Tue, 18 Jan 2022 07:04:46 -0500 Received: from [2a00:1450:4864:20::32e] (port=36551 helo=mail-wm1-x32e.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1n9nCT-0005jk-Fw; Tue, 18 Jan 2022 07:04:21 -0500 Received: by mail-wm1-x32e.google.com with SMTP id i187-20020a1c3bc4000000b0034d2ed1be2aso3758151wma.1; Tue, 18 Jan 2022 04:02:46 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=LbeGhGwTNs7JJIpS9RWiGIcQvzwZfRfuhvu4vDkY+4U=; b=YphJqyeqmEhaWMbsGe+mBNiU5Fefn5JUwGBnPQpIbGtk7vrpQ6ram1W+Jy5y/pM0oP jnGOLquiLVaCexv4+F9CX3iag3GHH4BJhzFTMIjqAPv4moK4yx53mZH4YI7kB17N1mHW Ju17iBOFSb6wTTFSv57Pij8t2sujnJlixb39tYwzj0sjV3JrLwJNUTLMkPmjs2hkg3Dd L58NVlFfxGKGWkqERftCJFOIvvt/TjPH9gRhSiqZ7NIFy9IAcKUT2UUNoiZxa5CwMDUq /1DMEwGdRq95laxUQmWARrWnOG6F5BU5o4TKbgZQ56umtLUmQjXCLZAUglOrbIPF5EG+ rPqg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=LbeGhGwTNs7JJIpS9RWiGIcQvzwZfRfuhvu4vDkY+4U=; b=yjwM+3xE5ClhrR5eeWN23HnO7YHb47HdOt+Xayf/EorlkZdTO/5wC2cSsk3a7kXSr7 IiaA+px7bh1XiipYUsvhujnpmQlhFuqwnGzwxZ5CsaBZShiUJYhknlhtcWahbELOJiNZ YPVvRtgzapOxBXvZ2w44QUM9nEpFj/07A62BN+AbvbCn5LotPa7wabFRKn3YbXDsPM77 R3m8xqtwO6bfkOWYJO4c90AQkT1zNB4V3jM9H1ibYQbSzl3h9hp1G6UHJ6Ijo8FY9wfQ mV8gv+4UjrNeEpaWuK8e6+9xA+42lIZRmgulLLzI6+ooN7ljWHvv5NgsBe1CpTbKdNma eIAw== X-Gm-Message-State: AOAM530N8XBXXgO3k99syCaKYO8+3wMWRGSd4Ch6KH46o0HQtOhemOH4 aeuWJcI+7MwwhCuBDliewcH5pXVtxXU= X-Google-Smtp-Source: ABdhPJzXkfN6ThRkV5pMod/EvCLyj4aAoEiUVLI5+yvmpWwzjp3QX3k9P2nu8FLmv0agd91vMlggNg== X-Received: by 2002:adf:c74e:: with SMTP id b14mr23869054wrh.97.1642507365370; Tue, 18 Jan 2022 04:02:45 -0800 (PST) Received: from nuc.. (154.red-83-50-83.dynamicip.rima-tde.net. [83.50.83.154]) by smtp.gmail.com with ESMTPSA id e4sm7284312wrq.63.2022.01.18.04.02.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 18 Jan 2022 04:02:45 -0800 (PST) To: qemu-devel@nongnu.org Cc: Peter Xu , David Hildenbrand , Paolo Bonzini , qemu-block@nongnu.org, =?utf-8?q?Phili?= =?utf-8?q?ppe_Mathieu-Daud=C3=A9?= , Peter Maydell , Richard Henderson , =?utf-8?q?Philippe_Mathie?= =?utf-8?q?u-Daud=C3=A9?= Subject: [PULL 03/19] memory: Have 'info mtree' remove duplicated Address Space information Date: Tue, 18 Jan 2022 13:02:13 +0100 Message-Id: <20220118120229.196337-4-f4bug@amsat.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220118120229.196337-1-f4bug@amsat.org> References: <20220118120229.196337-1-f4bug@amsat.org> MIME-Version: 1.0 X-Host-Lookup-Failed: Reverse DNS lookup failed for 2a00:1450:4864:20::32e (failed) Received-SPF: pass client-ip=2a00:1450:4864:20::32e; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-wm1-x32e.google.com X-Spam_score_int: -6 X-Spam_score: -0.7 X-Spam_bar: / X-Spam_report: (-0.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.248, PDS_HP_HELO_NORDNS=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RDNS_NONE=0.793, SPF_HELO_NONE=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: 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" Reply-to: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= X-Patchwork-Original-From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= via From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= From: Philippe Mathieu-Daudé Per Peter Maydell [*]: 'info mtree' monitor command was designed on the assumption that there's really only one or two interesting address spaces, and with more recent developments that's just not the case any more. Similarly about how the FlatView are sorted using a GHashTable, sort the AddressSpace objects to remove the duplications (AS using the same root MemoryRegion). This drastically reduces the output of 'info mtree' on some boards. Before: $ (echo info mtree; echo q) \ | qemu-system-aarch64 -S -monitor stdio -M raspi3b \ | wc -l 423 After: $ (echo info mtree; echo q) \ | qemu-system-aarch64 -S -monitor stdio -M raspi3b \ | wc -l 106 (qemu) info mtree address-space: I/O 0000000000000000-000000000000ffff (prio 0, i/o): io address-space: cpu-memory-0 address-space: cpu-memory-1 address-space: cpu-memory-2 address-space: cpu-memory-3 address-space: cpu-secure-memory-0 address-space: cpu-secure-memory-1 address-space: cpu-secure-memory-2 address-space: cpu-secure-memory-3 address-space: memory 0000000000000000-ffffffffffffffff (prio 0, i/o): system 0000000000000000-000000003fffffff (prio 0, ram): ram 000000003f000000-000000003fffffff (prio 1, i/o): bcm2835-peripherals 000000003f003000-000000003f00301f (prio 0, i/o): bcm2835-sys-timer 000000003f004000-000000003f004fff (prio -1000, i/o): bcm2835-txp 000000003f006000-000000003f006fff (prio 0, i/o): mphi 000000003f007000-000000003f007fff (prio 0, i/o): bcm2835-dma 000000003f00b200-000000003f00b3ff (prio 0, i/o): bcm2835-ic 000000003f00b400-000000003f00b43f (prio -1000, i/o): bcm2835-sp804 000000003f00b800-000000003f00bbff (prio 0, i/o): bcm2835-mbox 000000003f100000-000000003f1001ff (prio 0, i/o): bcm2835-powermgt 000000003f101000-000000003f102fff (prio 0, i/o): bcm2835-cprman 000000003f104000-000000003f10400f (prio 0, i/o): bcm2835-rng 000000003f200000-000000003f200fff (prio 0, i/o): bcm2835_gpio 000000003f201000-000000003f201fff (prio 0, i/o): pl011 000000003f202000-000000003f202fff (prio 0, i/o): bcm2835-sdhost 000000003f203000-000000003f2030ff (prio -1000, i/o): bcm2835-i2s 000000003f204000-000000003f20401f (prio -1000, i/o): bcm2835-spi0 000000003f205000-000000003f20501f (prio -1000, i/o): bcm2835-i2c0 000000003f20f000-000000003f20f07f (prio -1000, i/o): bcm2835-otp 000000003f212000-000000003f212007 (prio 0, i/o): bcm2835-thermal 000000003f214000-000000003f2140ff (prio -1000, i/o): bcm2835-spis 000000003f215000-000000003f2150ff (prio 0, i/o): bcm2835-aux 000000003f300000-000000003f3000ff (prio 0, i/o): sdhci 000000003f600000-000000003f6000ff (prio -1000, i/o): bcm2835-smi 000000003f804000-000000003f80401f (prio -1000, i/o): bcm2835-i2c1 000000003f805000-000000003f80501f (prio -1000, i/o): bcm2835-i2c2 000000003f900000-000000003f907fff (prio -1000, i/o): bcm2835-dbus 000000003f910000-000000003f917fff (prio -1000, i/o): bcm2835-ave0 000000003f980000-000000003f990fff (prio 0, i/o): dwc2 000000003f980000-000000003f980fff (prio 0, i/o): dwc2-io 000000003f981000-000000003f990fff (prio 0, i/o): dwc2-fifo 000000003fc00000-000000003fc00fff (prio -1000, i/o): bcm2835-v3d 000000003fe00000-000000003fe000ff (prio -1000, i/o): bcm2835-sdramc 000000003fe05000-000000003fe050ff (prio 0, i/o): bcm2835-dma-chan15 0000000040000000-00000000400000ff (prio 0, i/o): bcm2836-control address-space: bcm2835-dma-memory address-space: bcm2835-fb-memory address-space: bcm2835-property-memory address-space: dwc2 0000000000000000-00000000ffffffff (prio 0, i/o): bcm2835-gpu 0000000000000000-000000003fffffff (prio 0, ram): alias bcm2835-gpu-ram-alias[*] @ram 0000000000000000-000000003fffffff 0000000040000000-000000007fffffff (prio 0, ram): alias bcm2835-gpu-ram-alias[*] @ram 0000000000000000-000000003fffffff 000000007e000000-000000007effffff (prio 1, i/o): alias bcm2835-peripherals @bcm2835-peripherals 0000000000000000-0000000000ffffff 0000000080000000-00000000bfffffff (prio 0, ram): alias bcm2835-gpu-ram-alias[*] @ram 0000000000000000-000000003fffffff 00000000c0000000-00000000ffffffff (prio 0, ram): alias bcm2835-gpu-ram-alias[*] @ram 0000000000000000-000000003fffffff address-space: bcm2835-mbox-memory 0000000000000000-000000000000008f (prio 0, i/o): bcm2835-mbox 0000000000000010-000000000000001f (prio 0, i/o): bcm2835-fb 0000000000000080-000000000000008f (prio 0, i/o): bcm2835-property memory-region: ram 0000000000000000-000000003fffffff (prio 0, ram): ram memory-region: bcm2835-peripherals 000000003f000000-000000003fffffff (prio 1, i/o): bcm2835-peripherals 000000003f003000-000000003f00301f (prio 0, i/o): bcm2835-sys-timer 000000003f004000-000000003f004fff (prio -1000, i/o): bcm2835-txp 000000003f006000-000000003f006fff (prio 0, i/o): mphi 000000003f007000-000000003f007fff (prio 0, i/o): bcm2835-dma 000000003f00b200-000000003f00b3ff (prio 0, i/o): bcm2835-ic 000000003f00b400-000000003f00b43f (prio -1000, i/o): bcm2835-sp804 000000003f00b800-000000003f00bbff (prio 0, i/o): bcm2835-mbox 000000003f100000-000000003f1001ff (prio 0, i/o): bcm2835-powermgt 000000003f101000-000000003f102fff (prio 0, i/o): bcm2835-cprman 000000003f104000-000000003f10400f (prio 0, i/o): bcm2835-rng 000000003f200000-000000003f200fff (prio 0, i/o): bcm2835_gpio 000000003f201000-000000003f201fff (prio 0, i/o): pl011 000000003f202000-000000003f202fff (prio 0, i/o): bcm2835-sdhost 000000003f203000-000000003f2030ff (prio -1000, i/o): bcm2835-i2s 000000003f204000-000000003f20401f (prio -1000, i/o): bcm2835-spi0 000000003f205000-000000003f20501f (prio -1000, i/o): bcm2835-i2c0 000000003f20f000-000000003f20f07f (prio -1000, i/o): bcm2835-otp 000000003f212000-000000003f212007 (prio 0, i/o): bcm2835-thermal 000000003f214000-000000003f2140ff (prio -1000, i/o): bcm2835-spis 000000003f215000-000000003f2150ff (prio 0, i/o): bcm2835-aux 000000003f300000-000000003f3000ff (prio 0, i/o): sdhci 000000003f600000-000000003f6000ff (prio -1000, i/o): bcm2835-smi 000000003f804000-000000003f80401f (prio -1000, i/o): bcm2835-i2c1 000000003f805000-000000003f80501f (prio -1000, i/o): bcm2835-i2c2 000000003f900000-000000003f907fff (prio -1000, i/o): bcm2835-dbus 000000003f910000-000000003f917fff (prio -1000, i/o): bcm2835-ave0 000000003f980000-000000003f990fff (prio 0, i/o): dwc2 000000003f980000-000000003f980fff (prio 0, i/o): dwc2-io 000000003f981000-000000003f990fff (prio 0, i/o): dwc2-fifo 000000003fc00000-000000003fc00fff (prio -1000, i/o): bcm2835-v3d 000000003fe00000-000000003fe000ff (prio -1000, i/o): bcm2835-sdramc 000000003fe05000-000000003fe050ff (prio 0, i/o): bcm2835-dma-chan15 (qemu) q [*] https://www.mail-archive.com/qemu-devel@nongnu.org/msg829821.html Suggested-by: Peter Maydell Reviewed-by: Peter Maydell Reviewed-by: David Hildenbrand Reviewed-by: Peter Xu Reviewed-by: Richard Henderson Signed-off-by: Philippe Mathieu-Daudé Message-Id: <20210904231101.1071929-2-philmd@redhat.com> Signed-off-by: Philippe Mathieu-Daudé --- softmmu/memory.c | 63 +++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 60 insertions(+), 3 deletions(-) diff --git a/softmmu/memory.c b/softmmu/memory.c index 2cb823c642f..5e69624f7ff 100644 --- a/softmmu/memory.c +++ b/softmmu/memory.c @@ -3322,20 +3322,77 @@ static void mtree_info_flatview(bool dispatch_tree, bool owner) g_hash_table_unref(views); } +struct AddressSpaceInfo { + MemoryRegionListHead *ml_head; + bool owner; + bool disabled; +}; + +/* Returns negative value if a < b; zero if a = b; positive value if a > b. */ +static gint address_space_compare_name(gconstpointer a, gconstpointer b) +{ + const AddressSpace *as_a = a; + const AddressSpace *as_b = b; + + return g_strcmp0(as_a->name, as_b->name); +} + +static void mtree_print_as_name(gpointer data, gpointer user_data) +{ + AddressSpace *as = data; + + qemu_printf("address-space: %s\n", as->name); +} + +static void mtree_print_as(gpointer key, gpointer value, gpointer user_data) +{ + MemoryRegion *mr = key; + GSList *as_same_root_mr_list = value; + struct AddressSpaceInfo *asi = user_data; + + g_slist_foreach(as_same_root_mr_list, mtree_print_as_name, NULL); + mtree_print_mr(mr, 1, 0, asi->ml_head, asi->owner, asi->disabled); + qemu_printf("\n"); +} + +static gboolean mtree_info_as_free(gpointer key, gpointer value, + gpointer user_data) +{ + GSList *as_same_root_mr_list = value; + + g_slist_free(as_same_root_mr_list); + + return true; +} + static void mtree_info_as(bool dispatch_tree, bool owner, bool disabled) { MemoryRegionListHead ml_head; MemoryRegionList *ml, *ml2; AddressSpace *as; + GHashTable *views = g_hash_table_new(g_direct_hash, g_direct_equal); + GSList *as_same_root_mr_list; + struct AddressSpaceInfo asi = { + .ml_head = &ml_head, + .owner = owner, + .disabled = disabled, + }; QTAILQ_INIT(&ml_head); QTAILQ_FOREACH(as, &address_spaces, address_spaces_link) { - qemu_printf("address-space: %s\n", as->name); - mtree_print_mr(as->root, 1, 0, &ml_head, owner, disabled); - qemu_printf("\n"); + /* Create hashtable, key=AS root MR, value = list of AS */ + as_same_root_mr_list = g_hash_table_lookup(views, as->root); + as_same_root_mr_list = g_slist_insert_sorted(as_same_root_mr_list, as, + address_space_compare_name); + g_hash_table_insert(views, as->root, as_same_root_mr_list); } + /* print address spaces */ + g_hash_table_foreach(views, mtree_print_as, &asi); + g_hash_table_foreach_remove(views, mtree_info_as_free, 0); + g_hash_table_unref(views); + /* print aliased regions */ QTAILQ_FOREACH(ml, &ml_head, mrqueue) { qemu_printf("memory-region: %s\n", memory_region_name(ml->mr)); From patchwork Tue Jan 18 12:02:14 2022 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: 12716273 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 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 smtp.lore.kernel.org (Postfix) with ESMTPS id 9AFCCC433F5 for ; Tue, 18 Jan 2022 12:15:30 +0000 (UTC) Received: from localhost ([::1]:39832 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1n9nOb-0000gI-Et for qemu-devel@archiver.kernel.org; Tue, 18 Jan 2022 07:15:29 -0500 Received: from eggs.gnu.org ([209.51.188.92]:51384) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1n9nDn-00065R-W4; Tue, 18 Jan 2022 07:04:25 -0500 Received: from [2a00:1450:4864:20::335] (port=44875 helo=mail-wm1-x335.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1n9nCT-0005kK-Gf; Tue, 18 Jan 2022 07:04:18 -0500 Received: by mail-wm1-x335.google.com with SMTP id l35-20020a05600c1d2300b0034d477271c1so3296766wms.3; Tue, 18 Jan 2022 04:02:51 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=NcmRGZy+w5AeQknLrQ9i8jkt7Fnk+/sozWPtjzwcvn4=; b=BUXPn5+k9O6T/sa1a4lmJrLzIg80wNuXg4gTsEOdPcYbo2s1mcLcWB5GXsxe4breGz Tc2eqhTkGtcKWHf1cQagvKtGosb2iOUO2MF4ej+9hnXrJS+4Rma/wpeTg3qz2qskOY0S qbtb2danPSYbH1CduBvib61PyDPkF/zwGEgAIeWeDvosZzBtFxx2Y9Hqt+NRSPsjUMAK /MYtIBzoThspJRyFcc4E9kE6+sfZbJe5HQPVghsCDDvJLPQZg0vU9A73E/l3qr9QpXX7 /7R7MTMZ3DCX645V2B7d9jAMCplTmDtyUbQLUEl8YpIAUiEaY25zk/FTXzAikN2o4W8h /udQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=NcmRGZy+w5AeQknLrQ9i8jkt7Fnk+/sozWPtjzwcvn4=; b=AOKQWny7Ky228rBfOHKTHFjnsEPen2TKmJfAEUJswbTGa/vskG2DIT7zIF4lYhohKN UBkvcI7RoI84Wbn2+aut1eur9V9U2h800hqw2+W9XSAO5yT9tnSIz9P07kRijdLdHHkl xlPXe6Y/d3X7cH6CYY4WZbWduHfb0wPYL1UUwr98owpCH7x2ROBXOZy8JyowNtRjfv83 EtLsGhpZ4BEjVzWQ8qeMmiLw1SUa9KnfRcVAM454CaO8UP1kztxjQJam79BbHFjepCk+ Y6wcbOnZzvkgozgmOxCcWJRW+DjPpeVIAVpz/69QuK6cl2e/wqB0Wl16lxs0RsGSRan4 x30w== X-Gm-Message-State: AOAM530hh3oCh3gzGd4hCUpqPnZQke9NmLyHWWpLq4iNomrbEwUZ+pzH MPKFxUxlHmrdhk6DVoOxE4bmWDmMqAk= X-Google-Smtp-Source: ABdhPJxcqCU+73oqEhIAjbPW2oGfth8yFjENXMIMJs5yBlSE5G0AeaQa+wbiUgNPzLMWiUSlccrxwg== X-Received: by 2002:adf:dfcd:: with SMTP id q13mr24365013wrn.487.1642507370197; Tue, 18 Jan 2022 04:02:50 -0800 (PST) Received: from nuc.. (154.red-83-50-83.dynamicip.rima-tde.net. [83.50.83.154]) by smtp.gmail.com with ESMTPSA id o5sm2133194wmc.39.2022.01.18.04.02.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 18 Jan 2022 04:02:49 -0800 (PST) To: qemu-devel@nongnu.org Cc: Peter Xu , David Hildenbrand , Paolo Bonzini , qemu-block@nongnu.org, Richard Henderson , Igor Mammedov , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , =?utf-8?q?Phil?= =?utf-8?q?ippe_Mathieu-Daud=C3=A9?= Subject: [PULL 04/19] machine: Use host_memory_backend_is_mapped() in machine_consume_memdev() Date: Tue, 18 Jan 2022 13:02:14 +0100 Message-Id: <20220118120229.196337-5-f4bug@amsat.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220118120229.196337-1-f4bug@amsat.org> References: <20220118120229.196337-1-f4bug@amsat.org> MIME-Version: 1.0 X-Host-Lookup-Failed: Reverse DNS lookup failed for 2a00:1450:4864:20::335 (failed) Received-SPF: pass client-ip=2a00:1450:4864:20::335; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-wm1-x335.google.com X-Spam_score_int: -6 X-Spam_score: -0.7 X-Spam_bar: / X-Spam_report: (-0.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.248, PDS_HP_HELO_NORDNS=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RDNS_NONE=0.793, SPF_HELO_NONE=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: 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" Reply-to: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= X-Patchwork-Original-From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= via From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= From: David Hildenbrand memory_region_is_mapped() is the wrong check, we actually want to check whether the backend is already marked mapped. For example, memory regions mapped via an alias, such as NVDIMMs, currently don't make memory_region_is_mapped() return "true". As the machine is initialized before any memory devices (and thereby before NVDIMMs are initialized), this isn't a fix but merely a cleanup. Reviewed-by: Richard Henderson Reviewed-by: Igor Mammedov Reviewed-by: Philippe Mathieu-Daudé Reviewed-by: Peter Xu Signed-off-by: David Hildenbrand Message-Id: <20211102164317.45658-2-david@redhat.com> Signed-off-by: Philippe Mathieu-Daudé --- hw/core/machine.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/core/machine.c b/hw/core/machine.c index debcdc0e70a..d856485cb4d 100644 --- a/hw/core/machine.c +++ b/hw/core/machine.c @@ -1091,7 +1091,7 @@ MemoryRegion *machine_consume_memdev(MachineState *machine, { MemoryRegion *ret = host_memory_backend_get_memory(backend); - if (memory_region_is_mapped(ret)) { + if (host_memory_backend_is_mapped(backend)) { error_report("memory backend %s can't be used multiple times.", object_get_canonical_path_component(OBJECT(backend))); exit(EXIT_FAILURE); From patchwork Tue Jan 18 12:02:15 2022 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: 12716279 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 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 smtp.lore.kernel.org (Postfix) with ESMTPS id 9A7B3C433F5 for ; Tue, 18 Jan 2022 12:23:11 +0000 (UTC) Received: from localhost ([::1]:58142 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1n9nW2-0004jJ-C1 for qemu-devel@archiver.kernel.org; Tue, 18 Jan 2022 07:23:10 -0500 Received: from eggs.gnu.org ([209.51.188.92]:51648) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1n9nEN-0006CO-D4; Tue, 18 Jan 2022 07:05:05 -0500 Received: from [2a00:1450:4864:20::333] (port=40824 helo=mail-wm1-x333.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1n9nEC-0005kt-Qt; Tue, 18 Jan 2022 07:04:49 -0500 Received: by mail-wm1-x333.google.com with SMTP id 25-20020a05600c231900b003497473a9c4so5172047wmo.5; Tue, 18 Jan 2022 04:02:56 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=kmU4itPtJkI7ofMECtKgB5LQiZW9Htkdyqvn7BM7rHU=; b=KB9tZjAeXP8VnxbqkS2J07GiAei6mF0wylZg4jZXWAwNObpgyngsLQQzmPTepD+EY5 xFyGlDH4HWs4PN2TTK5AFL+Dt56Tt9WCLrS6h29BKdwB2mtAJHam6TkD6ybxf+EPbU+M 9KgqVH7q7oO+Hr+0Yzrgzr+QNO72nK5OASSYO2ZjPdlXBzWqJxrvqbtkdBxJert8qwAz YuS93lus7z1sIoh9rpDM1elL4yKhBqy02OST0dKmJj/6VbEJvkFEqRBkSwIbs92cQh3k J3LjdNcldHjeOAsUiqj8r/Fqdmloh/MldMtiPoJZtYYm+2QN7jt1lTbnx8iWy1tFUdq+ T6Hg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=kmU4itPtJkI7ofMECtKgB5LQiZW9Htkdyqvn7BM7rHU=; b=YGlTY7J3O2B6ss4Zkrr/WTMlga+8GLI7xAzAOkTpL1r0YbOh7+wHo8Qzc8TQpsDyjs pzioZPn3tEjr1DNQTA7B/k55MKqQEiiX1Pce4z/ThrOCcEvI4CqKKl+p7Yrip0WUbJnw g7kCaXRWXj0Magv9vpOVaWeoK7t/6CpHi0eTFeGq7oXiL92P39EL7nlYWe5GDs2e5eao VlHmhYgJrFIJMd/Q59WL402kk46YLbxH5d+Nk0KZQGzMAPTZbicUNQdirFAxFqFEy5EX OAteXRT+3dY4Ofx8obZMFJ4iRnlEWDxA3xL4I4OmXOD7u5mgFIIgWkB1UqW43IxgPRY/ uE/A== X-Gm-Message-State: AOAM530wyyVB9ZmZ+BZNqZjBbAtDbV85v9ez35pMA69IUny3E+vO8BcD bjSHR+oyrGAUfPzdoqxXf68rsWwlHz0= X-Google-Smtp-Source: ABdhPJxHO8CKNqE4Z+vrvqjjrAf+bVQTJRlmTboKdpEOGFhsLQ9TZILKP4BWxC/ZJFkbZwZWZPiJiA== X-Received: by 2002:a7b:cd8b:: with SMTP id y11mr22842781wmj.76.1642507375058; Tue, 18 Jan 2022 04:02:55 -0800 (PST) Received: from nuc.. (154.red-83-50-83.dynamicip.rima-tde.net. [83.50.83.154]) by smtp.gmail.com with ESMTPSA id g3sm7468614wri.110.2022.01.18.04.02.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 18 Jan 2022 04:02:54 -0800 (PST) To: qemu-devel@nongnu.org Cc: Peter Xu , David Hildenbrand , Paolo Bonzini , qemu-block@nongnu.org, =?utf-8?q?Phili?= =?utf-8?q?ppe_Mathieu-Daud=C3=A9?= , =?utf-8?q?Philippe_?= =?utf-8?q?Mathieu-Daud=C3=A9?= Subject: [PULL 05/19] memory: Make memory_region_is_mapped() succeed when mapped via an alias Date: Tue, 18 Jan 2022 13:02:15 +0100 Message-Id: <20220118120229.196337-6-f4bug@amsat.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220118120229.196337-1-f4bug@amsat.org> References: <20220118120229.196337-1-f4bug@amsat.org> MIME-Version: 1.0 X-Host-Lookup-Failed: Reverse DNS lookup failed for 2a00:1450:4864:20::333 (failed) Received-SPF: pass client-ip=2a00:1450:4864:20::333; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-wm1-x333.google.com X-Spam_score_int: -6 X-Spam_score: -0.7 X-Spam_bar: / X-Spam_report: (-0.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.248, PDS_HP_HELO_NORDNS=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RDNS_NONE=0.793, SPF_HELO_NONE=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: 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" Reply-to: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= X-Patchwork-Original-From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= via From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= From: David Hildenbrand memory_region_is_mapped() currently does not return "true" when a memory region is mapped via an alias. Assuming we have: alias (A0) -> alias (A1) -> region (R0) Mapping A0 would currently only make memory_region_is_mapped() succeed on A0, but not on A1 and R0. Let's fix that by adding a "mapped_via_alias" counter to memory regions and updating it accordingly when an alias gets (un)mapped. I am not aware of actual issues, this is rather a cleanup to make it consistent. Reviewed-by: Philippe Mathieu-Daudé Reviewed-by: Peter Xu Signed-off-by: David Hildenbrand Message-Id: <20211102164317.45658-3-david@redhat.com> Signed-off-by: Philippe Mathieu-Daudé --- include/exec/memory.h | 1 + softmmu/memory.c | 13 ++++++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/include/exec/memory.h b/include/exec/memory.h index 20f1b27377e..fea1a493b9c 100644 --- a/include/exec/memory.h +++ b/include/exec/memory.h @@ -738,6 +738,7 @@ struct MemoryRegion { const MemoryRegionOps *ops; void *opaque; MemoryRegion *container; + int mapped_via_alias; /* Mapped via an alias, container might be NULL */ Int128 size; hwaddr addr; void (*destructor)(MemoryRegion *mr); diff --git a/softmmu/memory.c b/softmmu/memory.c index 5e69624f7ff..e37a4b8ae39 100644 --- a/softmmu/memory.c +++ b/softmmu/memory.c @@ -2545,8 +2545,13 @@ static void memory_region_add_subregion_common(MemoryRegion *mr, hwaddr offset, MemoryRegion *subregion) { + MemoryRegion *alias; + assert(!subregion->container); subregion->container = mr; + for (alias = subregion->alias; alias; alias = alias->alias) { + alias->mapped_via_alias++; + } subregion->addr = offset; memory_region_update_container_subregions(subregion); } @@ -2571,9 +2576,15 @@ void memory_region_add_subregion_overlap(MemoryRegion *mr, void memory_region_del_subregion(MemoryRegion *mr, MemoryRegion *subregion) { + MemoryRegion *alias; + memory_region_transaction_begin(); assert(subregion->container == mr); subregion->container = NULL; + for (alias = subregion->alias; alias; alias = alias->alias) { + alias->mapped_via_alias--; + assert(alias->mapped_via_alias >= 0); + } QTAILQ_REMOVE(&mr->subregions, subregion, subregions_link); memory_region_unref(subregion); memory_region_update_pending |= mr->enabled && subregion->enabled; @@ -2670,7 +2681,7 @@ static FlatRange *flatview_lookup(FlatView *view, AddrRange addr) bool memory_region_is_mapped(MemoryRegion *mr) { - return mr->container ? true : false; + return !!mr->container || mr->mapped_via_alias; } /* Same as memory_region_find, but it does not add a reference to the From patchwork Tue Jan 18 12:02:16 2022 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: 12716285 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 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 smtp.lore.kernel.org (Postfix) with ESMTPS id 7E816C433EF for ; Tue, 18 Jan 2022 12:32:33 +0000 (UTC) Received: from localhost ([::1]:43688 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1n9nf6-0006dL-CI for qemu-devel@archiver.kernel.org; Tue, 18 Jan 2022 07:32:32 -0500 Received: from eggs.gnu.org ([209.51.188.92]:51616) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1n9nEJ-0006C1-6l; Tue, 18 Jan 2022 07:05:00 -0500 Received: from [2a00:1450:4864:20::32e] (port=40821 helo=mail-wm1-x32e.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1n9nEB-0005qx-KX; Tue, 18 Jan 2022 07:04:45 -0500 Received: by mail-wm1-x32e.google.com with SMTP id 25-20020a05600c231900b003497473a9c4so5172556wmo.5; Tue, 18 Jan 2022 04:03:00 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=/8g3YUq2P+trQ4peexKIRwmbDVpKrAdGictXnf4Pf5U=; b=m2Yjx5uceyZlVbgSqrLCnL9aP6tUNY2FiOGcVKdoEVVTHIoqX3NYHsI6hreYn6WStt pKfKFcLXQgVLfeJMBkYGo+UNQSwQfQPJF4MASyJTq4FLR3PBQQusO9u8VyzvTA0kdMAl laf9lTN3DJ+npOgh5/S5Qk5pUhAOwxUHpCXNs65axqrdN5++p9NDzoQ1NkKBoYcp7V1S 8MYPfvHnm4kVmhrokvfaJ8kJfkYR8ddq18NDi0mTBHr9CDcZ8882wVkietVlMpsO2y9x 8OZu0ndr+XQoiu80x3VGCKXIfFz3l/PTq6EbCEXaM35PxTQ8z+CNxPf1mg7fCeiQcqMY Uh4g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=/8g3YUq2P+trQ4peexKIRwmbDVpKrAdGictXnf4Pf5U=; b=3yGDWxOHSfRgy9O8CVy2mGsrczHcr2QDky///ojMc/wr4+ZfOkMkuOjTzRDtdFo2NQ 63JSrg3HAP9NJbzxhrvizGpvmLqHSBW032dLgTflxyeD1uMtyzD++GWlryB0JHAKF487 VFPyC3UL4jITvtnE7Xsc58wS1RL88jUMPB3jeXVVoJY0fGpyWIz9hVXwuPUzLT32ExHN 9Vnl8McYy6CTC4EUSaZ7oEh2cc7EitQ2aPWWv8JOMh8YY2gxRDIaYQOxOgygGF7ARPGb TS4hYfcsWVgMp3DJOqaaTjUqNbW+zis1s4v6z6PcvggH9PwyAGOr6tUkBv9oMkktlPHG 4ncA== X-Gm-Message-State: AOAM5311bmKcjH9FCnnsD2soY32fbuHWVKGVZlWpgYjWwLIbMetj9KYG lv7YsIh1PVJbQnhp0C2ZkqWGg/2ns24= X-Google-Smtp-Source: ABdhPJxg/LwDRFD8x70gd6rBIXb7xzQ4+iCaEO9weAoZPlFd1K1jPWwuAPUroA3abhzPlv+Wxtz35Q== X-Received: by 2002:a05:600c:4e90:: with SMTP id f16mr21586674wmq.147.1642507379993; Tue, 18 Jan 2022 04:02:59 -0800 (PST) Received: from nuc.. (154.red-83-50-83.dynamicip.rima-tde.net. [83.50.83.154]) by smtp.gmail.com with ESMTPSA id y2sm2196033wmj.13.2022.01.18.04.02.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 18 Jan 2022 04:02:59 -0800 (PST) To: qemu-devel@nongnu.org Cc: Peter Xu , David Hildenbrand , Paolo Bonzini , qemu-block@nongnu.org, =?utf-8?q?Phili?= =?utf-8?q?ppe_Mathieu-Daud=C3=A9?= , =?utf-8?q?Philippe_?= =?utf-8?q?Mathieu-Daud=C3=A9?= Subject: [PULL 06/19] memory: Update description of memory_region_is_mapped() Date: Tue, 18 Jan 2022 13:02:16 +0100 Message-Id: <20220118120229.196337-7-f4bug@amsat.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220118120229.196337-1-f4bug@amsat.org> References: <20220118120229.196337-1-f4bug@amsat.org> MIME-Version: 1.0 X-Host-Lookup-Failed: Reverse DNS lookup failed for 2a00:1450:4864:20::32e (failed) Received-SPF: pass client-ip=2a00:1450:4864:20::32e; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-wm1-x32e.google.com X-Spam_score_int: -6 X-Spam_score: -0.7 X-Spam_bar: / X-Spam_report: (-0.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.248, PDS_HP_HELO_NORDNS=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RDNS_NONE=0.793, SPF_HELO_NONE=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: 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" Reply-to: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= X-Patchwork-Original-From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= via From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= From: David Hildenbrand Let's update the documentation, making it clearer what the semantics of memory_region_is_mapped() actually are. Reviewed-by: Philippe Mathieu-Daudé Reviewed-by: Peter Xu Signed-off-by: David Hildenbrand Message-Id: <20211102164317.45658-4-david@redhat.com> Signed-off-by: Philippe Mathieu-Daudé --- include/exec/memory.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/include/exec/memory.h b/include/exec/memory.h index fea1a493b9c..63be794a067 100644 --- a/include/exec/memory.h +++ b/include/exec/memory.h @@ -2297,7 +2297,8 @@ bool memory_region_present(MemoryRegion *container, hwaddr addr); /** * memory_region_is_mapped: returns true if #MemoryRegion is mapped - * into any address space. + * into another memory region, which does not necessarily imply that it is + * mapped into an address space. * * @mr: a #MemoryRegion which should be checked if it's mapped */ From patchwork Tue Jan 18 12:02:17 2022 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: 12716271 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 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 smtp.lore.kernel.org (Postfix) with ESMTPS id 562AEC4332F for ; Tue, 18 Jan 2022 12:10:27 +0000 (UTC) Received: from localhost ([::1]:34022 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1n9nJi-0004Vm-79 for qemu-devel@archiver.kernel.org; Tue, 18 Jan 2022 07:10:26 -0500 Received: from eggs.gnu.org ([209.51.188.92]:51612) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1n9nEJ-0006C0-6m; Tue, 18 Jan 2022 07:05:00 -0500 Received: from [2a00:1450:4864:20::332] (port=50712 helo=mail-wm1-x332.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1n9nEC-0005r6-Pt; Tue, 18 Jan 2022 07:04:47 -0500 Received: by mail-wm1-x332.google.com with SMTP id w26so27155447wmi.0; Tue, 18 Jan 2022 04:03:06 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=hxLa1Ic+oybIIaxhFPog8XM4Pmte85GJPK9MXeVj63o=; b=O7bd4EtLj01BUr/Jqa34IHAsVt/KzxBcUJPmhU15WC1wLvTX178Bx2nhzYsIvSX+9X sEl9ljNKBiRe/xy8TS0W3O5gmpFvjfS45cQpClUqJxY/2G8RI63EIlzSAT3DHnzalRFi ioCU9gk6A5r4fqlnr3V054N8A+wWcGAmv28uJyegrgqhLjjFq3wBSqifU5MNFpq/8zJW avH7HdlQExwhsJ6iGQPqWzwZyeKOwoGkBct0aHPBSoPWUxzeOKXD6CsS4AIxLHn341qe 5KLBKP5Zqw2I1ec/dT6/YqoQjiZ8xYZALQqTjLAqq/Tw6NcGBYRhhJLsjSKXT/YRwOcY LGWA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=hxLa1Ic+oybIIaxhFPog8XM4Pmte85GJPK9MXeVj63o=; b=PfLBy31aFxqgg3X1fYfFrwUOZeUT8KyRfacz/Yy6DU+Av6wgGStMVSjHMCtspN7ul9 K3TM118og/3tOQ6ugT1RJzmizQMshFBkixRxQ71+cnzUKGvvaIHhFjUipvu4wEZNcZV8 GAhXlTOC7ujMhtD9zqAOjZpxDMGuB0M0lpCIqPYq+n/tfHo9+rIudXvzxgc5lG4WcQBp SB9YBEnMrcymXI9Ost2Kvl8l65ggDX7JoEAEbGnjuZmeH88trQnxqJtOk6N0rt7woySC JXwiaFJ3sbYwg7QEUQwSPR/s8QwH9yNzdqlXEWZ+ZXF4uJDPYwsus03yszgiOopxknDY KHxQ== X-Gm-Message-State: AOAM532naPKs6ieZ4PQoWjEAnUUgJEz5qBQKyuCtdxbg0uRGU6JtrTBU VR9JT5zXBvVS5uswQKRmKhE6BzQTPDg= X-Google-Smtp-Source: ABdhPJwEvKgmumh8Nh1oK47qDO3VUsxvWAXlDjZ8f1E11pgk6ACQR+tBRNhlCLT0tOcXFXPFQq3Zyg== X-Received: by 2002:a05:6000:1ac7:: with SMTP id i7mr6381681wry.491.1642507385380; Tue, 18 Jan 2022 04:03:05 -0800 (PST) Received: from nuc.. (154.red-83-50-83.dynamicip.rima-tde.net. [83.50.83.154]) by smtp.gmail.com with ESMTPSA id y13sm10157596wry.111.2022.01.18.04.03.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 18 Jan 2022 04:03:04 -0800 (PST) To: qemu-devel@nongnu.org Cc: Peter Xu , David Hildenbrand , Paolo Bonzini , qemu-block@nongnu.org, qemu-stable@nongnu.org, Hyman Huang , "Dr . David Alan Gilbert" , Juan Quintela , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= Subject: [PULL 07/19] memory: Fix incorrect calls of log_global_start/stop Date: Tue, 18 Jan 2022 13:02:17 +0100 Message-Id: <20220118120229.196337-8-f4bug@amsat.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220118120229.196337-1-f4bug@amsat.org> References: <20220118120229.196337-1-f4bug@amsat.org> MIME-Version: 1.0 X-Host-Lookup-Failed: Reverse DNS lookup failed for 2a00:1450:4864:20::332 (failed) Received-SPF: pass client-ip=2a00:1450:4864:20::332; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-wm1-x332.google.com X-Spam_score_int: -6 X-Spam_score: -0.7 X-Spam_bar: / X-Spam_report: (-0.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.248, PDS_HP_HELO_NORDNS=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RDNS_NONE=0.793, SPF_HELO_NONE=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: 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" Reply-to: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= X-Patchwork-Original-From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= via From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= From: Peter Xu We should only call the log_global_start/stop when the global dirty track bitmask changes from zero<->non-zero. No real issue reported for this yet probably because no immediate user to enable both dirty rate measurement and migration at the same time. However it'll be good to be prepared for it. Fixes: 63b41db4bc ("memory: make global_dirty_tracking a bitmask") Cc: qemu-stable@nongnu.org Cc: Hyman Huang Cc: Paolo Bonzini Cc: Dr. David Alan Gilbert Cc: Juan Quintela Cc: David Hildenbrand Signed-off-by: Peter Xu Reviewed-by: David Hildenbrand Message-Id: <20211130080028.6474-1-peterx@redhat.com> Signed-off-by: Philippe Mathieu-Daudé --- softmmu/memory.c | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/softmmu/memory.c b/softmmu/memory.c index e37a4b8ae39..678dc62f069 100644 --- a/softmmu/memory.c +++ b/softmmu/memory.c @@ -2794,6 +2794,8 @@ static VMChangeStateEntry *vmstate_change; void memory_global_dirty_log_start(unsigned int flags) { + unsigned int old_flags = global_dirty_tracking; + if (vmstate_change) { qemu_del_vm_change_state_handler(vmstate_change); vmstate_change = NULL; @@ -2802,15 +2804,14 @@ void memory_global_dirty_log_start(unsigned int flags) assert(flags && !(flags & (~GLOBAL_DIRTY_MASK))); assert(!(global_dirty_tracking & flags)); global_dirty_tracking |= flags; - trace_global_dirty_changed(global_dirty_tracking); - MEMORY_LISTENER_CALL_GLOBAL(log_global_start, Forward); - - /* Refresh DIRTY_MEMORY_MIGRATION bit. */ - memory_region_transaction_begin(); - memory_region_update_pending = true; - memory_region_transaction_commit(); + if (!old_flags) { + MEMORY_LISTENER_CALL_GLOBAL(log_global_start, Forward); + memory_region_transaction_begin(); + memory_region_update_pending = true; + memory_region_transaction_commit(); + } } static void memory_global_dirty_log_do_stop(unsigned int flags) @@ -2821,12 +2822,12 @@ static void memory_global_dirty_log_do_stop(unsigned int flags) trace_global_dirty_changed(global_dirty_tracking); - /* Refresh DIRTY_MEMORY_MIGRATION bit. */ - memory_region_transaction_begin(); - memory_region_update_pending = true; - memory_region_transaction_commit(); - - MEMORY_LISTENER_CALL_GLOBAL(log_global_stop, Reverse); + if (!global_dirty_tracking) { + memory_region_transaction_begin(); + memory_region_update_pending = true; + memory_region_transaction_commit(); + MEMORY_LISTENER_CALL_GLOBAL(log_global_stop, Reverse); + } } static void memory_vm_change_state_handler(void *opaque, bool running, From patchwork Tue Jan 18 12:02:18 2022 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: 12716286 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 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 smtp.lore.kernel.org (Postfix) with ESMTPS id 66CD2C433EF for ; Tue, 18 Jan 2022 12:34:09 +0000 (UTC) Received: from localhost ([::1]:47540 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1n9nge-0000tV-7D for qemu-devel@archiver.kernel.org; Tue, 18 Jan 2022 07:34:08 -0500 Received: from eggs.gnu.org ([209.51.188.92]:51644) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1n9nEN-0006CM-CP; Tue, 18 Jan 2022 07:05:03 -0500 Received: from [2a00:1450:4864:20::32e] (port=56305 helo=mail-wm1-x32e.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1n9nED-0005rF-0w; Tue, 18 Jan 2022 07:04:51 -0500 Received: by mail-wm1-x32e.google.com with SMTP id c66so27129951wma.5; Tue, 18 Jan 2022 04:03:10 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=yWsVPs9o1V93WUmz88EzV+Be2X5TrPFA2W+WEyPYUY4=; b=K7baPdwK/uLtcEBZbURq+yANLrqK3J4jKGPq/PEVcGVwO7szUUOCAnV8ftb4RWiC54 4u0vHcXO6NnXvaUoZ0aBIVq4s0b5VKuE2G1ZxBvIfdO7pUPUONz4H6VZyvNmkPpU/ghT Lj3YNaU33+yLqFI4+r3azJoS0EQ3fhOEplutIy6xVdkHEKVMj8DcNqa4njWshHsLBAla CeY+ViPmdcSbG33lAvMrecaVqjtZNb/yPY4Qqx636d5naHeUUNCsuf90lOtEsc+Eo432 isXGt2TFzEIZ0pcsdKsFj1XISlaZ1cp3dEL8FPuqXuTrFw6yX0MXl3silD6mjp0wWxhW JuBg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=yWsVPs9o1V93WUmz88EzV+Be2X5TrPFA2W+WEyPYUY4=; b=l1uAi0oOoUBOujrJYGuK7pz3TEPjZ2zDI2zYxwQY3DhuRrIbc6mj4OBvBoXj4ElPRs /DrLuLTWSxVGEdjShe0l4F2+QaJ74EA2gH8yiCIGTK2y+WezIVm1zYwfQE2CSMs/+Vzn b02tYeFVUXzpGBI8tyKy0fi7HGqYGn5WB8L1nybOu5hGPgMa1V/l9qoCNWGMnOxlNUax RqSEHk5DYb4lZLJ0xYo0bZIet0H+I8pPKjcW+40gunpvcf6gdct+DJmXCbhGI6ImXeLf u5ZgHLBd+ooCDpSRU19duL6AbGU5YqAAN5QHNDdcqXdsV1Z1fId7J0beNzCI1EiXk77i 9/dQ== X-Gm-Message-State: AOAM532FVKaCaxYyte2eMhZzAzgHXaut0FRaZslCmqCQKq0RZYXCkCVA z5kq5BaHrzmyGZamSWF/W7NNtEcMJPY= X-Google-Smtp-Source: ABdhPJxik7H45qDkTRHgq7dUPWL+3eD+CiHk+ncpBfdnGMpAPw2KtafpqC/qhYuVR0oy2N7rxByyGA== X-Received: by 2002:a05:600c:3d86:: with SMTP id bi6mr2277505wmb.1.1642507389916; Tue, 18 Jan 2022 04:03:09 -0800 (PST) Received: from nuc.. (154.red-83-50-83.dynamicip.rima-tde.net. [83.50.83.154]) by smtp.gmail.com with ESMTPSA id o10sm2106556wmr.38.2022.01.18.04.03.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 18 Jan 2022 04:03:09 -0800 (PST) To: qemu-devel@nongnu.org Cc: Peter Xu , David Hildenbrand , Paolo Bonzini , qemu-block@nongnu.org, =?utf-8?q?Phili?= =?utf-8?q?ppe_Mathieu-Daud=C3=A9?= Subject: [PULL 08/19] stubs: Restrict fw_cfg to system emulation Date: Tue, 18 Jan 2022 13:02:18 +0100 Message-Id: <20220118120229.196337-9-f4bug@amsat.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220118120229.196337-1-f4bug@amsat.org> References: <20220118120229.196337-1-f4bug@amsat.org> MIME-Version: 1.0 X-Host-Lookup-Failed: Reverse DNS lookup failed for 2a00:1450:4864:20::32e (failed) Received-SPF: pass client-ip=2a00:1450:4864:20::32e; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-wm1-x32e.google.com X-Spam_score_int: -6 X-Spam_score: -0.7 X-Spam_bar: / X-Spam_report: (-0.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.248, PDS_HP_HELO_NORDNS=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RDNS_NONE=0.793, SPF_HELO_NONE=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: 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" Reply-to: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= X-Patchwork-Original-From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= via From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= fw_cfg_arch_key_name() stub is only required for sysemu. Signed-off-by: Philippe Mathieu-Daudé Reviewed-by: David Hildenbrand Message-Id: <20220111184309.28637-2-f4bug@amsat.org> --- stubs/meson.build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stubs/meson.build b/stubs/meson.build index 71469c1d50a..363f6fa785d 100644 --- a/stubs/meson.build +++ b/stubs/meson.build @@ -11,7 +11,6 @@ stub_ss.add(files('dump.c')) stub_ss.add(files('error-printf.c')) stub_ss.add(files('fdset.c')) -stub_ss.add(files('fw_cfg.c')) stub_ss.add(files('gdbstub.c')) stub_ss.add(files('get-vm-name.c')) if linux_io_uring.found() @@ -51,6 +50,7 @@ stub_ss.add(files('replay-tools.c')) endif if have_system + stub_ss.add(files('fw_cfg.c')) stub_ss.add(files('semihost.c')) stub_ss.add(files('usb-dev-stub.c')) stub_ss.add(files('xen-hw-stub.c')) From patchwork Tue Jan 18 12:02:19 2022 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: 12716300 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 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 smtp.lore.kernel.org (Postfix) with ESMTPS id 293D9C433EF for ; Tue, 18 Jan 2022 12:49:43 +0000 (UTC) Received: from localhost ([::1]:56166 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1n9nvh-0007bx-LY for qemu-devel@archiver.kernel.org; Tue, 18 Jan 2022 07:49:41 -0500 Received: from eggs.gnu.org ([209.51.188.92]:51652) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1n9nEN-0006CQ-DT; Tue, 18 Jan 2022 07:05:05 -0500 Received: from [2a00:1450:4864:20::333] (port=40831 helo=mail-wm1-x333.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1n9nEC-0005sa-Qp; Tue, 18 Jan 2022 07:04:49 -0500 Received: by mail-wm1-x333.google.com with SMTP id 25-20020a05600c231900b003497473a9c4so5174413wmo.5; Tue, 18 Jan 2022 04:03:15 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=95uk+zI0cWzNzaMAxJlxn1n1i/neyy/TLYWrgzPz8RA=; b=gB5xEdht4+5oT+SP2IyTlibvpibdXl95XXQn7d1ckFRlCc+aUTLpjMKLK8oU4YnabO K34HExd/CDOtOLHo83bpYj7tg3TZQkwWiNYXrAz7SiiD9h6cqInE6tmFRnfFWEZ6nIv4 ORlx/epSj8UI9JGYMmElJA6XXKL3C1NKmcZRVOerLMNORylKRr9paHIxq5jcdGRqKfJc ogDA7y399j+beDdqOwXoEBV7iMFU1BrjNxL05cZauJi8XfefJzEXQNW5Ngbw9eiWjji4 HSPsl+NVTHyHMIqNOf/ItTAof2OoOBOY4UV/b8P8cuDgb88x+AP78bRKrVRxLyBtwsye TBew== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=95uk+zI0cWzNzaMAxJlxn1n1i/neyy/TLYWrgzPz8RA=; b=VU+q+l7WUn8ZKFeTQXxzezIYakHzRHAcXUydje+7xrparEw8Zn8LZI8niovUjyi4Fe ekhWj3vSPrru7UllD5WjndTM7ivOMdrxPfpH2k/Oitxc0vWaHyH68oOiVBDEDCcVh4Vi SwQwtLGNm/DbaRZzKXEqjvBdUgjVxZGac8Pk+GTiFvDicZOtcBB5os4rbrdAu7WiptYN sjgDD00Wy9N+lwC+mOXI6BYg6NbUoyn9WpcVNJPnlY9tsHSz5bUVzxas74pdizatfZ3i XlW/ZB/WqaYcJoXnL+gqcdgUbIN+PDvf3i0+MEPpYD4xni+MfXnsJeoi2kQNpH7HMqbw riJQ== X-Gm-Message-State: AOAM532FWeNpp0ghChgviVYAurGY2fae8HymSHeICIWl5EaPphxVEXZV gXk1QlrZmj8wWxkX7Fta1IxFSzZfyyw= X-Google-Smtp-Source: ABdhPJxfTerP8ne+Jtnw/utZvdKaqRXYVGSXVWPNAVW5AjnPsGZrxrLOuqTdmSAmM79K3mv07WRt5Q== X-Received: by 2002:adf:cc90:: with SMTP id p16mr24829004wrj.685.1642507394540; Tue, 18 Jan 2022 04:03:14 -0800 (PST) Received: from nuc.. (154.red-83-50-83.dynamicip.rima-tde.net. [83.50.83.154]) by smtp.gmail.com with ESMTPSA id v5sm1919951wrx.114.2022.01.18.04.03.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 18 Jan 2022 04:03:14 -0800 (PST) To: qemu-devel@nongnu.org Cc: Peter Xu , David Hildenbrand , Paolo Bonzini , qemu-block@nongnu.org, =?utf-8?q?Phili?= =?utf-8?q?ppe_Mathieu-Daud=C3=A9?= , =?utf-8?q?Philippe_?= =?utf-8?q?Mathieu-Daud=C3=A9?= Subject: [PULL 09/19] hw/nvram: Restrict fw_cfg QOM interface to sysemu and tools Date: Tue, 18 Jan 2022 13:02:19 +0100 Message-Id: <20220118120229.196337-10-f4bug@amsat.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220118120229.196337-1-f4bug@amsat.org> References: <20220118120229.196337-1-f4bug@amsat.org> MIME-Version: 1.0 X-Host-Lookup-Failed: Reverse DNS lookup failed for 2a00:1450:4864:20::333 (failed) Received-SPF: pass client-ip=2a00:1450:4864:20::333; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-wm1-x333.google.com X-Spam_score_int: -6 X-Spam_score: -0.7 X-Spam_bar: / X-Spam_report: (-0.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.248, PDS_HP_HELO_NORDNS=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RDNS_NONE=0.793, SPF_HELO_NONE=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: 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" Reply-to: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= X-Patchwork-Original-From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= via From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= From: Philippe Mathieu-Daudé fw_cfg QOM interface is required by system emulation and qemu-storage-daemon. User-mode emulation doesn't need it. Signed-off-by: Philippe Mathieu-Daudé Signed-off-by: Philippe Mathieu-Daudé Reviewed-by: David Hildenbrand Message-Id: <20220111184309.28637-3-f4bug@amsat.org> --- hw/nvram/meson.build | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/hw/nvram/meson.build b/hw/nvram/meson.build index 202a5466e63..f5ee9f6b88c 100644 --- a/hw/nvram/meson.build +++ b/hw/nvram/meson.build @@ -1,5 +1,7 @@ -# QOM interfaces must be available anytime QOM is used. -qom_ss.add(files('fw_cfg-interface.c')) +if have_system or have_tools + # QOM interfaces must be available anytime QOM is used. + qom_ss.add(files('fw_cfg-interface.c')) +endif softmmu_ss.add(files('fw_cfg.c')) softmmu_ss.add(when: 'CONFIG_CHRP_NVRAM', if_true: files('chrp_nvram.c')) From patchwork Tue Jan 18 12:02:20 2022 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: 12716282 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 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 smtp.lore.kernel.org (Postfix) with ESMTPS id E2CECC433EF for ; Tue, 18 Jan 2022 12:24:08 +0000 (UTC) Received: from localhost ([::1]:60392 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1n9nWx-0006H7-RE for qemu-devel@archiver.kernel.org; Tue, 18 Jan 2022 07:24:07 -0500 Received: from eggs.gnu.org ([209.51.188.92]:51756) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1n9nES-0006Cg-Lp; Tue, 18 Jan 2022 07:05:03 -0500 Received: from [2a00:1450:4864:20::32f] (port=39623 helo=mail-wm1-x32f.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1n9nEI-0005sg-T6; Tue, 18 Jan 2022 07:04:57 -0500 Received: by mail-wm1-x32f.google.com with SMTP id d18-20020a05600c251200b0034974323cfaso5171933wma.4; Tue, 18 Jan 2022 04:03:20 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=7PQJvTm7D5iEMygal/TsZr37XrHXS89Xmn4EjxuRMgQ=; b=XsqplmIn3VH2aVKdkQVVyyo0QLMnUs0a+t6Lz9a9endCE994teWrbcLmkOzeu0oaWj zl2fxLML17U78GCOJiAQr5SQh5hJ2i28RKABPTAkCo0C+klYxM/HWix23p++N6euQPH0 9+v1VWfqRRunTGgNwBXFitBQPGLv9lZ5gqaxEL9R6oKr++/3EYe3v5e7vRZehc/hx4DM 2o5ye6qO7ZWeNB02JzoV5KK9+VFhCFm48gOyPMlqqIsNSgisaauwXaq5jMlknwOUnETv MRli6t9kHB8K6bTKHKTcEBdtjcHEGsV0TnACHsnxYN1bLAXqKnJyETjJ/VbDL/1IS0fv zjzw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=7PQJvTm7D5iEMygal/TsZr37XrHXS89Xmn4EjxuRMgQ=; b=r0D2Dp4732sCtCAsFPTzBv57IAWzYPM5oemy+AXYrFjgTTxgFSiYnHvVxZLQsRBg1w ZCiBPXQp4ln5vwzA+FJ7cReZ9ltcQj+1vsejeVScyJkkZ6n4/mbswunEX3KrkbJ32I1x WmCGsacC96/eO4yEQQqu8FZTxDxX3yfBPVEO+XEqq3H4Gx56LbPHsK74+b7aoHPBD/sM UKlAfqNY7YcxxfsIGrLTqvNQrRIk29F9B4i69UpqYtn8/sTMa8QJKAsx4ugoeuSMH/Tw 8zBPVehnqNGU5FQeCUQlpZR448pk99uB7fm5iiTeuNBa6fMa1zafT4R3T7na+Io6T40k Supw== X-Gm-Message-State: AOAM531GJ2pmPiK5EIaIRcNSy1pLa1jDbQEfuMLZeUnqI7dFcztyXGPc q/0J4DcQt/D7UbkiAcgexTHgZnL53PA= X-Google-Smtp-Source: ABdhPJw+ZMoFQnolu4O7utNWFNT9s3ZaOb9h9VZh4fcHKMRkgIXWUf3GGH7eOkBjgXNJ7Z+LOA3aBQ== X-Received: by 2002:a5d:548b:: with SMTP id h11mr23471378wrv.12.1642507399490; Tue, 18 Jan 2022 04:03:19 -0800 (PST) Received: from nuc.. (154.red-83-50-83.dynamicip.rima-tde.net. [83.50.83.154]) by smtp.gmail.com with ESMTPSA id r3sm8081621wrz.92.2022.01.18.04.03.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 18 Jan 2022 04:03:19 -0800 (PST) To: qemu-devel@nongnu.org Cc: Peter Xu , David Hildenbrand , Paolo Bonzini , qemu-block@nongnu.org, =?utf-8?q?Phili?= =?utf-8?q?ppe_Mathieu-Daud=C3=A9?= , "Michael S . Tsirkin" , Richard Henderson , =?utf-8?q?Philippe_Mathie?= =?utf-8?q?u-Daud=C3=A9?= Subject: [PULL 10/19] hw/pci: Restrict pci-bus stub to sysemu Date: Tue, 18 Jan 2022 13:02:20 +0100 Message-Id: <20220118120229.196337-11-f4bug@amsat.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220118120229.196337-1-f4bug@amsat.org> References: <20220118120229.196337-1-f4bug@amsat.org> MIME-Version: 1.0 X-Host-Lookup-Failed: Reverse DNS lookup failed for 2a00:1450:4864:20::32f (failed) Received-SPF: pass client-ip=2a00:1450:4864:20::32f; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-wm1-x32f.google.com X-Spam_score_int: -6 X-Spam_score: -0.7 X-Spam_bar: / X-Spam_report: (-0.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.248, PDS_HP_HELO_NORDNS=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RDNS_NONE=0.793, SPF_HELO_NONE=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: 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" Reply-to: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= X-Patchwork-Original-From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= via From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= From: Philippe Mathieu-Daudé Neither tools nor user-mode emulation require the PCI bus stub. Signed-off-by: Philippe Mathieu-Daudé Reviewed-by: Michael S. Tsirkin Reviewed-by: Richard Henderson Reviewed-by: David Hildenbrand Message-Id: <20220111184309.28637-4-f4bug@amsat.org> Signed-off-by: Philippe Mathieu-Daudé --- stubs/meson.build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stubs/meson.build b/stubs/meson.build index 363f6fa785d..d359cbe1ad7 100644 --- a/stubs/meson.build +++ b/stubs/meson.build @@ -26,7 +26,6 @@ stub_ss.add(files('module-opts.c')) stub_ss.add(files('monitor.c')) stub_ss.add(files('monitor-core.c')) -stub_ss.add(files('pci-bus.c')) stub_ss.add(files('qemu-timer-notify-cb.c')) stub_ss.add(files('qmp_memory_device.c')) stub_ss.add(files('qmp-command-available.c')) @@ -51,6 +50,7 @@ endif if have_system stub_ss.add(files('fw_cfg.c')) + stub_ss.add(files('pci-bus.c')) stub_ss.add(files('semihost.c')) stub_ss.add(files('usb-dev-stub.c')) stub_ss.add(files('xen-hw-stub.c')) From patchwork Tue Jan 18 12:02:21 2022 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: 12716277 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 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 smtp.lore.kernel.org (Postfix) with ESMTPS id C7EFFC433EF for ; Tue, 18 Jan 2022 12:19:22 +0000 (UTC) Received: from localhost ([::1]:49416 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1n9nSL-0007Cy-Mu for qemu-devel@archiver.kernel.org; Tue, 18 Jan 2022 07:19:21 -0500 Received: from eggs.gnu.org ([209.51.188.92]:51654) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1n9nEN-0006CR-EU; Tue, 18 Jan 2022 07:05:05 -0500 Received: from [2a00:1450:4864:20::330] (port=34497 helo=mail-wm1-x330.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1n9nED-0005sp-0y; Tue, 18 Jan 2022 07:04:51 -0500 Received: by mail-wm1-x330.google.com with SMTP id bg19-20020a05600c3c9300b0034565e837b6so2046259wmb.1; Tue, 18 Jan 2022 04:03:25 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=xqRINyUHKRPM2UFVgERzZu4xOCjYsVl6rEoXt0ggBys=; b=fzXVnAMh6yrb/0oN6kN5dwc5bPmUMEDcgH6qZmPDNnW+A0jL3NSWCGsQnXzJIssAdE nD6r6TGngrcVXEz0ttKpTjTJyQRZ8ddqngUDRkjCLSaeHtESDGjME+dyLbdg1Oq/QJ40 hFwuFURjo35G7IlnMTUoV1xNgndvJHwSq2j07jAJpVoFQGxisXyFRG/SlaPD6Ni2qD98 oCwyP/Sz9YC7JMkPcIu+izboleiSpHmKrnco8Dy7o52oZNz5KIjha8UFkaEytcZ8kq8W qCEZgD9H77CfYoZlpLuFX9wRwQzWeGlk6BxH0WvjZGGcRk6I7ZsegcB1ddCaMgnQkzkQ s+og== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=xqRINyUHKRPM2UFVgERzZu4xOCjYsVl6rEoXt0ggBys=; b=4sOfllCWz0MgjDC7YSTinoCLrORe2hyU7xugXbeVFC+b6aNudhJ0bZt8ctkvIdU33x xsdzLbgax1KP/3r1hp8Z14JOfbfZpaI/p8o0UVxJTfUyUlRq679/tg9Cu6KZrJLQe34O nFJywmuC+tC91/PgNpkRovC/JR0h6JGrrEbx6yt3KD0dV8CUCLKmkfFEdZ/5guQgEvn4 5WgxfYyGToVNUQ8H2AC6nkMsKukOVkcY5pRi5ua1zkyXSfFFvy0WoS0BOxe3VBSpPD7Q W9GyElORnspSxEQ0ACtO1ZYNkykTZjRUZpmemIwYdg8eeP7NiN5BfIvOBQ2Ctq9/OJ7m dUKQ== X-Gm-Message-State: AOAM530qW6qFA4lVpVrDQzdyXz946PhlcQ2khomAoVhQyfl6tuevbvRO OcMFVWekN7w+ybKSyd7kCS/b/DLg9Lo= X-Google-Smtp-Source: ABdhPJyxEXgXqfOZgXli85mVw7lSzxT+3Ui7KQ5DXcVJ6UK55eiVMepPLdc72bCIXgKy852Ssf+JRQ== X-Received: by 2002:adf:e2cc:: with SMTP id d12mr23489929wrj.107.1642507404393; Tue, 18 Jan 2022 04:03:24 -0800 (PST) Received: from nuc.. (154.red-83-50-83.dynamicip.rima-tde.net. [83.50.83.154]) by smtp.gmail.com with ESMTPSA id z7sm19180054wrm.117.2022.01.18.04.03.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 18 Jan 2022 04:03:24 -0800 (PST) To: qemu-devel@nongnu.org Cc: Peter Xu , David Hildenbrand , Paolo Bonzini , qemu-block@nongnu.org, =?utf-8?q?Phili?= =?utf-8?q?ppe_Mathieu-Daud=C3=A9?= , "Michael S . Tsirkin" , Richard Henderson , =?utf-8?q?Philippe_Mathie?= =?utf-8?q?u-Daud=C3=A9?= Subject: [PULL 11/19] hw/pci: Document pci_dma_map() Date: Tue, 18 Jan 2022 13:02:21 +0100 Message-Id: <20220118120229.196337-12-f4bug@amsat.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220118120229.196337-1-f4bug@amsat.org> References: <20220118120229.196337-1-f4bug@amsat.org> MIME-Version: 1.0 X-Host-Lookup-Failed: Reverse DNS lookup failed for 2a00:1450:4864:20::330 (failed) Received-SPF: pass client-ip=2a00:1450:4864:20::330; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-wm1-x330.google.com X-Spam_score_int: -6 X-Spam_score: -0.7 X-Spam_bar: / X-Spam_report: (-0.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.248, PDS_HP_HELO_NORDNS=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RDNS_NONE=0.793, SPF_HELO_NONE=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: 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" Reply-to: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= X-Patchwork-Original-From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= via From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= From: Philippe Mathieu-Daudé Signed-off-by: Philippe Mathieu-Daudé Reviewed-by: Michael S. Tsirkin Reviewed-by: Richard Henderson Message-Id: <20220111184309.28637-5-f4bug@amsat.org> Signed-off-by: Philippe Mathieu-Daudé --- include/hw/pci/pci.h | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/include/hw/pci/pci.h b/include/hw/pci/pci.h index 483d5c7c727..023abc0f791 100644 --- a/include/hw/pci/pci.h +++ b/include/hw/pci/pci.h @@ -881,6 +881,18 @@ PCI_DMA_DEFINE_LDST(q_be, q_be, 64); #undef PCI_DMA_DEFINE_LDST +/** + * pci_dma_map: Map device PCI address space range into host virtual address + * @dev: #PCIDevice to be accessed + * @addr: address within that device's address space + * @plen: pointer to length of buffer; updated on return to indicate + * if only a subset of the requested range has been mapped + * @dir: indicates the transfer direction + * + * Return: A host pointer, or %NULL if the resources needed to + * perform the mapping are exhausted (in that case *@plen + * is set to zero). + */ static inline void *pci_dma_map(PCIDevice *dev, dma_addr_t addr, dma_addr_t *plen, DMADirection dir) { From patchwork Tue Jan 18 12:02:22 2022 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: 12716311 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 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 smtp.lore.kernel.org (Postfix) with ESMTPS id 361C2C4332F for ; Tue, 18 Jan 2022 13:12:28 +0000 (UTC) Received: from localhost ([::1]:51344 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1n9oHi-0008Sj-Su for qemu-devel@archiver.kernel.org; Tue, 18 Jan 2022 08:12:26 -0500 Received: from eggs.gnu.org ([209.51.188.92]:51858) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1n9nEY-0006GJ-Sh; Tue, 18 Jan 2022 07:05:07 -0500 Received: from [2a00:1450:4864:20::334] (port=52878 helo=mail-wm1-x334.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1n9nES-0005t0-77; Tue, 18 Jan 2022 07:05:06 -0500 Received: by mail-wm1-x334.google.com with SMTP id v123so27148623wme.2; Tue, 18 Jan 2022 04:03:30 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=k/TJoOTmrdQNcD2ScH61YuPzvbvm1o8CHXuK6a8Oc90=; b=exDKgMG4odtjKf2VRpEenThSL8rT5j5SWSUTmYJz0JHRHeLqP9bEeSvRL9s4Oxip8S HTe5uUR1NJyrZeJFnX6A4jDGDY5+dDZZn82k8pSQnIfASQD66TwvTHo6Hmxemr3Bjuon fX5MQJADpUrxA6NjOsPOKQkjEEZADO6H9Wh3dIZUHAvSmQtHqiiI2wbN7TIsEy1+EoyF nEb6VExAhI2LbabAtYSD77M6UluGO7Wi0/nQmWnAAfj0uZTjcuIRfvhDBeeWVR6B8tXZ 0D2o9rKbA8z6oe8OAVAOHOPV5WJJ39d6pZhdHBRZ43XwaBNCRSFgzERFXu4aAYN7IAqD Odxw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=k/TJoOTmrdQNcD2ScH61YuPzvbvm1o8CHXuK6a8Oc90=; b=3z4kfvbyQn51sf4RJl47jqkOyE5F0gqkUtAsQE9ZfsEWY62uoV5z4TGEinIf1OhVD7 KMqP9/IPZUo7LmYG/EULRfQ6RrnUj80qI3Tdc1ZKbUujDej0OOnJJYiW11SE316LSHXV fg+wSHMvqQnwwdp4lT1t2BMQupICU9bzbGtjx4lDwGxtUyVE3Re9hV0FsBJaGiPxm9bF nF+NGxn8p3WAzFqvudfb048y/46flg+eL/c1b0Ii5l8jK4J+GFUHUZjScnXLrwLPDroN ROxAtOXoqMjp2xtGp99k8tof1/ARTktRQg1YbwEZ+9vt+2wM1Ed1v+GNn3Z1PntJAuLO qC8Q== X-Gm-Message-State: AOAM530SttYlf3LwcXIrwKiOBzk+jvB+TgVCNnFxnGLoeFKQUqiyuLsq vIon/qS1gjQSKZy2MavZadVQEmBe72Q= X-Google-Smtp-Source: ABdhPJzYt8LN6ShSJx391omQu4rSd6StlQ+R7Nl8husNW/bsfB9ALdCEJWW+YRxHfi3A+0u3zXnY2A== X-Received: by 2002:adf:eb87:: with SMTP id t7mr24235458wrn.147.1642507409092; Tue, 18 Jan 2022 04:03:29 -0800 (PST) Received: from nuc.. (154.red-83-50-83.dynamicip.rima-tde.net. [83.50.83.154]) by smtp.gmail.com with ESMTPSA id e17sm16029717wrr.34.2022.01.18.04.03.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 18 Jan 2022 04:03:28 -0800 (PST) To: qemu-devel@nongnu.org Cc: Peter Xu , David Hildenbrand , Paolo Bonzini , qemu-block@nongnu.org, =?utf-8?q?Phili?= =?utf-8?q?ppe_Mathieu-Daud=C3=A9?= , Richard Henderson , =?utf-8?q?Philippe_Mathie?= =?utf-8?q?u-Daud=C3=A9?= Subject: [PULL 12/19] hw/dma: Remove CONFIG_USER_ONLY check Date: Tue, 18 Jan 2022 13:02:22 +0100 Message-Id: <20220118120229.196337-13-f4bug@amsat.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220118120229.196337-1-f4bug@amsat.org> References: <20220118120229.196337-1-f4bug@amsat.org> MIME-Version: 1.0 X-Host-Lookup-Failed: Reverse DNS lookup failed for 2a00:1450:4864:20::334 (failed) Received-SPF: pass client-ip=2a00:1450:4864:20::334; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-wm1-x334.google.com X-Spam_score_int: -6 X-Spam_score: -0.7 X-Spam_bar: / X-Spam_report: (-0.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.248, PDS_HP_HELO_NORDNS=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RDNS_NONE=0.793, SPF_HELO_NONE=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: 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" Reply-to: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= X-Patchwork-Original-From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= via From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= From: Philippe Mathieu-Daudé DMA API should not be included in user-mode emulation. If so, build should fail. Remove the CONFIG_USER_ONLY check. Signed-off-by: Philippe Mathieu-Daudé Reviewed-by: Richard Henderson Reviewed-by: David Hildenbrand Message-Id: <20220111184309.28637-6-f4bug@amsat.org> Signed-off-by: Philippe Mathieu-Daudé --- include/sysemu/dma.h | 3 --- 1 file changed, 3 deletions(-) diff --git a/include/sysemu/dma.h b/include/sysemu/dma.h index b3faef41b2f..0db2478a506 100644 --- a/include/sysemu/dma.h +++ b/include/sysemu/dma.h @@ -31,8 +31,6 @@ struct QEMUSGList { AddressSpace *as; }; -#ifndef CONFIG_USER_ONLY - /* * When an IOMMU is present, bus addresses become distinct from * CPU/memory physical addresses and may be a different size. Because @@ -288,7 +286,6 @@ void qemu_sglist_init(QEMUSGList *qsg, DeviceState *dev, int alloc_hint, AddressSpace *as); void qemu_sglist_add(QEMUSGList *qsg, dma_addr_t base, dma_addr_t len); void qemu_sglist_destroy(QEMUSGList *qsg); -#endif typedef BlockAIOCB *DMAIOFunc(int64_t offset, QEMUIOVector *iov, BlockCompletionFunc *cb, void *cb_opaque, From patchwork Tue Jan 18 12:02:23 2022 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: 12716274 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 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 smtp.lore.kernel.org (Postfix) with ESMTPS id B2F20C433F5 for ; Tue, 18 Jan 2022 12:16:54 +0000 (UTC) Received: from localhost ([::1]:42890 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1n9nPx-0002qS-Rg for qemu-devel@archiver.kernel.org; Tue, 18 Jan 2022 07:16:53 -0500 Received: from eggs.gnu.org ([209.51.188.92]:51620) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1n9nEJ-0006C3-6X; Tue, 18 Jan 2022 07:05:00 -0500 Received: from [2a00:1450:4864:20::32f] (port=39627 helo=mail-wm1-x32f.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1n9nEC-0005tB-Pe; Tue, 18 Jan 2022 07:04:47 -0500 Received: by mail-wm1-x32f.google.com with SMTP id d18-20020a05600c251200b0034974323cfaso5173640wma.4; Tue, 18 Jan 2022 04:03:34 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=LH1np9mC2V/eUKzC6Bkjy+7mnVJOayOIQUCd7oM8o9s=; b=U4bnjt30y5BZpwtBtsgul8P5+WJaUsyJMcRL9xt9c7IwagHgosPZpmofBf8yzgdXer 5YsKPWmJH3yCmdEry7ZAP0+fGiSgzs9kocfQWfsPd91iB8KgoepIOWSNfJDnexWvWoap nxMKtHgVzyd0q620I3UUDuwcLYhMrvzN9LPI+9MPaHn2d4m0iw9UZNEXhITmKTuCY7J0 ZU6o1EsRjQlRxMYTT+5p4BYEpa1c+BIFEs6AYt3lvTLY4C8Pr8SiSU6KsaVb3k26RGZH 6UzdUa7mWskJcHqBS6DPwbzo1g2xUQZRkftmjwjAMSiMbBzolA0gCDKOBPgwZ2+v0TeY 6N2Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=LH1np9mC2V/eUKzC6Bkjy+7mnVJOayOIQUCd7oM8o9s=; b=Pe4vwJkheKg0NwDyPHIWQuB8naZ7cQqxFsvCnmsJesZskwrLatyMH0Ov58cIznEznb 7kW1DooJhQvSgJ9tfUyxmkuS487z49tnGjM979z2X9LD9hGk8N1zFxTsK/SOSauJdyBq 1Z27J0OGiTiXfYY2FygFQjZj3QIe7ZOP3nxh/HVTQ9o05dwKSBq1dT1Q+cUiD285MSyR j6e48yEIHsWUDcprt/f7ZGu1046GuHPHgF2vUy9jIQqNw7xljpUvY1LmOz3HcTvgoGN1 D7EF5qrXbPP2mG4W9BhhDYlgMc0env2I2qnTNWVYDkPVEtbJGuX7t9l/UdGFPEBm+EiO r9eQ== X-Gm-Message-State: AOAM530yjGJXSeBzx3/M2FLptKwIwzI9kYv7XE0bK3OwvTsANIyrc30E CxOlihWshsvEUr/faZrQ4UYApy6SDlI= X-Google-Smtp-Source: ABdhPJy8RvtjoWCRRiXB4vExUoY2PnEpXsEipkrsNiGZHHRbfsHc3yvWQCP2wbiMSwDPiyGX0znGjQ== X-Received: by 2002:a05:6000:2c8:: with SMTP id o8mr14092719wry.539.1642507413777; Tue, 18 Jan 2022 04:03:33 -0800 (PST) Received: from nuc.. (154.red-83-50-83.dynamicip.rima-tde.net. [83.50.83.154]) by smtp.gmail.com with ESMTPSA id y8sm937781wrd.11.2022.01.18.04.03.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 18 Jan 2022 04:03:33 -0800 (PST) To: qemu-devel@nongnu.org Cc: Peter Xu , David Hildenbrand , Paolo Bonzini , qemu-block@nongnu.org, =?utf-8?q?Phili?= =?utf-8?q?ppe_Mathieu-Daud=C3=A9?= , Richard Henderson , Yuval Shaia , =?utf-8?q?Philippe_Mathieu-Daud?= =?utf-8?q?=C3=A9?= Subject: [PULL 13/19] hw/rdma/rdma_utils: Rename rdma_pci_dma_map 'len' argument Date: Tue, 18 Jan 2022 13:02:23 +0100 Message-Id: <20220118120229.196337-14-f4bug@amsat.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220118120229.196337-1-f4bug@amsat.org> References: <20220118120229.196337-1-f4bug@amsat.org> MIME-Version: 1.0 X-Host-Lookup-Failed: Reverse DNS lookup failed for 2a00:1450:4864:20::32f (failed) Received-SPF: pass client-ip=2a00:1450:4864:20::32f; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-wm1-x32f.google.com X-Spam_score_int: -6 X-Spam_score: -0.7 X-Spam_bar: / X-Spam_report: (-0.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.248, PDS_HP_HELO_NORDNS=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RDNS_NONE=0.793, SPF_HELO_NONE=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: 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" Reply-to: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= X-Patchwork-Original-From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= via From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= From: Philippe Mathieu-Daudé Various APIs use 'pval' naming for 'pointer to val'. rdma_pci_dma_map() uses 'plen' for 'PCI length', but since 'PCI' is already explicit in the function name, simplify and rename the argument 'len'. No logical change. Signed-off-by: Philippe Mathieu-Daudé Reviewed-by: Richard Henderson Reviewed-by: David Hildenbrand Reviewed-by: Yuval Shaia Tested-by: Yuval Shaia Message-Id: <20220111184309.28637-7-f4bug@amsat.org> Signed-off-by: Philippe Mathieu-Daudé --- hw/rdma/rdma_utils.h | 2 +- hw/rdma/rdma_utils.c | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/hw/rdma/rdma_utils.h b/hw/rdma/rdma_utils.h index 9fd0efd940b..0c6414e7e0a 100644 --- a/hw/rdma/rdma_utils.h +++ b/hw/rdma/rdma_utils.h @@ -38,7 +38,7 @@ typedef struct RdmaProtectedGSList { GSList *list; } RdmaProtectedGSList; -void *rdma_pci_dma_map(PCIDevice *dev, dma_addr_t addr, dma_addr_t plen); +void *rdma_pci_dma_map(PCIDevice *dev, dma_addr_t addr, dma_addr_t len); void rdma_pci_dma_unmap(PCIDevice *dev, void *buffer, dma_addr_t len); void rdma_protected_gqueue_init(RdmaProtectedGQueue *list); void rdma_protected_gqueue_destroy(RdmaProtectedGQueue *list); diff --git a/hw/rdma/rdma_utils.c b/hw/rdma/rdma_utils.c index 98df58f6897..61cb8ede0fd 100644 --- a/hw/rdma/rdma_utils.c +++ b/hw/rdma/rdma_utils.c @@ -17,29 +17,29 @@ #include "trace.h" #include "rdma_utils.h" -void *rdma_pci_dma_map(PCIDevice *dev, dma_addr_t addr, dma_addr_t plen) +void *rdma_pci_dma_map(PCIDevice *dev, dma_addr_t addr, dma_addr_t len) { void *p; - hwaddr len = plen; + hwaddr pci_len = len; if (!addr) { rdma_error_report("addr is NULL"); return NULL; } - p = pci_dma_map(dev, addr, &len, DMA_DIRECTION_TO_DEVICE); + p = pci_dma_map(dev, addr, &pci_len, DMA_DIRECTION_TO_DEVICE); if (!p) { rdma_error_report("pci_dma_map fail, addr=0x%"PRIx64", len=%"PRId64, - addr, len); + addr, pci_len); return NULL; } - if (len != plen) { - rdma_pci_dma_unmap(dev, p, len); + if (pci_len != len) { + rdma_pci_dma_unmap(dev, p, pci_len); return NULL; } - trace_rdma_pci_dma_map(addr, p, len); + trace_rdma_pci_dma_map(addr, p, pci_len); return p; } From patchwork Tue Jan 18 12:02:24 2022 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: 12716304 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 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 smtp.lore.kernel.org (Postfix) with ESMTPS id A5DA4C433EF for ; Tue, 18 Jan 2022 13:02:55 +0000 (UTC) Received: from localhost ([::1]:37534 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1n9o8U-0006dv-E2 for qemu-devel@archiver.kernel.org; Tue, 18 Jan 2022 08:02:54 -0500 Received: from eggs.gnu.org ([209.51.188.92]:51646) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1n9nEN-0006CN-Ck; Tue, 18 Jan 2022 07:05:05 -0500 Received: from [2a00:1450:4864:20::32e] (port=43813 helo=mail-wm1-x32e.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1n9nEC-0005tN-Qt; Tue, 18 Jan 2022 07:04:51 -0500 Received: by mail-wm1-x32e.google.com with SMTP id e9-20020a05600c4e4900b0034d23cae3f0so4586624wmq.2; Tue, 18 Jan 2022 04:03:40 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=8wo73c9dZDc7RaZjwKEQssROsQfwZbADgI/fn6bB0Nc=; b=WY/ttxZZYOodkmJCYCoahRlUu8XVIftShWyRMyhqu8YEfagBjmSPdfFzk/HfQHKqyk xXSk9VDgrRljFnR9RqfY4AWvFGE8RzRYBWPI8dSqFZjMVniilNbt8MehaI5l2qfEfH9a Zb8WsKNJER2hAx5c8F8vjT2rvTwASWie5f71ZIwIf3sNdSKtamhJNOQ8LcFHykGsFKrK LMKkgB4o7l5vG9MSIHFhH8tys1VCvLfSCeUadkgH7GSm2cjPL2ZItoYBfxeeZEAkTeKR R7YrwTXFXQr30yNKhMFdle+JRj55lnAG13BDGT5NzREPk38ecu6fastCg8bZc3tLLvw0 OD6Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=8wo73c9dZDc7RaZjwKEQssROsQfwZbADgI/fn6bB0Nc=; b=kZbVuCXYHJnazVYWOzH5SUoC6SWRfa/n4SY4vDkARIVlIcgr7Tg8wiv3aYJdjBNiQu 1I+eV+nP+GymaGrhxAoDNQFmD0urrp9gfLaMZ3vLxa90+QrHrAQ4urxhfu8Duky4FRRX iOEehjqxJJTqzBTGWcbueJXm27pt4w+wzZO6Uu3brhXX8abrh+8G/e1zyp0ucum4+2Bi loe0X4goAW14NgHa9hfmWTvjRrhDm5cLthh0qPgCefCJxOiT94fhESha2bWo9cxB71Id BeY/1FN0Ex7IvS9ezd9C0Ppb7BEyLbtxumSoAkAv8TxTtBQLtFrYfeLtTwbFKO3jfvbo B+LA== X-Gm-Message-State: AOAM532593X9iNTD6UXmYoWwVSk4CPUJjAQapWOfsshHd/gJ2UuILjwf 0+FgNTj4P7NvRyQz3LS2jVqnqOk0Fek= X-Google-Smtp-Source: ABdhPJyxl+LEYm9aUb6LykG+WMQYJTCE4yQHm+i6yjTHkEO3W0xgghLThhdvqmmwO73NawpZ2goKPA== X-Received: by 2002:a05:600c:219:: with SMTP id 25mr29195455wmi.71.1642507418722; Tue, 18 Jan 2022 04:03:38 -0800 (PST) Received: from nuc.. (154.red-83-50-83.dynamicip.rima-tde.net. [83.50.83.154]) by smtp.gmail.com with ESMTPSA id 9sm15064256wrb.77.2022.01.18.04.03.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 18 Jan 2022 04:03:38 -0800 (PST) To: qemu-devel@nongnu.org Cc: Peter Xu , David Hildenbrand , Paolo Bonzini , qemu-block@nongnu.org, =?utf-8?q?Phili?= =?utf-8?q?ppe_Mathieu-Daud=C3=A9?= , Richard Henderson , =?utf-8?q?Philippe_Mathie?= =?utf-8?q?u-Daud=C3=A9?= Subject: [PULL 14/19] hw/scsi: Rename SCSIRequest::resid as 'residual' Date: Tue, 18 Jan 2022 13:02:24 +0100 Message-Id: <20220118120229.196337-15-f4bug@amsat.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220118120229.196337-1-f4bug@amsat.org> References: <20220118120229.196337-1-f4bug@amsat.org> MIME-Version: 1.0 X-Host-Lookup-Failed: Reverse DNS lookup failed for 2a00:1450:4864:20::32e (failed) Received-SPF: pass client-ip=2a00:1450:4864:20::32e; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-wm1-x32e.google.com X-Spam_score_int: -6 X-Spam_score: -0.7 X-Spam_bar: / X-Spam_report: (-0.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.248, PDS_HP_HELO_NORDNS=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RDNS_NONE=0.793, SPF_HELO_NONE=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: 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" Reply-to: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= X-Patchwork-Original-From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= via From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= From: Philippe Mathieu-Daudé The 'resid' field is slightly confusing and could be interpreted as some ID. Rename it as 'residual' which is clearer to review. No logical change. Signed-off-by: Philippe Mathieu-Daudé Reviewed-by: Richard Henderson Reviewed-by: David Hildenbrand Message-Id: <20220111184309.28637-8-f4bug@amsat.org> Signed-off-by: Philippe Mathieu-Daudé --- include/hw/scsi/scsi.h | 4 ++-- hw/scsi/megasas.c | 42 +++++++++++++++++++++++++----------------- hw/scsi/scsi-bus.c | 10 +++++----- hw/scsi/scsi-disk.c | 4 ++-- softmmu/dma-helpers.c | 26 +++++++++++++------------- 5 files changed, 47 insertions(+), 39 deletions(-) diff --git a/include/hw/scsi/scsi.h b/include/hw/scsi/scsi.h index 2ef80af6dca..b27d133b113 100644 --- a/include/hw/scsi/scsi.h +++ b/include/hw/scsi/scsi.h @@ -30,7 +30,7 @@ struct SCSIRequest { int16_t status; int16_t host_status; void *hba_private; - size_t resid; + size_t residual; SCSICommand cmd; NotifierList cancel_notifiers; @@ -125,7 +125,7 @@ struct SCSIBusInfo { void *hba_private); void (*transfer_data)(SCSIRequest *req, uint32_t arg); void (*fail)(SCSIRequest *req); - void (*complete)(SCSIRequest *req, size_t resid); + void (*complete)(SCSIRequest *req, size_t residual); void (*cancel)(SCSIRequest *req); void (*change)(SCSIBus *bus, SCSIDevice *dev, SCSISense sense); QEMUSGList *(*get_sg_list)(SCSIRequest *req); diff --git a/hw/scsi/megasas.c b/hw/scsi/megasas.c index dc9bbdb740e..cb019549371 100644 --- a/hw/scsi/megasas.c +++ b/hw/scsi/megasas.c @@ -1045,7 +1045,8 @@ static int megasas_pd_get_info_submit(SCSIDevice *sdev, int lun, uint64_t pd_size; uint16_t pd_id = ((sdev->id & 0xFF) << 8) | (lun & 0xFF); uint8_t cmdbuf[6]; - size_t len, resid; + size_t len; + size_t residual; if (!cmd->iov_buf) { cmd->iov_buf = g_malloc0(dcmd_size); @@ -1112,9 +1113,10 @@ static int megasas_pd_get_info_submit(SCSIDevice *sdev, int lun, info->connected_port_bitmap = 0x1; info->device_speed = 1; info->link_speed = 1; - resid = dma_buf_read(cmd->iov_buf, dcmd_size, &cmd->qsg, MEMTXATTRS_UNSPECIFIED); + residual = dma_buf_read(cmd->iov_buf, dcmd_size, &cmd->qsg, + MEMTXATTRS_UNSPECIFIED); g_free(cmd->iov_buf); - cmd->iov_size = dcmd_size - resid; + cmd->iov_size = dcmd_size - residual; cmd->iov_buf = NULL; return MFI_STAT_OK; } @@ -1149,7 +1151,8 @@ static int megasas_dcmd_pd_get_info(MegasasState *s, MegasasCmd *cmd) static int megasas_dcmd_ld_get_list(MegasasState *s, MegasasCmd *cmd) { struct mfi_ld_list info; - size_t dcmd_size = sizeof(info), resid; + size_t dcmd_size = sizeof(info); + size_t residual; uint32_t num_ld_disks = 0, max_ld_disks; uint64_t ld_size; BusChild *kid; @@ -1184,8 +1187,9 @@ static int megasas_dcmd_ld_get_list(MegasasState *s, MegasasCmd *cmd) info.ld_count = cpu_to_le32(num_ld_disks); trace_megasas_dcmd_ld_get_list(cmd->index, num_ld_disks, max_ld_disks); - resid = dma_buf_read(&info, dcmd_size, &cmd->qsg, MEMTXATTRS_UNSPECIFIED); - cmd->iov_size = dcmd_size - resid; + residual = dma_buf_read(&info, dcmd_size, &cmd->qsg, + MEMTXATTRS_UNSPECIFIED); + cmd->iov_size = dcmd_size - residual; return MFI_STAT_OK; } @@ -1193,7 +1197,8 @@ static int megasas_dcmd_ld_list_query(MegasasState *s, MegasasCmd *cmd) { uint16_t flags; struct mfi_ld_targetid_list info; - size_t dcmd_size = sizeof(info), resid; + size_t dcmd_size = sizeof(info); + size_t residual; uint32_t num_ld_disks = 0, max_ld_disks = s->fw_luns; BusChild *kid; @@ -1233,8 +1238,9 @@ static int megasas_dcmd_ld_list_query(MegasasState *s, MegasasCmd *cmd) info.size = dcmd_size; trace_megasas_dcmd_ld_get_list(cmd->index, num_ld_disks, max_ld_disks); - resid = dma_buf_read(&info, dcmd_size, &cmd->qsg, MEMTXATTRS_UNSPECIFIED); - cmd->iov_size = dcmd_size - resid; + residual = dma_buf_read(&info, dcmd_size, &cmd->qsg, + MEMTXATTRS_UNSPECIFIED); + cmd->iov_size = dcmd_size - residual; return MFI_STAT_OK; } @@ -1244,7 +1250,8 @@ static int megasas_ld_get_info_submit(SCSIDevice *sdev, int lun, struct mfi_ld_info *info = cmd->iov_buf; size_t dcmd_size = sizeof(struct mfi_ld_info); uint8_t cdb[6]; - ssize_t len, resid; + ssize_t len; + size_t residual; uint16_t sdev_id = ((sdev->id & 0xFF) << 8) | (lun & 0xFF); uint64_t ld_size; @@ -1283,9 +1290,10 @@ static int megasas_ld_get_info_submit(SCSIDevice *sdev, int lun, info->ld_config.span[0].num_blocks = info->size; info->ld_config.span[0].array_ref = cpu_to_le16(sdev_id); - resid = dma_buf_read(cmd->iov_buf, dcmd_size, &cmd->qsg, MEMTXATTRS_UNSPECIFIED); + residual = dma_buf_read(cmd->iov_buf, dcmd_size, &cmd->qsg, + MEMTXATTRS_UNSPECIFIED); g_free(cmd->iov_buf); - cmd->iov_size = dcmd_size - resid; + cmd->iov_size = dcmd_size - residual; cmd->iov_buf = NULL; return MFI_STAT_OK; } @@ -1617,13 +1625,13 @@ static int megasas_handle_dcmd(MegasasState *s, MegasasCmd *cmd) } static int megasas_finish_internal_dcmd(MegasasCmd *cmd, - SCSIRequest *req, size_t resid) + SCSIRequest *req, size_t residual) { int retval = MFI_STAT_OK; int lun = req->lun; trace_megasas_dcmd_internal_finish(cmd->index, cmd->dcmd_opcode, lun); - cmd->iov_size -= resid; + cmd->iov_size -= residual; switch (cmd->dcmd_opcode) { case MFI_DCMD_PD_GET_INFO: retval = megasas_pd_get_info_submit(req->dev, lun, cmd); @@ -1865,12 +1873,12 @@ static void megasas_xfer_complete(SCSIRequest *req, uint32_t len) } } -static void megasas_command_complete(SCSIRequest *req, size_t resid) +static void megasas_command_complete(SCSIRequest *req, size_t residual) { MegasasCmd *cmd = req->hba_private; uint8_t cmd_status = MFI_STAT_OK; - trace_megasas_command_complete(cmd->index, req->status, resid); + trace_megasas_command_complete(cmd->index, req->status, residual); if (req->io_canceled) { return; @@ -1880,7 +1888,7 @@ static void megasas_command_complete(SCSIRequest *req, size_t resid) /* * Internal command complete */ - cmd_status = megasas_finish_internal_dcmd(cmd, req, resid); + cmd_status = megasas_finish_internal_dcmd(cmd, req, residual); if (cmd_status == MFI_STAT_INVALID_STATUS) { return; } diff --git a/hw/scsi/scsi-bus.c b/hw/scsi/scsi-bus.c index 2b5e9dca311..3466e680ac7 100644 --- a/hw/scsi/scsi-bus.c +++ b/hw/scsi/scsi-bus.c @@ -760,7 +760,7 @@ SCSIRequest *scsi_req_new(SCSIDevice *d, uint32_t tag, uint32_t lun, } req->cmd = cmd; - req->resid = req->cmd.xfer; + req->residual = req->cmd.xfer; switch (buf[0]) { case INQUIRY: @@ -1408,7 +1408,7 @@ void scsi_req_data(SCSIRequest *req, int len) trace_scsi_req_data(req->dev->id, req->lun, req->tag, len); assert(req->cmd.mode != SCSI_XFER_NONE); if (!req->sg) { - req->resid -= len; + req->residual -= len; req->bus->info->transfer_data(req, len); return; } @@ -1421,9 +1421,9 @@ void scsi_req_data(SCSIRequest *req, int len) buf = scsi_req_get_buf(req); if (req->cmd.mode == SCSI_XFER_FROM_DEV) { - req->resid = dma_buf_read(buf, len, req->sg, MEMTXATTRS_UNSPECIFIED); + req->residual = dma_buf_read(buf, len, req->sg, MEMTXATTRS_UNSPECIFIED); } else { - req->resid = dma_buf_write(buf, len, req->sg, MEMTXATTRS_UNSPECIFIED); + req->residual = dma_buf_write(buf, len, req->sg, MEMTXATTRS_UNSPECIFIED); } scsi_req_continue(req); } @@ -1512,7 +1512,7 @@ void scsi_req_complete(SCSIRequest *req, int status) scsi_req_ref(req); scsi_req_dequeue(req); - req->bus->info->complete(req, req->resid); + req->bus->info->complete(req, req->residual); /* Cancelled requests might end up being completed instead of cancelled */ notifier_list_notify(&req->cancel_notifiers, req); diff --git a/hw/scsi/scsi-disk.c b/hw/scsi/scsi-disk.c index d4914178ea0..9c0dc7b9468 100644 --- a/hw/scsi/scsi-disk.c +++ b/hw/scsi/scsi-disk.c @@ -420,7 +420,7 @@ static void scsi_do_read(SCSIDiskReq *r, int ret) if (r->req.sg) { dma_acct_start(s->qdev.conf.blk, &r->acct, r->req.sg, BLOCK_ACCT_READ); - r->req.resid -= r->req.sg->size; + r->req.residual -= r->req.sg->size; r->req.aiocb = dma_blk_io(blk_get_aio_context(s->qdev.conf.blk), r->req.sg, r->sector << BDRV_SECTOR_BITS, BDRV_SECTOR_SIZE, @@ -580,7 +580,7 @@ static void scsi_write_data(SCSIRequest *req) if (r->req.sg) { dma_acct_start(s->qdev.conf.blk, &r->acct, r->req.sg, BLOCK_ACCT_WRITE); - r->req.resid -= r->req.sg->size; + r->req.residual -= r->req.sg->size; r->req.aiocb = dma_blk_io(blk_get_aio_context(s->qdev.conf.blk), r->req.sg, r->sector << BDRV_SECTOR_BITS, BDRV_SECTOR_SIZE, diff --git a/softmmu/dma-helpers.c b/softmmu/dma-helpers.c index b0be1564797..4563a775aa7 100644 --- a/softmmu/dma-helpers.c +++ b/softmmu/dma-helpers.c @@ -294,49 +294,49 @@ BlockAIOCB *dma_blk_write(BlockBackend *blk, } -static MemTxResult dma_buf_rw(void *buf, int32_t len, uint64_t *residp, +static MemTxResult dma_buf_rw(void *buf, int32_t len, uint64_t *residual, QEMUSGList *sg, DMADirection dir, MemTxAttrs attrs) { uint8_t *ptr = buf; - uint64_t resid; + uint64_t xresidual; int sg_cur_index; MemTxResult res = MEMTX_OK; - resid = sg->size; + xresidual = sg->size; sg_cur_index = 0; - len = MIN(len, resid); + len = MIN(len, xresidual); while (len > 0) { ScatterGatherEntry entry = sg->sg[sg_cur_index++]; int32_t xfer = MIN(len, entry.len); res |= dma_memory_rw(sg->as, entry.base, ptr, xfer, dir, attrs); ptr += xfer; len -= xfer; - resid -= xfer; + xresidual -= xfer; } - if (residp) { - *residp = resid; + if (residual) { + *residual = xresidual; } return res; } uint64_t dma_buf_read(void *ptr, int32_t len, QEMUSGList *sg, MemTxAttrs attrs) { - uint64_t resid; + uint64_t residual; - dma_buf_rw(ptr, len, &resid, sg, DMA_DIRECTION_FROM_DEVICE, attrs); + dma_buf_rw(ptr, len, &residual, sg, DMA_DIRECTION_FROM_DEVICE, attrs); - return resid; + return residual; } uint64_t dma_buf_write(void *ptr, int32_t len, QEMUSGList *sg, MemTxAttrs attrs) { - uint64_t resid; + uint64_t residual; - dma_buf_rw(ptr, len, &resid, sg, DMA_DIRECTION_TO_DEVICE, attrs); + dma_buf_rw(ptr, len, &residual, sg, DMA_DIRECTION_TO_DEVICE, attrs); - return resid; + return residual; } void dma_acct_start(BlockBackend *blk, BlockAcctCookie *cookie, From patchwork Tue Jan 18 12:02:25 2022 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: 12716305 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 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 smtp.lore.kernel.org (Postfix) with ESMTPS id 86F33C433F5 for ; Tue, 18 Jan 2022 13:05:02 +0000 (UTC) Received: from localhost ([::1]:41240 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1n9oAW-0000rW-Kg for qemu-devel@archiver.kernel.org; Tue, 18 Jan 2022 08:05:00 -0500 Received: from eggs.gnu.org ([209.51.188.92]:51862) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1n9nEY-0006GK-UV; Tue, 18 Jan 2022 07:05:07 -0500 Received: from [2a00:1450:4864:20::32a] (port=52137 helo=mail-wm1-x32a.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1n9nES-0005ta-79; Tue, 18 Jan 2022 07:05:06 -0500 Received: by mail-wm1-x32a.google.com with SMTP id c2so21606876wml.1; Tue, 18 Jan 2022 04:03:45 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=Zvy/0amefCGpvF7RDj72qeKzXoYRfL+1cByeWJWkLYw=; b=o0zCEJCXSoGCVb8E6IS7UDtKTfazLBon1tEFqPlh68s0cg1RbVtzpaBSWNmS/huf2m wRBCxURA1jdKqfWitQPCVZgGQZsHSYdr//7meijVXOyJOaG0WgbafDwErDGazmPripO9 /KjRDuFSidUXmFA4kpnsWsxZoSoZ8Xi0Z8hKX78DwUr2Pu15iAxXBQBeOXWP/78xGtvd Ac76udg/xXOxOcKar8BaNoBZX+Uh/8wlYHTaI7V6ylC74BhiafxFGKhr5KznOYXuR1MY qq6lITVa5G/u5U5gmEZgb1iJ4n4OEmNDrmuNk82LH9orkLdq0j6IGFlFHDSfp/6u1IiW bVOQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=Zvy/0amefCGpvF7RDj72qeKzXoYRfL+1cByeWJWkLYw=; b=nHz6vpyuC1WQwUB8RU42LivYKHmMbF2A3EEQW0NxP8Wl2W9FjrjR84BAG8Js92pV7K ow+YFOIh/YAVk1FEOTBl6VflH4DrPyN2SX69eFX69OADPkAy+LBBH5l59ilTuFQIsRvo puXNgcNadCIRTILB1YWMLIwyEDtVOXWBpOrSJd+6CyAq11U8qkY6PDUQjHijxZr+WL39 WQgAqgwIyLIMjZniLUiixBI3WuqYBy9plHEFeUM35hZ9BAYzJmQbZCFPfm4+el4AxLbp EWfJjjBhnmMRqDggEmpavaMuZhLBI4ehj5Sy9ItygTNHQuyLl17XexFMoMepRQq7EsTC yLdA== X-Gm-Message-State: AOAM5311lc1mEde3WzEzEjpJOxg0haR8r+U/KjVVSLOg1N0ihxxnPfeM gtSklSpqq6cc3Efh93le3O78Y74rhCI= X-Google-Smtp-Source: ABdhPJy5SVa4rIlf3IRWPl8TVOt7wpUO6DSsQ2nSXreqtaRCmg/pxAMPsFES04t6qmipspOtDO39Ag== X-Received: by 2002:a05:6000:1c0c:: with SMTP id ba12mr21375033wrb.285.1642507423394; Tue, 18 Jan 2022 04:03:43 -0800 (PST) Received: from nuc.. (154.red-83-50-83.dynamicip.rima-tde.net. [83.50.83.154]) by smtp.gmail.com with ESMTPSA id u16sm3027041wmq.23.2022.01.18.04.03.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 18 Jan 2022 04:03:43 -0800 (PST) To: qemu-devel@nongnu.org Cc: Peter Xu , David Hildenbrand , Paolo Bonzini , qemu-block@nongnu.org, =?utf-8?q?Phili?= =?utf-8?q?ppe_Mathieu-Daud=C3=A9?= , Richard Henderson Subject: [PULL 15/19] hw/dma: Fix format string issues using dma_addr_t Date: Tue, 18 Jan 2022 13:02:25 +0100 Message-Id: <20220118120229.196337-16-f4bug@amsat.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220118120229.196337-1-f4bug@amsat.org> References: <20220118120229.196337-1-f4bug@amsat.org> MIME-Version: 1.0 X-Host-Lookup-Failed: Reverse DNS lookup failed for 2a00:1450:4864:20::32a (failed) Received-SPF: pass client-ip=2a00:1450:4864:20::32a; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-wm1-x32a.google.com X-Spam_score_int: -6 X-Spam_score: -0.7 X-Spam_bar: / X-Spam_report: (-0.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.248, PDS_HP_HELO_NORDNS=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RDNS_NONE=0.793, SPF_HELO_NONE=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: 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" Reply-to: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= X-Patchwork-Original-From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= via From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= Reviewed-by: Richard Henderson Reviewed-by: David Hildenbrand Signed-off-by: Philippe Mathieu-Daudé Message-Id: <20220111184309.28637-10-f4bug@amsat.org> --- hw/ide/ahci.c | 2 +- hw/rdma/trace-events | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/hw/ide/ahci.c b/hw/ide/ahci.c index 205dfdc6622..6c727dd0c08 100644 --- a/hw/ide/ahci.c +++ b/hw/ide/ahci.c @@ -1159,7 +1159,7 @@ static void process_ncq_command(AHCIState *s, int port, const uint8_t *cmd_fis, ahci_populate_sglist(ad, &ncq_tfs->sglist, ncq_tfs->cmdh, size, 0); if (ncq_tfs->sglist.size < size) { - error_report("ahci: PRDT length for NCQ command (0x%zx) " + error_report("ahci: PRDT length for NCQ command (0x" DMA_ADDR_FMT ") " "is smaller than the requested size (0x%zx)", ncq_tfs->sglist.size, size); ncq_err(ncq_tfs); diff --git a/hw/rdma/trace-events b/hw/rdma/trace-events index 9accb149734..c23175120e1 100644 --- a/hw/rdma/trace-events +++ b/hw/rdma/trace-events @@ -27,5 +27,5 @@ rdma_rm_alloc_qp(uint32_t rm_qpn, uint32_t backend_qpn, uint8_t qp_type) "rm_qpn rdma_rm_modify_qp(uint32_t qpn, uint32_t attr_mask, int qp_state, uint8_t sgid_idx) "qpn=0x%x, attr_mask=0x%x, qp_state=%d, sgid_idx=%d" # rdma_utils.c -rdma_pci_dma_map(uint64_t addr, void *vaddr, uint64_t len) "0x%"PRIx64" -> %p (len=%" PRId64")" +rdma_pci_dma_map(uint64_t addr, void *vaddr, uint64_t len) "0x%"PRIx64" -> %p (len=%" PRIu64")" rdma_pci_dma_unmap(void *vaddr) "%p" From patchwork Tue Jan 18 12:02:26 2022 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: 12716278 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 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 smtp.lore.kernel.org (Postfix) with ESMTPS id 9AD03C433EF for ; Tue, 18 Jan 2022 12:20:04 +0000 (UTC) Received: from localhost ([::1]:51560 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1n9nT1-0000C7-EC for qemu-devel@archiver.kernel.org; Tue, 18 Jan 2022 07:20:03 -0500 Received: from eggs.gnu.org ([209.51.188.92]:51622) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1n9nEJ-0006C4-M0; Tue, 18 Jan 2022 07:05:01 -0500 Received: from [2a00:1450:4864:20::331] (port=35388 helo=mail-wm1-x331.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1n9nEC-0005tp-Qm; Tue, 18 Jan 2022 07:04:48 -0500 Received: by mail-wm1-x331.google.com with SMTP id q9-20020a7bce89000000b00349e697f2fbso5299445wmj.0; Tue, 18 Jan 2022 04:03:50 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=iFVlmnRPeTBD8lOSH8frg7WRVHFkQ8F3wW1ER1eNd50=; b=QY8mujHBXD5kQ8UvjT3oiwbEcNXqMllJYeu5nq5ERBr87KYi8LUGzH4aTLSGYW8Pjb NGSRum5ucFCx/Bm7/Pr6erpgCEWqc3pcTnQYn1f1JvLCt8vnye8OGeoljZO3sXQA8O8z jbzvDLxsacAitt8fhUqt+aZSIV447tgnWmX5A/a+mBYUONGrlaKPhXY7GmNWn9toL4g4 ygEE9C6XtpdBZOHwPVr06aA/FiS837MLIvYNCjy/U/WLROt6GOSnMIaTXm6RUDb67qks TNaAa2IaxMUNK6efCEloN/+MyU7P6Y7JOveGEk5Hce9+0uO+DN6qPAygmkbig7djKFp5 4sgQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=iFVlmnRPeTBD8lOSH8frg7WRVHFkQ8F3wW1ER1eNd50=; b=Od9syoG5DMChw4p2RMRg+D/UA1wJZtUEGwges+vEj1lNiiKDnenEJZBOQZNi9FnmvH KE9Ma+tJowkKBrOER5zQ0dM3BAT7VgylaZBQB5prrxc2J28JYGkq68buJtY7VwvrBHUp AFUxEFCT9+qpNuwHn0PdYS/HZnALhGHvDjumlmuhso+oic2e6hpBNCfZqms0vTgAjdOj sJUcj5lg4TxSOB0S6mQ5eLdvh8co07ydkCuz7+a2I830Rh3kOT5Hi4ICZ6mUD311l54d 6CD8fkSgaK1qxctoAPBY4MtJw/bQrO9757GgqpGWEhWk689vXe1LDteTX9VlSLlZnjem gsbA== X-Gm-Message-State: AOAM530Yi/KODH1DpaAMl3yLR5M7Md2vwzVE5qWx0014xx+ZGtrHqO4V L9JxL4j53+THIP91yMSO8noIY3hp2Gw= X-Google-Smtp-Source: ABdhPJyKQkpTKFZqMOzFfBCZTokOb9fFWWiwOAIbY1DjsTbFbUbqzr85dpoKX64wlImftwegHZgQNg== X-Received: by 2002:adf:d1c3:: with SMTP id b3mr9982918wrd.231.1642507428205; Tue, 18 Jan 2022 04:03:48 -0800 (PST) Received: from nuc.. (154.red-83-50-83.dynamicip.rima-tde.net. [83.50.83.154]) by smtp.gmail.com with ESMTPSA id e15sm5487832wrg.85.2022.01.18.04.03.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 18 Jan 2022 04:03:47 -0800 (PST) To: qemu-devel@nongnu.org Cc: Peter Xu , David Hildenbrand , Paolo Bonzini , qemu-block@nongnu.org, =?utf-8?q?Phili?= =?utf-8?q?ppe_Mathieu-Daud=C3=A9?= Subject: [PULL 16/19] hw/dma: Move ScatterGatherEntry / QEMUSGList declarations around Date: Tue, 18 Jan 2022 13:02:26 +0100 Message-Id: <20220118120229.196337-17-f4bug@amsat.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220118120229.196337-1-f4bug@amsat.org> References: <20220118120229.196337-1-f4bug@amsat.org> MIME-Version: 1.0 X-Host-Lookup-Failed: Reverse DNS lookup failed for 2a00:1450:4864:20::331 (failed) Received-SPF: pass client-ip=2a00:1450:4864:20::331; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-wm1-x331.google.com X-Spam_score_int: -6 X-Spam_score: -0.7 X-Spam_bar: / X-Spam_report: (-0.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.248, PDS_HP_HELO_NORDNS=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RDNS_NONE=0.793, SPF_HELO_NONE=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: 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" Reply-to: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= X-Patchwork-Original-From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= via From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= In the next commit we will use the dma_addr_t type in the QEMUSGList structure. Since currently dma_addr_t is defined after QEMUSGList, move the declarations to have dma_addr_t defined first. This is a pure code-movement patch. Suggested-by: David Hildenbrand Signed-off-by: Philippe Mathieu-Daudé Reviewed-by: David Hildenbrand Message-Id: <20220111184309.28637-10-f4bug@amsat.org> --- include/sysemu/dma.h | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/include/sysemu/dma.h b/include/sysemu/dma.h index 0db2478a506..c992d9d5d6b 100644 --- a/include/sysemu/dma.h +++ b/include/sysemu/dma.h @@ -15,22 +15,11 @@ #include "block/block.h" #include "block/accounting.h" -typedef struct ScatterGatherEntry ScatterGatherEntry; - typedef enum { DMA_DIRECTION_TO_DEVICE = 0, DMA_DIRECTION_FROM_DEVICE = 1, } DMADirection; -struct QEMUSGList { - ScatterGatherEntry *sg; - int nsg; - int nalloc; - size_t size; - DeviceState *dev; - AddressSpace *as; -}; - /* * When an IOMMU is present, bus addresses become distinct from * CPU/memory physical addresses and may be a different size. Because @@ -43,6 +32,17 @@ typedef uint64_t dma_addr_t; #define DMA_ADDR_BITS 64 #define DMA_ADDR_FMT "%" PRIx64 +typedef struct ScatterGatherEntry ScatterGatherEntry; + +struct QEMUSGList { + ScatterGatherEntry *sg; + int nsg; + int nalloc; + size_t size; + DeviceState *dev; + AddressSpace *as; +}; + static inline void dma_barrier(AddressSpace *as, DMADirection dir) { /* From patchwork Tue Jan 18 12:02:27 2022 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: 12716309 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 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 smtp.lore.kernel.org (Postfix) with ESMTPS id DEF1AC433F5 for ; Tue, 18 Jan 2022 13:11:44 +0000 (UTC) Received: from localhost ([::1]:50378 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1n9oH1-0007nn-Fo for qemu-devel@archiver.kernel.org; Tue, 18 Jan 2022 08:11:43 -0500 Received: from eggs.gnu.org ([209.51.188.92]:51820) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1n9nEX-0006G2-LU; Tue, 18 Jan 2022 07:05:07 -0500 Received: from [2a00:1450:4864:20::32b] (port=34495 helo=mail-wm1-x32b.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1n9nES-0005tz-7G; Tue, 18 Jan 2022 07:05:05 -0500 Received: by mail-wm1-x32b.google.com with SMTP id bg19-20020a05600c3c9300b0034565e837b6so2047296wmb.1; Tue, 18 Jan 2022 04:03:55 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=EB1E6GjOT965H1546eRI7MAYmLzsPxdyv9nPv4t3lfs=; b=HcbGOWVmaC2G2Dufl5xmxx17M0entBkI3dSD5MyXXe7+ceSdtMlxqP1jLedeW2rqI0 HmUv0tazGlETjG/ZmCKS1j1a+j/IOabHsyLtJgLo3kR08zg7pkolaU0KnAtCrnjO/rTH /DFqUu1i8uQdRcWdiONvEpNY1FojkvRu9swiROUtiI0pMkKpxvfHvhjg2x02uzPwrlDX VfV4Vjt1Ip70yxs3kDYrFvw5u0NiKB2DV9n6CN1+zzjkC9U5IxLEDtnTwZaFZ7a/HnAr BoW6r8MAFUtzqqrUz7aEzypZ3zsWPCPgW4kR7xrdBJneOeBFaXXaPCf0xZfmX8sFafZ6 9/aw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=EB1E6GjOT965H1546eRI7MAYmLzsPxdyv9nPv4t3lfs=; b=LVp0/ToeWE2QQk+Fv9zcJSZ6+QLUgaakBCks+8lax4PIMoBwy1oREebspHRy/NrWIn BhVtW9p4uKyBDpkxfBzvU5OI+T2KsdmoNqueiwT0xcIuk0IDRg0U1eEwdgzc653NOYlM BgZWw0UeeOJRxqmkDrpiZRI2nCeQAWLPPdqgOQHzTmKADSgc3sj3RqQ6aeRyM3LHcMYN 5U4h5ndwXi1AOd9OJVsCZAGXl19HrnLx9bmEtpCgeS1pOD5ZworLTymLyXxGQjhzE6Ky MpWB5P8cgAUEYvkrjUs/2kPTjBYfsprASTaXL76ux1Mzyad7J+f0NVyE+2JSkoly76Iz Hv8w== X-Gm-Message-State: AOAM530i4GrpqEJboxlkzQv79XVf3590ahld6K2hHscMM1HyaoAzTpmv huDAIpWc2UpAufl1xMYqj5m1LBG40xU= X-Google-Smtp-Source: ABdhPJy3Rshjmbxuc8TEMhQsZ51xhukuzz1DefY2bvAZB+RNf4NsV1pReDGzutQCoZYQ51cfWVGF7w== X-Received: by 2002:a05:6000:144c:: with SMTP id v12mr24124345wrx.218.1642507433042; Tue, 18 Jan 2022 04:03:53 -0800 (PST) Received: from nuc.. (154.red-83-50-83.dynamicip.rima-tde.net. [83.50.83.154]) by smtp.gmail.com with ESMTPSA id 1sm7656390wry.81.2022.01.18.04.03.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 18 Jan 2022 04:03:52 -0800 (PST) To: qemu-devel@nongnu.org Cc: Peter Xu , David Hildenbrand , Paolo Bonzini , qemu-block@nongnu.org, =?utf-8?q?Phili?= =?utf-8?q?ppe_Mathieu-Daud=C3=A9?= , =?utf-8?q?Philippe_?= =?utf-8?q?Mathieu-Daud=C3=A9?= Subject: [PULL 17/19] hw/dma: Use dma_addr_t type definition when relevant Date: Tue, 18 Jan 2022 13:02:27 +0100 Message-Id: <20220118120229.196337-18-f4bug@amsat.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220118120229.196337-1-f4bug@amsat.org> References: <20220118120229.196337-1-f4bug@amsat.org> MIME-Version: 1.0 X-Host-Lookup-Failed: Reverse DNS lookup failed for 2a00:1450:4864:20::32b (failed) Received-SPF: pass client-ip=2a00:1450:4864:20::32b; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-wm1-x32b.google.com X-Spam_score_int: -6 X-Spam_score: -0.7 X-Spam_bar: / X-Spam_report: (-0.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.248, PDS_HP_HELO_NORDNS=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RDNS_NONE=0.793, SPF_HELO_NONE=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: 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" Reply-to: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= X-Patchwork-Original-From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= via From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= From: Philippe Mathieu-Daudé Update the obvious places where dma_addr_t should be used (instead of uint64_t, hwaddr, size_t, int32_t types). This allows to have &dma_addr_t type portable on 32/64-bit hosts. Signed-off-by: Philippe Mathieu-Daudé Reviewed-by: David Hildenbrand Signed-off-by: Philippe Mathieu-Daudé Message-Id: <20220111184309.28637-11-f4bug@amsat.org> --- include/sysemu/dma.h | 8 +++++--- hw/nvme/ctrl.c | 2 +- hw/rdma/rdma_utils.c | 2 +- hw/scsi/megasas.c | 10 +++++----- softmmu/dma-helpers.c | 16 +++++++++------- 5 files changed, 21 insertions(+), 17 deletions(-) diff --git a/include/sysemu/dma.h b/include/sysemu/dma.h index c992d9d5d6b..36039c5e687 100644 --- a/include/sysemu/dma.h +++ b/include/sysemu/dma.h @@ -38,7 +38,7 @@ struct QEMUSGList { ScatterGatherEntry *sg; int nsg; int nalloc; - size_t size; + dma_addr_t size; DeviceState *dev; AddressSpace *as; }; @@ -301,8 +301,10 @@ BlockAIOCB *dma_blk_read(BlockBackend *blk, BlockAIOCB *dma_blk_write(BlockBackend *blk, QEMUSGList *sg, uint64_t offset, uint32_t align, BlockCompletionFunc *cb, void *opaque); -uint64_t dma_buf_read(void *ptr, int32_t len, QEMUSGList *sg, MemTxAttrs attrs); -uint64_t dma_buf_write(void *ptr, int32_t len, QEMUSGList *sg, MemTxAttrs attrs); +dma_addr_t dma_buf_read(void *ptr, dma_addr_t len, + QEMUSGList *sg, MemTxAttrs attrs); +dma_addr_t dma_buf_write(void *ptr, dma_addr_t len, + QEMUSGList *sg, MemTxAttrs attrs); void dma_acct_start(BlockBackend *blk, BlockAcctCookie *cookie, QEMUSGList *sg, enum BlockAcctType type); diff --git a/hw/nvme/ctrl.c b/hw/nvme/ctrl.c index 462f79a1f60..c3c49176110 100644 --- a/hw/nvme/ctrl.c +++ b/hw/nvme/ctrl.c @@ -1147,7 +1147,7 @@ static uint16_t nvme_tx(NvmeCtrl *n, NvmeSg *sg, uint8_t *ptr, uint32_t len, if (sg->flags & NVME_SG_DMA) { const MemTxAttrs attrs = MEMTXATTRS_UNSPECIFIED; - uint64_t residual; + dma_addr_t residual; if (dir == NVME_TX_DIRECTION_TO_DEVICE) { residual = dma_buf_write(ptr, len, &sg->qsg, attrs); diff --git a/hw/rdma/rdma_utils.c b/hw/rdma/rdma_utils.c index 61cb8ede0fd..5a7ef63ad28 100644 --- a/hw/rdma/rdma_utils.c +++ b/hw/rdma/rdma_utils.c @@ -20,7 +20,7 @@ void *rdma_pci_dma_map(PCIDevice *dev, dma_addr_t addr, dma_addr_t len) { void *p; - hwaddr pci_len = len; + dma_addr_t pci_len = len; if (!addr) { rdma_error_report("addr is NULL"); diff --git a/hw/scsi/megasas.c b/hw/scsi/megasas.c index cb019549371..6c1ae6b980f 100644 --- a/hw/scsi/megasas.c +++ b/hw/scsi/megasas.c @@ -1046,7 +1046,7 @@ static int megasas_pd_get_info_submit(SCSIDevice *sdev, int lun, uint16_t pd_id = ((sdev->id & 0xFF) << 8) | (lun & 0xFF); uint8_t cmdbuf[6]; size_t len; - size_t residual; + dma_addr_t residual; if (!cmd->iov_buf) { cmd->iov_buf = g_malloc0(dcmd_size); @@ -1152,7 +1152,7 @@ static int megasas_dcmd_ld_get_list(MegasasState *s, MegasasCmd *cmd) { struct mfi_ld_list info; size_t dcmd_size = sizeof(info); - size_t residual; + dma_addr_t residual; uint32_t num_ld_disks = 0, max_ld_disks; uint64_t ld_size; BusChild *kid; @@ -1198,7 +1198,7 @@ static int megasas_dcmd_ld_list_query(MegasasState *s, MegasasCmd *cmd) uint16_t flags; struct mfi_ld_targetid_list info; size_t dcmd_size = sizeof(info); - size_t residual; + dma_addr_t residual; uint32_t num_ld_disks = 0, max_ld_disks = s->fw_luns; BusChild *kid; @@ -1251,7 +1251,7 @@ static int megasas_ld_get_info_submit(SCSIDevice *sdev, int lun, size_t dcmd_size = sizeof(struct mfi_ld_info); uint8_t cdb[6]; ssize_t len; - size_t residual; + dma_addr_t residual; uint16_t sdev_id = ((sdev->id & 0xFF) << 8) | (lun & 0xFF); uint64_t ld_size; @@ -1625,7 +1625,7 @@ static int megasas_handle_dcmd(MegasasState *s, MegasasCmd *cmd) } static int megasas_finish_internal_dcmd(MegasasCmd *cmd, - SCSIRequest *req, size_t residual) + SCSIRequest *req, dma_addr_t residual) { int retval = MFI_STAT_OK; int lun = req->lun; diff --git a/softmmu/dma-helpers.c b/softmmu/dma-helpers.c index 4563a775aa7..916cf12ed42 100644 --- a/softmmu/dma-helpers.c +++ b/softmmu/dma-helpers.c @@ -294,12 +294,12 @@ BlockAIOCB *dma_blk_write(BlockBackend *blk, } -static MemTxResult dma_buf_rw(void *buf, int32_t len, uint64_t *residual, +static MemTxResult dma_buf_rw(void *buf, dma_addr_t len, dma_addr_t *residual, QEMUSGList *sg, DMADirection dir, MemTxAttrs attrs) { uint8_t *ptr = buf; - uint64_t xresidual; + dma_addr_t xresidual; int sg_cur_index; MemTxResult res = MEMTX_OK; @@ -308,7 +308,7 @@ static MemTxResult dma_buf_rw(void *buf, int32_t len, uint64_t *residual, len = MIN(len, xresidual); while (len > 0) { ScatterGatherEntry entry = sg->sg[sg_cur_index++]; - int32_t xfer = MIN(len, entry.len); + dma_addr_t xfer = MIN(len, entry.len); res |= dma_memory_rw(sg->as, entry.base, ptr, xfer, dir, attrs); ptr += xfer; len -= xfer; @@ -321,18 +321,20 @@ static MemTxResult dma_buf_rw(void *buf, int32_t len, uint64_t *residual, return res; } -uint64_t dma_buf_read(void *ptr, int32_t len, QEMUSGList *sg, MemTxAttrs attrs) +dma_addr_t dma_buf_read(void *ptr, dma_addr_t len, + QEMUSGList *sg, MemTxAttrs attrs) { - uint64_t residual; + dma_addr_t residual; dma_buf_rw(ptr, len, &residual, sg, DMA_DIRECTION_FROM_DEVICE, attrs); return residual; } -uint64_t dma_buf_write(void *ptr, int32_t len, QEMUSGList *sg, MemTxAttrs attrs) +dma_addr_t dma_buf_write(void *ptr, dma_addr_t len, + QEMUSGList *sg, MemTxAttrs attrs) { - uint64_t residual; + dma_addr_t residual; dma_buf_rw(ptr, len, &residual, sg, DMA_DIRECTION_TO_DEVICE, attrs); From patchwork Tue Jan 18 12:02:28 2022 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: 12716301 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 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 smtp.lore.kernel.org (Postfix) with ESMTPS id A76E0C4332F for ; Tue, 18 Jan 2022 12:51:13 +0000 (UTC) Received: from localhost ([::1]:57158 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1n9nx7-0008Ri-Ij for qemu-devel@archiver.kernel.org; Tue, 18 Jan 2022 07:51:09 -0500 Received: from eggs.gnu.org ([209.51.188.92]:51834) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1n9nEY-0006GE-2F; Tue, 18 Jan 2022 07:05:07 -0500 Received: from [2a00:1450:4864:20::32b] (port=53871 helo=mail-wm1-x32b.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1n9nES-0005uB-77; Tue, 18 Jan 2022 07:05:05 -0500 Received: by mail-wm1-x32b.google.com with SMTP id n8so424406wmk.3; Tue, 18 Jan 2022 04:03:59 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=bYdARu+EPxll1ZGtBUuiPqQIjDeHxlEvK+u3FLRfS0M=; b=PX4eqmROe46YLdzCAwXBg451nm583yeGUdxg4Hj5O0pfOVbIooHMuYp3tqFMBh4FF7 kgeS1A6OSJZvFTLYvfCJjOdpQOMpp0SnK0/NBU6Uh5xYcfNMvinGABgAe8SjX/B2BdfC KBgyNsgOJ/hiCB4ZzNgIIeW6u9vrsr80rFuuFKk3N5SUCD0Kj/VJxf95sSYHhz5PmgQQ bRjimw7vbQBO4gWmQSyYcCDJbSqkZLWVhvPbN4777ECgzp0c/Tfvdz3gkW1BHvvXzSg6 oVJpoADYO1UbSynKpOgeSNwMi9Z3BMiOcdzywuyH3riyAGxbii3m23w3W28kvlpXgU+7 3zMw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=bYdARu+EPxll1ZGtBUuiPqQIjDeHxlEvK+u3FLRfS0M=; b=jHzWQvqVixDtiL3EwzizwAMTnn3FUxBpa/ND9ekuCrvPf582W/7r8svQsx97voWiEV 9suZixCha1UVb2weHZlamEnlYNYUi1xwGwDZ6CDhsxD8jguxQArIT1WpmmsfA1SUTCZt L98bIYVsLTWz6H+dtmimkb/u7o8P61SUCbYcyL50d0lMCsInkhWgnH/XNv2jtkPWXSHj f4bhqFZJNd2tFp1P6zyigV1qThJsGXFQaBLwpDwDAW9XjFOZW58bwB09eO25eICCXdSk GhPTy8durV7ktTneuad1+zwEOtGLsfSvpsjrWDSdGEbgg3RP4M6Xjlk7IxwapngOZ/cI 4sNg== X-Gm-Message-State: AOAM532295hRmw7Cskx2Eu6e3B7d8wtEwjs2arwzTzdQMUXhoKLxW0wL 43hOuzMSpDxsuge10M3ZviQ2sePU7is= X-Google-Smtp-Source: ABdhPJxmnhvCAcGNRW75pG7cOUl0lAfDnT3jp9bvRYV5/XrAb3zN+WvC0sq3FJm/UfMU37yabbXe9g== X-Received: by 2002:a05:600c:2194:: with SMTP id e20mr32239813wme.149.1642507437915; Tue, 18 Jan 2022 04:03:57 -0800 (PST) Received: from nuc.. (154.red-83-50-83.dynamicip.rima-tde.net. [83.50.83.154]) by smtp.gmail.com with ESMTPSA id o13sm9378591wrc.5.2022.01.18.04.03.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 18 Jan 2022 04:03:57 -0800 (PST) To: qemu-devel@nongnu.org Cc: Peter Xu , David Hildenbrand , Paolo Bonzini , qemu-block@nongnu.org, =?utf-8?q?Phili?= =?utf-8?q?ppe_Mathieu-Daud=C3=A9?= , Klaus Jensen , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= Subject: [PULL 18/19] hw/dma: Let dma_buf_read() / dma_buf_write() propagate MemTxResult Date: Tue, 18 Jan 2022 13:02:28 +0100 Message-Id: <20220118120229.196337-19-f4bug@amsat.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220118120229.196337-1-f4bug@amsat.org> References: <20220118120229.196337-1-f4bug@amsat.org> MIME-Version: 1.0 X-Host-Lookup-Failed: Reverse DNS lookup failed for 2a00:1450:4864:20::32b (failed) Received-SPF: pass client-ip=2a00:1450:4864:20::32b; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-wm1-x32b.google.com X-Spam_score_int: -6 X-Spam_score: -0.7 X-Spam_bar: / X-Spam_report: (-0.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.248, PDS_HP_HELO_NORDNS=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RDNS_NONE=0.793, SPF_HELO_NONE=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: 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" Reply-to: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= X-Patchwork-Original-From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= via From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= From: Philippe Mathieu-Daudé Since commit 292e13142d2, dma_buf_rw() returns a MemTxResult type. Do not discard it, return it to the caller. Pass the previously returned value (the QEMUSGList residual size, which was rarely used) as an optional argument. With this new API, SCSIRequest::residual might now be accessed via a pointer. Since the size_t type does not have the same size on 32 and 64-bit host architectures, convert it to a uint64_t, which is big enough to hold the residual size, and the type is constant on both 32/64-bit hosts. Update the few dma_buf_read() / dma_buf_write() callers to the new API. Reviewed-by: Klaus Jensen Signed-off-by: Philippe Mathieu-Daudé Signed-off-by: Philippe Mathieu-Daudé Acked-by: Peter Xu Message-Id: <20220117125130.131828-1-f4bug@amsat.org> --- include/hw/scsi/scsi.h | 2 +- include/sysemu/dma.h | 4 +-- hw/ide/ahci.c | 8 +++--- hw/nvme/ctrl.c | 4 +-- hw/scsi/megasas.c | 59 ++++++++++++++++++++++++++++++------------ hw/scsi/scsi-bus.c | 6 +++-- softmmu/dma-helpers.c | 16 +++--------- 7 files changed, 59 insertions(+), 40 deletions(-) diff --git a/include/hw/scsi/scsi.h b/include/hw/scsi/scsi.h index b27d133b113..1ffb367f94f 100644 --- a/include/hw/scsi/scsi.h +++ b/include/hw/scsi/scsi.h @@ -30,7 +30,7 @@ struct SCSIRequest { int16_t status; int16_t host_status; void *hba_private; - size_t residual; + uint64_t residual; SCSICommand cmd; NotifierList cancel_notifiers; diff --git a/include/sysemu/dma.h b/include/sysemu/dma.h index 36039c5e687..a1ac5bc1b54 100644 --- a/include/sysemu/dma.h +++ b/include/sysemu/dma.h @@ -301,9 +301,9 @@ BlockAIOCB *dma_blk_read(BlockBackend *blk, BlockAIOCB *dma_blk_write(BlockBackend *blk, QEMUSGList *sg, uint64_t offset, uint32_t align, BlockCompletionFunc *cb, void *opaque); -dma_addr_t dma_buf_read(void *ptr, dma_addr_t len, +MemTxResult dma_buf_read(void *ptr, dma_addr_t len, dma_addr_t *residual, QEMUSGList *sg, MemTxAttrs attrs); -dma_addr_t dma_buf_write(void *ptr, dma_addr_t len, +MemTxResult dma_buf_write(void *ptr, dma_addr_t len, dma_addr_t *residual, QEMUSGList *sg, MemTxAttrs attrs); void dma_acct_start(BlockBackend *blk, BlockAcctCookie *cookie, diff --git a/hw/ide/ahci.c b/hw/ide/ahci.c index 6c727dd0c08..7ce001cacdb 100644 --- a/hw/ide/ahci.c +++ b/hw/ide/ahci.c @@ -1384,9 +1384,9 @@ static void ahci_pio_transfer(const IDEDMA *dma) const MemTxAttrs attrs = MEMTXATTRS_UNSPECIFIED; if (is_write) { - dma_buf_write(s->data_ptr, size, &s->sg, attrs); + dma_buf_write(s->data_ptr, size, NULL, &s->sg, attrs); } else { - dma_buf_read(s->data_ptr, size, &s->sg, attrs); + dma_buf_read(s->data_ptr, size, NULL, &s->sg, attrs); } } @@ -1479,9 +1479,9 @@ static int ahci_dma_rw_buf(const IDEDMA *dma, bool is_write) } if (is_write) { - dma_buf_read(p, l, &s->sg, MEMTXATTRS_UNSPECIFIED); + dma_buf_read(p, l, NULL, &s->sg, MEMTXATTRS_UNSPECIFIED); } else { - dma_buf_write(p, l, &s->sg, MEMTXATTRS_UNSPECIFIED); + dma_buf_write(p, l, NULL, &s->sg, MEMTXATTRS_UNSPECIFIED); } /* free sglist, update byte count */ diff --git a/hw/nvme/ctrl.c b/hw/nvme/ctrl.c index c3c49176110..1f62116af98 100644 --- a/hw/nvme/ctrl.c +++ b/hw/nvme/ctrl.c @@ -1150,9 +1150,9 @@ static uint16_t nvme_tx(NvmeCtrl *n, NvmeSg *sg, uint8_t *ptr, uint32_t len, dma_addr_t residual; if (dir == NVME_TX_DIRECTION_TO_DEVICE) { - residual = dma_buf_write(ptr, len, &sg->qsg, attrs); + dma_buf_write(ptr, len, &residual, &sg->qsg, attrs); } else { - residual = dma_buf_read(ptr, len, &sg->qsg, attrs); + dma_buf_read(ptr, len, &residual, &sg->qsg, attrs); } if (unlikely(residual)) { diff --git a/hw/scsi/megasas.c b/hw/scsi/megasas.c index 6c1ae6b980f..de613c8b355 100644 --- a/hw/scsi/megasas.c +++ b/hw/scsi/megasas.c @@ -750,6 +750,7 @@ static int megasas_ctrl_get_info(MegasasState *s, MegasasCmd *cmd) size_t dcmd_size = sizeof(info); BusChild *kid; int num_pd_disks = 0; + dma_addr_t residual; memset(&info, 0x0, dcmd_size); if (cmd->iov_size < dcmd_size) { @@ -860,7 +861,9 @@ static int megasas_ctrl_get_info(MegasasState *s, MegasasCmd *cmd) MFI_INFO_PDMIX_SATA | MFI_INFO_PDMIX_LD); - cmd->iov_size -= dma_buf_read(&info, dcmd_size, &cmd->qsg, MEMTXATTRS_UNSPECIFIED); + dma_buf_read(&info, dcmd_size, &residual, &cmd->qsg, + MEMTXATTRS_UNSPECIFIED); + cmd->iov_size -= residual; return MFI_STAT_OK; } @@ -868,6 +871,7 @@ static int megasas_mfc_get_defaults(MegasasState *s, MegasasCmd *cmd) { struct mfi_defaults info; size_t dcmd_size = sizeof(struct mfi_defaults); + dma_addr_t residual; memset(&info, 0x0, dcmd_size); if (cmd->iov_size < dcmd_size) { @@ -890,7 +894,9 @@ static int megasas_mfc_get_defaults(MegasasState *s, MegasasCmd *cmd) info.disable_preboot_cli = 1; info.cluster_disable = 1; - cmd->iov_size -= dma_buf_read(&info, dcmd_size, &cmd->qsg, MEMTXATTRS_UNSPECIFIED); + dma_buf_read(&info, dcmd_size, &residual, &cmd->qsg, + MEMTXATTRS_UNSPECIFIED); + cmd->iov_size -= residual; return MFI_STAT_OK; } @@ -898,6 +904,7 @@ static int megasas_dcmd_get_bios_info(MegasasState *s, MegasasCmd *cmd) { struct mfi_bios_data info; size_t dcmd_size = sizeof(info); + dma_addr_t residual; memset(&info, 0x0, dcmd_size); if (cmd->iov_size < dcmd_size) { @@ -911,7 +918,9 @@ static int megasas_dcmd_get_bios_info(MegasasState *s, MegasasCmd *cmd) info.expose_all_drives = 1; } - cmd->iov_size -= dma_buf_read(&info, dcmd_size, &cmd->qsg, MEMTXATTRS_UNSPECIFIED); + dma_buf_read(&info, dcmd_size, &residual, &cmd->qsg, + MEMTXATTRS_UNSPECIFIED); + cmd->iov_size -= residual; return MFI_STAT_OK; } @@ -919,10 +928,13 @@ static int megasas_dcmd_get_fw_time(MegasasState *s, MegasasCmd *cmd) { uint64_t fw_time; size_t dcmd_size = sizeof(fw_time); + dma_addr_t residual; fw_time = cpu_to_le64(megasas_fw_time()); - cmd->iov_size -= dma_buf_read(&fw_time, dcmd_size, &cmd->qsg, MEMTXATTRS_UNSPECIFIED); + dma_buf_read(&fw_time, dcmd_size, &residual, &cmd->qsg, + MEMTXATTRS_UNSPECIFIED); + cmd->iov_size -= residual; return MFI_STAT_OK; } @@ -942,6 +954,7 @@ static int megasas_event_info(MegasasState *s, MegasasCmd *cmd) { struct mfi_evt_log_state info; size_t dcmd_size = sizeof(info); + dma_addr_t residual; memset(&info, 0, dcmd_size); @@ -949,7 +962,9 @@ static int megasas_event_info(MegasasState *s, MegasasCmd *cmd) info.shutdown_seq_num = cpu_to_le32(s->shutdown_event); info.boot_seq_num = cpu_to_le32(s->boot_event); - cmd->iov_size -= dma_buf_read(&info, dcmd_size, &cmd->qsg, MEMTXATTRS_UNSPECIFIED); + dma_buf_read(&info, dcmd_size, &residual, &cmd->qsg, + MEMTXATTRS_UNSPECIFIED); + cmd->iov_size -= residual; return MFI_STAT_OK; } @@ -979,6 +994,7 @@ static int megasas_dcmd_pd_get_list(MegasasState *s, MegasasCmd *cmd) size_t dcmd_size = sizeof(info); BusChild *kid; uint32_t offset, dcmd_limit, num_pd_disks = 0, max_pd_disks; + dma_addr_t residual; memset(&info, 0, dcmd_size); offset = 8; @@ -1018,7 +1034,9 @@ static int megasas_dcmd_pd_get_list(MegasasState *s, MegasasCmd *cmd) info.size = cpu_to_le32(offset); info.count = cpu_to_le32(num_pd_disks); - cmd->iov_size -= dma_buf_read(&info, offset, &cmd->qsg, MEMTXATTRS_UNSPECIFIED); + dma_buf_read(&info, offset, &residual, &cmd->qsg, + MEMTXATTRS_UNSPECIFIED); + cmd->iov_size -= residual; return MFI_STAT_OK; } @@ -1113,8 +1131,9 @@ static int megasas_pd_get_info_submit(SCSIDevice *sdev, int lun, info->connected_port_bitmap = 0x1; info->device_speed = 1; info->link_speed = 1; - residual = dma_buf_read(cmd->iov_buf, dcmd_size, &cmd->qsg, - MEMTXATTRS_UNSPECIFIED); + dma_buf_read(cmd->iov_buf, dcmd_size, &residual, &cmd->qsg, + MEMTXATTRS_UNSPECIFIED); + cmd->iov_size -= residual; g_free(cmd->iov_buf); cmd->iov_size = dcmd_size - residual; cmd->iov_buf = NULL; @@ -1187,8 +1206,8 @@ static int megasas_dcmd_ld_get_list(MegasasState *s, MegasasCmd *cmd) info.ld_count = cpu_to_le32(num_ld_disks); trace_megasas_dcmd_ld_get_list(cmd->index, num_ld_disks, max_ld_disks); - residual = dma_buf_read(&info, dcmd_size, &cmd->qsg, - MEMTXATTRS_UNSPECIFIED); + dma_buf_read(&info, dcmd_size, &residual, &cmd->qsg, + MEMTXATTRS_UNSPECIFIED); cmd->iov_size = dcmd_size - residual; return MFI_STAT_OK; } @@ -1238,8 +1257,8 @@ static int megasas_dcmd_ld_list_query(MegasasState *s, MegasasCmd *cmd) info.size = dcmd_size; trace_megasas_dcmd_ld_get_list(cmd->index, num_ld_disks, max_ld_disks); - residual = dma_buf_read(&info, dcmd_size, &cmd->qsg, - MEMTXATTRS_UNSPECIFIED); + dma_buf_read(&info, dcmd_size, &residual, &cmd->qsg, + MEMTXATTRS_UNSPECIFIED); cmd->iov_size = dcmd_size - residual; return MFI_STAT_OK; } @@ -1290,8 +1309,8 @@ static int megasas_ld_get_info_submit(SCSIDevice *sdev, int lun, info->ld_config.span[0].num_blocks = info->size; info->ld_config.span[0].array_ref = cpu_to_le16(sdev_id); - residual = dma_buf_read(cmd->iov_buf, dcmd_size, &cmd->qsg, - MEMTXATTRS_UNSPECIFIED); + dma_buf_read(cmd->iov_buf, dcmd_size, &residual, &cmd->qsg, + MEMTXATTRS_UNSPECIFIED); g_free(cmd->iov_buf); cmd->iov_size = dcmd_size - residual; cmd->iov_buf = NULL; @@ -1336,6 +1355,7 @@ static int megasas_dcmd_cfg_read(MegasasState *s, MegasasCmd *cmd) struct mfi_config_data *info; int num_pd_disks = 0, array_offset, ld_offset; BusChild *kid; + dma_addr_t residual; if (cmd->iov_size > 4096) { return MFI_STAT_INVALID_PARAMETER; @@ -1410,7 +1430,9 @@ static int megasas_dcmd_cfg_read(MegasasState *s, MegasasCmd *cmd) ld_offset += sizeof(struct mfi_ld_config); } - cmd->iov_size -= dma_buf_read(data, info->size, &cmd->qsg, MEMTXATTRS_UNSPECIFIED); + dma_buf_read(data, info->size, &residual, &cmd->qsg, + MEMTXATTRS_UNSPECIFIED); + cmd->iov_size -= residual; return MFI_STAT_OK; } @@ -1418,6 +1440,7 @@ static int megasas_dcmd_get_properties(MegasasState *s, MegasasCmd *cmd) { struct mfi_ctrl_props info; size_t dcmd_size = sizeof(info); + dma_addr_t residual; memset(&info, 0x0, dcmd_size); if (cmd->iov_size < dcmd_size) { @@ -1440,7 +1463,9 @@ static int megasas_dcmd_get_properties(MegasasState *s, MegasasCmd *cmd) info.ecc_bucket_leak_rate = cpu_to_le16(1440); info.expose_encl_devices = 1; - cmd->iov_size -= dma_buf_read(&info, dcmd_size, &cmd->qsg, MEMTXATTRS_UNSPECIFIED); + dma_buf_read(&info, dcmd_size, &residual, &cmd->qsg, + MEMTXATTRS_UNSPECIFIED); + cmd->iov_size -= residual; return MFI_STAT_OK; } @@ -1485,7 +1510,7 @@ static int megasas_dcmd_set_properties(MegasasState *s, MegasasCmd *cmd) dcmd_size); return MFI_STAT_INVALID_PARAMETER; } - dma_buf_write(&info, dcmd_size, &cmd->qsg, MEMTXATTRS_UNSPECIFIED); + dma_buf_write(&info, dcmd_size, NULL, &cmd->qsg, MEMTXATTRS_UNSPECIFIED); trace_megasas_dcmd_unsupported(cmd->index, cmd->iov_size); return MFI_STAT_OK; } diff --git a/hw/scsi/scsi-bus.c b/hw/scsi/scsi-bus.c index 3466e680ac7..4057e04ce89 100644 --- a/hw/scsi/scsi-bus.c +++ b/hw/scsi/scsi-bus.c @@ -1421,9 +1421,11 @@ void scsi_req_data(SCSIRequest *req, int len) buf = scsi_req_get_buf(req); if (req->cmd.mode == SCSI_XFER_FROM_DEV) { - req->residual = dma_buf_read(buf, len, req->sg, MEMTXATTRS_UNSPECIFIED); + dma_buf_read(buf, len, &req->residual, req->sg, + MEMTXATTRS_UNSPECIFIED); } else { - req->residual = dma_buf_write(buf, len, req->sg, MEMTXATTRS_UNSPECIFIED); + dma_buf_write(buf, len, &req->residual, req->sg, + MEMTXATTRS_UNSPECIFIED); } scsi_req_continue(req); } diff --git a/softmmu/dma-helpers.c b/softmmu/dma-helpers.c index 916cf12ed42..1c6fba6a112 100644 --- a/softmmu/dma-helpers.c +++ b/softmmu/dma-helpers.c @@ -321,24 +321,16 @@ static MemTxResult dma_buf_rw(void *buf, dma_addr_t len, dma_addr_t *residual, return res; } -dma_addr_t dma_buf_read(void *ptr, dma_addr_t len, +MemTxResult dma_buf_read(void *ptr, dma_addr_t len, dma_addr_t *residual, QEMUSGList *sg, MemTxAttrs attrs) { - dma_addr_t residual; - - dma_buf_rw(ptr, len, &residual, sg, DMA_DIRECTION_FROM_DEVICE, attrs); - - return residual; + return dma_buf_rw(ptr, len, residual, sg, DMA_DIRECTION_FROM_DEVICE, attrs); } -dma_addr_t dma_buf_write(void *ptr, dma_addr_t len, +MemTxResult dma_buf_write(void *ptr, dma_addr_t len, dma_addr_t *residual, QEMUSGList *sg, MemTxAttrs attrs) { - dma_addr_t residual; - - dma_buf_rw(ptr, len, &residual, sg, DMA_DIRECTION_TO_DEVICE, attrs); - - return residual; + return dma_buf_rw(ptr, len, residual, sg, DMA_DIRECTION_TO_DEVICE, attrs); } void dma_acct_start(BlockBackend *blk, BlockAcctCookie *cookie, From patchwork Tue Jan 18 12:02:29 2022 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: 12716302 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 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 smtp.lore.kernel.org (Postfix) with ESMTPS id 63F48C433EF for ; Tue, 18 Jan 2022 12:53:20 +0000 (UTC) Received: from localhost ([::1]:58498 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1n9nzC-00013T-LM for qemu-devel@archiver.kernel.org; Tue, 18 Jan 2022 07:53:18 -0500 Received: from eggs.gnu.org ([209.51.188.92]:51748) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1n9nES-0006Cd-K3; Tue, 18 Jan 2022 07:05:03 -0500 Received: from [2a00:1450:4864:20::331] (port=53878 helo=mail-wm1-x331.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1n9nEN-0005uN-CE; Tue, 18 Jan 2022 07:04:57 -0500 Received: by mail-wm1-x331.google.com with SMTP id n8so424925wmk.3; Tue, 18 Jan 2022 04:04:03 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=irXA5UGU6jp/uyMnLyEWDdOrhtz9iUme+ohFp2+tm1Y=; b=S6okk6sEbIcGREeOVGfH8LpbHzlkG5kRix0qSC4aG+ltLqKQKFFKeDD60HXsqFBd7C JXYeLbe9YLFEdc2iXFkApW/TB55XSW29macrR57La9t8XdphbtqDAAtBvjg5uuq39aNW JlKl6eUhKFSGNtiIF4VsqJgbLPNLkKyCLYHspFm9cpV4KG/p8uNMpB8XgkZcHsjbNUhH Kg6sDOlOD5hVYTVVEguOMolFPZUY1zqk543AeeBn5J1SOiQRx9ZOPp/UTSXTdbrz4TdJ DMcqMSn1mWvEBdr/SwpFzamfekURCKNEBP7UWgrW1pODGe5ZD5pgDUAPcAxc/mpTE8mh nJ4w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=irXA5UGU6jp/uyMnLyEWDdOrhtz9iUme+ohFp2+tm1Y=; b=L0e7sqXzctO8LylmO4lsj2Jrcn68yOnOvA+a/sXjBLZGxnb8T2SDMiiBwWmGqJmwJG ZktBvti3qVordh+50HbqUkRoeKKNkaZyD7QtU8Sn0U8MEWW4ZJC2pXteUM55YMkLQTH8 dKSpDJL1HudVKjONYUJb16xE5eA3sgi+IEEw0Ej4ZTd71MHyE2ZYrPcTpRxW3MQXYPkN Ao6zONtTSbrexrQWnfC27jWxC4deeuWa3xWTWQu+syZKvQniIrZJ+h8i4Hmhly4Ad4Ak 2Q5ok8J5wMP44I1JRr6js7GNo2+StRrPpUK0D5GtnPDpoIeM2YXNYhDyFOZ2sVVh8DMK uZAQ== X-Gm-Message-State: AOAM5304W+cvNva/MGE4HJUAf9FXEMs5MxAOyt6MYbM/B8tx0Wbxu41e xGWtDyYkJU6tX9yPwYB1U5L8frdC2O8= X-Google-Smtp-Source: ABdhPJziyvXZ0wZ9gMs8ctRzfPJyzOGkZfTEPckmVrYiiulj0cTIo+ZLoruxdZ3mgTuTmI4teQ+A6A== X-Received: by 2002:a05:6000:144c:: with SMTP id v12mr24125044wrx.218.1642507442869; Tue, 18 Jan 2022 04:04:02 -0800 (PST) Received: from nuc.. (154.red-83-50-83.dynamicip.rima-tde.net. [83.50.83.154]) by smtp.gmail.com with ESMTPSA id x24sm1728901wmi.17.2022.01.18.04.04.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 18 Jan 2022 04:04:02 -0800 (PST) To: qemu-devel@nongnu.org Cc: Peter Xu , David Hildenbrand , Paolo Bonzini , qemu-block@nongnu.org, =?utf-8?q?Alex_?= =?utf-8?q?Benn=C3=A9e?= , =?utf-8?q?Philippe_Mathie?= =?utf-8?q?u-Daud=C3=A9?= Subject: [PULL 19/19] docs/devel: add some clarifying text for aliases Date: Tue, 18 Jan 2022 13:02:29 +0100 Message-Id: <20220118120229.196337-20-f4bug@amsat.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220118120229.196337-1-f4bug@amsat.org> References: <20220118120229.196337-1-f4bug@amsat.org> MIME-Version: 1.0 X-Host-Lookup-Failed: Reverse DNS lookup failed for 2a00:1450:4864:20::331 (failed) Received-SPF: pass client-ip=2a00:1450:4864:20::331; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-wm1-x331.google.com X-Spam_score_int: -6 X-Spam_score: -0.7 X-Spam_bar: / X-Spam_report: (-0.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.248, PDS_HP_HELO_NORDNS=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RDNS_NONE=0.793, SPF_HELO_NONE=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: 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" Reply-to: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= X-Patchwork-Original-From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= via From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= From: Alex Bennée We do mention the limitation of single parenthood for memory_region_add_subregion but lets also make it clear how aliases help solve that conundrum. Signed-off-by: Alex Bennée Reviewed-by: Philippe Mathieu-Daudé Message-Id: <20220110175104.2908956-7-alex.bennee@linaro.org> Signed-off-by: Philippe Mathieu-Daudé --- docs/devel/memory.rst | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/docs/devel/memory.rst b/docs/devel/memory.rst index 5dc8a126829..69c5e3f914a 100644 --- a/docs/devel/memory.rst +++ b/docs/devel/memory.rst @@ -67,11 +67,15 @@ MemoryRegion): You initialize a pure container with memory_region_init(). -- alias: a subsection of another region. Aliases allow a region to be - split apart into discontiguous regions. Examples of uses are memory banks - used when the guest address space is smaller than the amount of RAM - addressed, or a memory controller that splits main memory to expose a "PCI - hole". Aliases may point to any type of region, including other aliases, +- alias: a subsection of another region. Aliases allow a region to be + split apart into discontiguous regions. Examples of uses are memory + banks used when the guest address space is smaller than the amount + of RAM addressed, or a memory controller that splits main memory to + expose a "PCI hole". You can also create aliases to avoid trying to + add the original region to multiple parents via + `memory_region_add_subregion`. + + Aliases may point to any type of region, including other aliases, but an alias may not point back to itself, directly or indirectly. You initialize these with memory_region_init_alias().