From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753240AbcGMIyQ (ORCPT ); Wed, 13 Jul 2016 04:54:16 -0400 Received: from mail-dm3nam03on0082.outbound.protection.outlook.com ([104.47.41.82]:32628 "EHLO NAM03-DM3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1753019AbcGMIx0 (ORCPT ); Wed, 13 Jul 2016 04:53:26 -0400 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Suravee.Suthikulpanit@amd.com; Subject: Re: [PART2 PATCH v3 10/11] svm: Introduce AMD IOMMU avic_ga_log_notifier To: =?UTF-8?B?UmFkaW0gS3LEjW3DocWZ?= References: <1468231899-6987-1-git-send-email-suravee.suthikulpanit@amd.com> <1468231899-6987-11-git-send-email-suravee.suthikulpanit@amd.com> <20160711190932.GB1375@potion> CC: , , , , , From: Suravee Suthikulpanit Message-ID: <57860171.3080400@amd.com> Date: Wed, 13 Jul 2016 15:53:05 +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: <20160711190932.GB1375@potion> Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: 8bit X-Originating-IP: [165.204.77.1] X-ClientProxiedBy: BY2PR21CA0037.namprd21.prod.outlook.com (10.162.74.175) To BLUPR12MB0434.namprd12.prod.outlook.com (10.162.92.14) X-MS-Office365-Filtering-Correlation-Id: d8159fa9-a955-43e9-c93d-08d3aafb222e X-Microsoft-Exchange-Diagnostics: 1;BLUPR12MB0434;2:gR60Y6hKPCIXJRyo7L8nOnngNsX5UTYh6LsijiCpq1OA7P7m87nFu0knlQKhGK9dRsyw+BlP9rFhbuTYPLv/CnngIh0iQdSC2qBkTNplAU+U79NjyECOilfhmlo8vk7G7z6eqDMq0fUT3RcUF43xl2BbvVA2JE2KcVVurwhKUjDmIqNJVS4tmldvtKqmGQFX;3:csCNjCjCWQMkSDRgss206ojXZj38ci9GPpetVbiPK2/hhYjew6ICSwMy2dtOVVJL9VyrVH9y/hCvQFL/jYBRqjG9CLyDzMmhE8PHNVYh+Io2w8O/npoRl3Lgr5XLtLQE;25:bOSjiNGl9r2URGCtsashAUvWOIRVRS9qfYS3jm4ix6+eqC2LfHIREnzKiRVtqJI7ngsev07ipTHSSXa7gIb+c0y7lHUpsnwZ82fsZmBVSCmqHYl/w/fg7iYKsCncxO6F4FqsKKAGUUClxh/lSaFidezSHgwmJ7NybmJttyMI6RB1in61JUPj4ZKdjU6tztWXo2GfpMaMezXEM6ZAYdfBp4ZMFwoAJO/ym63/VFmAYlKwyVhP0DhCYolQZ+uBOXZ0PENK1IEmc982KV7E/4/giulPIJ7y/dhhCI3AVGTGD7mOmGHWIm6HvK/KmZxXGJNiAKN0gEIIG7kZgrntZij9dVQL0ch4YbesoYl3e9YFY9xiWote4yEGhCwY5ZsqZSqgHh4EOIJBpmY9GZmZsvFrKi7FgBhxiX4uOI8d9tvdJ8E=;31:pogaNPgkaK8T8H7suT723YU15zDWcsmkv8lB/K2uXiLlDVUjYpfGZhveQYU6/PAU6gBZOI2r/t09itxcG5wAg92vxevPKwh5p1GZzPzfhn8PVZWYtyr6gAz+UDlJA+FvvM548IAU02NWJiBLxYJf127lhS/zMIme8VvuVIhUIywIWpNoQTZ9oDDrPJVbRGQ9W3FDOISiNPWTZlzbwTQ60w== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BLUPR12MB0434; X-Microsoft-Exchange-Diagnostics: 1;BLUPR12MB0434;20:kfFi0tEo2XVh67FCUk836X6N178TsyUriKlkXh8g57CxwCYo3s9GpAzVDRam+umFXVYoX+rzoIusEaDEMk+1ejzAELwl9VMZk4m+7nzRdWTfWqqfSzkqmKYnrt6gwdv8tSbtZ/7ME3JI9VLPm58VkPApaqoLPzbu4yS0qeI/tW6iGSk5GlZtnL2QI16zKlXg2UdZGYt+kXRSpSZZteGFb7sNKOy7FHBoOfjtjr5e8JqeH131ePNb6arJ0toLmYkKYQyUch9qC4txi1nfQzJFK5vt4LvRy50wqbmU38uR4XYLvgYPzkyfll2j2U6Kt21Uve8hQmZj5FOgUdHlBXrxVhz8VKAsrV7p6wrAbAGcq7hyP6sO215wLrby/OMFS+DYe6IYWKDpNBMlnt30pZ5Mc7PJtvXyS2xt8zMHyKzX8MSgBQ5ppPPCKioCAfHB6FPzvigU7mUPuryDWQPm5b7yP4hFHa1WllSzGbKqRgD8R3r4SMnN3GOmPmIAIYPzDgJQ;4:qtri/+QI3PAhNfjB3DANcRL5EoaoskuIR4NkWuAOkH8PViNdWY64Ob196UhZVet9pYPu5XjsNXtFapzm7o5HW8onxlyFHwOj4U11Md2RVnILbRHME4vAtCtJzF9J3ui1pQh2mRELX5ZQGixR3jMnMDUrrBCu3DJGtTobvbCOuJya2R6PRoln2m/UNCQS4b8/xG7f3sGbxJiDPnSNsgjXV1WemtDey2u7QO27CUm/caQ0/9713gfCv4T1Sh1EI5h03tzSpz7/aZQ5yAu1lwQPgZ4PnsLjV9vD+fou7Y+BIi/8gxRUUETOoC/Re0fecFjjDKhEZGdZW/8Vd6Qi/ya8Pib+M/pQYhMwxrNU0XwWKX1wbZ0bzfzMNELZk+UnQ4uwHGcReLnLEc+0WXHD8RBr+MejfqW2IZOk16KimReXE5NGNt6xbhmjAcCGo6EaLXKk 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:BLUPR12MB0434;BCL:0;PCL:0;RULEID:;SRVR:BLUPR12MB0434; X-Forefront-PRVS: 000227DA0C X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(6049001)(6009001)(7916002)(377454003)(24454002)(199003)(377424004)(189002)(19580395003)(83506001)(19580405001)(4326007)(7736002)(8676002)(81156014)(81166006)(64126003)(105586002)(99136001)(42186005)(106356001)(117636001)(92566002)(305945005)(59896002)(86362001)(2950100001)(77096005)(101416001)(23676002)(68736007)(97736004)(189998001)(4001350100001)(2906002)(47776003)(7846002)(65806001)(76176999)(50466002)(36756003)(110136002)(586003)(50986999)(122286003)(3846002)(6116002)(87266999)(65956001)(2870700001)(65816999)(54356999)(66066001)(62816006)(217873001);DIR:OUT;SFP:1101;SCL:1;SRVR:BLUPR12MB0434;H:[10.224.12.108];FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtCTFVQUjEyTUIwNDM0OzIzOnh2NkxOM3ZaZEQrS2xyU0hNTkdJWFVrOEor?= =?utf-8?B?bkZEeFErOU9wUU9aSWN3Q1hXbGYreWFhQnNGanhlQ3Z4NHF5K1QwV0VJMGJY?= =?utf-8?B?b0w4VjRlU2Q3MktnbCtsaHZvY0w3MGlMdWVVWGpFdVllekhyeDRIdjVNdysy?= =?utf-8?B?S0l0dVdydGoxcFNmNHZyM3kreGJ1QXV5Qy9xVUl4QmtYa1hBcHNJOTJtU0hq?= =?utf-8?B?eVJrbzdMdzVudDNqcFVyWWZUSUx2YmpXamhhZkoxMFJyU0taYkM4cEpkTy9u?= =?utf-8?B?NTdiU05qZ2dyN0syZjUybnAzODM5UEU0aG9xSTJhYVlINDBpTVNWMzc1SGFk?= =?utf-8?B?NS9QUEloa08rcE4yOUhmS1lxMDFOeDcza0U1cmt5UkU2Ti8vbFdnUjhNV2Mr?= =?utf-8?B?ZFpveVNmQ1Z0QWxXS21GQVhVRVVNNmd4bW14MkRFZFg1eE44cEthTGlGYnVT?= =?utf-8?B?OFFrSGlFQnR3dk5rOFFzL2pCNkhoa0p3eE4rUEljbDBsRmVWaHh6NEp4ZDI4?= =?utf-8?B?N2U3eHd1ZVpBdFdtMlhyQVdsaTlKa2MvZk15LzE0aG5CN0NCNGFkVUtHK05P?= =?utf-8?B?Ti80K0VROU9ON29NOWpzREdjV3FmcFdkazN4TUZ2SGMrSGd1Mk52ZjNmWmk5?= =?utf-8?B?NHQvTWJzc1JPZm5PL1YxYkhLWUpiK0MwOFord2RnbTNlRnh2bFhQNDV1ZCtY?= =?utf-8?B?eEh3NWN1NUpKdHJ3N3hqY2NHZmFxaGRxbDIyeDZ4Ry9OaUZWWGxScktacmV0?= =?utf-8?B?MUtWejN6bENwMkdRZS9QRmRWSVN5T2lHU2g4ODIxd0RORS9LalRiTDl1VUZN?= =?utf-8?B?RG8zNUhvZlNNdlptYSs5MnNBcU15aVN1UUtLRmR4UkFRbFg1TzhhZ3JFL1hu?= =?utf-8?B?aERVYm1xOVkxR2c1UytSczdhdytkRjFwVGVvTm1kaW9NYVVsTUhnaUxlcnBt?= =?utf-8?B?cTBkeTFXMVQyM25VKzFpTytXRFVnYWRZbGVrL2VRL1UyTklScXBvMXRlQ3p3?= =?utf-8?B?S0N0eUorNUs5NW9BNXB5TDd6ZkNLRk9pWG1Lc2NjM2VnVHpScjloa0I3d3o4?= =?utf-8?B?aTFHL3FzTDltU3NWZ1l1VHVMaTlQOFVYQVRJMW5pR3RmM3lPczFhMVNmUGVn?= =?utf-8?B?SFVBbGlLSWl3bEtpN1hGNTVXWGhzVS9ybm1leDZCa1NFSjZ5ZzRxWUVBcnhs?= =?utf-8?B?VElHVkxVWmx6cGduMUNrN2hwRFNrT213OWo3UklKOXpTU2N2T3dCZUszdEFy?= =?utf-8?B?OHhnVklUbXp5NmlkL2p5ZVV2VllXdGNEZE1USnBadElNSHR1MUVlSW9NY2tT?= =?utf-8?B?bjlJWHROTDRIeWZCSXJMUGlZTVBTSXdHOEVXeDZpaVlaZzVJNmh3Qkc2N05G?= =?utf-8?B?aTJhYm9sS1BwZWVHZkcwSmlpeW9zSXRxYnltd0l2SDFsNlJtN2YvQWlhVmR4?= =?utf-8?B?SWtZUStZRDlsK2NqNDhsbnFZVHRTZ0hqaGkwLzBIVHRaN00rejRJT3U3UlQz?= =?utf-8?B?MG5nOFdkYTNrTkpBR1NZQzNZUWdBRlB0TG9iNmNhd1doZ3RBaHRzMUQ5RDAr?= =?utf-8?B?RWl5VGp5enhRbHF5VlllT3FaQTcxb0dBWjJLN1VkQjNyeUs0bWZOQnJUbkJH?= =?utf-8?B?RnRKY3FCM2lUeTR3Ym9lZ2wwbEtrV1FtTHdtZmVyODhUSHlrM0ZVc29ITEVV?= =?utf-8?B?cVR1anZ0VFNzOHp4RWk3dlI0TmJhdWFveGUwRDlaK1pPSlVxc2U2WkdMem5l?= =?utf-8?B?OXluS0dEeGs1ek5DUjdvTWEvL0VsK2dBb0VUZWZJVnQzRkEvQkxxQ2lPNmpm?= =?utf-8?B?WDRLL09iSmNDSVhQOVpNMnRwQ0Z6enkrZVRkK0k5NklIWG9DOGFseXpkRHRD?= =?utf-8?Q?4B9YnoD75Qc=3D?= X-Microsoft-Exchange-Diagnostics: 1;BLUPR12MB0434;6:/kYncllXUzn14oBcQpt+l0z1mBbZIc/+WpjssAco7E23F5toU4u9YUdTzG00UwC//BqNwItdsza2kGqq1CqZ4VGpUU6BsGvkKTPlcDfn2ghEpwdNayePhB57ASX82XjAQIRHHu2ClAh0WT4pAhHlp+4H3hpz8JkEKNx9JbBznH+l3v1ElJmBck26D8NP8K1bonyZvUm0+IaeheK5MRfZPGG1FiJa8Nk0a7gWZr8WP96mAX6Irw1Rg2rsZyyrVBsg7o3npFR0zC9IsvfT7JP4rpcIWNbOMajCrSgJVPbDKpRlO39NqRj/sRFcLds7EacMFJllZwFWSkJKIMHPu7Bstg==;5:eu5nPshJzadYZHOhfr9X0r584VdxQcga+dTMRp+vV2LYPGYWyuIAyL7XSxe6bN6z8xaVRe1IByde4Dlc05YIydjuPOy9kC36+7J/TgaAiUH9IAn6pVCfL+q0GUKZRoEwZrqWBrcDAqvduCwM1/BpcQ==;24:oXDUmsVw3BTCIaTrEXimXMR6oyY4+TZmCp4oTPnz3H3wzzb5XCcLTOWmiA9hY1HuZlmFSZ3eNMfWdEtUh1L1iIjXio+8yz9+clLEGETDMss=;7:luqEMb+gjH49kVUPmBpFmjxJOsuu8JGRS9cBWYYmD9k9wOc2Dsxn2Oc20OhdPkoOZpofdGmrbTZ34GsYBH5E9euRBL7dHTYRrbhprbzFjrL+C7NcEw3g6O8LGdQL8w4ZoOdYgPO+jAQuX0KRB1fR7W9Jc26Zo8GW7lypyq1l+PtVKFtmJyPu+q/vYMUH4Mjt1LrlslfeJ2cNGigfgtH/dJUEwqI3rb132DhyL0mvLEEevHdglhUrD6j8WJj9a5JF SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;BLUPR12MB0434;20:DjflNy7pvaUGI2HfYXXggXgG28JPvBBmIBBF4jb+fZvj46VvVa1cM8gIJvM1lJXQewgij8uBM8ZKrdVx/2kKql/mxbEaQEsTsDG2Gy3mdq9rSqPC18yOjTsx3vVGAPNY0FH2i8NSgt27O+Yz49iucS3qdkS8eAnG0YHqGLGSe9UxLReGQJScBSdmVyGLi6LEPzbDsebfI516baeq2CfmVqYgYFKEAnkJdCWXQIah9TT2pHW6BhGPU4Gj5Qri3clE X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Jul 2016 08:53:14.2969 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLUPR12MB0434 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Radim, Again, sorry for possible confusion from the mis-use of the word ga_tag for parameter naming in different places. Please see my reply for the patch 07/11 for more detail. On 07/12/2016 02:09 AM, Radim Krčmář wrote: > 2016-07-11 05:11-0500, Suravee Suthikulpanit: >> From: Suravee Suthikulpanit >> >> This patch introduces avic_ga_log_notifier, which will be called >> by IOMMU driver whenever it handles the Guest vAPIC (GA) log entry. >> >> Signed-off-by: Suravee Suthikulpanit >> --- >> diff --git a/arch/x86/kvm/svm.c b/arch/x86/kvm/svm.c >> @@ -928,6 +930,45 @@ static void svm_disable_lbrv(struct vcpu_svm *svm) >> +static int avic_ga_log_notifier(int avic_tag, int vcpu_id, int vec) >> +{ >> + unsigned long flags; >> + struct kvm_arch *ka = NULL; >> + struct kvm_vcpu *vcpu = NULL; >> + struct vcpu_svm *svm = NULL; >> + >> + pr_debug("SVM: %s: avic_tag=%#x, vcpu_id=%#x, vec=%#x\n", >> + __func__, avic_tag, vcpu_id, vec); >> + >> + spin_lock_irqsave(&svm_vm_data_hash_lock, flags); >> + hash_for_each_possible(svm_vm_data_hash, ka, hnode, avic_tag) { >> + struct kvm *kvm = container_of(ka, struct kvm, arch); > > iommu_handle_ga_guest_nr_entry(), the caller, already performed a hash > lookup to get ir_data. Cannot we store the vcpu pointer in ir_data, to > avoid a second hash lookup and a vcpu lookup? > > Thanks. > The iommu_handle_ga_guest_nr_entry() has the look up logic to map ga_tag back to an ir_data in order to see if there are any pending interrupts targeting a particular VCPU of a particular VM. The look up in the avic_ga_log_notifier() is for SVM to map VM_ID to the struct kvm_arch. Thanks, Suravee