From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751472AbdAPHYd (ORCPT ); Mon, 16 Jan 2017 02:24:33 -0500 Received: from mail-bn3nam01on0066.outbound.protection.outlook.com ([104.47.33.66]:59016 "EHLO NAM01-BN3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1750981AbdAPHY3 (ORCPT ); Mon, 16 Jan 2017 02:24:29 -0500 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Suravee.Suthikulpanit@amd.com; From: Suravee Suthikulpanit To: , CC: , , , , Suravee Suthikulpanit , Suravee Suthikulpanit Subject: [PATCH v8 3/9] perf/amd/iommu: Misc fix up perf_iommu_read Date: Mon, 16 Jan 2017 01:23:30 -0600 Message-ID: <1484551416-5440-4-git-send-email-Suravee.Suthikulpanit@amd.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1484551416-5440-1-git-send-email-Suravee.Suthikulpanit@amd.com> References: <1484551416-5440-1-git-send-email-Suravee.Suthikulpanit@amd.com> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [114.109.128.54] X-ClientProxiedBy: KL1PR0201CA0003.apcprd02.prod.outlook.com (10.167.53.141) To BN6PR12MB1443.namprd12.prod.outlook.com (10.172.24.20) X-MS-Office365-Filtering-Correlation-Id: ac88c53d-667d-4e55-09f0-08d43de0b45f X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001);SRVR:BN6PR12MB1443; X-Microsoft-Exchange-Diagnostics: 1;BN6PR12MB1443;3:5oFO7e90RPAEKAeCUy69oDw10DmRIdLzR8mMSowdrzsh+Cm1D4qJ+VWGzPOI2t2YRLNhY4GaFyRiF/HYskfaJUEJBfWsZh0iV1rr5S53f1ZyJR+5clm9Cmwxgogcu1/2gJSUw4P1en98ByArJai/H7pH3tQXisxGCrzj+uuk2PJMLW2b+pQdnYLAJW4c5AWXsARYmdxPM4l6G4fvWH77gSo5EHQAvx1FbUBGnCHDnXNXJuYItyhSZ5bgkQzekQHobDFsuxYLrelWXE/QZtu3oA==;25:KVYvMwAYcp0visjsQ7gZgTah4ir+Kt3oHzQJcKaj1DI3zaTJwRFbGCiIQgZmdKpJWptAFm+5skti0BMA82NvH71IbCvufolGkDxAxwzPO9vJJy9rwQEcLvurSULVnpSnJtwl+d5357B5miNSZUaGE0Q3gki58UfnPEWiorO9pIzsLuTuY9lkvsDKVwCKfN2pCZXkEYxv0yKeLDLRCQUJW/MEu64Dz3ZbEcivpEtElHTbZPemWAn+KMij+qhy/DHfz5tgeGacxw4ZCPjQgRaN9Kf4TkLWiBJiquc406tucaLZI4uJDZTdjXhLiCvyWWf/+B7WQkuXhaj1y1E2VobrwsD9DxzKbvTsDn0iszqf4zW99DoW35lWW4iC1HUlUxsMh+cAxhiAiIjDhLM+NpoMjskvGgZtucAZ73fImU0JGoq96RaKyBpIbQPyRy7YSys5ZthP9kDA48BcEM84ovioBA== X-Microsoft-Exchange-Diagnostics: 1;BN6PR12MB1443;31:gSMGGxpqyZ6E7f1uEu1qCcvZ/CWj8ueyGzEpZCgK1Fn/pom75e+yCg2gfxnafM6y3zwbDWm1pkagTbg2FK+SJ+ODtUByU9CdtrYfYFUkYV2QhGVJl4pAqERwy2WaHKEnql+xNesIWwOcaqWhZsfLwi6093onl+jWQgBKRZSzQVgtvZIEtOozk5kLtGGCydLBUYpBAZFTuME0NVayGwEoffQ7qpBxFKGSeIN3q8j8zUJBj+TNBoOunKv8A0Ap0TNUq/ZboqTRiJyxeN9nw6QF3w==;20:F2cjRCnb+LAL/Y86+PCG3zRi11jK6dxEPzhga+xZbDq4RQXoCPL/vxvKw+0gOUMjAT5cNdrcACa2FDB/2JlgEu0pHCLQf94V3ucDTNrn+kySUFiS/aasDrTVRT2XXLx1VL0KsGqM2umw+rbG4gF0M9z+dkHPdrDuCo/CIItnk1gjy3AUafA9HPtyvJ7tMCLzTvfdtPTO0ywslQ2KNB9TRSXFMXxFpDT+rvrg/qJ2hdD9qc7F0TwHW+a4184j8fjEyS5bZY6hvCc0MQ17WeB5QcJTLsUwRUox0uxlFp0WpM5aDToeYkH/ator6s401HlK7ipt5AKGFsufTZ8pzsEAeJF7bYSy4wiygaPoDwz0oiKK2mLB4ZXohzkLhodTNidHUMfMH5ij8ern8XOtRFpMsluGfYz15EobLvB1Ra+og3nNpB3TpZQRTpvZwrGv3DusTb9iH/R+hKTxmqcFepwdHcdtVkjC6tt6hAD7HRKPc4P+Jskvk5/FSwJ6iYaZ2eiE X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(767451399110); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040375)(601004)(2401047)(8121501046)(5005006)(10201501046)(3002001)(6055026)(6041248)(20161123555025)(20161123564025)(20161123562025)(20161123560025)(6072148);SRVR:BN6PR12MB1443;BCL:0;PCL:0;RULEID:;SRVR:BN6PR12MB1443; X-Microsoft-Exchange-Diagnostics: 1;BN6PR12MB1443;4:jAzqPcEEMCPtv9kccxPFig0Xu6JR0tneTjdtmNsX93kxwf31SjwiMWj1YslRF79QuFk0AdUOTPvllDiaZkkBIhxELcmYZtEB5JfjTsQgcDebAYsU4Jwt2vbxP7EwHvZMom+l6AXdulcNhD9ljOXFww+B4w6M43ff6S19OjWjwc+LYBZa3MShVM4UkguRbZV8tjfYeNEVcTQHOvcUdis928k0GHZDnLXO7RjP/5+L6DjnuvoqMLdjogjpLTrBvMcq0ELtUyvNcUCyKaM2BNGisewou8QzeeAKpi2K247THnwWvQ5OivISpY03sFTJ+3ji3YQlL4g45P3EjzZZYEBJojdvJNRirSLSs4K+6NKDfJiuicxfXhUZU0/yYM2/iKUOL3aJ2IIkNh4QiKfyd1hVO8ySxwOWG6yPz4QpcODf6Hk/0gJM8FC7Pj5Je0WZvAavDr8lXZuhDsOkR2NWZv8oeGahhBaYDTYCUpNTo0HQU/2i1EuYR95/dqZmkzmUmhMNxOwq5q/VmpltbwKiOYzfgluM20AzLcN5sw+TCZQ0or/fLlFVPLE2hNZjOaLNtMq4s6AYYSG6QkkQTcpCBJ1uoes3Pd3RjL0ap742lJOYSIGmYaQe1Ywf29hsRPKnuQ/R X-Forefront-PRVS: 01894AD3B8 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(6009001)(7916002)(39840400002)(39860400002)(39410400002)(39850400002)(39450400003)(199003)(189002)(2906002)(6116002)(5001770100001)(86362001)(189998001)(92566002)(66066001)(68736007)(97736004)(3846002)(6512007)(305945005)(7736002)(4326007)(27001)(42186005)(8676002)(2950100002)(81156014)(81166006)(50226002)(6666003)(106356001)(5003940100001)(105586002)(50986999)(48376002)(38730400001)(101416001)(25786008)(6486002)(5660300001)(6506006)(4720700003)(76176999)(47776003)(54906002)(36756003)(50466002);DIR:OUT;SFP:1101;SCL:1;SRVR:BN6PR12MB1443;H:ssuthiku-rhel73.localdomain;FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;BN6PR12MB1443;23:QBo6PKkre3ll64zcwgq/2cKQA+5LoV5s0ADDmtkC7?= =?us-ascii?Q?5mKSV1MmFImCSBt9gZQtcf4MJb4QI/j03d0dnJ2KRvHqq+nGl52fBybPdmSF?= =?us-ascii?Q?sXR7cSrNaG1g65MUz/16ZWrg6q0Uo3loD7OgW4ekfgrE0gb2IacndQlenZmg?= =?us-ascii?Q?6y/SKEoLTjaTOeEHFfpmbGWgpiv0748WuPq8uwH6Ljbqe5EOtmAunQZsuWqB?= =?us-ascii?Q?fGvbbEFYzNAlu7odFrC2DSHpgEGeEgUCct+Kq4VGhQn8ncXmYTorNoc+AaIn?= =?us-ascii?Q?W2nflp9ptxnVqgAuW2JH7HfqfWXhslyOGAtRagFK/m03TjT+MqblLqwSln5V?= =?us-ascii?Q?h9U7eI6Pskm9A0DIsttY2R26mUQVQNgQlB9pZosYIt6JsvhebaO78iCfI6ai?= =?us-ascii?Q?BXeOHbz0vErwHDkvEr9UtSn5xmHdwFXWroqOG6G5xK35lICfvS5Qi2wjAJcW?= =?us-ascii?Q?En/NK1svJFinmIDDM79AgWy7NCcbyRPvBQ0UetAd6IGJfZm5WHkGxYzEt1i3?= =?us-ascii?Q?pc9a31G2K0jMY60bML1r1D9ix/IeqwxCJKwMVhJWov85KbW9pBxec6WLuaTB?= =?us-ascii?Q?DWJkWdLZfINv77KDGmqodlgLrQMKjV3frUf0/MWfuOYirFAVIoDPX7dO3wSC?= =?us-ascii?Q?iw7ozabBF9O7tJjHQu66sxPt4AoeBoXr51pq/4KONUXv3zZQyxEVYJVYZqk6?= =?us-ascii?Q?twjlVAYNpfldnlxqnp2DjHGEDO4f0oAY/zNFjKQeebku57PUIN1l7vERxF4s?= =?us-ascii?Q?rx4PsrsRVlxRz9ReBrQzXMrlxdMup+1yWipBuO8s7XWb7BaJd1IRb7EVGGAi?= =?us-ascii?Q?nTFMqmKotLy4n5Pb150wyFAKjEpgTquF7XwoUFEOyEGHEYeTYVo6gKLVSVa6?= =?us-ascii?Q?NGbarvhwLKf4qqR7NVPiy2EnuWvGQltQXqPu4DUlsbXZWQ12mGSIW1YNxHrd?= =?us-ascii?Q?bG3nubOfFAuMmWvC2Qz+XCMVS56eIeIHiNX57YQSkjCmZGfIRAaGgfYUy2H0?= =?us-ascii?Q?oB1/0pAx5hwELo+6E3GfL1IC46W2y6EvmGMStBj+zu8AO1HCWYU+7vW+dFgC?= =?us-ascii?Q?wcCIWg6SrKukaBGo6u9DE0u6yTL0dbUA2Qzct5xnfEvIEDZKg73DOuUHI/LL?= =?us-ascii?Q?j77nE/jPW7zQoI+p3HHlgo5/RmLLCPVCy4kkMXtLAGZLITpcnmdRetVR6lJI?= =?us-ascii?Q?ZoLg3omZSH+E/gxjFVQFK9HQT32wF3phVs0?= X-Microsoft-Exchange-Diagnostics: 1;BN6PR12MB1443;6:g4TZ/7nayiAMNRPDry+Ed6KDC9b4o3dAVXAZwFkz9ftH7KEq8LQHxSVhLNYwXKg9LUlDBpAT3qsbTjHK2bd2Wpme+DHtlSyLghM52uJLhrt9wgAnPyM9UfZ4w1szrj1fUMky+YhCh9nds5mqYWBG2nuXJA21aoPyxIXBVzM8vlJCjh6eRzpguPHGMHmvMidrvB31conLHTFD4BKdy4mNKIBe+z7PiOSNnwmajxF1KtGHx6WHbedthAQ4Q3MHFKjXBQFOUqeThNH9Ye7d/mrvf9kbUSSrQiHPqe7cnvjWvQiNiW5mMRXuzG1iA4eeH89S2iarJOfb49KjMrPmrllLcbXNWfzIyo0Vn4E0GYHZvA9/ouXHyIdsp1ewfBAp2C0Oxg5qAM/sMTDSE9sBdnKTi1w0065Nzu0FmomMJKmA0aaxoDlaVUeV415bDFqEFjLH+gzRfr8mFdDxduUbcBhGRA==;5:C1THIaR7Z6rRRKytgib6R+DHyq+L+u7VYq7tffmDFo69oe2Mzo4W1qbXE+NVPJ39n5BbfBdSqiVZmrGxtDrcZeKQPLUqBE/a5Nu+lOLMRV/Nt0TSzzjfdwJPUShS+iIoYZxSwc3JMVW5WdcKXkkEKzhTqHvo78PCMGevXlHXEgs=;24:YKO+YVAuJStXugqqGeKSsa/qSXhqHn2oTJubfY0Pi2qqnSMxL1BtjC1yBsGp8ZAopaOBlYGZDwFyEl5e6PMtNAImq6A30L4NDoXGeQjUWSM= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;BN6PR12MB1443;7:UFKmYTI0Y/wuHMnvCWify6snW1jl4UMQvo+GJf4ucIqrmlg/E3bUveILDSXed2Stc5vw7x2sikGXqiOiRvRVyxueEwsNmrb9V6CDabi+7sgZaiLXm8WLnsmv2AOV/xbK0Gw2ehJSVfzCk7Ocz6YwC+Sbdb/6VbCnY0v03Hoo8fGmjmEu00GU5VKT8bXgDmfMnEJndFI/rkKQC15G04/iv6IkrxOlPP/Hx0VYbXoqayO09HJ+y3p+4qUj17MOPTegQTOOsRasJS4DVFXTrAgKFeWghQoRiUJrZI2CyPLMcghOffWJksWlDQpSgYFTF9X0znaZu2v9xN3kKGKkObZE+9MxCLM7zhupi2oNjzhJ1CMiKLs/jr/LpC6W7F2US8Htz4m61KfwBZCyYFBydCFhc7nnhzQP1i3lCxUIayv2qnRMOgr+UZHJoYhkKkWRFfdaguxjHJeISCtGGHYlLy3fvQ==;20:SBmLJIe1m7NzGiIKIsToRk1ApL61TrnecIG6UPAuFqyU/0SZFGFbBIEx9U5K2A/IDNhd5u+o3ahtz61mm35delPpzwqLEvEn04ZHVv6/5gApEoBzxvrl2vvFjDd6d4QkstczwTzWU+JxyOwRiFN4iJ8usNXy00l+VmXqjRu/gl9Y+TGmtt2LuBkp6OmeUALiwIY3oU0Apui3NOy2MebasgLXF4sUzWopefFzWmlQXU2TJ6oFQ11PToydtuaCi/oD X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Jan 2017 07:24:19.4271 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR12MB1443 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org * Fix overflow handling since u64 delta would lose the MSB sign bit. * Remove unnecessary local64_cmpxchg(). * Coding style and make use of GENMASK_ULL macro. Cc: Peter Zijlstra Cc: Borislav Petkov Signed-off-by: Suravee Suthikulpanit --- arch/x86/events/amd/iommu.c | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/arch/x86/events/amd/iommu.c b/arch/x86/events/amd/iommu.c index 1aa25d8..3f1c18a 100644 --- a/arch/x86/events/amd/iommu.c +++ b/arch/x86/events/amd/iommu.c @@ -320,9 +320,8 @@ static void perf_iommu_start(struct perf_event *event, int flags) static void perf_iommu_read(struct perf_event *event) { - u64 count = 0ULL; - u64 prev_raw_count = 0ULL; - u64 delta = 0ULL; + u64 count, prev; + s64 delta; struct hw_perf_event *hwc = &event->hw; amd_iommu_pc_get_set_reg_val(_GET_DEVID(event), @@ -330,18 +329,20 @@ static void perf_iommu_read(struct perf_event *event) IOMMU_PC_COUNTER_REG, &count, false); /* IOMMU pc counter register is only 48 bits */ - count &= 0xFFFFFFFFFFFFULL; + count &= GENMASK_ULL(48, 0); - prev_raw_count = local64_read(&hwc->prev_count); - if (local64_cmpxchg(&hwc->prev_count, prev_raw_count, - count) != prev_raw_count) - return; + prev = local64_read(&hwc->prev_count); - /* Handling 48-bit counter overflowing */ - delta = (count << COUNTER_SHIFT) - (prev_raw_count << COUNTER_SHIFT); + /* + * Since we do not enable counter overflow interrupts, + * we do not have to worry about prev_count changing on us. + */ + local64_set(&hwc->prev_count, count); + + /* Handle 48-bit counter overflow */ + delta = (count << COUNTER_SHIFT) - (prev << COUNTER_SHIFT); delta >>= COUNTER_SHIFT; local64_add(delta, &event->count); - } static void perf_iommu_stop(struct perf_event *event, int flags) -- 1.8.3.1