From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752005AbcBKJSN (ORCPT ); Thu, 11 Feb 2016 04:18:13 -0500 Received: from mail-by2on0077.outbound.protection.outlook.com ([207.46.100.77]:5600 "EHLO na01-by2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752743AbcBKJQV (ORCPT ); Thu, 11 Feb 2016 04:16:21 -0500 Authentication-Results: 8bytes.org; dkim=none (message not signed) header.d=none;8bytes.org; dmarc=none action=none header.from=amd.com; From: Suravee Suthikulpanit To: , , , , CC: , , , Suravee Suthikulpanit Subject: [PATCH V4 4/6] perf/amd/iommu: Introduce get_iommu_bnk_cnt_evt_idx Date: Thu, 11 Feb 2016 16:15:25 +0700 Message-ID: <1455182127-17551-5-git-send-email-Suravee.Suthikulpanit@amd.com> X-Mailer: git-send-email 2.5.0 In-Reply-To: <1455182127-17551-1-git-send-email-Suravee.Suthikulpanit@amd.com> References: <1455182127-17551-1-git-send-email-Suravee.Suthikulpanit@amd.com> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [124.121.8.20] X-ClientProxiedBy: SINPR01CA0021.apcprd01.prod.exchangelabs.com (10.141.109.21) To BLUPR12MB0435.namprd12.prod.outlook.com (25.162.92.140) X-MS-Office365-Filtering-Correlation-Id: e9cb2150-46e1-40d4-fce7-08d332c4006b X-Microsoft-Exchange-Diagnostics: 1;BLUPR12MB0435;2:HkWq5GuhR5fnGfHaA4MaD1m2R2q5xeICjVNNUNLcEtTYtN0aRXlhBSSbkPDeRYIhWaWlFbtLhIu2FTDAQQS7a5b8O0Hu0uXL0hhTyfm278oNuppB+d/Lt7Gts2xeWTdVhdJz01nHjFJwX1e56ooIfMWqjAxTMofeazyjRxHZHWXl1nWuCXx2jv51BcHBRjrz;3:syBcHzXSg3aDALsL3Xlj6xzqc36TG684H7YO6GxYYekldHkhsQTc/BtboZp35LVJhqQV47XOpv00DLNdS1YNKQjuxrrhczwlm+7MM++WNXo5mIDp4zvfOVQwtsNLNk2Z;25:M4yxlkVaND2FAKFaB7DAbbTT1UYTgm/SaLDH0lmjn3tambzf6C/ZtQlEQNpJpEBnSCOdNSDCJRVHXSnwXN7chRidvgtXn0dcYjr8cSaPvnhZMh+KwvVc63ZbNJH0iEMTOMrpPC5ftNRmUDpr9LhCVCmXiuCk5P3A1oqwDnk8kNWKYQwfCw4yBISe3LPdfMlnF/8WhHvV7WncSQOGDR9LHZ0CKdFa2h1/b03/k89uYlXhpGqkqbUFCv5X6CeeeF9Hy4YvGnpHZ/81tC01XZ16Vl5dlY842jXNvrl964VaW/BKQdVy3QeQjmcDgoyvlccS X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BLUPR12MB0435; X-Microsoft-Exchange-Diagnostics: 1;BLUPR12MB0435;20:wXPwybJkpCqSTPe+kAoLQ4k3WU8tica3Jo6lXEacYx3hB7fO4LGvcwuJiP+SjmfEEAmDLDtqs8ipeZB4kotiKoOhG3iJICCG8q844s2jl2uY9UciyIrAjU4sDVvUtluUpr+MqxBeSFYaxg37GXGhkAOEPyTbY0nHViuLD2PW8JBjIgLgaAGOi+Hj8rlGlWIGpeDCYm6cGSmrOSppcaENiUQazEb4bTl2a2/ZHESF4FtshaiBclGjSi7fcf+tb8uG7nfYOLEY+Uri6rZ6J4zdd0TmpTPigm1G3hRUo4qS6JfjA1fQ1Z7EmFEvMcMlRRonMlud/WVsST0YhQYZSfJNW2EGTjzubScbFdYsV2D+mYH74ANaDZ/UVnDBXJixLiPI5kkRnCmm14uBQ0vTdt+8Phtbs0SXo+GPiKotdDNDdmEbDwt1qgGKp47z1Y2l4UNPCoaNZ53QV/SKQO1jKaHs1ZyYHFCjDfOn8wAkiMi+Te2UGNizsJ9nTAHq/qjS8aVQ;4:7HncLxdNd7kniB1fexYy9IlWuwdTimVudNJKBR+ma5900GbuJ/vWKFsM8nvOkbIag2efTVR2TQtMeD4RaMm1U3yEjzT7qhhNGAWLLd2KfOF3qYa+qoNjQIxQKctiltykM8DhpSF90lOGTMPZPn/RbYUfRRqulpWviTzA6xi1c11urJmxEEV4vM8mQUf4MtcCY8a4OqwOonvxDtqCeF/zpumOYeLdc2BWKZgz4z+CmwalJEcG3ilUo2tDDQrX9QUd1LoWxjDn3m+VwEaCn8Jl4ffvj+KPaUkhAJ6cI/KhYdd/VuAdfnumFiJNwqMz8oJgCeXYnO0Wf5Y5LoHE3PfE8obGxN3MJJoxOzUEbUcFJvzAMS88Y6Tcw6w98ADjGiHkcLE50dRvwgm6Gynt7uF+k0zfEHat13jrIhxHZPy7i7A= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(767451399110); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401047)(5005006)(8121501046)(10201501046)(3002001);SRVR:BLUPR12MB0435;BCL:0;PCL:0;RULEID:;SRVR:BLUPR12MB0435; X-Forefront-PRVS: 08497C3D99 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(6069001)(6009001)(50986999)(42186005)(5004730100002)(122386002)(2950100001)(19580395003)(77096005)(2906002)(87976001)(40100003)(229853001)(50466002)(2201001)(36756003)(19580405001)(5008740100001)(92566002)(50226001)(47776003)(6116002)(86362001)(66066001)(4326007)(189998001)(3846002)(5001960100002)(76176999)(48376002)(5001770100001)(586003)(1096002);DIR:OUT;SFP:1101;SCL:1;SRVR:BLUPR12MB0435;H:localhost.localdomain;FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;BLUPR12MB0435;23:+bzwpf57vsT/bPnfXrQxjftjq74rxdRU3/sZT2qfEAk7fxJPUgQUUk6lduTiKNKhfNZwWdb9MM2/uH05WL7+jXX5XwJWqtzjq0XQ9ijHg4W+LQVwzif39OSJh7yXXFUWAjzwzGxvGhjVqKBJt9QTQfFMiJHZzPmwyEC4n42MNBCmKozATv36oY3VI5m1OScb8se3HUnZ0BNlIUIXQVxpmq3IHLYrJa30vjOrRp+nvZ8ozjylR8V5L9KOqOZUVfPydKSKB+69nzyXgTS8Ec6Er4zEgY4P8t1P282Ls9UxUJWbutcm7mmhS63e0vDi9OCsK6Yrv7cDLRt0BHMEl2cElm6g0smeBcAkqTXBTF29OcRenfevH4PzNWQHY8n7xJzPkBwLG7GN9V4uNrChFvKXhK7bWtmXtwR8nakSAZ2XABu9zGBjF1Fji0AH63OYVf6zJXzxZZlCeJarVAObU1AV+V8ARJLe/GbOG0hIzL2DvobS1z4g0YULiltb1y8o9u5SFhMSy66nQ8DPO/VIBYmsFcK0fRBI2PsYgXRBDhdIaG/iwkJeNauH0qJy6Of6ofVUyCqT28YFSeXDxDlMBvoaD0u4kubA9r+TVnCL39mf+zf35sKaRdJezSitUbUPpv0YJyYWljFfG+kQM/a9XOUyc4KnhjoiJbRzg5d5N+M6aNcYwW5GY61q9rnzrSbqokP9V7WA6TKANMpaWCK0kw7N1cJppDl/OHJJ7/R3grf2EJGrgFrmooSlSslk7UpM5ZdyfA6d9ZGauSarhVPc09A+aKoEGmCGEq4dB4+Sgr3vmJXAZJqUbRGogq1uESqoOZku+NRGMp+oI9YKbZadVte5jo6/c1k/t0IBfraKcQq7AFdBP0TUOfXxBr30apeYm1g/9sNRPZA8L9cKmP2KUrbzCg== X-Microsoft-Exchange-Diagnostics: 1;BLUPR12MB0435;5:rmoV06kuNT+5ODvjhzpeB95GlxdkUpAGhn025vlT0qF7xbKBPkye+rINtVFlauKsK5HFLsyPHO16W7kdlfAFlPv+moHsWv3/bHbOGwIiAdB5kzGsAHWuGEKs5VJLvCPpHSE6jTt1YeAgbdsSaxSiWw==;24:xmfqAm4agrgdqVcjPJRSkPocDM+SNCJdb0/UpGL/iMVRVl4t7n4FskUYcUhNI+II2JvdSIScurFTcK6I5C6a9D7mykqrol0SU7Vv/TuDoB0=;20:KJq+1EKJCRCWjulhuTGPa7FH9WIUn+7n5apnxADT5DBJZnR/Hy29slZGKytHuL2yZoCCIxCRL0rf1qp6KEbBJfCSloM9M8D+83JOCaKu4XiUP9+EOiIb+v/9f6fFbFgqhheE+TVU9n4o57xhnckDgb7cy3BDTZa8ShTEPZfCbi+L5Q4VCJEFsZq51SGVFnMCQpX4kq6WftpBogaQQr4jjrryQYCwsjFW2KTlXbQks1aZofr9Hf6JrmfczoCPo+iQ X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Feb 2016 09:16:15.9551 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLUPR12MB0435 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Introduce a helper function to calculate bit-index for assigning performance counter assignment. Signed-off-by: Suravee Suthikulpanit --- arch/x86/events/amd/iommu.c | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/arch/x86/events/amd/iommu.c b/arch/x86/events/amd/iommu.c index debf22d..812eff2 100644 --- a/arch/x86/events/amd/iommu.c +++ b/arch/x86/events/amd/iommu.c @@ -145,18 +145,27 @@ 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<