From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751957AbcGMMum (ORCPT ); Wed, 13 Jul 2016 08:50:42 -0400 Received: from mail-dm3nam03on0089.outbound.protection.outlook.com ([104.47.41.89]:16416 "EHLO NAM03-DM3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751317AbcGMMud (ORCPT ); Wed, 13 Jul 2016 08:50:33 -0400 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Suravee.Suthikulpanit@amd.com; Subject: Re: [PART2 PATCH v3 06/11] iommu/amd: Adding GALOG interrupt handler To: =?UTF-8?B?UmFkaW0gS3LEjW3DocWZ?= References: <1468231899-6987-1-git-send-email-suravee.suthikulpanit@amd.com> <1468231899-6987-7-git-send-email-suravee.suthikulpanit@amd.com> <20160711184712.GA1334@potion> CC: , , , , , From: Suravee Suthikulpanit Message-ID: <578638EE.6030200@amd.com> Date: Wed, 13 Jul 2016 19:49:50 +0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.7.2 MIME-Version: 1.0 In-Reply-To: <20160711184712.GA1334@potion> Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: 8bit X-Originating-IP: [114.109.128.54] X-ClientProxiedBy: PS1PR0401CA0020.apcprd04.prod.outlook.com (10.169.107.158) To BY1PR12MB0438.namprd12.prod.outlook.com (10.162.147.14) X-MS-Office365-Filtering-Correlation-Id: aec80fa3-8b28-4e1e-5549-08d3ab1c42b9 X-Microsoft-Exchange-Diagnostics: 1;BY1PR12MB0438;2:fHLPEn/ig0X8XrYe4rNHzEB0y3NFOQ9Zm9iaKVM0PZ39Ebxe9GSOepGfe7RMFJiQcPEMPsT5K+3ZB/ERWwDHa4hGvhK7q7Twr0zVyGCQmZ0CvDlTZZ+Ef/Bydxcp8Sg5wd8MvXNMPVwwz6y4JLqXZ3+oAo5EMAaNw9R4TaR/XURRpORX7nwFnssrOq2aMQLp;3:bWVgvHy4jcczlpb8/hvU2PHm9XPVszztXaeLfCj+iFGaVXzSxdjUte289zVSQjDy34ozKeuSwRgucPKaoQm2dgDDwm4cWMs9hlpSaqy2gJnfDHvUZdPhA0KfjM6i4BMO;25:J2KX2uojzxGtb4tSNIbBS4WJIBFeqJ6Kc/cuqglnmr02LS9SNKazmSiyNEBFnhdGoP37+cJSmu7p65ALuMj1VTlKN1vNPUVTMH6mG4jkTTAwyDkGQYtKVhut0w+T7DcLuoYsWndXmJN0sz+fvAg2a47Rc5lZU50Slsc7hyG1SyoczODhY7O1jk8tp9zAYXwdbne1kQskuvabTFRf5DuiwvOSaz9LtZvAOTTrOq27Esk0N25/o7JLyItrhENZ0shtq7jVp/u55S4OLXRpbqBBUP1nHglqomUFlPqMosoCcd+bsiEsL21O9kI/xqn8ewKLM3nVNPHCdp4hqMaEcP/Taz+Nl7VKx+V0Ut6x+sCFSk84iiVdu0bUefDDO+SVAPhW8v1Xp8Qjpwj2OmRfTQU0JlBYtKqi9OuFLHRbuUixPrs=;31:eA2sAnuWk1mLJgcEStckdX7WHpbmVXBK6Mo8gHi2zwkalG4qlTlu0pAAZKwpfC9jbtz4E6xO3yDD2j3gPfYBWfOP168F77VK1Q6Sg93qxz4Pgn91K5eBnEkyIi6YSSKmprZuYNv8RHWs2xXmZ6l4kFL5jy8n/tdJaMbl9W1KYETh7wBCUq+5yJQAxQDC0cIrsrTqf7fd/0E2/itGrNm6tQ== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BY1PR12MB0438; X-Microsoft-Exchange-Diagnostics: 1;BY1PR12MB0438;20:X/WchSyMt14ZEIOcRshLiCAGaA5tGz4OqfO8Y8+mqA0994cOOcqO/SFZCKb8fCYNQ3cdJuUi1w7qJJwojhoZwPVpl2r+oQiak/AD7QcVfCvs8qqO+OA4Yj+0HevMs1k6Q8G6Z/5IuF9Yg/MWHv6rmm5BsqJLjq+Lzr/VBx60uAtYOjFA2A3w3Rbg1rGgk33rWPNH7ygNL7VmEH/GUQdB2buUviqzfQDsBh58m6nNACvE20tEmKGubENO8TuMbq2outtJtwIPo0oG/Uc3x3chh21C/DAq+9L3bngO1hPJi8chRGZO5g/IrU7HTYDMdSlUgodDJ7ACO++GWk9AdIWJjlZ/vulMTv1aefcURrLes1UNPUlPI+6oKygCzBfURs/acB+MT58bThjcE7fvLtIRwUayX951bxNZli+JTtmDaikUl0mK3qmtQ/XBeYHJ1MlmG88hg8vH9QG0BjGa+G74ZNb6oN6Pa4lzgmLQh30h01aiBVaWgASryNQDjy7DbLdA;4:tOI99KgltOQredljy+PMi3EwAM3xbBUPiOYpzdCJnWtExrAUixa4QaGGwMrtmPY7ga7dtx9Gf5EJ1ctJPHVTr2xWelMKJJDpNwKcX6q2j8/nmXcjfiR/nt0DuD8bqyeI/1RQCYhL/noL9wQCtuvYqx9cDGs0pV9oR9x8dlspG1SL4d3Uqrg3Ddm6/z//gcSxfJ30Vp+hGFF1CFbD24iZ0+uLXBrF7JT36Qny7DovTNwMk+qlA6FDeOzY4f9EL/MEz44Z//PHAyFcOvGmHHsUSVBV6c0n4f9P8IS8MNw0UDiGjBJ9zCdz5hJqFofMIx07meO7sH70Vmu156l93IeGaTiuMfppZgADvYTjbSS+qTrvrk2XxCWDSuik7UmWQCvEw7hminwo5Jc6h3JT1dVqEKkZzddS3AP3KKP0XlEOJY4= 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)(5005006)(10201501046)(3002001)(6055026);SRVR:BY1PR12MB0438;BCL:0;PCL:0;RULEID:;SRVR:BY1PR12MB0438; X-Forefront-PRVS: 000227DA0C X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(6049001)(6009001)(7916002)(377424004)(377454003)(189002)(24454002)(199003)(86362001)(8676002)(23676002)(2950100001)(7846002)(106356001)(305945005)(7736002)(81156014)(2870700001)(81166006)(36756003)(47776003)(42186005)(59896002)(117156001)(110136002)(189998001)(97736004)(33656002)(65806001)(105586002)(66066001)(4001350100001)(101416001)(65816999)(64126003)(4326007)(586003)(2906002)(50986999)(99136001)(50466002)(54356999)(87266999)(92566002)(3846002)(6116002)(68736007)(77096005)(19580395003)(19580405001)(83506001)(80316001)(76176999)(65956001);DIR:OUT;SFP:1101;SCL:1;SRVR:BY1PR12MB0438;H:[192.168.0.20];FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtCWTFQUjEyTUIwNDM4OzIzOlRuVnZpTWJIUnRtVWVudVdIY3phdldhcDRp?= =?utf-8?B?R3o2bWlPK3l4VEhGZUZ5eEp3N1J2TFE0L2xYTGRYMUNPNFh6eW1ZbXV4ZW90?= =?utf-8?B?M3hTUFpiOGpPTFdiQnhuUjRPL0NSeUJxOHV4ZDFiWlVwa00rNkNvaGN2VlZs?= =?utf-8?B?R0Vnc2IvdkFtR2dHTlM0TXcvU3hueE84WVhHa1RpcC9CY2gxeVZ3Z05LL3NM?= =?utf-8?B?OWxKMWZXYzZFQko2Yk5UN2NLeElrVmtDR2g5SVFpOVEwa0JFT2s3TWFSaE9n?= =?utf-8?B?MHFtenZZaDdOb2x4U1ptZXdEZC9HZXVmdEVTbHJhekZPelVpMjM0T0NwdUNn?= =?utf-8?B?b2lzcnY3WDJGVzVjSzVEY2t4a3k2bEMwckRMSkpCMjZmL0srdXJXSnUwSGRl?= =?utf-8?B?bS81Q1krSUVXMUhLN0w1ZVovdnpQbUZkUmVtdThtT3U1UWVrSWlGSTN6TEw0?= =?utf-8?B?aHcwY3pWQUpiOWNEeFRUMVpkcEQyNzBMSWF1L1VXQ1BnRUtScEpQWk1OWmlK?= =?utf-8?B?aCtrNHE3SzNST2FNelRsQ24vOHRNTnhOUndhUEwrMVFYYVF6aTBLTjlvajQ2?= =?utf-8?B?NmVkcXhDS2Q3cmhmMEhhZmhXcmRrYWFQMk4zWFVtU0FrSUNLYTh3WjFTZzJO?= =?utf-8?B?VWdlUHRrOXlaQytzRmhhWSswekh3MWhOSW5VN2U5UW41eFdlVkVYamlrbEsy?= =?utf-8?B?bVJnYWpRSVhqcjZQRWtheU1HVVJPb2dWQThqak9HeSt6Y2RkTi9EOTZ1ZFhs?= =?utf-8?B?dFZtQTJFeFBraTRZUFcvRHhyM1RMWnVVNDUrd0FPNGVMaG93TEYwbC9kUXZm?= =?utf-8?B?YzBvaWhCTktEY2NWRXZZMm1NMVZCMTY5bWdHS1hITjZUOXlRUDZTYVd3d05R?= =?utf-8?B?engrQ1kyeGRSczZSUURDaHh6YldPcGlmbUc4MDR0ay8xQVBMZlBLcEtPSm12?= =?utf-8?B?cnUySVdKNVJ3bUp3RkN5dE1rVzQ1Rk1MQ1luWmJ3NU42UnpOVUpRZ0VvaHVR?= =?utf-8?B?R3M1VHBIT2h5Myt6YmpzU3hxNEMwMzJUSWE4aGRpN2Fna2ZKc3czQVorT0hD?= =?utf-8?B?cHg1eXN6ZWwwZjBVMGx3U2daRlo4cWhCYVhndXUyZGc1R004b0hQbGt2Tlhq?= =?utf-8?B?Y05LbE5YNXNIR0FYUitLekRTWmcyTC9wUkdkRkJISy81VHcvM3ZnMlg4eHFV?= =?utf-8?B?TWVrODJ0Y3d6RnZWUlN1ODNFS2ZtVXJGS0FQZTROY09XMXA2NVFPOXpLQlRv?= =?utf-8?B?TkZtRmR1YmRHaTEzemcrUHJiM08yN0hjSm9pUGhtc1BGNHIxV0c4UmtqNi90?= =?utf-8?B?d3BENis5U3VFcnp2ajRyY3BMcnRFMVhRM2Y0SjhvYlNHL201aWl2aDZGRkdL?= =?utf-8?B?OHhTSTZ1UWRPa2lYemhvTkVVUnhuRDRXNTd2Mk1tMDB6Z2VzNmlkS004R29p?= =?utf-8?B?NjBjNE82T2VrVWwxYTlpejFYUmJLNWtMUmx5RElJQlM1ZXAwa3J0RXhTcTVI?= =?utf-8?B?MGtYU2xCaHZpVnBBY3VBL3FwZEcwOXNKUmlvWGVQOWE1cTBlejdmWVYrdkJG?= =?utf-8?B?SFZBakFVcVcxU0M2RTFpYyswNjFhNEd4Uk1oU3pxZkM5ZjRGcVdrSW43WXFt?= =?utf-8?B?Q1VSVFQxeGpTbkQ0WlBlQUw3TzhkdU9CcUxQRWk1ai8zUkxuSFlCUXBzY3M1?= =?utf-8?B?b3FNQ2pOYVk2NEk0QXowT1lqaHJlOVhwVFlDdGhmVnBNSlladktqczB3Rm5M?= =?utf-8?B?aFp1TlZzNm9IWHVIYWppbTdDV0FGQW5HcjFsT1F1Ym54Z2JwbjZkeWs0a0h3?= =?utf-8?B?WlZBTEhMSmhncmpYdjhwYUJ2SU1rL1NJaGVkQkdmOTdCaWc9PQ==?= X-Microsoft-Exchange-Diagnostics: 1;BY1PR12MB0438;6:SPgQ/gAGrQSadrrnTSTCHN7ljagUVMncWr9wmz+rqR+TOeWZp45SL3jrxlDxUs9Een1GRfC9MsjhAIdBzbIKRkfyZe6/LzAGGtup5y0zx8AbBKYqSwEM7FXZ3yA7PePMRGx1VDt3uUpctgrADuPDf4BbQTNDRrDZ2HpOAlUGsTKRMogJYlTg6UkTt88r2MQY0Ni/ITRkl5+bvpm5mAsgQYxYn9CZ7GDdXGVcU1imJGEb+xkFGMVC8TF7LAY5wWWPCCbbODKYSS1CxiWFbzoE9d7kHKlhQT+Qo6mP3gilSBrOgo8zzyR0SSlMTqsbKSb3jgfgNefDcd4IX0h5s7Ejzw==;5:j7BrIH/YpBf3kkQZTrTtxsojSAt4pV3vudNmvwoR7pqYuqFQ/2dJrDseJSGFnFWyFk+ajJ15vVXE2RDtwSqdA35j9ho2Z6LoW0gyU/hH8FU6Ccfv5b3wXdvuyRE25acl8CuHWGZHqWHchJiEVMFn/A==;24:+Zb+Z0camJ3P2dIykSAPtKepOgMTgpV3XjgWRj6osD8sfaSFUxqHlBR0OVk1pflp3j8kA60UCcvpaA89OVOEhFkeNEjrhvj2Zh+eooRI+JM=;7:wGOzeqkfh4ZC9r2WMNX+aQFoe1YcZbYijiKABlBf+CjEM/LMrG/NZTvaEBLFaucVGIrrW0aD8Otlejakj+zyP26yx9kin6SZlX0IsmLRIdWv462Kc3amHNpdDQFvunGCplah1bGLAcawSXppGzRaaMzNk2vKZ5gwcpPnW8Urvrba41hPcmfkJEwlGpvGRmT0bR/2L+Q1HThYL30bj64s60PsM9h93n+TwtbOWBi8eGU+3n+9M2aH6e9brevVGaLK SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;BY1PR12MB0438;20:uq/m45c/q7ueAozvgrbox9GWF3mnnASZrJ3rBJMq5NftKButekezeyKZXbK3m214mRgd9VxN6HEs7WAXshY//EdLa40UXubvfyc/A1lVz6VNRLEsWCuOjRqyLZq46ARav2+7+zBPKS5FCHcaKAZZq/OOo6hjQbBacE0EeA4JA097ZalmYm8j9piOobXOrH47l72Okl++6HD32mVFHpVJlFblCG08qmDeyLo7SM6hHovFvFs71f+Jy1fNXQ4LxSt1 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Jul 2016 12:50:23.2158 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY1PR12MB0438 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Radim, On 07/12/2016 01:47 AM, Radim Krčmář wrote: > 2016-07-11 05:11-0500, Suravee Suthikulpanit: >> From: Suravee Suthikulpanit >> >> This patch adds AMD IOMMU guest virtual APIC log (GALOG) handler. >> When IOMMU hardware receives an interrupt targeting a blocking vcpu, >> it creates an entry in the GALOG, and generates an interrupt to notify >> the AMD IOMMU driver. >> >> At this point, the driver processes the log entry, and notify the SVM >> driver via the registered iommu_ga_log_notifier function. >> >> Signed-off-by: Suravee Suthikulpanit >> --- >> diff --git a/drivers/iommu/amd_iommu.c b/drivers/iommu/amd_iommu.c >> @@ -741,14 +741,101 @@ static void iommu_poll_ppr_log(struct amd_iommu *iommu) >> +static void iommu_handle_ga_guest_nr_entry(struct amd_iommu *iommu, >> + u16 devid, u32 ga_tag) >> +{ >> + struct amd_ir_data *ir_data; >> + unsigned long flags; >> + int vec = 0; >> + >> + if (!iommu_ga_log_notifier) >> + return; >> + >> + spin_lock_irqsave(&iommu->ga_hash_lock, flags); >> + hash_for_each_possible(iommu->ga_hash, ir_data, hnode, ga_tag) { >> + struct irte_ga *entry = (struct irte_ga *)ir_data->entry; > > if (ga_tag != entry->fields_vapic.ga_tag) > continue; > > Multiple different ga_tags can map to the same bucket, so we need to > explicitly select the correct entry. > In the upcoming V4 changes, we should not need this look up anymore. >> + >> + vec = entry->hi.fields.vector; >> + break; >> + } >> + spin_unlock_irqrestore(&iommu->ga_hash_lock, flags); >> + >> + if (vec) { >> + pr_debug("AMD-Vi: %s: devid=%#x, ga_tag=%#x\n", >> + __func__, devid, ga_tag); >> + >> + if (iommu_ga_log_notifier(GATAG_TO_AVICTAG(ga_tag), >> + GATAG_TO_VCPUID(ga_tag), vec) != 0) The necessary look up (i.e. to get vm and vcpu information should be done in the calling notifier here. I'll update this in V4, which getting ready to send out soon. Thanks, Suravee