Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933563AbbLVTab (ORCPT ); Tue, 22 Dec 2015 14:30:31 -0500 Received: from mail-bn1on0055.outbound.protection.outlook.com ([157.56.110.55]:56384 "EHLO na01-bn1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S933546AbbLVTa1 (ORCPT ); Tue, 22 Dec 2015 14:30:27 -0500 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Suravee.Suthikulpanit@amd.com; From: Suravee Suthikulpanit To: , , , , CC: , , Suravee Suthikulpanit Subject: [PATCH 5/6] perf/amd/iommu: Introduce get_iommu_bnk_cnt_evt_idx Date: Tue, 22 Dec 2015 13:19:16 -0600 Message-ID: <1450811957-1511-6-git-send-email-Suravee.Suthikulpanit@amd.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1450811957-1511-1-git-send-email-Suravee.Suthikulpanit@amd.com> References: <1450811957-1511-1-git-send-email-Suravee.Suthikulpanit@amd.com> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [165.204.77.1] X-ClientProxiedBy: BY2PR04CA0009.namprd04.prod.outlook.com (10.255.247.19) To CY1PR12MB0444.namprd12.prod.outlook.com (25.163.91.22) X-Microsoft-Exchange-Diagnostics: 1;CY1PR12MB0444;2:iGwstnSIfPBMqMuIYubk3FvPQjyr2XRUDGXyMYqWNb1pY6HWt+PWSmqh0xZ5i3EZlsfvheNjukHZSzarxv9Ex5s1UQcVt741h7OAZqAWiMwzDQG9fC7XFFqBeFN5MQ4klWxEVA1Le57xqkiT9Xsyxw==;3:ww4PBd+n2ambN7DBHm8J161NWvY6cm0JbAIs3uaRByqNBWUk2WUsFzROxZPrD9wtJ0q2Qo9r2PBFrC3azPA5BWlILFp6YqsIS46sBr37H3edzcOJg/wCn2/FZt8eNEV7;25:kJN9naUBjol6l5AD2NAknj2N0gwG0U/Q6nwjTdrl0PY+oIN3bUvi916qVta7ZK98JnQ3ENcteHBJfME5B9CKjBn5ovYfA9KIER5fQhw1TBx60WMCmor7xuPRLSoMw7vQWCKAw/m73yLuX2v2dhhw3GKqsIjH4oxC3J4jZdyRgntfImBG/LMxYnZEiVh0rjX11LEcht9A1eWLCOa8MDfhEiwq3DN+KqsG3CM+8j2/sfPnGMyYTIg6NTI0x/+1aQW37vbIGLp/qs+NLQQjo961Xg== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:CY1PR12MB0444; X-Microsoft-Exchange-Diagnostics: 1;CY1PR12MB0444;20:Vw/G7a3Hmp2tTkuD9btmCwqmRMUjTWpDkKkKh7iUZI6fnQ7pMn5LZfzY04rXFUvc9QmvwfYgAgKE/+Oo3KjDyIo/yHkGdXhwCbnS5AxNieYWKyIp+89yUTcJm29QSy1WfzvnkbybwvyWhnpTBuI3siwBXoP3Lfl/iog0jqzXCscyWeruMqPyWOis/Cv9Mp5VMQDR5p22+Rniz8B9Zi8RTdDQiquH8kxFYl8TJnsKAYF3gZo22CvOvgMj2Lqtl20e2oUMwhFsx5FYP6nD/aP0BUdDOr2KpZMwuo/gTG1/E1cNI+aC0ewI4tBbPGT6GFtxO5WVtWpWxFu5a7C+3Azrj/QjD2w6BdTofs+FL/01xDEHBOS5sm86GPl+M3Fg+AzUMBuMb/nfrjdspOZ/mXjPRw6qyrIkLL4XmmFpfPGtwWUlLszuWEGILk5yQ9IWBVdLGv0yEhy4LpfZdf7BpDDBki+ulJZaWRbRIjkcdFzCSul4ljy/mEFAzLfKddzafLAf;4:OKsmk3OsOUMtHy48P0A91DhpTuVVW6llYWEBny25kS86fhLPcJyeL/KjlBxrmWAvHvjBtZo9NsdabX3SBDaYql8/9hObksnyv2fCL3tfN9zoOmEOnVDM0BHiIBlB4Y5OPoRGeRZ4WCSEqt52M+EM9cg0Ng5zyGjhEzrNfJ4Q0Do/lkKi7oP33BATx0dDmpCklwndnDvszoySnoJ4Z6c9PwwKvgmcl36msIZq7PlK3umd/zt9kz8Ror0wMYnES6dBmmymbSqgutlPAsyixyA8lDGk+ganZrPu9UNj7FLgsRvX295k6yXoz2MfU+j4FH7rTmTX/nWxoqr4UXLVKLQ5GwA9BFivCbJeiqD7lkkQmm1bv/+PUxDRWqtY0zB7NJzkILgTI6JFK7BU668JLkicO+y342mu6fttdWLrIQogKbE= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(767451399110); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401047)(8121501046)(520078)(5005006)(3002001)(10201501046);SRVR:CY1PR12MB0444;BCL:0;PCL:0;RULEID:;SRVR:CY1PR12MB0444; X-Forefront-PRVS: 0798146F16 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(6009001)(189002)(199003)(105586002)(101416001)(53416004)(19580395003)(50466002)(40100003)(19580405001)(106356001)(5001770100001)(42186005)(97736004)(47776003)(50986999)(87976001)(2201001)(3846002)(48376002)(5003940100001)(76176999)(229853001)(66066001)(86362001)(189998001)(2950100001)(6116002)(36756003)(5004730100002)(50226001)(77096005)(586003)(5008740100001)(1096002)(92566002)(122386002);DIR:OUT;SFP:1101;SCL:1;SRVR:CY1PR12MB0444;H:ssuthiku-cz-dev.amd.com;FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;CY1PR12MB0444;23:RjWv9CEUzoW9ZnuqVtgVzS4Jy3efIAQDo8I2uN1q9?= =?us-ascii?Q?PLGMl4NyXwYNdtOglypV8/CCprDy15aah2r/ywepkjdqgBaFmGOGbfsjbEga?= =?us-ascii?Q?o1O6xe4PcHiZq4OZn6OjqdPLpWgXH6LBqM457LzeguHZtulqyCw7b0EOXnb8?= =?us-ascii?Q?bRb0aZih46S0RhiBfiOfKl5rvnrZ668OC06SMZEf+FDPI53WHttHYTXCJGr5?= =?us-ascii?Q?Z37U9lCYWUhxMvplI6fevpKHTi3w/mtSWNA0H0sBvTut3o+eDNJuM0lERjLw?= =?us-ascii?Q?txTYvMb7N1gbJHfCXeAGfJJ5WjkAfjKvN5AjLQdEebn81j9u17O0G0UVyNly?= =?us-ascii?Q?m1UosscHUz9XqGBd/o6rLkMCGUDu86UyM+nHBIAYAu1U9AVjskcSd9Ejwum6?= =?us-ascii?Q?09/sOCVg2JGKojqvBT3OqEJy08mwQU71LHRkrKIEQmmeyD4vFwdnvS2yuhw1?= =?us-ascii?Q?7Ii76fnQARK0ZDFG691Vr1D7f/M9E9UxgFIolnG2XtjfOSuipQy7UCcthZSG?= =?us-ascii?Q?SGMGfGAMp1Q9BuM+oGvTVip98HYhoQZ/tueGtwdnXgWoQCCGqMoaNcTq+2oa?= =?us-ascii?Q?s+ub0YncU6eXJS/BbYrZQd1UvxvkWtv4nzMkE+OJMpLOkFWdSWzzlLWK9Rl/?= =?us-ascii?Q?iHWxwX/De9CxQI8ZPLhM0enAFthwiq/nanpFAAkVSMtRI8NfxHJQFcG6TvyD?= =?us-ascii?Q?NapEtxUzLzE0WY9EyOiFMLTC5Qp9Y49yXeQ2wJGuP1DIjbgqvTjDxP1WurXo?= =?us-ascii?Q?6IlDah6axz7RymCCIbYZuhK9thQnoONolWM5DpEMJ462zeWhtIekPqDcbFPY?= =?us-ascii?Q?hVA/3KLu+ytaKFmGdXXeL+vxfvg9/Fph9NqKobweer0oMG7jjM36o+mWlEhe?= =?us-ascii?Q?kFV0s6simqpbowL+UAMFd4Ytkm41TmWdsNnsJnXzQwgaotZBKaaBdiXrEHY1?= =?us-ascii?Q?OqcptE4psPMCLG4Efld8C9lJGVaW+Q8i1OoQtPgT/W6LhXKfuF42oWSop8G/?= =?us-ascii?Q?Mw=3D?= X-Microsoft-Exchange-Diagnostics: 1;CY1PR12MB0444;5:rH5P8yiNFi7L/8B9jIfXata9Azider5CbwL6wS0zCtbKFH/4Xw9Fu99+TyclSgya5SDU56pmKVhjKkHdHmaagMf8oi1TIU3oOhuBBquIgzSYo6pMSgRn5/WEtilyW0Y6AJSWIYut8krRGL1UeyEq/Q==;24:w3lz+sRvhaUyR1DkU+VcH9+bdX8BHZFFynN78oS+dm6J+3/2WQhxgs9DXp7rK+8Squ4whkkEl3biWLXPHZsPjs2WAyfBxFFdRCQCzGflSlI=;20:Lqu/W/MWOJunHj6KQag4JZpz5KgLDjbmuLRujU+2C/e4sST0PnRCoyHtJ6jud3D90FWFAKpUCyweZB8NEtIrh3MKRHRXAlL4L1u91MC01koX/df3tANBHU8XFOnSFhBHjI9mqmllvzjJ5EfM66izq3A9x+yYt2aPhfk9LYSoXjpmSlD1h0ZqW9D7uuiy4TIrBG0wBhiAKj622w+CONkJv1zIGGPC2+RFKDdh4DU1pElV6SrKnBCmYG8HitGZYa6y X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Dec 2015 19:30:20.7355 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY1PR12MB0444 X-Microsoft-Exchange-Diagnostics: 1;CY1PR12MB0853;2:CBPs4ef0oAPV6AIiglrHGHsa6NbjHvfZzqGWig8TqWcBhhVm3REZSS7VQq+ilCyLFIEDOms+TmecsX05a7aF6svVa/CDmIv1MTlBfwvgbzoajQcBzruFPYNt2ZqOg7gyCUJoYT8AunSN7KFWcbhzqg==;23:oZXRFbYwMwOdLiO8iczCNnAUNY3zXZDv0EJ0ckS0VLIZBRdmsAVELO8IxcEMSg3rrVncpQajYHlkCMKOZltfqZgf96zkQJdAvQPj1jiVTRt7A84NtImCtFF29zyx6pcsuP9gOorK0DLjY9z0mxvmnDjJLOqhbOmm+aAazu6tJnLmjsIn8dRxxh4fOnyAk2vp X-OriginatorOrg: amd.com Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1965 Lines: 54 Introduce a helper function to calculate bit-index for assigning performance counter assignment. Signed-off-by: Suravee Suthikulpanit --- arch/x86/kernel/cpu/perf_event_amd_iommu.c | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/arch/x86/kernel/cpu/perf_event_amd_iommu.c b/arch/x86/kernel/cpu/perf_event_amd_iommu.c index 99fcd10..8af7149 100644 --- a/arch/x86/kernel/cpu/perf_event_amd_iommu.c +++ b/arch/x86/kernel/cpu/perf_event_amd_iommu.c @@ -153,18 +153,28 @@ static struct attribute_group amd_iommu_cpumask_group = { /*---------------------------------------------*/ +static inline +int get_iommu_bnk_cnt_evt_idx(struct perf_amd_iommu *perf_iommu, + int iommu_index, int bank_index, + int cntr_index) +{ + int cntrs_per_iommu = perf_iommu->max_banks * perf_iommu->max_counters; + int index = (perf_iommu->max_counters * bank_index) + cntr_index; + + return (cntrs_per_iommu * iommu_index) + index; +} + static int get_next_avail_iommu_bnk_cntr(struct perf_amd_iommu *perf_iommu) { unsigned long flags; int shift, bank, cntr, retval; - int max_banks = perf_iommu->max_banks; - int max_cntrs = perf_iommu->max_counters; raw_spin_lock_irqsave(&perf_iommu->lock, flags); - for (bank = 0, shift = 0; bank < max_banks; bank++) { - for (cntr = 0; cntr < max_cntrs; cntr++) { - shift = bank + (bank*3) + cntr; + for (bank = 0, shift = 0; bank < perf_iommu->max_banks; bank++) { + for (cntr = 0; cntr < perf_iommu->max_counters; cntr++) { + shift = get_iommu_bnk_cnt_evt_idx(perf_iommu, + 0, bank, cntr); if (perf_iommu->cntr_assign_mask & (1ULL<