From patchwork Wed Mar 7 16:50:13 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Brijesh Singh X-Patchwork-Id: 10264437 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 657EF6055D for ; Wed, 7 Mar 2018 16:52:41 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 53C1929640 for ; Wed, 7 Mar 2018 16:52:41 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 486292964D; Wed, 7 Mar 2018 16:52:41 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.8 required=2.0 tests=BAD_ENC_HEADER,BAYES_00, DKIM_SIGNED,RCVD_IN_DNSWL_HI,T_DKIM_INVALID autolearn=unavailable version=3.3.1 Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 144D929640 for ; Wed, 7 Mar 2018 16:52:40 +0000 (UTC) Received: from localhost ([::1]:34343 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1etcIx-0005y8-An for patchwork-qemu-devel@patchwork.kernel.org; Wed, 07 Mar 2018 11:52:39 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:50191) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1etcHX-0004aW-4U for qemu-devel@nongnu.org; Wed, 07 Mar 2018 11:51:12 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1etcHT-0008As-5X for qemu-devel@nongnu.org; Wed, 07 Mar 2018 11:51:11 -0500 Received: from mail-bl2nam02on0072.outbound.protection.outlook.com ([104.47.38.72]:22016 helo=NAM02-BL2-obe.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1etcHS-0008AZ-Vm for qemu-devel@nongnu.org; Wed, 07 Mar 2018 11:51:07 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amdcloud.onmicrosoft.com; s=selector1-amd-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=r6GQfGuGm+wLvKUu8RfgirHG417qT/+/YW4V3jFCKtY=; b=vmsBMR/vhPPNzfaxD+rlHYaoYxkp6Y9GLFwIo1o5oaWmpfF1Lga+hPdjs7AuMSGk96Ad1HDLMXyJX3Iqw/9HCJnptjvtECbp672TaZbHXpAVeYqBFAkvsjtjpOS+GcRSR7hDZGZlLHtV1Oe4YwJoDbE5dLZLM7ErG0jkDNVwIbs= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=brijesh.singh@amd.com; Received: from wsp141597wss.amd.com (165.204.78.1) by SN1PR12MB0158.namprd12.prod.outlook.com (2a01:111:e400:5144::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.548.13; Wed, 7 Mar 2018 16:51:02 +0000 From: Brijesh Singh To: qemu-devel@nongnu.org Date: Wed, 7 Mar 2018 10:50:13 -0600 Message-Id: <20180307165038.88640-4-brijesh.singh@amd.com> X-Mailer: git-send-email 2.14.3 In-Reply-To: <20180307165038.88640-1-brijesh.singh@amd.com> References: <20180307165038.88640-1-brijesh.singh@amd.com> MIME-Version: 1.0 X-Originating-IP: [165.204.78.1] X-ClientProxiedBy: SN4PR0501CA0095.namprd05.prod.outlook.com (2603:10b6:803:22::33) To SN1PR12MB0158.namprd12.prod.outlook.com (2a01:111:e400:5144::17) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 3d699d8f-161c-4fc0-2200-08d5844b9d12 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(48565401081)(5600026)(4604075)(4534165)(4627221)(201703031133081)(201702281549075)(2017052603328)(7153060)(7193020); SRVR:SN1PR12MB0158; X-Microsoft-Exchange-Diagnostics: 1; SN1PR12MB0158; 3:JNFRwHQDYqFHwK4XPNRdapvW3aXgwKqy1R16RMY8LgTLGBP423F2gPrALywD5oLegTG7QtcRMo72VPrfGg+ZeKQuuBQAhg5/LjZFKUdns2c7tkWccodD8YpMYQUaiHEA4BqE4MAqaBSH4lorntgAO5TNpJmA1Oc3KGHhJciGWhrnPg2at/t6oKOAQugYmDVgxEP/Q2gQdDMIxjcwNhcKsTNWy00hYzw678mKQLYULJZAEbw5MVVgXgafXFx6WYKO; 25:GThw3OLTeP8wvQSNeTl5sM4csy2QQ0yupWcNPySjAlh93qmFLfOSq7mh4X5M5kNBjZEKFkHca8JbxoPykT8Yp7M1HZaLgjPnddu/VKVuqdTfv/ArfwaLqipAJFInEdtmbFH0WWIt20C3jcxGyeb2pLQYrMiv0h7o5eH7etopbDUfRs5YdZixS1DjMyYlT96UckuG4SBH8gftxH6rlLztkTIcg9anS5uiaWyetN27sXK1YVvl1cdiQqCzvv8hvZD+Rz9AnkqXQmnctbLd0SOZIIsSxBn2QI91DynhnsXeluJ/Kfr9FhzNrY07X/BDDo22x5WGITfameL22CHGEIwALQ==; 31:HUpJBig6Jx8sQEYVtqXaEPO82RjatVF7A+w9/4DSskfVpzZoEsAisZ5Mckp7GHhWhCaUyCNMXk5SsDVRFkYbNN2kTh+QuSy5e6OJPZkQSsEW7dmNa84rbBGcl8greVTP/YWtulKgrzpVgnBUMj+ZTvNEr5cl56T/ZpvSlhqHqMXI40fA+ynSBLCB9MQxedrZINysICiIjR7bf3mdpgZ5aMJrYiFxcm+imZ4WlOLLKP8= X-MS-TrafficTypeDiagnostic: SN1PR12MB0158: X-Microsoft-Exchange-Diagnostics: 1; SN1PR12MB0158; 20:dMxfK3wOhFbslNQtRtdsLGrAtkzJ3McmCFmGCgShZ6hiYo3IGCnNqNC9lUgbdX54nYdwU7PfvorMnjT5UZoJb6ssVgLZ69LPvWQscF6QlcripPO6N4ZVdAEcPD5W/drRTgLw+QSAeCu3aFHIPfT8TzeTIhQO6Cq0hlIt7RHYqWPoNq1CRYJLFl5kZgvMXpaH6XOYRP3/cHBV+sxnCp6/LOU9fKb5nrSAuBi8Cw2CY9j8jnZT2Nfyu9zitP62AknJtJE74Bzos7vgKqTXuGL6bMX5cUBsFUHBQbYewTXdm5OTJVQYiSFGLC3JbB83nrWaZ+zUrZ46rOqgFgHEOAxABE/spZEhfpr9bFMI7JXjlUyi0CX1OeMzf0ZN4PoEv8xcchiFQfjlejDzoLukOqv6r4lnMGCS8MVWi+eg/wgmmqzOFQ3Cq1LYwatM+gtJypWymuBrd18jWkJ/ufEoIftLQs+edD3Zz1j09wCt/WVdmUKB/0LQV2LGrexQ9YfOc8XF; 4:5bnrlrUTtkIOY0eGcS+Jy8fpcglquLB+2LWKeiY3zkjrB+zYwx+smVYNY3hG8sRtYXyFL6iSxNRiIKwLlcwdgFo9yL5eWSZ9kkkUWBnSKKPMl9anLAbWKdeVhYCG6VIBB2WIv3AMsou71oomOvM5wbpGWqbXCpUBsTPoc9OzQ23nP/qikcm8uo8Fl/Oju9JDu8hRIaJ5/ewGPDX4mZ52xSSoLNzBGmxVhQKAHby2okHKed11tKQmOOjlVp2A9gVdeVTrG4RVzjpfDJJSCxnpkdCj+KI45+wU3LMUUR3IkOrNmoysdopZpDP3s4wb+4zkuzr7oPBLi/feM5+DNdJWCw== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(85827821059158)(767451399110); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040501)(2401047)(5005006)(8121501046)(93006095)(93001095)(10201501046)(3231220)(944501244)(52105095)(3002001)(6055026)(6041288)(20161123562045)(20161123564045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123558120)(20161123560045)(6072148)(201708071742011); SRVR:SN1PR12MB0158; BCL:0; PCL:0; RULEID:; SRVR:SN1PR12MB0158; X-Forefront-PRVS: 0604AFA86B X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(39380400002)(39860400002)(376002)(346002)(396003)(366004)(189003)(199004)(53936002)(8666007)(2950100002)(6486002)(6666003)(6916009)(53416004)(3846002)(1076002)(6116002)(4326008)(54906003)(8656006)(2906002)(25786009)(59450400001)(386003)(68736007)(478600001)(48376002)(50466002)(105586002)(2361001)(2351001)(86362001)(66066001)(106356001)(47776003)(186003)(16526019)(51416003)(76176011)(52116002)(7696005)(26005)(16586007)(316002)(50226002)(8936002)(8676002)(81156014)(81166006)(36756003)(7416002)(97736004)(305945005)(7736002)(39060400002)(5660300001); DIR:OUT; SFP:1101; SCL:1; SRVR:SN1PR12MB0158; H:wsp141597wss.amd.com; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; Received-SPF: None (protection.outlook.com: amd.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; SN1PR12MB0158; 23:13efuyJzpTg3tp3epKdBQTygeDOLP+jpBamVG+i7T?= =?us-ascii?Q?RspfWztTvHwaQ81MJpYVZB4WbDnXtDiWbFzhzQTZmpcCqQxKYWWZumEWGbna?= =?us-ascii?Q?G6vUaN+tDXW7k+jeequYq2oJJ7GP3I85+IfL0ZJpUA4bChmvAIGmILqofsTI?= =?us-ascii?Q?8l9+FwULKXPQeltWRvOKST3PjywjhFZDVqkHMxoV1Tg3dDNiDgLwF8jsfNfJ?= =?us-ascii?Q?BOWctYjy/nQUNCzjgQPeynH3PayxHdPqbAunYRdlqy7bY0tfXSOQXICXJAKm?= =?us-ascii?Q?8HYHSYrZTCNfxuwONr5lR52hiwZyu2IT/1LBbLMVppsfW6PyTSiPVRo8gjNK?= =?us-ascii?Q?WJntrfyZqywZqNO9ujUWmT1+N2IxgEULZGy/y2qRRYnlXNruZOvv/7D3qmw9?= =?us-ascii?Q?a8WuhzkmL380zXo6toisyEMBTTopKHf/X01UpYsKfj95Td24kwAV/nfvBXWf?= =?us-ascii?Q?G34OYDRvngME1Azpswzd9NdYctTWvG80tINpIaGSiopLomc9FBVJ17YEBWj7?= =?us-ascii?Q?aAXF0hb3SoVomiKvMoRhllTVznY7weifrwtUUv4/2Irf/ssJ8Ns+YXAtRqI4?= =?us-ascii?Q?IX1KHgF4lya8TraGNrZaHhDT8iomnhqkXnOvznDgXrQxjoCIuRt60eqWqsgi?= =?us-ascii?Q?ee69Hf7CkDWjc49boSIxMd7+pt8D7qZFYYqY6ePcEXG3gWItGrKJLQWIQ39U?= =?us-ascii?Q?gUA9NwqVmER1x6uTlIx669BI95nEWLIAozglLOIysq6t1B+asHxblBPhsZly?= =?us-ascii?Q?OseVTJjAlW7vac1Mdd9Jru7s4C2D4rKx34Tnj2G3Dd0mTLOgMYz5gVqIdqEZ?= =?us-ascii?Q?lX3fp9QhJIX+4YYedi6d7cdj3r8RIbNVuSglnuFvqF/FI/JS0AX9ZEfBEDcB?= =?us-ascii?Q?YVNgdcF+qZJ2RSIWg1hIRbIcsGipzPiZMMrQpL+NjuTdXU0HOnskxTcJiS2G?= =?us-ascii?Q?HuuIOmapkASZe5gyTLcYbD4ERp3ZXO+LW4shao6Z9l1JJmlkADccEBLC62TT?= =?us-ascii?Q?ekpHUi0YlM8Bmklti1LSfDQhJeRLg8ZpgIbqQKfEiBHzbIeEVmh2hKU7tqfX?= =?us-ascii?Q?CdFWjR6dFtmMJA5Dd3tu7Mbd9dR/2tFq9f0nMiP6lFFjPG9/2EPp9wVskK3x?= =?us-ascii?Q?wBw/h6Idu2XRi3Z05RruaZRMdzbjntTRxVcwML5SQ8evnyzyjBTVsIiwySYn?= =?us-ascii?Q?n1ws3+oraC7CisR/oSrNCcffHWi1uAdR/VTndfbj/V83hjvwp92Oa8UALSQZ?= =?us-ascii?Q?IKq0cr+7Ug/xbDcyzAvVGNhHSYNJvW7qXhSqaPFBGBx70xig6Xfbe/AayB+3?= =?us-ascii?B?UT09?= X-Microsoft-Antispam-Message-Info: edc43lFvfbuF9yhFz6O0XJB3jCDozkXNROhAc9MH6L0oozP9uHFFdBi5SnpJynZZgFFT85KDM8h8dlhFIhQwdX11OlCQtfXnPIEtONqqlX/C+8GJ41cWFa+e+OOidFQRGDFZs8ANmT/iUS7uRiUHnRtHatzacoa5nRFen7glVD2AfiJOzvVfBduztT+7fgB1 X-Microsoft-Exchange-Diagnostics: 1; SN1PR12MB0158; 6:E9RMlmqrTnjtdwr5jY66oXBbe+oTY8yPnf0jMrx66Gt+l56wRPyqP64ihDeLKaWH3M0Wdue8n6DcIQ3t46WixGLUBb1QJSen0t0X4klLVf+3nzmF2WNHomVzF9REuQc4QDQinppOgrSWTnaOHMJY6d09uklfm5+ukdEj3MBGcgPXy6kO/NghZd4N9fROk5/Ia1eB1uFxoa1S9/be5fX0Thrmil0AU0bt2oFAwqnDADBhKIe6ThP1yylvmVJbzn3ivtwxtwTATYsQ6ltoceYp4Bciz4BFs7wGvwfrHs/u06N0hYOwDhj1aDCKS/4Q+RHygbPYgzmkSLLSFOhIk5iwt2QoWMBp4VG4tZJQPMS9k9Q=; 5:oljFRGCd13koB3BwS1tHdPUrlXIUujPoUWThaG9PsaHukdy1wMQsCJ/BTm94MV6+tzsZXkaop/5N+K/3RrBFl5cbm+G4Ufb5zDRo6K1hquJ6pUSS1yNnRlGoWJZU0tHsavF2gKH8UTkvLJ4DQHvQD9Blqv8dIlmnn57Da9jZLhY=; 24:WKX6mOOCAEC5bqjAmat5vTvedYnoeHxSq0sSGvl/8LVCVvPK4EBxZMap4p53Y+yNxqxtpJ9cBDW7XkhnaaoGsIPvjTHaZU2hyE6h56kbheI=; 7:hqDBbfJD1Y9dyYBbUiQuVcaoX9NEFGKHZfk2REL+mWwCmjsHbNZCOb78Yy90tH+43QZxbPUfmcUOuAbO6h7dZYJPYosPL15F9IA3GKwkeSYACAkufom0jsiynHEkpFaW2QzK5OAH+tybVv1HOUKiExPFATyPB2seTal6AYkKBMtjbTtJJEcU0nTl2D3FC9oqhghPt53PRorD7XxLZfyMXnScv0NxmbzM/xAz+JzSpkoWYNQc40MpPQE3yMm2Maim SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; SN1PR12MB0158; 20:3Pp+uQ4f/iXSXyZt4+9675mXIVBbBzzDRtt5Kim2p8csIpgcCZebQdpXj4vMRNAkIpllV/6ykd2fA3TqmGWGE5ebZRks43//KrzSaMzJpprbCc12NkB7mKghyc5ucYLPGcJhsDTUwhlyTxEPUFEX/K2R0fnV216bCl4HyqvCnD0s9gu69zL9Wcx958DOyY7UhWR4Iag1bV/Q1Kp2qE2P388WPoVk5hRMByavael+FMo0PXBQM41KOW+ps5h2vtrc X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Mar 2018 16:51:02.9793 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 3d699d8f-161c-4fc0-2200-08d5844b9d12 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN1PR12MB0158 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 104.47.38.72 Subject: [Qemu-devel] [PATCH v11 03/28] exec: add debug version of physical memory read and write API X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Peter Maydell , Brijesh Singh , kvm@vger.kernel.org, "Michael S. Tsirkin" , Stefan Hajnoczi , Alexander Graf , "Edgar E. Iglesias" , Markus Armbruster , Bruce Rogers , Christian Borntraeger , Marcel Apfelbaum , Borislav Petkov , Thomas Lendacky , Eduardo Habkost , Richard Henderson , "Dr. David Alan Gilbert" , Alistair Francis , Cornelia Huck , Richard Henderson , Peter Crosthwaite , Paolo Bonzini Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP Adds the following new APIs - cpu_physical_memory_read_debug - cpu_physical_memory_write_debug - cpu_physical_memory_rw_debug - ldl_phys_debug - ldq_phys_debug Cc: Paolo Bonzini Cc: Peter Crosthwaite Cc: Richard Henderson Signed-off-by: Brijesh Singh Reviewed-by: Paolo Bonzini --- exec.c | 40 ++++++++++++++++++++++++++++++++++++++++ include/exec/cpu-common.h | 15 +++++++++++++++ 2 files changed, 55 insertions(+) diff --git a/exec.c b/exec.c index 4408cd26c989..633be92d2b3a 100644 --- a/exec.c +++ b/exec.c @@ -3596,6 +3596,46 @@ void address_space_cache_destroy(MemoryRegionCache *cache) #define RCU_READ_UNLOCK() rcu_read_unlock() #include "memory_ldst.inc.c" +uint32_t ldl_phys_debug(CPUState *cpu, hwaddr addr) +{ + MemTxAttrs attrs; + int asidx = cpu_asidx_from_attrs(cpu, attrs); + uint32_t val; + + /* set debug attrs to indicate memory access is from the debugger */ + attrs.debug = 1; + + address_space_rw(cpu->cpu_ases[asidx].as, addr, attrs, + (void *) &val, 4, 0); + + return tswap32(val); +} + +uint64_t ldq_phys_debug(CPUState *cpu, hwaddr addr) +{ + MemTxAttrs attrs; + int asidx = cpu_asidx_from_attrs(cpu, attrs); + uint64_t val; + + /* set debug attrs to indicate memory access is from the debugger */ + attrs.debug = 1; + + address_space_rw(cpu->cpu_ases[asidx].as, addr, attrs, + (void *) &val, 8, 0); + return val; +} + +void cpu_physical_memory_rw_debug(hwaddr addr, uint8_t *buf, + int len, int is_write) +{ + MemTxAttrs attrs; + + /* set debug attrs to indicate memory access is from the debugger */ + attrs.debug = 1; + + address_space_rw(&address_space_memory, addr, attrs, buf, len, is_write); +} + /* virtual memory access for debug (includes writing to ROM) */ int cpu_memory_rw_debug(CPUState *cpu, target_ulong addr, uint8_t *buf, int len, int is_write) diff --git a/include/exec/cpu-common.h b/include/exec/cpu-common.h index 74341b19d26a..fa01385d4f1b 100644 --- a/include/exec/cpu-common.h +++ b/include/exec/cpu-common.h @@ -77,11 +77,26 @@ size_t qemu_ram_pagesize_largest(void); void cpu_physical_memory_rw(hwaddr addr, uint8_t *buf, int len, int is_write); +void cpu_physical_memory_rw_debug(hwaddr addr, uint8_t *buf, + int len, int is_write); static inline void cpu_physical_memory_read(hwaddr addr, void *buf, int len) { cpu_physical_memory_rw(addr, buf, len, 0); } +static inline void cpu_physical_memory_read_debug(hwaddr addr, + void *buf, int len) +{ + cpu_physical_memory_rw_debug(addr, buf, len, 0); +} +static inline void cpu_physical_memory_write_debug(hwaddr addr, + const void *buf, int len) +{ + cpu_physical_memory_rw_debug(addr, (void *)buf, len, 1); +} +uint32_t ldl_phys_debug(CPUState *cpu, hwaddr addr); +uint64_t ldq_phys_debug(CPUState *cpu, hwaddr addr); + static inline void cpu_physical_memory_write(hwaddr addr, const void *buf, int len) {