From patchwork Wed Jun 12 21:29:38 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Stefano Stabellini X-Patchwork-Id: 1947130 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=amd.com header.i=@amd.com header.a=rsa-sha256 header.s=selector1 header.b=pNdYgATe; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=patchwork.ozlabs.org) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4VzzHS2G3Xz20Pb for ; Thu, 13 Jun 2024 07:31:00 +1000 (AEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1sHVXv-0001aY-BW; Wed, 12 Jun 2024 17:30:19 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1sHVXr-0001Tv-RM for qemu-devel@nongnu.org; Wed, 12 Jun 2024 17:30:17 -0400 Received: from mail-bn8nam12on20621.outbound.protection.outlook.com ([2a01:111:f403:2418::621] helo=NAM12-BN8-obe.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1sHVXp-0002oN-3Q for qemu-devel@nongnu.org; Wed, 12 Jun 2024 17:30:15 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=X5JVm2Q4fbxL61dIGUq0HECnSoZEdAc/dt+zPqPgWWjrHjUeDHfT5jaik0xHslOPF5er5uoScMG7r2d1bEdUH5z6xJsk89KOYwz7gZlMGVWlsDyAR4VYUqpZHrhuzxZ9JDaHL7ngkeOKWgnoFup1O4EXOANb7+/q0xjcMyANtoXL0f91qP6UtmyCrqsz3LOfcpYnPcjLSaG0VFFzt3/23IS0zm59/Y7MOO4cWfPpaq/g4OZ5XuGy51ZUlaePhX35JBOH4GIWdFRlWy9c8QrHvCi8kOf4EvSpwBke9q7H0wvV816GYHz3ACj8xR707JJfVMRf214K55jNV1BlMXM7qA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=2mJ+jql/EDqUybJTnjb/85JYlMFA6jZ7hOjOjsOzvs8=; b=Sscn61tOa1TTOltVUnQxFjdcwo7s8q6kZLbdqmXTeaoarqL6OHxt/5LpbIfvjMKyv5/8RqtCC9IrJJOW9z0jvFa63t4vNFv6f6PpWb6RvA8U4/Hv8nvXbWi7aK9ZxO4qL19FRWPhLtfkFtpGEknZxyL4Ts1SPce4FPQ/1mRl0pqTTYIRAYS69nlMykkJayNDbr+hsVZvk0r1XzvqlMT10WbSofeYbqq7oaHBXA8dD04UbNs96CS2ZM8AeEtIhZQ/NK170vu70uBL3Q9MkDFfgsnqrnJtsB6Z7mlLYykMIBTqE7SHBUy4qYbmGY7fmfQxu58qzEShnj10wzTdkF9n4A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=nongnu.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=2mJ+jql/EDqUybJTnjb/85JYlMFA6jZ7hOjOjsOzvs8=; b=pNdYgATeHKFi1Yp8QqDLXMoq11IB1seHvah7purc7hUJW0N6VY+AMv06bSGY6UtpXGwxUfhUJXLdfVnjTfzqXkQHdj2sZNAmW1AU66j0lYYBjl4TTBX21jW44bFMIGTsgOFOb6BMZu2u4bKKYm9WRZ5zh+NyKghD8A5QsYXpW8E= Received: from DM6PR21CA0014.namprd21.prod.outlook.com (2603:10b6:5:174::24) by CH3PR12MB7499.namprd12.prod.outlook.com (2603:10b6:610:142::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7677.20; Wed, 12 Jun 2024 21:30:01 +0000 Received: from DS1PEPF00017095.namprd03.prod.outlook.com (2603:10b6:5:174:cafe::41) by DM6PR21CA0014.outlook.office365.com (2603:10b6:5:174::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7677.17 via Frontend Transport; Wed, 12 Jun 2024 21:30:01 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by DS1PEPF00017095.mail.protection.outlook.com (10.167.17.138) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.7677.15 via Frontend Transport; Wed, 12 Jun 2024 21:30:01 +0000 Received: from SATLEXMB04.amd.com (10.181.40.145) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Wed, 12 Jun 2024 16:29:59 -0500 Received: from smtp.xilinx.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.39 via Frontend Transport; Wed, 12 Jun 2024 16:29:53 -0500 From: Stefano Stabellini To: CC: , , , , "Edgar E. Iglesias" , David Hildenbrand , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= Subject: [PULL 3/5] xen: mapcache: Pass the ram_addr offset to xen_map_cache() Date: Wed, 12 Jun 2024 16:29:38 -0500 Message-ID: <20240612212940.2178248-3-stefano.stabellini@amd.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: References: MIME-Version: 1.0 Received-SPF: None (SATLEXMB04.amd.com: stefano.stabellini@amd.com does not designate permitted sender hosts) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS1PEPF00017095:EE_|CH3PR12MB7499:EE_ X-MS-Office365-Filtering-Correlation-Id: 945c847c-f031-464d-f621-08dc8b26d143 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230034|376008|1800799018|82310400020|36860700007; X-Microsoft-Antispam-Message-Info: =?utf-8?q?oIXJ0vTuz7LDgq0p5YPuxoPGTQQBPWM?= =?utf-8?q?7AyPrpq8EHadLa1L57cw1axN4Wvm2Fg6SZnyd7hVJmTGZFgcERoynV85F3XluUy8i?= =?utf-8?q?zPakWVSOtyb1vDCjuHDUs71bA7SS4Nr3whgTaCfqeaLONSD93Tt1SmvPYAlyh7xEV?= =?utf-8?q?6V8ypii40a5MmF8XC4580gssJjyceNolPBqrdagGE3ETEelE2HDxVCC7JxURjsLhv?= =?utf-8?q?cuYlwcDKnXA7h694g7SkPIoOx/BVxs6FneYFikM1ty1MhAfK0TU0WBlk+p4tHZF8y?= =?utf-8?q?ywdC/3o73Z5nSQrcptuE5/4SHyqno8SEeGRFwzeyQAtXf/n3K+hmTkz4yAq0nB137?= =?utf-8?q?STto9XYpEixe+GwknIh3YXt8UCdrXkdC4dMDXK3n7u8mTQCZm8n6y0dYGAsG5ooQL?= =?utf-8?q?JHLY7Q0RwN+6v1AuINgNAv1ARmaxIsI4Jyey1XK0NZg8ZZ1wodNAktY9NnFhaJHlF?= =?utf-8?q?6C8Gdy+BHEQfDYDaie5D8mwqbKMzURln9oJT2+MOT4WhVlko+nliQ+8U7VPPILRKh?= =?utf-8?q?8Pde7ShKrgVi5bo3VT9LQKucqLNBdkIgk6gPycMTkEHXm3G326AykEmaBXFAywPIW?= =?utf-8?q?JzryzcdhQPp6hq6h0E9Eyu1CNDhfKc9e7HxldSB+8uxtPDYFHnC9rbMoPiBZOnd50?= =?utf-8?q?ti/UwBwY07BLoLZC9mRx3J6vXTXOZ/gX1uNeNdL/oDlTb4h6buGgkt1+tNtR2iU0S?= =?utf-8?q?9sFBm6K7Y8361SEqBerTy9I/Wg480D/70sA63JEwDwvNlGFS1h+jgL52YDu2icEl9?= =?utf-8?q?PJ7x0E62Jve0Ax3vF+buMaQkCaMDMA++j3mDfhrbW/QpyF9g7s7WXuD4x5CMAD0XL?= =?utf-8?q?bYnfLQ9XsCFgmZc/LzlZHWOO3lxEDWwF2swCDwaftENwrTaYNRHPrYxuB61g4J1R/?= =?utf-8?q?Q6KHDrIk2rkTxlj969ZbqBqt5nM6z8T6EPWMykw+s577FKvdwxCv5yP5A1PxCYa71?= =?utf-8?q?ci1ehQhKyYSKrIQeJbV2um44REQ7DToEZ8VWbttJR2c6yd+kAAFomZq63Fv+YkehJ?= =?utf-8?q?YumFAxJtHz6u7WzzpeMap0Ns+Z9vNQln86AGpBxe9KSFIrwMtGvKq618aNYXDI77j?= =?utf-8?q?SpFr1yPZSLh9jF/bhv/C5bvCUfQxHUEnjo93UCTgo7idCEzILe7WX3FvHc0+YQSWF?= =?utf-8?q?Id27QDrhhC9M1i3F5oOd6gelEUrxI7GE56+2DUwUz1QJTqCcw6x6W5pTBSKeETkCu?= =?utf-8?q?aegxO0OJ+k5qvgBPlI36++lXBcgIxf9r02tEm98bNStz4sbFn52q+ivGgRpO1f4fd?= =?utf-8?q?GkkTZEgHPNE9TKHDcJampXtw9aDeENk/XTYn0pPB10icoKVioSb8tPlZN8jNuYJkJ?= =?utf-8?q?HcN5ZlseiUwvkxNVFyTQqt5tjVLMHFbVZA=3D=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17; CTRY:US; LANG:en; SCL:1; SRV:; IPV:CAL; SFV:NSPM; H:SATLEXMB04.amd.com; PTR:InfoDomainNonexistent; CAT:NONE; SFS:(13230034)(376008)(1800799018)(82310400020)(36860700007); DIR:OUT; SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Jun 2024 21:30:01.2709 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 945c847c-f031-464d-f621-08dc8b26d143 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d; Ip=[165.204.84.17]; Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: DS1PEPF00017095.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB7499 Received-SPF: permerror client-ip=2a01:111:f403:2418::621; envelope-from=stefano.stabellini@amd.com; helo=NAM12-BN8-obe.outbound.protection.outlook.com X-Spam_score_int: -22 X-Spam_score: -2.3 X-Spam_bar: -- X-Spam_report: (-2.3 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.143, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham 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+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org From: "Edgar E. Iglesias" Pass the ram_addr offset to xen_map_cache. This is in preparation for adding grant mappings that need to compute the address within the RAMBlock. No functional changes. Signed-off-by: Edgar E. Iglesias Reviewed-by: David Hildenbrand Reviewed-by: Stefano Stabellini Reviewed-by: Philippe Mathieu-Daudé --- hw/xen/xen-mapcache.c | 16 +++++++++++----- include/sysemu/xen-mapcache.h | 2 ++ system/physmem.c | 9 +++++---- 3 files changed, 18 insertions(+), 9 deletions(-) diff --git a/hw/xen/xen-mapcache.c b/hw/xen/xen-mapcache.c index ec95445696..a07c47b0b1 100644 --- a/hw/xen/xen-mapcache.c +++ b/hw/xen/xen-mapcache.c @@ -167,7 +167,8 @@ static void xen_remap_bucket(MapCache *mc, void *vaddr, hwaddr size, hwaddr address_index, - bool dummy) + bool dummy, + ram_addr_t ram_offset) { uint8_t *vaddr_base; xen_pfn_t *pfns; @@ -266,6 +267,7 @@ static void xen_remap_bucket(MapCache *mc, static uint8_t *xen_map_cache_unlocked(MapCache *mc, hwaddr phys_addr, hwaddr size, + ram_addr_t ram_offset, uint8_t lock, bool dma, bool is_write) { MapCacheEntry *entry, *pentry = NULL, @@ -337,14 +339,16 @@ tryagain: if (!entry) { entry = g_new0(MapCacheEntry, 1); pentry->next = entry; - xen_remap_bucket(mc, entry, NULL, cache_size, address_index, dummy); + xen_remap_bucket(mc, entry, NULL, cache_size, address_index, dummy, + ram_offset); } else if (!entry->lock) { if (!entry->vaddr_base || entry->paddr_index != address_index || entry->size != cache_size || !test_bits(address_offset >> XC_PAGE_SHIFT, test_bit_size >> XC_PAGE_SHIFT, entry->valid_mapping)) { - xen_remap_bucket(mc, entry, NULL, cache_size, address_index, dummy); + xen_remap_bucket(mc, entry, NULL, cache_size, address_index, dummy, + ram_offset); } } @@ -391,13 +395,15 @@ tryagain: uint8_t *xen_map_cache(MemoryRegion *mr, hwaddr phys_addr, hwaddr size, + ram_addr_t ram_addr_offset, uint8_t lock, bool dma, bool is_write) { uint8_t *p; mapcache_lock(mapcache); - p = xen_map_cache_unlocked(mapcache, phys_addr, size, lock, dma, is_write); + p = xen_map_cache_unlocked(mapcache, phys_addr, size, ram_addr_offset, + lock, dma, is_write); mapcache_unlock(mapcache); return p; } @@ -632,7 +638,7 @@ static uint8_t *xen_replace_cache_entry_unlocked(MapCache *mc, trace_xen_replace_cache_entry_dummy(old_phys_addr, new_phys_addr); xen_remap_bucket(mc, entry, entry->vaddr_base, - cache_size, address_index, false); + cache_size, address_index, false, old_phys_addr); if (!test_bits(address_offset >> XC_PAGE_SHIFT, test_bit_size >> XC_PAGE_SHIFT, entry->valid_mapping)) { diff --git a/include/sysemu/xen-mapcache.h b/include/sysemu/xen-mapcache.h index 1ec9e66752..b5e3ea1bc0 100644 --- a/include/sysemu/xen-mapcache.h +++ b/include/sysemu/xen-mapcache.h @@ -19,6 +19,7 @@ typedef hwaddr (*phys_offset_to_gaddr_t)(hwaddr phys_offset, void xen_map_cache_init(phys_offset_to_gaddr_t f, void *opaque); uint8_t *xen_map_cache(MemoryRegion *mr, hwaddr phys_addr, hwaddr size, + ram_addr_t ram_addr_offset, uint8_t lock, bool dma, bool is_write); ram_addr_t xen_ram_addr_from_mapcache(void *ptr); @@ -37,6 +38,7 @@ static inline void xen_map_cache_init(phys_offset_to_gaddr_t f, static inline uint8_t *xen_map_cache(MemoryRegion *mr, hwaddr phys_addr, hwaddr size, + ram_addr_t ram_addr_offset, uint8_t lock, bool dma, bool is_write) diff --git a/system/physmem.c b/system/physmem.c index b7847db1a2..33d09f7571 100644 --- a/system/physmem.c +++ b/system/physmem.c @@ -2231,13 +2231,14 @@ static void *qemu_ram_ptr_length(RAMBlock *block, ram_addr_t addr, */ if (xen_mr_is_memory(block->mr)) { return xen_map_cache(block->mr, block->offset + addr, - len, lock, lock, - is_write); + len, block->offset, + lock, lock, is_write); } block->host = xen_map_cache(block->mr, block->offset, - block->max_length, 1, - lock, is_write); + block->max_length, + block->offset, + 1, lock, is_write); } return ramblock_ptr(block, addr);