From patchwork Thu Mar 8 12:48:36 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Brijesh Singh X-Patchwork-Id: 10267927 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 D64A06016D for ; Thu, 8 Mar 2018 12:49:38 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id C59A7298FD for ; Thu, 8 Mar 2018 12:49:38 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id B9FB4298FF; Thu, 8 Mar 2018 12:49:38 +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.9 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 1842F298FD for ; Thu, 8 Mar 2018 12:49:38 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755259AbeCHMth (ORCPT ); Thu, 8 Mar 2018 07:49:37 -0500 Received: from mail-cys01nam02on0076.outbound.protection.outlook.com ([104.47.37.76]:26670 "EHLO NAM02-CY1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751355AbeCHMtd (ORCPT ); Thu, 8 Mar 2018 07:49:33 -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=fPbcxpvbtAXoUIZOZ+miclkvxnl8U/lFivSWLRFRivg=; b=EiMhCsm2k47n7IYEjj+Szc/i/+jJHk0EzOJutm9/EDB34eKVjZ9dD4D58mWtEHgaDLqi51U9jIaEtNpl/eKIaxxonfW9/HYVYcquFT0GWh/p1YX28ta7oAzL0PRzyqPPFef+bmAgazs5CdheKvcnY39u2+5lEoqzga6iHCvafrs= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=brijesh.singh@amd.com; Received: from wsp141597wss.amd.com (165.204.78.1) by DM2PR12MB0156.namprd12.prod.outlook.com (2a01:111:e400:50ce::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.548.13; Thu, 8 Mar 2018 12:49:28 +0000 From: Brijesh Singh To: qemu-devel@nongnu.org Cc: Alistair Francis , Christian Borntraeger , Cornelia Huck , "Daniel P . Berrange" , "Dr. David Alan Gilbert" , "Michael S. Tsirkin" , "Edgar E. Iglesias" , Eduardo Habkost , Eric Blake , kvm@vger.kernel.org, Marcel Apfelbaum , Markus Armbruster , Paolo Bonzini , Peter Crosthwaite , Peter Maydell , Richard Henderson , Stefan Hajnoczi , Thomas Lendacky , Borislav Petkov , Alexander Graf , Bruce Rogers , Brijesh Singh , Richard Henderson Subject: [PATCH v12 03/28] exec: add debug version of physical memory read and write API Date: Thu, 8 Mar 2018 06:48:36 -0600 Message-Id: <20180308124901.83533-4-brijesh.singh@amd.com> X-Mailer: git-send-email 2.14.3 In-Reply-To: <20180308124901.83533-1-brijesh.singh@amd.com> References: <20180308124901.83533-1-brijesh.singh@amd.com> MIME-Version: 1.0 X-Originating-IP: [165.204.78.1] X-ClientProxiedBy: BN6PR14CA0031.namprd14.prod.outlook.com (2603:10b6:404:13f::17) To DM2PR12MB0156.namprd12.prod.outlook.com (2a01:111:e400:50ce::19) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: ed4efe6a-8e55-4390-6284-08d584f30957 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(48565401081)(5600026)(4604075)(4534165)(4627221)(201703031133081)(201702281549075)(2017052603328)(7153060)(7193020); SRVR:DM2PR12MB0156; X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0156; 3:zCrpHN5pCVwEnqJRD3w+TqrHJ/xiy+zA+gEwsheVMoRyOqOPjp6tLYzaJPMKq7DcIR4QYrbVlnQUC1dtiVF43zvVvoNPpCL0zeynr7Ac7nPRf6OkPECMiOGoiFK/sDNUcHnxrmLFQOOkFwgZF6hf9qHg0ZcD6LYzsqjHzCz7Fxbg/Dg3lMR5dtwpXqUBQl7REE4RxDTiCPK42v3w3+1tgXXqJXEWN1MinhV9wfHl96ZZMEN6c1HQShIMRmvfq/ew; 25:UcPYnMXXSC/6cJAftIF4tu8sgxuSV/QcANPufAukFzP9VSTvJAh8shdHHvZWoqHJn2nDT9geZm3wx8Kd4RIhmDoCR5eln90BL99NBRW2cpqUAXc/Pb1rCN4+Vbwi6G26bXKtwSqzSbEf5OwhHcE+svWIBT1AHghMNV4HAek4+Nj691XgmqTjbUCzA6BOR0i8IB6RwZiOyc+MuN1xtenBq6IydAE0Oh+Ul4JoMxeW+5/FICPxlJlWBs8jOoeItVaUaAE6YiqpZApcCeQcWGqbz9duVeWAoqqz3u5GAm5mNAqnc/3i0ODnMZ7xye0/LuFd0jndLfoybjNTdjzRbXBBfg==; 31:0h8Rjv1QINY2Q6uN1CZjWVlbNGd3AQHPNi77dXHErXcETvXlQuJsN3UY0LTrDgScIeZ8EcY7BO9XQqQEHLsEwPQl95NdFZzvgZWO3NCq9JJR6U4wt+6YmdGY6PqcOlNEMOFB/FzSvb6dIBsqqeMPbZeNA1Cksy1R2DVf0g0T2COxUVopRnUdYsg6Fd92CjTVrN2wzRgnFHL08LaARa+ncV9Caib0lsscBcnTg3V+Mho= X-MS-TrafficTypeDiagnostic: DM2PR12MB0156: X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0156; 20:L3xJtemxGr+YzHMsCZS1AhrF7gfDsEM/OKdmkTRp/uRPqjQi8SHNn3Zqpf8trcdQiQvBxplz/C1BRT/3h6oA/oy7onAPQZGACZO/rpl/INehuBC47hufdxIDYVx2RW52h8giZ6cZxAHgT/+WNsnt0kFfKGnf9S0mqiQSFCAObD9ATTimmouwo/jrrqdyfWrX+uf5WVsSA8b0P+jaQ9NOz4B7M9HRkZG9Lkugrpq+NAROQRy9UWU5orxXITzJsY7RH+lf+Nw+MXqwypumAM9Ke1ghowBmwuYjdos9tjL+lX5lJh0eZzwvtOMSRLMNqbX7wIpB1b5NUYTLnuBbrMaUjGo45CE3lCR67FY7zX56vV/Qe1DaEv51Rj/yvfcmyz3RTyRdF4Ml/bq2YeI7T6geywXEiB0C3yDbSuv1BnNLt1dkBGpkfwnEQHqI9pubeOA8Oo53qwZBepRLFqACNKO3n44loYwgRhNQnZCCIZlwMuQWOgHuOB1Gw9sAKan0ftJ4; 4:rdfiM8j4HV2IXz8ufLDJmggWZRi35zg3fg3LGItAwFHOzNjbhqgOl8H8OdIDs5INOenq1MlloARGetv6f+3Vy3N2lSVYpgiT0huId5Svwc/bINckUY51+kqdXL/WfBAFOceIBhWAN2wiMSUCJNTm/BA8j7umAiG6qYUiJvuRbUnB1baRddIRkBQ6dQUiuX292LBXmbGu6T155FDMDUm1Ah3/FBRNnL+VTz7wS9uxF9mKokKkgVuj0a4mW8/07aka0fwIf33Nggh3levJzeMDzGPx484oFnC3Ejooxk3OkaAdGHM4zehe/WjzgQGKDFb5Hf3GAHemzpw/QBVQdDpGdg== 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)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123564045)(20161123560045)(20161123558120)(20161123562045)(6072148)(201708071742011); SRVR:DM2PR12MB0156; BCL:0; PCL:0; RULEID:; SRVR:DM2PR12MB0156; X-Forefront-PRVS: 060503E79B X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(39380400002)(39860400002)(376002)(396003)(346002)(366004)(199004)(189003)(50226002)(53936002)(2950100002)(6916009)(2906002)(2361001)(6666003)(2351001)(106356001)(81156014)(53416004)(8676002)(81166006)(7736002)(36756003)(305945005)(8936002)(105586002)(48376002)(50466002)(68736007)(97736004)(47776003)(66066001)(25786009)(4326008)(39060400002)(6486002)(7416002)(5660300001)(3846002)(478600001)(76176011)(51416003)(7696005)(52116002)(6116002)(16586007)(16526019)(186003)(26005)(1076002)(8656006)(386003)(54906003)(86362001)(316002)(59450400001)(8666007); DIR:OUT; SFP:1101; SCL:1; SRVR:DM2PR12MB0156; 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; DM2PR12MB0156; 23:eNJgDJ1vcUpMoIyPIWVv8FXw8sidSCo0nAwNRHgND?= =?us-ascii?Q?/6t/2VbFVJ10X91Io2Z8R/U+rflZtUSfE9ZWXR3YKtplNhXEMs+wHnt2DFq9?= =?us-ascii?Q?ujZtUZmXZ7BVyWyzKcnk2tUzVm8Owygh7ho+QkGHDx4TLRK4zAytilCVVKcW?= =?us-ascii?Q?VxA9G60GM9Xe/JX0jBJ08SzrnbwXzJbHEyH+zpN3m49STXYQKcmdrBuTl+g/?= =?us-ascii?Q?rvfm9AsV5zXDHrkQ9jONZO4KExRyGi9g2qTpUdlTjoSDGqwQxl68YnTzmZ5v?= =?us-ascii?Q?hmtM7OBiYLSK6r7JGqpCRwSX2Sy9x/LENwmQNDRaAPWh+P/hbP5F21NLBHcR?= =?us-ascii?Q?U0R2TCby+KNOhKuoYAc/yiLxEIHeiFFVQCc+JYj9gp5Lwwohp5jSyOxzZDhC?= =?us-ascii?Q?td2c4G8zwX9gVffbPPYO32z8YO8h6lxJmS/UIxaDh7voqhzzoouynjNSol8j?= =?us-ascii?Q?mfgczkxrQJaN2mVkDoSKNpLh+20HU54zx7MQAHfKL1PR7Xq4lKJZcQFGDgEW?= =?us-ascii?Q?RGPQz24R9uTiOYKZ9f0PQFTl5XDLrVWmkxuMFz8JxoRG4mK+MST25cyARfeN?= =?us-ascii?Q?Au+xAoiiOmgnlCeg/9gzQ9tDIIBAwlDSG9GeAhg/N46rfzUsbhe8TvX3hycn?= =?us-ascii?Q?8OjqHRsjFAN9frruOZA/+SYTyUQzfnPBhGK3CS4LTyQlxXM57zdonyvA2bDp?= =?us-ascii?Q?LxxWeFj4Iy2QWLavty0X4TQAdK6lEM3eq1hNcZ9VMwEFrp0q+GzjnPHOP8GK?= =?us-ascii?Q?HK7Qur4F1WBVX79BeFUHosBN3u5yn7Q5H1PG/vbuIXK02qJXyGsQHvI8/w9w?= =?us-ascii?Q?exeLUwST4E2Cjpdbm/mW+6OMTtCXg8vktt95si8PtZT3+8CSfg7G3oAzBC7v?= =?us-ascii?Q?+ld1ilMzZVdrb8ionIwhUaImkFmkedc31be8BS+Vs0KBqh6CuvuWos3B7hhu?= =?us-ascii?Q?vqQUPJ4iHJx5jOAlOgpLzRoqOvbhI9GcVxGWDSg4HGxXro6vXd1dU3nKpz40?= =?us-ascii?Q?gxAO0zwxtq1Si+4sG32V29WuxB3/wTLMdyuSujUrefttauACRo3pfI4cM+vA?= =?us-ascii?Q?obuaoWzE+u9KcDcsnIVFGKWVBFESGY38/HpmpZJwWFbZHxKC0vOkEZ55Muny?= =?us-ascii?Q?jIGFHFjpqPLqQ0M1CXcZVcjVVsX/Igf+8gmMiQYRndz7iSlsn4e468UeyGxV?= =?us-ascii?Q?V86/RdS1NkMveiU5FpoYwocR7T8R72JacuB6W1zZ6f1T3HYRF/LmKAYOQlHT?= =?us-ascii?Q?IbWkBfT5bNt7bzT1LUQcqUugOJoAxLmoK3R/YCz8bWlz39LYPRTWcvystTXc?= =?us-ascii?B?Zz09?= X-Microsoft-Antispam-Message-Info: KSwlZvptVWp63RzDpO5Y+48FKbBh0X0fbuR4BnIUH1ApJPVhC0+r4O4Ao8Y/EYVlYnjuN7AzCnDku0dl1wE/fjPibYjFda9iGWwTPIw0LjTEwgtD3ZZTd4J9RR+BeUrze3qeYPdk9G6fUhe1FYkHWNlGoNmzokfMTpQLqoLNdLNbWqPQhUER0j1Nr47fZ5PC X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0156; 6:JIjLPkYwnRixAlZRNfu5hKlZE/wHwMqkvzpcbgXnHbVxBD/r1ivqdIhPjWpDY9sDlgLT2pysGhdwdvPt2ZXw/NKGvIcFCDTdXIvj/xeTUx8eqMknqBm+r0yaxVWZ2Xz045aVbFFa8icAaKyoW6VJkNG3NGDzm3gpoavWSoXVJMaAxlC8U0XRTZC2eLK4D2FBB53ZuZsEObHCSkkUTGA/G5lv+d8pDKQC01QskPfuYMQBieBjt0Ox3rAzcPc8L6wgZ3voAiXnlk8jcJo3SsTf/nGYJieJljo6Ae8+kTjb2B4tvHIz+2UjoXAU8mealoNW6DgCt7zssKTiJamfEdr5GBwT7aStuA887v5jQrdhckg=; 5:/Z+A9oonK+bZNGEg4ZsM5V7I7Q2GKSEwdBxmfkl9SKp102qc+2YckGTJw21sPAiHNkKhkn2+vwwjUFBoWqTNt0QLDjlz6z+NIA8iulnU/AZgmVhObdibddUin98Y5Boo3IIKY401I8zpYkiumd8Dsdo3i1QRNr9+qIfo/TUMVjQ=; 24:7OwYjxDVlqAIsMX+cpTO1mIURHcrkRgvd7BV2OCnD7+13OOKf6j7ZRbcRfsGIGBNlkwDEvzy+nrTyXdbftuCzrikMfSU8lM1vlJWiCg+XAA=; 7:jeGAWirVq15EAuJ2dze14TUiKpeBdhI1TaO9ZOQVD4/tUgNOeeoYSBXUJI2rLjOK0XNw7OzYeHfEcelP2BonY4wvvGNYZPZSr6ck5x8ftEIiBp/DCmsfSGNf3AgXGRIoXHANs99kZ6Xb2NaB0RyxEbE/fFG4ZhkF72q2qrrIwhApkiXvK8GFDOfCXU5oRV0UPW9yaO+VsJq6jWvdTK6qYptibYzI8W2YANgLp4EeWVxtA8L6ywiX3Q2DcKWWWGl9 SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0156; 20:WW91fS+eb1O+W2BsisybL0IB8RuwqNGZU1OPO3BdDlo4EWQ/BatItn1pUvo+lU1kxukp4PYvh2UDQNmNqb+OxMcNFJcBcIGNcbAFmAHh9kBsRE9Hj+jpm6DAkfu1pHQsMUfUaOzx7r+3ODCAkWxxqoWwUshJVuH3pVw1BwnALvbimjElsFybslgpqhaaOiehn/b3Fa6x0Nei9s9OqZOoWEIX7HZV0+Nu85ca8URxMhUncEZDuzfb7SDUpeSZs9fW X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Mar 2018 12:49:28.9715 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: ed4efe6a-8e55-4390-6284-08d584f30957 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM2PR12MB0156 Sender: kvm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: kvm@vger.kernel.org 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 f69371d30e14..ca81a2f3244f 100644 --- a/exec.c +++ b/exec.c @@ -3612,6 +3612,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) {