From patchwork Mon Feb 12 15:36:50 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Brijesh Singh X-Patchwork-Id: 10213409 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 3954560329 for ; Mon, 12 Feb 2018 15:45:49 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 29471289EF for ; Mon, 12 Feb 2018 15:45:49 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 1DA9528B0F; Mon, 12 Feb 2018 15:45:49 +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 8BEC2289EF for ; Mon, 12 Feb 2018 15:45:48 +0000 (UTC) Received: from localhost ([::1]:45594 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1elGId-0001Q8-OR for patchwork-qemu-devel@patchwork.kernel.org; Mon, 12 Feb 2018 10:45:47 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:55514) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1elGBF-0003B8-8o for qemu-devel@nongnu.org; Mon, 12 Feb 2018 10:38:14 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1elGBD-0003h3-M4 for qemu-devel@nongnu.org; Mon, 12 Feb 2018 10:38:09 -0500 Received: from mail-by2nam01on0040.outbound.protection.outlook.com ([104.47.34.40]:4832 helo=NAM01-BY2-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 1elGBD-0003cq-A4 for qemu-devel@nongnu.org; Mon, 12 Feb 2018 10:38: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=EULf6Ch5F8qkKlWhTjfSNTN7AuBbpORgQIolSQpxbAE=; b=JJkGTu67kSn+xsJPS53yBdh8hBOuY82ebevB3lboIJ+KapR4w8xap9AFQSqbo7tQm8WxhZLy91R67w6CD4jR3/t7NH8jyFI1i3X08r/SIWZPmYJTnLDGD/14hOTLNi2TURGEkOGbduIz6GHVtmy9DEKkxGmXXF87k/OJhoA44Ls= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=brijesh.singh@amd.com; Received: from wsp141597wss.amd.com (165.204.78.1) by BY2PR12MB0146.namprd12.prod.outlook.com (10.162.82.19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.485.10; Mon, 12 Feb 2018 15:38:03 +0000 From: Brijesh Singh To: qemu-devel@nongnu.org Date: Mon, 12 Feb 2018 09:36:50 -0600 Message-Id: <20180212153715.87555-4-brijesh.singh@amd.com> X-Mailer: git-send-email 2.14.3 In-Reply-To: <20180212153715.87555-1-brijesh.singh@amd.com> References: <20180212153715.87555-1-brijesh.singh@amd.com> MIME-Version: 1.0 X-Originating-IP: [165.204.78.1] X-ClientProxiedBy: SN4PR0801CA0004.namprd08.prod.outlook.com (10.161.215.142) To BY2PR12MB0146.namprd12.prod.outlook.com (10.162.82.19) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: c5a9cc56-12f3-4098-347d-08d5722e9bf3 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(48565401081)(4534165)(4627221)(201703031133081)(201702281549075)(5600026)(4604075)(2017052603307)(7153060)(7193020); SRVR:BY2PR12MB0146; X-Microsoft-Exchange-Diagnostics: 1; BY2PR12MB0146; 3:baDiE1Q7RnmnX+rv/JVeB11eqXCOposE91PG5aCV7pm1B+OFvjhPf6f+QMUhocz9aEyXMo7l0EbnWos5Fi3jWgjBKZI3OEb/+kRXB50EZwlKAE4KByfzhcVajk4cAYR4Egys/On+gNGvF8sDXsLUxUYPayJPdOphSNR0JTFx4GU1bZAfzaYimJATCyDyM6nOuYq6QqEYOrEUE1BkEUTPmUno84fQgCG60NwSCkFQXWAD9f9eP6Fhw57pjKGSjjwQ; 25:CaOCNl9blmChYojchNUdN5Re86gkAgVtlZeZK1fKQSeD49R+LXG7x/Tnjt7dTTCyktdk2V+fnJr04/4v17Dcgeyqj9Kq2cJhuUPX3BUGvZROP/f3Ii9k9pKGz1wLyfcBstj8y0z0cd2TBUF+kBQb9YPUej9jraPo1clcZ313Yz+vnEFnlNq68TfGdWlmsBjCpWc0MWTEVOM7IRe4bWJtgGEEahDHqroUzo25DvdX5FRmoWC6V9amujVs4r4dCK8zj5Z2zkdouKqzcMNO/8weHmNAc8xWlK6IRfsZ513y+K4j1PI1oNtoYC4D5hNpQxXQLgdf1d6rQxVTqEq/0rZuag==; 31:zPjbndz+KDPu6bawC638lw3llMblZl7bR26OoSSeDWn3cWXjXwwm+TSf1tQ8b5X8H/x/V3U43+zjMzWTkCkAMdzyojB+iVLkSoHW9fig+M/WT89MVBtL3jEdBqTqV9FEVYpf/YBVVPhs5oFlh0sxks3FnSooRl/KDbZSh2K+NWDU5SsBaBXvoAPZcMzFUsa7c9LhZllB3ik+F9HFU5V7KRfWk0yzmZlpgfK+X40E5As= X-MS-TrafficTypeDiagnostic: BY2PR12MB0146: X-Microsoft-Exchange-Diagnostics: 1; BY2PR12MB0146; 20:+P8AYLt3DVM7qiaTdvS6WHT6qzCnsSTrE5SXujAFf2e6qMgvB1Xme9KPNkDCIAbSG2oGnNQs/oS2Zd5B8J+kNTEMwdajYC0NW9IGHHutwszT6KpVaUByrEonnH2HOKGCzH0pgduH7jHHXHnox9J6HhgT5Y/0CXel+k6nkzTURKIW6Fb1bmKf6wiQyU0pVK/8SluANRTUI6Ove61XVr5xNWnscaAJZXNpZR5e5+HcxIetfDBoIKGZi3PYYslnmxdc1En8N2FCQmGuxqwzwYx9v0Ms3PbuJA+BkUtnNgE4ytFVGXmkUom9OCPHZ72LXm6aEPLwqPEQ8PmWBKcHdfkoVwlvMh1aLUDpA+kivMLvieBXqmlCz4jEFWGjqOMWnriYwn3KzxiljuxDDTY+RUHlzYQKSavVihBAye2GSkQBUnZYyqIFYBvOFIBPXbb7Dg207ALQUxt7mw8YMQS6tTjoqX0Og8YNa64Y/20nhZx2gtHUggh0wuitTEROluNKR4cT; 4:BETCrRqTxg17HDtfsxn+X5ZchWAEkJPsIGY6D2heihyfCY5Gq/vk6Ky/Mu02Vpzw0x1L1fiCwtqQ4Iy4CEuCDJMGb+w5h60JTZsagoKeKE/D4NcZhhQGtHInO4sK56klsU9eedgAeHXJ4KoUH9j6NQBeUIg4xskiDrIew9dU6vCfUyBb3hpf7oRb/eELUI3Nys1nDt21j5ZwfLl4KQ3/+KP02ZT8OLZzTwaDN0lMgzQqEgwA4uvLxrSNvEc80b1OJsXlOZbtAP7cdW22p/MKfgDs8SXJ8F6Xeb+XU5d9DqURtb6PNTUlOrUKQn4X404bXEmfYaJQylVMPbB00xnK+A== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(85827821059158)(767451399110); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040501)(2401047)(8121501046)(5005006)(93006095)(93001095)(10201501046)(3002001)(3231101)(2400082)(944501161)(6055026)(6041288)(20161123564045)(20161123558120)(20161123562045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123560045)(6072148)(201708071742011); SRVR:BY2PR12MB0146; BCL:0; PCL:0; RULEID:; SRVR:BY2PR12MB0146; X-Forefront-PRVS: 0581B5AB35 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(39380400002)(39860400002)(346002)(396003)(366004)(376002)(199004)(189003)(25786009)(53416004)(66066001)(8676002)(7416002)(105586002)(59450400001)(81156014)(76176011)(81166006)(5660300001)(97736004)(186003)(16526019)(8936002)(106356001)(50226002)(2361001)(6116002)(3846002)(47776003)(305945005)(1076002)(86362001)(26005)(2351001)(7736002)(478600001)(51416003)(36756003)(4326008)(2906002)(53936002)(6666003)(2950100002)(8656006)(52116002)(6486002)(48376002)(39060400002)(68736007)(54906003)(16586007)(7696005)(386003)(316002)(6916009)(50466002)(8666007); DIR:OUT; SFP:1101; SCL:1; SRVR:BY2PR12MB0146; H:wsp141597wss.amd.com; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX: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; BY2PR12MB0146; 23:6gLFVrQvYp2iXrmkQpafQy9fxY3sUcQ41Rq/BFl9T?= =?us-ascii?Q?UdezHFUArFWqabRiVEn9k1ld/P+Ru45ux7lJp2P5NlwC7n6OSxq4K8JpCPDa?= =?us-ascii?Q?N9vAeXoihGpdbhlUX5V6xbUjAmtZmGY8SME1MB+hCCZGcmWE03N+8mPFMriX?= =?us-ascii?Q?nT8szgZanGLdhRORiVtsm606FJ7iYAK2nLNdNWvKtiW94YkFgAk1t+MHOeaD?= =?us-ascii?Q?KAhXNagb9dfFwtyZYMcruhXyBfmFMcNMt/ZR7jPVqTnJLW4t8TJ/jGmPGZ0H?= =?us-ascii?Q?NYzkfqswl0ys8K1DPofPJUnBt9NT3XxmVId3LmyUDB3oFuvsz1oT5TMk6I0j?= =?us-ascii?Q?oZ9xi2XuqeM0MiBFdyS+Zq4hcn6LpnBGU85t4G4TEAUNDiUn87Hg0IZH4eMg?= =?us-ascii?Q?s5eUEM/j7fjgBUDhOENEjTtAMvU/7RCC/aNa6O75J/C3gJzlGcQTWc7SBPi2?= =?us-ascii?Q?PVAgVgw+dkNV7DOMUEaE9I8Z+jG/xStPrZ7sAaN09k70cCJRRJiZ6Ebgp/ZU?= =?us-ascii?Q?FnLPI54N44stiyS8v5XTargqYviC+aHWONfBJ6CyRSe1pIX58UDS7+mSRpeg?= =?us-ascii?Q?bw4phdoErlDU+YdTfHyEVFMRwP1f/coxSwE7elVYhz/g2F/0MQUbNc/LdPr4?= =?us-ascii?Q?ffrYEdYkRdXXvhnx8jshUxStsnxxunmaQZMNIgZxkQHibM6GaaJHtKX0RsgO?= =?us-ascii?Q?RKh9wUjcnH93pZimEQoJmF6v/k0rs4pFKCvpNNUzk/DW/IUP8xKvX/IM7l6H?= =?us-ascii?Q?HQm/0gKgFeDPpnVZ3rnIFi89JvV71B5oPwvfYKhaVWWlnf/adVtk2HKIR+mz?= =?us-ascii?Q?zsJj/88mB8z61MmN91pWTbvCv9iNG23DpiEbvODhR0mjsTiFwuXvV9kw/8Qq?= =?us-ascii?Q?L7L7LZ2wSYwFCHLA8I7vdFXTfBZ/Csf8AnLXDdk5GsENB/JNyNMYpBnIHNqD?= =?us-ascii?Q?B4Wgl6/DN0XjtfE4OsfBcnNqXFqrl/zJhbHahuc7MkH8t/j6LhJ81zCRp56c?= =?us-ascii?Q?UuPH3C34EZJLcvkk7/i29n2HNsIZt1hjNvBQMw3gKQxTFMIXp2R1543xqRE0?= =?us-ascii?Q?EjvOVfNfp/QC4r2hdK1L/zsf08T8EFQ6rGCymkhVDkmw9vVrpwxVlI2dULjw?= =?us-ascii?Q?cb0u4PPLpVl4+s14E20rTswBgWLbw3XRQwA06Cjca1seH186A6GBCHGsMUr+?= =?us-ascii?Q?5XIr95K6ZxNC1mQQP824mw5+zT/V1mvgOKYijP5mU4hMeCak+fxtCZCebBlh?= =?us-ascii?Q?q8eTqdDy3q2iu+anYoal3fYmrTsiYVWr1eJ6i/hE+Oac1CjY4V7a1BgAolQy?= =?us-ascii?B?UT09?= X-Microsoft-Exchange-Diagnostics: 1; BY2PR12MB0146; 6:CNjGmHFG/SizXnCKz2hHlybLR602FY1RJe0qbZH35R8/8Dcyj5ET8A8kp/bAGg3ORsKd+oU2JrO3WHiEqUvYtgBTgtQ2IijnSakCRFtRnorRZC7MRxvJPhYiI5sBAaSwZoAFts/JKS9iD/Z7nB1Ip/FsLSBIgK3+7iXdyVT1WxCzL5PYI/TWo8bo+uMHr8BaIKdpAorBc4W3KewESHFYxVQ31rQu8Qw/L7d6tBfBr/4qAxMjr9KKhHE7QS5vlyEd7FWNSdd3e4LGvA6eHPQFMdIL++Pd+VXsqO4b2gZH4gYSWBkh4Fq/mt8YPg+iUptd6+HDKMgEgO84F8byr9O0W8J07zpoAJw+p1z00gF4TO4=; 5:mbFukObkfqsxEd7VVfR1BDxCzczrVDDqTQwnquuECdH0wo2Ikclv1UmQRlTnhu+rEjccKh9d+0YvKvx+rEA3OvXj+VE2Joq6hXAUciwZcAI0Btt7hQ45g4SLR8uRzFoBxyadnyi/uxSoxDN/TJIptdQwFhDTAOQch72qCVPqMX4=; 24:i7viisaNMpuamZkTdVl0vTDvlshrFBr+hzZlf3r67MfckI+WwE8BNPE/E1IX6Tpy2mO6OHI587IafMNaDi75A+YXbAIOOYJ9mRaAJBWiNIU=; 7:1HRVu9UMf3I5rP+sqK02LNYI5hi5dADsSDs7OyMnSeBcGrFln/U2hHRJE5aF6lqVgKANbSCmjJ+QB1oqdQe33KJAhT6txQVzrL4olpfpfGjYpOuliaqqsTGkEFemiglUivfub9Bn/XyEEcJem0sPG+2N2lD8lmHaVrrYXxHm+MN9PjDNb4Uw5CnJZwX6TDrRT7aZnjVT9iCss2T9G8877GaaKz1eBq0cBR7DW3V9Yer8B3+1aW1IuLgcxcsS1Z7C SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BY2PR12MB0146; 20:SFDX/EFMiYbe2c5Z+stTj/CO9FOol3JSweH3tuior5h7zD5mxNSQ95fJAVQGrVrfvjItulWk9Ybyx2Z6TBmaTZTiszBArhGVjAQihRVlCQt+blZYm4PKf+ELTKOon4OuaV+jb8C0ZrZRzC2XpTbp3KN9tTm+Di64U9412Bfo/TzyDlpN/M4kUBjh00dWTSvqhzn2aSIOjM2lWUOwcbb6eFBVCRaO1hw4qdYOlCroZtoR9G5st4XfWW0LuFpEdJRH X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Feb 2018 15:38:03.9045 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: c5a9cc56-12f3-4098-347d-08d5722e9bf3 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY2PR12MB0146 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 104.47.34.40 Subject: [Qemu-devel] [PATCH v8 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 b1366f85b07b..bc7a63fbc2f4 100644 --- a/exec.c +++ b/exec.c @@ -3592,6 +3592,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) {