From patchwork Wed Feb 7 16:06:15 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Brijesh Singh X-Patchwork-Id: 10205501 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 A2EBE60247 for ; Wed, 7 Feb 2018 16:07:10 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 938D12902B for ; Wed, 7 Feb 2018 16:07:10 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 87FBF2903E; Wed, 7 Feb 2018 16:07:10 +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 C978A2902B for ; Wed, 7 Feb 2018 16:07:09 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754457AbeBGQHH (ORCPT ); Wed, 7 Feb 2018 11:07:07 -0500 Received: from mail-bl2nam02on0064.outbound.protection.outlook.com ([104.47.38.64]:53920 "EHLO NAM02-BL2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1754138AbeBGQHF (ORCPT ); Wed, 7 Feb 2018 11:07:05 -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=a7o1Sj8TssK1353bwKdQ+vILoifQrRcSm3hS8oqLG/o=; b=edTrGb90WPDtc1IxqIvxVve+He7sMVfi4IHL4TomjBGyfWftbU5P0+sECVdIGi8rhqqooaK/2vdPHAZNJ2hoYlgjNQ1c3rS/UL8ixS4A3xrE494FZBfN5DYGlvmypPnD3ahX2uFInK7v+yjQGWxowCARwuX3E2xSgWajitkR3vY= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=brijesh.singh@amd.com; Received: from wsp141597wss.amd.com (165.204.78.1) by CY1PR12MB0152.namprd12.prod.outlook.com (10.161.173.22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.464.11; Wed, 7 Feb 2018 16:07:02 +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 , Brijesh Singh , Richard Henderson Subject: [PATCH v7 03/26] exec: add debug version of physical memory read and write API Date: Wed, 7 Feb 2018 10:06:15 -0600 Message-Id: <20180207160638.98872-3-brijesh.singh@amd.com> X-Mailer: git-send-email 2.14.3 In-Reply-To: <20180207160638.98872-1-brijesh.singh@amd.com> References: <20180207160638.98872-1-brijesh.singh@amd.com> MIME-Version: 1.0 X-Originating-IP: [165.204.78.1] X-ClientProxiedBy: DM3PR12CA0071.namprd12.prod.outlook.com (10.161.151.143) To CY1PR12MB0152.namprd12.prod.outlook.com (10.161.173.22) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 88303178-b404-418a-e344-08d56e44d3f0 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(4534165)(4627221)(201703031133081)(201702281549075)(48565401081)(5600026)(4604075)(2017052603307)(7153060)(7193020); SRVR:CY1PR12MB0152; X-Microsoft-Exchange-Diagnostics: 1; CY1PR12MB0152; 3:KPARgOblk7pu2lVx5VmrpbGJaEo2BmQfQUJKhVxr44wx7IxcTRDs6QMSljcGDntPLgwi1PgQfxB0IB60phRKagoi3XJ/cjI+XA4nUs1HNfd71N4KacCdBg5GcnUe93Mu4rf985XMzWw2Er5ceNgQ1GRKtV34y3APnnYDSPXEKkRO0w8C4/bajrlrsR9BZXAI9XeGX7BSdSlo7PBv6SVwTXxDZir0Tq6GytaNWQhp6EaSiGBZ2bMDziTfx9H+G1gq; 25:GhmFi2VNV0vvm/XFO6stTMqmzR+gR1dOiTAJgSVjSlkRPoondXLew5bURops3OXYou58pKtvIQVykRBniq/fJF9TtSSmVcIcu3V0GaqRsSB+MF0w5VPhB3Gl7H76BiwkxdPamNfyg4ZvRYPYor4ihayxRuVc8PjVVNVPrLOPLe8kIqELK6EFcNZCRyvLWmm3fnVq2yHsi/bSDU24mWAJFu/bacx1jvsBNQNCqnapSBHlsLyrp4d0lTLgDM+8r3nzijNf9MdzKnV3om4xWOqvLdcIPmQqXCpxL7bm+HHlKXL2jUPzt/1yaUUafoV+Jq5NCadV/0BeIrkCIGG0iTRyEA==; 31:+d5oe/W/k6cenX9Lug8K0J1UyrhXe2k9QuTbOSDtqGLidTfE2J7q0NcWE5rBjW5YolmLKlQMBNBrQHJYXylU0VW+G4qWyN67EVkiuiddK4GSFxNb4SZep/i3vXSI/hPiaS6XrBnRzPNPW9GIZa9aM+LAz79hIRKtjNqPJZ3i6NKDU72hlkBFMz0tf9cgDxknt//tmW5OgzeqbuPvw6DfMEijll3d7ObN8f5fIPn7ZhY= X-MS-TrafficTypeDiagnostic: CY1PR12MB0152: X-Microsoft-Exchange-Diagnostics: 1; CY1PR12MB0152; 20:C/DEa/Qd042fCpimw1PKCVkS2AbAH97LmGBO/OlKZpxH0R3ejgr2BSizdKaINLJtS+64UQpq2CnhyALzTcbcMwf/IrcS1LLDhkm6pbOFWnzB6qIlJUh7Q979ikWDiwcbBAoqxroADJa+1tZonMznvlaQxnj3gsNj77Y3AuZJK2r1b3AD/XuUvYG7snhcEtk3PlXvnnBman75Rmmw1blhJpedSar6dYq6FS0RHfZ1pREAyRe+EyadZS+yoWCUp2DP5V0922A00QFn8+ig4Po9E9zKUY1ZkrMduQk64ei6+5SS5s+FW5nKUGALP3iDsQuPYTcsRVKIqD6y1wuq+rQc3LtL0ul/CNSKPttxkgbx1ytBuOhZIFo/1u3OjxV2ZL5fc+qX8cdSCxMA0spLxTv/SoBbbS5ytoLAJ/5mQbAQvXQdCuD5XDgaAKlnMoihoAmt28k89QO9p0IoU32u6zj+Ri8fdUKbbytADY/MMuMacApyPFLnC8nuAzSvqlqO7SiA; 4:pCyHvuYZ49hrKQ7/ClZVXGPkOYehkfPs4U6I6+l6e52DuRCM7DMLPp39qPBTZJ9gK7UZnGywjJNzNWcJrb9f7vsdMUfV6NKtVQlaPCA6raUfSqTrHjoed32BvDdSnlv357Lcu+V9SWwKEvE/ewbFpVn2MjtH+aX4h+mlpwU1IaqbkVST3ySnt4cZqD0FYtQix0Cyg6Qf2tlYmXW78RrmMHWVsf9t9V13Uf12Gn6XDQpuywe1oPWONPcAMGTF2H+kWFfR3ICZFeapUwLCLBhIEGihj+5yHlGF9bmo55c+8an8Lt5qgd/TVKQ82b4K2haWihTjP6L78hzcQuCNdSoZrA== 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)(5005006)(8121501046)(3002001)(93006095)(93001095)(10201501046)(3231101)(2400082)(944501161)(6055026)(6041288)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123562045)(20161123558120)(20161123564045)(20161123560045)(6072148)(201708071742011); SRVR:CY1PR12MB0152; BCL:0; PCL:0; RULEID:; SRVR:CY1PR12MB0152; X-Forefront-PRVS: 0576145E86 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(39860400002)(366004)(39380400002)(346002)(396003)(376002)(199004)(189003)(50226002)(68736007)(8666007)(51416003)(6916009)(7696005)(16526019)(1076002)(50466002)(6486002)(53416004)(7736002)(305945005)(53936002)(8656006)(8936002)(8676002)(7416002)(86362001)(4326008)(81156014)(81166006)(52116002)(6666003)(2950100002)(478600001)(2351001)(66066001)(16586007)(2906002)(54906003)(5660300001)(106356001)(2361001)(47776003)(48376002)(105586002)(3846002)(59450400001)(6116002)(36756003)(386003)(316002)(39060400002)(26005)(97736004)(186003)(76176011)(25786009); DIR:OUT; SFP:1101; SCL:1; SRVR:CY1PR12MB0152; 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; CY1PR12MB0152; 23:6rFkFAGswl212mX1+bu9bwPkh6YAphd5B2Fw3ENdh?= =?us-ascii?Q?gdr32994ewmdG4kIWcQ4tH6cnu3mK0qBn09FI3VJ9QTZSc3SpPSW/v/bKfE/?= =?us-ascii?Q?WhGOkE824CwwJCM5r7RQb4MU3BLxyqppKzUnCXXKWQ3EA55EJf5gqVTMzSaq?= =?us-ascii?Q?O1u+30KlexzPm9VfBFVtvGZR/4uDCneIVkBQWtbKPlgaRLkDrwCybhT4Qxk+?= =?us-ascii?Q?AdYLUwX7qxh/anLBV4BcCx7pCmUrG/vbTgqUIL9z67RW9l6YNLTCBAjjjGFV?= =?us-ascii?Q?cGUBs5+FTXB3mlfEQAP89/3yf2aNv0FQU3k409mNIqy5v7BFcRgTE5ZssBFd?= =?us-ascii?Q?7BXPtLR3+dxk/dBSDntnitObzmef46L3rcFH6DJqKnEqL4uOb23qlHD+pvJB?= =?us-ascii?Q?zfkxIRUU2JhkhziC66CYFwg4ZUETwHnPrZj9uu2//RNgN7ABaK8i3CLrto4K?= =?us-ascii?Q?6HnT/2EH/rhnmdhaGiqk+op6/qlpb4iJX9fH9HCSlMgl3APrYtgVwhS8cvJ9?= =?us-ascii?Q?iXbwM9jmDSPQ76qLvXQatWyXdph+JEwaUHCkH+W/LdpzPNRfvWLYxjlUk1Mh?= =?us-ascii?Q?xojE2Lj7gzZOMNqsoZ9macRN0v49B89D819mIrKZFNDADAQT0XG1GyAAhKBf?= =?us-ascii?Q?qmU5OJW2XBmLSlg1qUX0Qo7kc/YUnvxGIQ85swZSy6Flr/2Vb+HlGHPoy1Zt?= =?us-ascii?Q?GNPHVOVyp3+tGdFKjahXmS95HFkOOPLAhv8SXHoI4o6PbKqCk+Hor7N/chby?= =?us-ascii?Q?CJSbC9RtXSxax8fWGb3opj32HIOK0Vrp8ZThpp2weNQARynVGsP+84w3uGVl?= =?us-ascii?Q?Q/y+se5fAEqIKzia5DhVHUT+5BuM255wofRyWvbiyywdv4KsIz0B4Q5Hm4jg?= =?us-ascii?Q?NkYfXoG8oVLtr4E/Cd0XLjq2n6I4oJ6UWQlspJmoYVvZSYF94AxcckXTnPkD?= =?us-ascii?Q?h2RppKweMXYizBZkSs+jsD6b2Y4yAF9K3J8k7gHbYMf7XxIjhT5btrHobap4?= =?us-ascii?Q?WFywY4igsHAaUiXaI7EYRVSGFuOwE4qOpfwybXgWPGMHFtpLgpFSontAAERm?= =?us-ascii?Q?9cRBf3zKEHuHqF9WrC6fwGksKo7gDYq9M5hMU1RwmrzV91xUOArmS/s9bX+a?= =?us-ascii?Q?jZWUywl0jKaZEW8RFF5GBLAUK+/vSzHWuFSjnnhHeyeVzZYcpcQZtzErjuNi?= =?us-ascii?Q?AoYAlB87VLKNWgMgYsv7aSqEV5bBdHjQY+dH3QVDqK5xF4s/Lxyac3DYtcA5?= =?us-ascii?Q?J9fVoxRKXfHBPk2lHfj5k6cEbX/IJhekR9x3REmSRLllXnRXG38pXnPa50jt?= =?us-ascii?B?UT09?= X-Microsoft-Exchange-Diagnostics: 1; CY1PR12MB0152; 6:QXYeGfLn/ON3RdViu0Jx1B9gICh3keYcI2NJY0Uve931hkscP5XCAjxT/JVwvicLZq3fTrImMoCT8mbkrlJNPeR8bkXMz4HMMhtFUgtk4nGXxb4lSXxG+sUy0t0cN+gZ8DeQEeFQGzc+i8t5Cv/siuNwcyHuqDSyX8J7H+DRTvVUGtp3Dm7au0ELFys0X2XHogcBkoRuG52uuWMeDDCuWXsSTBn136QJyJYZZICpIddZ+ObSw7PChtxvsu0i9cMpWBAWW8E/R99Okx9hA4nWa5Y8WcNIQqY3NQ1Mf3HLkDIoQIQz81k8Az8UgWUfz41az+HnMnLw+xgyPDpLlxI4ya9aXXkZCDcZjNdLMriHJXI=; 5:0R+0jgvV+w5PHYOAwzpre+USAdgtv0MqpwKeBRDqHluDR8G0q5NESp60tNYSeMbGJvCp7wayMyIGsE40FzqDR+SkNtdJvgVZwjnxseHc5gd+F35gU6icEFyBQYBbljTyqhSogSjBGN8D6kimYXjclAsvAHzDOe5tne0u/lx0F2I=; 24:i1vYm5edhZdwH6FSDVR+c9kiDE6iUSIX1Qb7hddqdF8DQ6xh0zhv/HM1BZo6XxQ4peXBGyTRV1/sGNLLmJXS1XdcOz7vxsj+nJDUYbuABag=; 7:S1hA1wnZKbkzEBmLI712iH8LnzpcoHoBdlh40P8Z63qo5rTqDh8VLrey2q2fIaOosmAMaqrKi/erKiD+cvNAODg0j2E4G1BHqAjR9yMlyPmAAM9lGQKDpdvv/Cy8+AQS582BzLdIzchOmzKgkCWgqg7xXdvldjqJVa1+pqW+mSVvudQw7VQL7jCepIPeVonZne9SfkqNDFyn76QzMP9Mm0dUyGC6AkRDLjccI3yYlxiC0QaJwhd9a+v0fYA2bX5K SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; CY1PR12MB0152; 20:g8eXB1yhy8G40jpT4wv3/aDEsEPZ2dSVWBmctwCX/SQbJ631MbYQXYgevSgDiuE2bDix2Qq9ISrIaYiAxFR+WFNpnEcdQeEwQNkBBwYlzLL3L6M20dFEwnhvFpCOHI3uItmo/kLihEYqsqm2/C1igpkvvWCNKV0RFC8qbW/QVRSnNzVSeNXToeug6lg2oh7C+zL5VbrxOWfhpip5LFc0zKG9ly10W4gK7yRF3EEjMDeLUHZo/3cUA9bJCA1CIgZb X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Feb 2018 16:07:02.5716 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 88303178-b404-418a-e344-08d56e44d3f0 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY1PR12MB0152 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 | 41 +++++++++++++++++++++++++++++++++++++++++ include/exec/cpu-common.h | 15 +++++++++++++++ 2 files changed, 56 insertions(+) diff --git a/exec.c b/exec.c index 1919052b7385..49dabdbeecbd 100644 --- a/exec.c +++ b/exec.c @@ -3610,6 +3610,47 @@ 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; + + cpu_physical_memory_rw_internal(cpu->cpu_ases[asidx].as, + addr, (void *) &val, + 4, attrs, READ_DATA); + 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; + + cpu_physical_memory_rw_internal(cpu->cpu_ases[asidx].as, + addr, (void *) &val, + 8, attrs, READ_DATA); + 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) {