Received: by 10.213.65.68 with SMTP id h4csp1027368imn; Wed, 4 Apr 2018 11:17:29 -0700 (PDT) X-Google-Smtp-Source: AIpwx4+X32lsCLKrd0Kj0z8BoLSxoDMXDcCiQP6tmc57i6NCqRdZtWJAURhulS6E9Z9INCpB8vXA X-Received: by 10.98.74.17 with SMTP id x17mr3075542pfa.91.1522865849203; Wed, 04 Apr 2018 11:17:29 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1522865849; cv=none; d=google.com; s=arc-20160816; b=tS42Rbrpp3sEIFtkNz+ypeQCN1eyA+4iYkQvHFcqfdntAVo/O7DY1GmpTRYO+tlbDP EkoapUnuGuU9jCsRANz5Ka4YO9MLkJUIyYc5VwLjXtRTqv+xyqK0Ft5cI7by5g+DfkmU 47JhIYjlovGWQbcMzx2eISm7yijSx6tbxS8cZfHS6daSuv6MwAL3HzopYKEJQ+2RpxW2 CRZhhph6FKWyeXKyyITJmOOEq+7nbyG86U/JRChvF/E/BFqC0urCJq8fueytStFzMrli AMGs0M9wsp5wILkzDZySFo2dbeVdHwC7m9q0okpDnIBwN0CVhYYIEfpbvgGnsmgfd1bk hY3w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding :content-language:in-reply-to:mime-version:user-agent:date :message-id:organization:references:cc:to:from:subject :dkim-signature:arc-authentication-results; bh=9ze+8r1vIODZdDANUf4qxyDLpkefio7s5uzq5gygrRQ=; b=f49PxgVkS8qG9bAQW4SPWoJ4CxC2gALWR/gJqf4Zk3uTweQp/rfwhbFIySWYF77Y1B 261PxI21npRbVuaPejggJUdoXkzy3d+qNZ4DuER/gOVA1+iRIhadXUZniVUFhGeJRkqD oD7jyehEZ55LD1i2ABHuRLVg42K/5OSyI2cCn+gG4ych2hcqEXsm5WsTio5Yk2qDe3Yy 8J0NRqWONxj0KUHgBltlCeoqJsTlU9ygswzfW/ha3CWseQD37oIF+kXaiknEClDukmQ0 puCmihxJhatve/gj1sIJSK0PTKPkEl+paByFDlZezREi2fZrbGT+dfJnlRrafJcWVNEw NCFA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2017-10-26 header.b=jsrN/6DR; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id d185si4009338pgc.746.2018.04.04.11.17.14; Wed, 04 Apr 2018 11:17:29 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2017-10-26 header.b=jsrN/6DR; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751544AbeDDSQE (ORCPT + 99 others); Wed, 4 Apr 2018 14:16:04 -0400 Received: from aserp2120.oracle.com ([141.146.126.78]:60184 "EHLO aserp2120.oracle.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751231AbeDDSQC (ORCPT ); Wed, 4 Apr 2018 14:16:02 -0400 Received: from pps.filterd (aserp2120.oracle.com [127.0.0.1]) by aserp2120.oracle.com (8.16.0.22/8.16.0.22) with SMTP id w34I9Ni2079940; Wed, 4 Apr 2018 18:15:46 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=subject : from : to : cc : references : message-id : date : mime-version : in-reply-to : content-type : content-transfer-encoding; s=corp-2017-10-26; bh=9ze+8r1vIODZdDANUf4qxyDLpkefio7s5uzq5gygrRQ=; b=jsrN/6DREFEzTu6R5aIDh5/15QcgiGCoEYBgDXLH0uX4UHhxmRnI/HNFnZ8hbyA9V3Xy mFRCbwFTQkv+GWO5tac59NKzGbmNCC2hCUGqkFsYjrRBuxjlozAupXDTWJhxyhXSqw3X nZeTkPQS3vq6ET3R+VirKsghSaKgRBWcI0m4WTBk623SsgkHdYwxr9murJjpuC0c/4dr jcJvQGnqtLaqPVC80QHJTSXVevPhu2XOeQ07GOxTg5lY81mZhmvEeNztgn0hbmo+DAp8 ljvb15XXAITxfHEOiClBSb3MHAlKe1vd8Kgvqzd8TFfgXBefmghmrJ+lggr2Q5u5oDEX hQ== Received: from userv0022.oracle.com (userv0022.oracle.com [156.151.31.74]) by aserp2120.oracle.com with ESMTP id 2h53r2g281-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 Apr 2018 18:15:46 +0000 Received: from aserv0122.oracle.com (aserv0122.oracle.com [141.146.126.236]) by userv0022.oracle.com (8.14.4/8.14.4) with ESMTP id w34I6C16028625 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 4 Apr 2018 18:06:13 GMT Received: from abhmp0002.oracle.com (abhmp0002.oracle.com [141.146.116.8]) by aserv0122.oracle.com (8.14.4/8.14.4) with ESMTP id w34I6Ctp021871; Wed, 4 Apr 2018 18:06:12 GMT Received: from [10.152.33.213] (/10.152.33.213) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Wed, 04 Apr 2018 11:06:12 -0700 Subject: Re: [PATCH] iommu/vt-d: fix usage of force parameter in intel_ir_reconfigure_irte() From: Jag Raman To: joro@8bytes.org, tglx@linutronix.de Cc: iommu@lists.linux-foundation.org, linux-kernel@vger.kernel.org References: <1520375981-4958-1-git-send-email-jag.raman@oracle.com> Organization: Oracle Corporation Message-ID: <23b8f026-2dc2-e00e-98d5-f1a090e3e534@oracle.com> Date: Wed, 4 Apr 2018 14:06:39 -0400 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.6.0 MIME-Version: 1.0 In-Reply-To: <1520375981-4958-1-git-send-email-jag.raman@oracle.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-Proofpoint-Virus-Version: vendor=nai engine=5900 definitions=8852 signatures=668697 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 malwarescore=0 phishscore=0 bulkscore=0 spamscore=0 mlxscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1711220000 definitions=main-1804040181 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 3/6/2018 5:39 PM, Jagannathan Raman wrote: > It was noticed that the IRTE configured for guest OS kernel > was over-written while the guest was running. As a result, > vt-d Posted Interrupts configured for the guest are not being > delivered directly, and instead bounces off the host. Every > interrupt delivery takes a VM Exit. > > It was noticed that the following stack is doing the over-write: > [ 147.463177] modify_irte+0x171/0x1f0 > [ 147.463405] intel_ir_set_affinity+0x5c/0x80 > [ 147.463641] msi_domain_set_affinity+0x32/0x90 > [ 147.463881] irq_do_set_affinity+0x37/0xd0 > [ 147.464125] irq_set_affinity_locked+0x9d/0xb0 > [ 147.464374] __irq_set_affinity+0x42/0x70 > [ 147.464627] write_irq_affinity.isra.5+0xe1/0x110 > [ 147.464895] proc_reg_write+0x38/0x70 > [ 147.465150] __vfs_write+0x36/0x180 > [ 147.465408] ? handle_mm_fault+0xdf/0x200 > [ 147.465671] ? _cond_resched+0x15/0x30 > [ 147.465936] vfs_write+0xad/0x1a0 > [ 147.466204] SyS_write+0x52/0xc0 > [ 147.466472] do_syscall_64+0x74/0x1a0 > [ 147.466744] entry_SYSCALL_64_after_hwframe+0x3d/0xa2 > > reversing the sense of force check in intel_ir_reconfigure_irte() > restores proper posted interrupt functionality > > Signed-off-by: Jagannathan Raman > --- > Hi Thomas, > > I noticed that you added intel_ir_reconfigure_irte() with the > following commit: > d491bdff888e ("iommu/vt-d: Reevaluate vector configuration on > activate()") > > Could you please confirm the usage of "force" parameter in > intel_ir_reconfigure_irte()? > > drivers/iommu/intel_irq_remapping.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/iommu/intel_irq_remapping.c b/drivers/iommu/intel_irq_remapping.c > index 66f69af..3062a15 100644 > --- a/drivers/iommu/intel_irq_remapping.c > +++ b/drivers/iommu/intel_irq_remapping.c > @@ -1136,7 +1136,7 @@ static void intel_ir_reconfigure_irte(struct irq_data *irqd, bool force) > irte->dest_id = IRTE_DEST(cfg->dest_apicid); > > /* Update the hardware only if the interrupt is in remapped mode. */ > - if (!force || ir_data->irq_2_iommu.mode == IRQ_REMAPPING) > + if (force || ir_data->irq_2_iommu.mode == IRQ_REMAPPING) > modify_irte(&ir_data->irq_2_iommu, irte); > } > > *ping*