From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S967122AbcAZReA (ORCPT ); Tue, 26 Jan 2016 12:34:00 -0500 Received: from mail-db3on0057.outbound.protection.outlook.com ([157.55.234.57]:56372 "EHLO emea01-db3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S934376AbcAZRd6 (ORCPT ); Tue, 26 Jan 2016 12:33:58 -0500 Authentication-Results: spf=fail (sender IP is 12.216.194.146) smtp.mailfrom=ezchip.com; ezchip.com; dkim=none (message not signed) header.d=none;ezchip.com; dmarc=none action=none header.from=ezchip.com; From: Chris Metcalf To: , David Binderman CC: Chris Metcalf Subject: [PATCH] tile kgdb: fix bug in copy to gdb regs, and optimize memset Date: Tue, 26 Jan 2016 12:33:49 -0500 Message-ID: <1453829629-4874-1-git-send-email-cmetcalf@ezchip.com> X-Mailer: git-send-email 2.1.2 In-Reply-To: X-EOPAttributedMessage: 0 X-Microsoft-Exchange-Diagnostics: 1;DB3FFO11FD014;1:9SwmK8fsJ+SEGRXfmCh67jSdkpnaaqazorywfhmQ3THQb0h+aOJj38xIFP1QBIhASWSbu7KMGbB6WbW4JjcqNhizQSjSPIRYxFaT4/VOswUG6FDrmHDHxpN1otm1NAbWXqHrA5d0z3Xf5joHG+ohvsZG5Fi2AI/jpIh19nX6oJaBCJsLstVfRhjseRGjUE3Zqph1ExRdvoBG5TDWDasWevs0p2Cg9h8bsvTCJt6kN3SF0sUOcpCWjvSfpkNkW1ysMjATExCxsblsfZQtShYb7hg1YMUNmLLrHqoDpCNYclqXcBHX4xCFreXRM7GABcB4WwAOvZrNlZclhW1cm+utkIpv6ZzU2BZ5+q0FRd5AborqSvGcsNb1TBxnu4tMvITSywTbsklyMEcWPhFRVz7BkesRImEd3ekHzlRw2OuUrkGnMhSOV96VAbUmC+n8pijVjKPZTBUpSVpbGyWGN9xweqgDoWWYvsggdYwh30V1nt2RJt/SC0BHdHGFxuYHezwk X-Forefront-Antispam-Report: CIP:12.216.194.146;CTRY:US;IPV:NLI;EFV:NLI;SFV:NSPM;SFS:(10009020)(6009001)(2980300002)(1110001)(1109001)(339900001)(189002)(199003)(5001970100001)(106466001)(1220700001)(4001430100002)(2950100001)(104016004)(1096002)(107886002)(11100500001)(229853001)(5003940100001)(36756003)(6806005)(105606002)(50986999)(5008740100001)(586003)(5001770100001)(19580395003)(189998001)(47776003)(50466002)(87936001)(19580405001)(2906002)(4326007)(85426001)(50226001)(42186005)(48376002)(92566002)(86362001)(33646002);DIR:OUT;SFP:1101;SCL:1;SRVR:AM3PR02MB113;H:ld-1.internal.tilera.com;FPR:;SPF:Fail;PTR:wb-fw1.tilera.com;MX:1;A:1;LANG:en; MIME-Version: 1.0 Content-Type: text/plain X-Microsoft-Exchange-Diagnostics: 1;AM3PR02MB113;2:25iLjkhPCWXTjQpEosieysc+n068xRC/8IR9v01A7bAhl60r97+W4QmsR+yE54qfRVafxdsZIIVGL+lbOLwgBYUjygWwgzsNsNYMuwJY+68lRy7yliat1CV8lDcSh+eRLo///eXJyWNWPfMvJ2+sBA==;3:H3wdWPWC7CKFb+aHyuJNA/RF0qaAPPR92W8T8fvmHqEBgzHb3NU7fFx+A3zDJQMRlvdtXPhQPeXmTPyevRwoZ4lMc86feNCg/J7/WWcilCzbcGNOR8bLQaBHHT2oIgdVFv/cmsc7wCEmfk+rnh4c+MfdfPMhBcG34e/dbnwQNWXsczG4vqIDaVQL5audDlqkcVcPG7ctKpZvwHr3cUfLWq/ZCaOXgGtO6l++T7ysqgk=;25:TVacjxVXHVJRZLD14nUo7H+9N9py/eGJVOPlrR2HpeIoTkbGHdJKkkAK3I3/YFFurHBG9V2VvggjYSXjM8HfJBy2X1IBQDPNqAlpM9G8kaHlXJvQlQ+iZWd0or26iUwoQ7pTYj4XvJxiZT0ZB4jCc7e9ol8BzFwKCb6rJkS+2TxV3cgpVyxHdAGKI1HmbhF5scQ3UmiFIcpZtBc2Bzd5I9FOcOlh5sbqur9oE4l38vky1tntJ/xEtojPAV4ud0IP;20:iOKvDKUayQnTy+z7g+d+jVhvU2A5I6cVRZyySl4z/mQWGvSsI5BSeHTDhhIakR7Hlvi7I/pKZmDCN9V7DrRwVqWVmGr0tjqB4eHLlTPH32ZkgzIWUQ3lmnWIJmoVzR5m45o3X+UlPLO4RR43FFXLh+H0mNyNtt2eIwqG6yH92u4= X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:AM3PR02MB113; X-MS-Office365-Filtering-Correlation-Id: 96644077-1d0d-4d87-215d-08d32676dceb X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(121898900299872)(194151415913766); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(123027)(601004)(2401047)(13023025)(5005006)(13017025)(13018025)(13015025)(520078)(8121501046)(13024025)(10201501046)(3002001);SRVR:AM3PR02MB113;BCL:0;PCL:0;RULEID:;SRVR:AM3PR02MB113; X-Microsoft-Exchange-Diagnostics: 1;AM3PR02MB113;4:rm/kT4KJiqWPa7m5syJ/KiF+hjF6WU8UvHE0ThYvC1ropmag11++1IVeywhuh0fJpkSyY9OeOBPfWvHEvCNpwDDUDl/3YwqfVIjYz7UVDPjwA8K/sZxdFTuPI9Y85iEw2LSUHAywlcFDwfFY4DebEOsEL9/uzzniew0AcvO5kohXk2lnJA4EVPyR1qh15+u78aPHOiG1wZNmjJ+3HuDhCGJomzopXhegbmmwWf/Jf75un9jC4wnCC4r4D7eVVvzyP9iMMyDbtkmNdc/PoK456REgDGbM2t+lj5uJxEnKqZQ8KdFManJjOEHVGMpU2ZrO/WdF3H6IgZUnVQDutNQ/KDS7yH7ATBPdm3XVJ7fnMEUjCdzFIUzHq/a5ZPAySqtasHR40u0/o/YhN2Lc0+iNIMSj1ccWpLt2JhqknNFS/V3yEyLhaiZmvEc2ZdxoQwZKs3AncjXhVYLPcHHKc1dXZOICEf0KPwmbBh/swskmUVwQ3yLnPmLQ1zXUCLQPgsAdXci25dx9QbnhTC9X2YITupq0oKTkd1Vjz/85AhzDrsuRVIawPl8yEA8RQff28WQj X-Forefront-PRVS: 08331F819E X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;AM3PR02MB113;23:4fJSaFfQmAvlxJiDpREU5oHw+CbRLg9N1u5G2crI+x?= =?us-ascii?Q?MKO/qWrByBTt76A2z4h64n3E1nEcpKdTvP75v8xkZODkJq4n109Qn31XcrLo?= =?us-ascii?Q?hix/jVV17GeQI56UEej58Jrv6q77Fgd1R7o88Nl7rk/9G+pbGaF/xJeZijn2?= =?us-ascii?Q?R2A447iYN8Mz6XoGlMiAMC5NUwppFCGSJxuyjrkjExCzh04j5vw05rpcbYJ2?= =?us-ascii?Q?LQYyqkaoL+4uoAe6jX6vAL+8ViQpo2/bfDIosb95eN+n/LHESQK5hE7J/PZM?= =?us-ascii?Q?U+BYCTTWBle5JYxmMzY3SMyp38jDY+MA7EKLUvRCVo+7i+rNqJuF5USY7TJv?= =?us-ascii?Q?oNnSpwEOTXVoRRSKIRW6wW4dmXyHTzyMX3pA6FgLMoAB3w4XbExW9SYjuRYY?= =?us-ascii?Q?UiKWDEvv5/RDrA90WXpWNi7HRIVz+B5YLRtzHADymtJo8D3HqKD0jTxPhnmW?= =?us-ascii?Q?twD2QIgPZKe30kxocOE6xrwuS16L8P+qg0NxgmcaCjAO/TBBfL+9IMHrtO4h?= =?us-ascii?Q?aGQ42bexASBi5yj+Oc1Yf22qlzs00ICQL0wswPnvEli6R8QITEVtj1T+7ts2?= =?us-ascii?Q?uxJumeHYnOJDbizG/o/J0Or4HGEDaJWOitQvK97bGRkIZV5wm55SM/WganwG?= =?us-ascii?Q?i37aKLligjnvhjZTcCXNRmDRLpHU+E5NfpcVzopSknaRjq8/YCxXHBaux7bP?= =?us-ascii?Q?4MHXPAJgfsMpDkz2aIZn98EbIxrc4rDtlfINaVEaWLb88T2j0hGVhPCZPFRu?= =?us-ascii?Q?8iOJXZrFrSVuZ6oAvcmLvYoHsBhnXJTdGTZoDfaw2SvieVwjWegYZfyrFs7b?= =?us-ascii?Q?q3WfW3YGw5Bgx8Ab+FGWzDLA/HwgzMDQp53dlvu33N8uqnd6+TiCzW8uYFLo?= =?us-ascii?Q?dnLe5dLWUiapH3QOAA2yi+AV2TbXTQr7hGEMD45cQlZTqMYJBDOHh+h3zgOY?= =?us-ascii?Q?IrY3t8VUKnVAbufvB38U6HbxK0aM3qprya4VnY4RjEWwOoDT3bNaCqjVSTwN?= =?us-ascii?Q?H3pFahjiyNRT8pPPZ3kSMdms5pPgCTC16h/W2vePu4ioCe/BPiF0j3M9stuF?= =?us-ascii?Q?FCiD3AD0pxlErl4EA2QKePEnNo?= X-Microsoft-Exchange-Diagnostics: 1;AM3PR02MB113;5:5UQWaiFdaTDSzd/AvHThi5gJQg4J7+QOmo4CYwABJzx0yjb3htkRQO6IuJDiTavq2JCUyAl/HnrJePo0h+7soJhL2scRIxoQyObZxjQK6IWjKCVDmDbtEIQ/xaVBeb0KD8QCOcAPeI5DrJBFIVYaTw==;24:XSvN8b1ShOUTJJi1FDWJ6EdrTL7cBCyRgnANX0WxQEnHB/aDtd6wQPv0he1OwQwJkcDCnYSADcAkALgs6f1iSNU8IhTc6s4YUgtru4gKBJo= SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: ezchip.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Jan 2016 17:33:54.0177 (UTC) X-MS-Exchange-CrossTenant-Id: 0fc16e0a-3cd3-4092-8b2f-0a42cff122c3 X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=0fc16e0a-3cd3-4092-8b2f-0a42cff122c3;Ip=[12.216.194.146];Helo=[ld-1.internal.tilera.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM3PR02MB113 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org David Binderman pointed out that we were doing a full memset() of the gdb register buffer and then doing a memcpy() to it that was almost as big. This commit optimizes that by only doing a memset() of the registers that are intended to be zero. While making this change I noticed that we were not copying the link register (LR, number 55) due to a fencepost error in commit f419e6f63c5a ("arch: tile: kernel: kgdb.c: Use memcpy() instead of pointer copy one by one"), and I've corrected that as well. Reported-by: David Binderman Signed-off-by: Chris Metcalf --- arch/tile/kernel/kgdb.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/arch/tile/kernel/kgdb.c b/arch/tile/kernel/kgdb.c index a506c2c28943..6ad99925900e 100644 --- a/arch/tile/kernel/kgdb.c +++ b/arch/tile/kernel/kgdb.c @@ -126,15 +126,15 @@ void sleeping_thread_to_gdb_regs(unsigned long *gdb_regs, struct task_struct *task) { struct pt_regs *thread_regs; + const int NGPRS = TREG_LAST_GPR + 1; if (task == NULL) return; - /* Initialize to zero. */ - memset(gdb_regs, 0, NUMREGBYTES); - thread_regs = task_pt_regs(task); - memcpy(gdb_regs, thread_regs, TREG_LAST_GPR * sizeof(unsigned long)); + memcpy(gdb_regs, thread_regs, NGPRS * sizeof(unsigned long)); + memset(&gdb_regs[NGPRS], 0, + (TILEGX_PC_REGNUM - NGPRS) * sizeof(unsigned long)); gdb_regs[TILEGX_PC_REGNUM] = thread_regs->pc; gdb_regs[TILEGX_FAULTNUM_REGNUM] = thread_regs->faultnum; } -- 2.1.2