From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751882AbcH2Ev5 (ORCPT ); Mon, 29 Aug 2016 00:51:57 -0400 Received: from mail-sn1nam01on0069.outbound.protection.outlook.com ([104.47.32.69]:62528 "EHLO NAM01-SN1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1750730AbcH2Evy (ORCPT ); Mon, 29 Aug 2016 00:51:54 -0400 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Suravee.Suthikulpanit@amd.com; Subject: Re: [PART2 PATCH v7 00/12] iommu/AMD: Introduce IOMMU AVIC support To: , , , References: <1471978363-13756-1-git-send-email-Suravee.Suthikulpanit@amd.com> CC: , , From: Suravee Suthikulpanit Message-ID: Date: Mon, 29 Aug 2016 11:53:28 +0700 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:45.0) Gecko/20100101 Thunderbird/45.2.0 MIME-Version: 1.0 In-Reply-To: <1471978363-13756-1-git-send-email-Suravee.Suthikulpanit@amd.com> Content-Type: text/plain; charset="utf-8"; format=flowed Content-Transfer-Encoding: 8bit X-Originating-IP: [165.204.77.1] X-ClientProxiedBy: BN6PR03CA0056.namprd03.prod.outlook.com (10.173.137.18) To MWHPR12MB1455.namprd12.prod.outlook.com (10.172.55.136) X-MS-Office365-Filtering-Correlation-Id: c2e9911e-f7a5-4bef-6c90-08d3cfc830cb X-Microsoft-Exchange-Diagnostics: 1;MWHPR12MB1455;2:yVDHKFAve7qtkFu+VdsJdJuqlwqJWM1Eb/JRPXT0Uq5ru36ZCvxD67tjaU6OD5+k3ehIHd9804MigO4/UCmOSi8wKbnPOZiaiWL9am0BH00syXGSTw9CzvntgxJ9CMzX10fL1x2W2UtWXEbRmTM0nw7U4p+Abm27ToITraVhd78A2av8tfB0KV4Ia/r6JT8+;3:U0PMfodtxDNOlLKKptfhjjDPf/UvMWVtmaTIA498eHGrruqg/k6geNqboYLq5pb0Qi0MHlpL+HYDk7gXkqM9oH4+TCoswHbbWni9UL8ozTRqcVQGzCXs04+QQpNIGDVv X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:MWHPR12MB1455; X-Microsoft-Exchange-Diagnostics: 1;MWHPR12MB1455;25:AaUSHSsAMDF/UcvpoQlPEhFfBdabPVFcFUQiXtG0sTyBsw/Eu3yZs252mM/0wg7nVYX5hYWRC7d9ro9a20xPwfS3oc6dTHxjPC+8gC1lS6yEwQx749Kw8A8V1gf4Vi/8G69I6eN8l53vq4MMFskcQI8xnLfke/sSvCYu+aZIjdn4SY9w8HToXfyQMxAD0lhRvO8rXU9Ue2QrLKWraMJu8JRLy6FoN2dNZz1YLDO2WeedVqfrJQMocI0VrvfBD7Ixo13YSTANLLB9Tw9li+KDau+RiwF8jWhLGJ5qI2yAwYjR17qnqIOgtE1VtsGA6TjYfaVEqeQR40DNTMID7njhHgFhGC7j9MiMfDki5UvDaYwoDcz+/XfXiCtAZCNkxAhG4FMbORe0u08zPF9EMwka9sTV0LMY4fUOUvebM2WXQPMCCmXimo01+9RicjA4lTkIea6chIja/R7Cn9f9GKgIhh1UF8ZzAFKCCGMIpqOfzvJvFNQlLk8hpS1ULw0A1C2htQ7Xa6yP/gzSI3znVvyIEVzErP4do/DDQysfg4dL3juwzCDki2akZNBKKJ9A7+n1XJhmoejCHQOWt8R5fOzFTXAVQuX0sDFJHgpmWQc/A4v+Lup2nPaETZDva31e5GD4Yijb3Il+SasG9PuAUZYU5mwrE17kZGts3LlAMNFIOAqUh53BExnExcFWrlDTQ0yN/V1zZM+qgUskm92U1+nWbya7GcVAiljC115c6nxY/IIth1CjfSL+/hcC7A1UvXVXGp3VwokY57Hpi1R9YoqIkbUfgBKr/O8qIUEo+AxDMN0ta9uom7yfMg2LvltWj9CO X-Microsoft-Exchange-Diagnostics: 1;MWHPR12MB1455;31:dx9bSyq2QCCH0RbsSj8XfaQ6Q1i9iThXtz3RssOKMIm3Hm/1cbPEvssA8os+2JJET1LJNJXNnOZ7WJns+lxI9DesW3nGtDL4kIgTG9h+SEskuVXLwV20WGSmT89VHq4Zi+Am/swRq+Dod9GHeGQmQkpi5hunI0G7TahlAuBhn/EI9nbwv+FXiLMbDAf63ioiNdoWcJpUJqRK/7Zy9iCB3R58cln0PMPs01jjRJRjsFk=;20:ANZvSimdFZos7FCWSqaxhfPmzz8MvkK94efvB3zOLOcojYVmuL56XD2sqcxszVHyHHWGf7qZLH5yN8P4zH6iBWYuI1jk+S0Tv7JwVT5Z+dIV8j+3I0oihavUOEpEeO2as0Kw7OfCZY7K3aGpjxfDyYJ4e3rBkMu2+1Tzr8XKmehTN2eVVw/7VRA6kOlW/86mIhJVw/01Wjf9QRvq7FjM/ULYL5Y/5Ui6e3KUcB+ivAgyF1swI2ovN/Na5nkJWDWvdf5dd4Imd2cXYtfKaIT9Wb3SrpF8wwVDCKDKXVfdYnLHEiypbDLXStDkn0bfIBim/fdMxq4eT3dBkPBGV5PHKi330e3ipY60dIL68b1nzuqw7JrLD5KmU77Fbi1SqlnR2e4FxBLHAQNZUf9po7zX1/VSIFo98rAvcMTleHGKpB/sUlxvoxEqZy1Wpat6NoIqutfLEXgTLe8T5xfUiLmJz8H7HvXGQQgphCLKJfmhc/KOamcJLP/lIeysGwPz2hbN X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(166708455590820)(767451399110); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040176)(601004)(2401047)(5005006)(8121501046)(3002001)(10201501046)(6055026);SRVR:MWHPR12MB1455;BCL:0;PCL:0;RULEID:;SRVR:MWHPR12MB1455; X-Microsoft-Exchange-Diagnostics: 1;MWHPR12MB1455;4:0Kz58g0Fjqlw+BzpufIDRhRs7md9PhETnw4gYpZ+nm68yH037xh2oIaGaz57Vy4TdwyhpPe5eYCoG3Ptc6c7j7n9/xkql6V5KdIZuH9QNtQuRK8e44eoxvL/RZBWxFPrKq+1NezGLBaZbhdVs+6MXHmn5uFKrfGVWCchSPfYBmYVDwUrij6eHKF76m8g4teVYnawQDAKzzPWqarhnWL1ByPbx9CxzyTQdjZ6UsdAx0PCC7eFKiXDEdjryrJE4buz1e2pzavu7qXNfU95z6MpwfnxX4NmcCcRhdRbN/nzrZKSFgpSXDoWX34UvIZLcQc0x6zCvY6hhgehdlqTOPefNBKcjQ10YEIdpgbGbTBljdaAqaS4KBIriiWpr2zNExe2f5PQbNz5PjNcBG3e3T/rDvXYPvlCk8MdijUJ6SfE25g12xOM39tWYWWoqpKdoaVxMe7n/lOHTX48B0TGL+VBMB7Zow4whtWnX/V+mcClhRs= X-Forefront-PRVS: 0049B3F387 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(6009001)(7916002)(189002)(24454002)(199003)(3846002)(77096005)(50466002)(65956001)(15395725005)(83506001)(19580405001)(64126003)(19300405004)(65806001)(66066001)(2950100001)(586003)(5660300001)(101416001)(7846002)(33646002)(15975445007)(7736002)(106356001)(8676002)(36756003)(2201001)(2906002)(19580395003)(81156014)(2870700001)(305945005)(42186005)(86362001)(92566002)(53416004)(97736004)(5001770100001)(4001350100001)(6116002)(31686004)(19273905006)(68736007)(189998001)(23676002)(81166006)(54356999)(105586002)(31696002)(47776003)(4326007)(50986999)(76176999)(65826006)(217873001)(562404015)(563064011);DIR:OUT;SFP:1101;SCL:1;SRVR:MWHPR12MB1455;H:wsp093979wss.amd.com;FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtNV0hQUjEyTUIxNDU1OzIzOmNUVU9wdE55T0JtY3VPcGwwalB0eXRXUTMw?= =?utf-8?B?MFZiZXdMK0NJM3FxK0ZSUGEzaTJLM09RdVl1aFUzZGVDdEJhZE0wcXFiUFda?= =?utf-8?B?bGNFS0ZJY2x3dkt3SEVpVGtlWFZ2ZjU5Y1R4OXhUN2xKTWdzWWpERENEbHht?= =?utf-8?B?bjZ3YlZiNkxSb3p1bVQ1akRqTVd2QXdhcmRWL09heERicDBIZXFqTVh4MENM?= =?utf-8?B?NTJlNVBpWGpyajQwMmFTN1RpSTdVWG56ai9aMmJKekxhYXJpOXVaV1lsSlM4?= =?utf-8?B?VTBSd1JHR0ZmSDJuWEtZSGlxcGk4ZjhNTThvM05nbFFFYWFOenpBTU5TZUNq?= =?utf-8?B?aVNvN01nUHhFZDZhU1loU2hvTE9zZ0s0OGliSTUyZ0haR3F3TmptcnhqaS9U?= =?utf-8?B?bGppc0kwUG9tdE9OVVNmV2VFUWIyRWMvOVdna3ovRHVJQ09YVjlNdkltT3NO?= =?utf-8?B?REVzV0k0UjROSEtlajdsZUxKMWhzRVNLNnVzVUxGTnhoK2gzV3FlOGRJYURV?= =?utf-8?B?ZUdZWS9ka3BraXpUYU82a0lEMjZPQU4rQXJKRjdscVU0UlNIS0Z6SHAzYWVY?= =?utf-8?B?bHptdENRNEhyN3BNUWZMS1FwMmMvakJYS09tejZCVEViZG4zdmxOSEJxK1hB?= =?utf-8?B?WWY3RlZqQStaNFp6OHRoZWlqSEtsNTh5aW0xMG9RRjdCa1grcUxPeUx4WTBS?= =?utf-8?B?ajI0UUlnQjFYRnZ5QWZIUXd2TThmVUc2T0hHZGU2cUZpWFl6L0RlZzVLejdh?= =?utf-8?B?bWRkcnUwY1dTMVQ1cDFuRDJ6NTdRNmVxSXNtR2l4bktEcGs4MVlHaFFNWTVK?= =?utf-8?B?bkdTeDRXQjJOODNyODlzamxGNGFaVDZieWlReXA1K3FrRTNPeW1XOWF3RkVU?= =?utf-8?B?S2dzWXI3SlZNMm9PcmJpNUFjcDhrY09IdmpYRDk3ZHBUT1lyQjkrWUp6QVdO?= =?utf-8?B?Ly9tQlRkaS9oSlExTDdwZVhKNUJTUERia3lHSXJ0L0VObFpKd0c4Y3doN2Ru?= =?utf-8?B?VmpPbE1PMy9BNFZTOE8vZWpmRG91blloTUQ0cllLeEpQSGZXTUs1M2NGWlJp?= =?utf-8?B?QU1VbEI2blVqTThna3VZMG9vV0NkKytRVkJTclJNSG10RDF4a0NzaG5aS1d2?= =?utf-8?B?eXJ1bEhyUkNObVE5WEdaZkFMSXg4azRNK1VlWUVhUWtmTWxxZVpGSmMrNUNo?= =?utf-8?B?MzltODQvMm9oMmxyOGlXMm5GYlBycnloTEI3NjFuVXdMM1VGMENZK2tBTjAx?= =?utf-8?B?OUxDQzJ0dnVZcng2dmpVSDJEalVPWE81cytQVjZBYWNtdHhkcWkyOTU0RExj?= =?utf-8?B?YWUrdHBJOVhRSTlKbTdLT3BlMDJITXdNUjVNTUUwK292aXlKbStCQ1dwelJV?= =?utf-8?B?ek9IMS8vMUZtbDVvWm4zei96SWtwaXVtZGJLYnlHNlRjWFdObXdQTXdZOC9F?= =?utf-8?B?UEtCTUN5cWJyZWFWcFM2Sy9XbitNRHdPUWxsOEN5TzNpR1VNZmtuRHpDd0hX?= =?utf-8?B?V2QvZTRjd0lyUVNhbVQ4Yk1Ma0JBWHgxSTBJWWYvMXIzRVJEbVBSSlZQMDFs?= =?utf-8?B?WXVZWkU1TmNzckx4NGx3MnZTR1BUSUJRTnBRV2VOcWV6MFVTRW5wU2FBeUV3?= =?utf-8?B?cXdFNTN0YW0rV3Q4eTZkSDN2NlkxNXF0cGRPbGNMOWNMUWNYTmVnSnJENXlv?= =?utf-8?B?bUhmVXdpbUpQbFA1SkgwSEtGYVAwZDlIbk9tMFJmcjVvRERKZENFK0w2RzhZ?= =?utf-8?B?WW5HQWtXc0tVbGJzdEdxR3ZONGRSZU0vOFFhRWZ0U3dyaDc2L2tOZmt5dmV0?= =?utf-8?B?S1JxRTRTcVE1TExVUWQ0b0pUYXpvcjRKUGZ6NGx6OW02cVVaRzVxTnRQdlhh?= =?utf-8?B?eDUrNGVaL0JzWU1iaVVuU2JYVXgvd25mK05sc0trU3djK09Eeml6L1RucnZl?= =?utf-8?B?MElXcmpHV3pWbXpTZE5CREYrY0FlRTZObEY4QkpzRUdJbGFqc0Q5OGhUYWFF?= =?utf-8?B?M3pXYjlhSkZkWXJ6M2tKWHlxV2wxckxRd0Y4dz09?= X-Microsoft-Exchange-Diagnostics: 1;MWHPR12MB1455;6:kKGZJykIzGuwS6DmVwQl3T5wkv/KXvaQ6wejQNsx66dhHKxAW1ELY/Noe5RbqfJDsyo/ymMILMro7znO8ThgvPz8Y8QRUo7jI+dGK5vy35YSH2eJWk4Xf02XhEdkC7aIAOIThmaal/FF2RP3p9YWtk0R9dk5jYXC3W8zJU1VEaNl3pEZcNmZtX4n6ey1TgzUQSfaVqpc2R8K97Zg0bPMizOeMOgT2So7Fn1P/nw420HTaX9tUCwD/AEQOWqheg6Ga6kD5PE7ERm64nN7E2nxpGltf/bLF/K2dnS9qJh/eHPaZ9KhBOLf5XLU2seXaaxn0R2lWDwZnizvXEL+Uy6/DA==;5:GGVFuxX1naNBMookRYkvwZ0tOA78NRn2vYxKiHQejzW2DFo/x6gXBNTHSrEKdNPjBjdlYrOYMhx4i/59COgEwfciYQHLjgkKnSTUpw9uNyoy3Ovqur6Jy2K7iA/zR2+3Hv0mihg1zrSPFVkh6mIvRg==;24:dCBdKcHBF2eg9FIhGDbcoWctHXIiQCdMuovAD7JeMDQj+fyME6VOQPXRjG/dRubFn6ki21YUhhICe4G72SC5+3JJJscoMmNsiTsJErb5mAk=;7:t236My3taSeQDK3zybKd7Y/t9qbcx+QHNbm0tMwJcC3e4Vg9J8KKjGWWUNie17RyEBPBDlTMTBLiClx7mGssbc9YswNmWx/stbPNRQR3vYC+AV2yfjEI2FXLXs5EpR9zAY/kSx5O8RiwBaxWFuYfuzSxZsd2iT99uHLjelAJHUFIjPbAajxxU9nQqhhXolorI6QPXxIQFT7NwjTFPfnf+gL2/5deOdIBeRlSfwCykNA3Z51UqkvCY4vj58pfiokO SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;MWHPR12MB1455;20:PihpPdyC2r14Kd3SpXz2fs4uJm9X+uEOZ4AswoYZNKKwfy5jRBEKYWDzB6Ymm10AtkTcU2WsB7TkMAXuF8VkQla/jk8BqUa9cMJ8rLWAhPayMAzjaznjiRvQVHguhV58lBw4aMCm1PsI7VGpX6hSqO5oVIruD8EKoydILrrHfibpBgOnU7xzYg2FihSuLCXQxPWwyw7MDD71q3Rbt+r56lQoMymEEK2IFoTyloODQ4wJGWU0ye7HGHqolPqpHY5e X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Aug 2016 04:51:44.6466 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR12MB1455 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Joerg, Radim Any other concerns? Thanks, Suravee On 8/24/16 01:52, Suravee Suthikulpanit wrote: > From: Suravee Suthikulpanit > > CHANGES FROM V6 > =============== > > Per Radim: > * No longer expose struct amd_ir_data to SVM. > * Introduce struct amd_svm_iommu_ir (amd_ir_data wrapper). > * Fix logic to manage ir_list where we need to remove > the posted interrupt from the previous ir_list before > mapping it to a new vcpu. Tested running smp VM with: > - Using irqbalance > - No irqbalance (manually set /proc/irq/smp_affinity) > > Misc: > * 08/12: Only set ga_root_ptr in amd_ir_set_vcpu_affinity(). > * 10/12: Fix bug in #define AVIC_GATAG_TO_VCPUID. > > GITHUB > ====== > Latest git tree can be found at: > http://github.com/ssuthiku/linux.git avic_part2_v7 > > OVERVIEW > ======== > This patch set is the second part of the two-part patch series to introduce > the new AMD Advance Virtual Interrupt Controller (AVIC) support. > > In addition to the SVM AVIC, AMD IOMMU also extends the AVIC capability > to allow I/O interrupts injection directly into the virtualized guest > local APIC without the need for hypervisor intervention. > > This patch series introduces a new hardware interrupt remapping (IR) mode > in AMD IOMMU driver, the Guest Virtual APIC (GA) mode. This is in contrast > to the existing "legacy" mode. The IR mode can be specified with a new > kernel parameter: > > amd_iommu_guest_ir=[vapic (default) | legacy] > > When enabling GA mode, the AMD IOMMU driver will configure device interrupt > remapping in GA mode when possible (i.e. SVM AVIC must be enabled, and if > the interrupt types are supported). Otherewise, the driver will fallback > to using the legacy IR mode. > > This patch series also introduces new interfaces between SVM and IOMMU > to allow: > * SVM driver to communicate to IOMMU with updated vcpu scheduling > information. > * IOMMU driver to notify SVM driver to schedule vcpu on to physical core > handle IOMMU GALog entry. > > DOCUMENTATIONS > ============== > More information about SVM AVIC can be found in the > AMD64 Architecture Programmer’s Manual Volume 2 - System Programming. > > http://support.amd.com/TechDocs/24593.pdf > > More information about IOMMU AVIC can be found int the > AMD I/O Virtualization Technology (IOMMU) Specification - Rev 2.62. > > http://support.amd.com/TechDocs/48882_IOMMU.pdf > > Any feedback and comments are very much appreciated. > > Thank you, > Suravee > > Suravee Suthikulpanit (12): > iommu/amd: Detect and enable guest vAPIC support > iommu/amd: Move and introduce new IRTE-related unions and structures > iommu/amd: Introduce interrupt remapping ops structure > iommu/amd: Add support for multiple IRTE formats > iommu/amd: Detect and initialize guest vAPIC log > iommu/amd: Adding GALOG interrupt handler > iommu/amd: Introduce amd_iommu_update_ga() > iommu/amd: Implements irq_set_vcpu_affinity() hook to setup vapic mode > for pass-through devices > iommu/amd: Enable vAPIC interrupt remapping mode by default > svm: Introduces AVIC per-VM ID > svm: Introduce AMD IOMMU avic_ga_log_notifier > svm: Implements update_pi_irte hook to setup posted interrupt > > Documentation/kernel-parameters.txt | 9 + > arch/x86/include/asm/kvm_host.h | 2 + > arch/x86/kvm/svm.c | 406 ++++++++++++++++++++++++++++-- > drivers/iommu/amd_iommu.c | 484 +++++++++++++++++++++++++++++++----- > drivers/iommu/amd_iommu_init.c | 181 +++++++++++++- > drivers/iommu/amd_iommu_proto.h | 1 + > drivers/iommu/amd_iommu_types.h | 149 +++++++++++ > include/linux/amd-iommu.h | 43 +++- > 8 files changed, 1188 insertions(+), 87 deletions(-) >