{"id":818959,"url":"http://patchwork.ozlabs.org/api/patches/818959/?format=json","web_url":"http://patchwork.ozlabs.org/project/qemu-devel/patch/1506494000-31982-2-git-send-email-Bharat.Bhushan@nxp.com/","project":{"id":14,"url":"http://patchwork.ozlabs.org/api/projects/14/?format=json","name":"QEMU Development","link_name":"qemu-devel","list_id":"qemu-devel.nongnu.org","list_email":"qemu-devel@nongnu.org","web_url":"","scm_url":"","webscm_url":"","list_archive_url":"","list_archive_url_format":"","commit_url_format":""},"msgid":"<1506494000-31982-2-git-send-email-Bharat.Bhushan@nxp.com>","list_archive_url":null,"date":"2017-09-27T06:33:16","name":"[v4,1/5] target/arm/kvm: Translate the MSI doorbell in kvm_arch_fixup_msi_route","commit_ref":null,"pull_url":null,"state":"new","archived":false,"hash":"6bcfc5c3173412b5f2dae0dfaa1ee8e1bf6820c2","submitter":{"id":70741,"url":"http://patchwork.ozlabs.org/api/people/70741/?format=json","name":"Bharat Bhushan","email":"bharat.bhushan@nxp.com"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/qemu-devel/patch/1506494000-31982-2-git-send-email-Bharat.Bhushan@nxp.com/mbox/","series":[{"id":5292,"url":"http://patchwork.ozlabs.org/api/series/5292/?format=json","web_url":"http://patchwork.ozlabs.org/project/qemu-devel/list/?series=5292","date":"2017-09-27T06:33:15","name":"virtio-iommu: VFIO integration","version":4,"mbox":"http://patchwork.ozlabs.org/series/5292/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/patches/818959/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/818959/checks/","tags":{},"related":[],"headers":{"Return-Path":"<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@bilbo.ozlabs.org","Authentication-Results":["ozlabs.org;\n\tspf=pass (mailfrom) smtp.mailfrom=nongnu.org\n\t(client-ip=2001:4830:134:3::11; helo=lists.gnu.org;\n\tenvelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n\treceiver=<UNKNOWN>)","spf=fail (sender IP is 192.88.168.50)\n\tsmtp.mailfrom=nxp.com; nxp.com; dkim=none (message not signed)\n\theader.d=none;nxp.com; dmarc=fail action=none header.from=nxp.com;"],"Received":["from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11])\n\t(using TLSv1 with cipher AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3y27RK2FmYz9t1G\n\tfor <incoming@patchwork.ozlabs.org>;\n\tWed, 27 Sep 2017 16:37:33 +1000 (AEST)","from localhost ([::1]:52413 helo=lists.gnu.org)\n\tby lists.gnu.org with esmtp (Exim 4.71) (envelope-from\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>)\n\tid 1dx5yN-0001PA-DX\n\tfor incoming@patchwork.ozlabs.org; Wed, 27 Sep 2017 02:37:31 -0400","from eggs.gnu.org ([2001:4830:134:3::10]:35501)\n\tby lists.gnu.org with esmtp (Exim 4.71)\n\t(envelope-from <Bharat.Bhushan@nxp.com>) id 1dx5xO-00017A-40\n\tfor qemu-devel@nongnu.org; Wed, 27 Sep 2017 02:36:35 -0400","from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)\n\t(envelope-from <Bharat.Bhushan@nxp.com>) id 1dx5xJ-00089l-99\n\tfor qemu-devel@nongnu.org; Wed, 27 Sep 2017 02:36:30 -0400","from mail-cys01nam02on0081.outbound.protection.outlook.com\n\t([104.47.37.81]:16177\n\thelo=NAM02-CY1-obe.outbound.protection.outlook.com)\n\tby eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)\n\t(Exim 4.71) (envelope-from <Bharat.Bhushan@nxp.com>)\n\tid 1dx5xD-000870-3Y; Wed, 27 Sep 2017 02:36:19 -0400","from BN6PR03CA0013.namprd03.prod.outlook.com (10.168.230.151) by\n\tCY1PR03MB2364.namprd03.prod.outlook.com (10.166.207.151) with\n\tMicrosoft SMTP Server (version=TLS1_2,\n\tcipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id\n\t15.20.77.7; Wed, 27 Sep 2017 06:36:17 +0000","from BN1BFFO11FD027.protection.gbl (2a01:111:f400:7c10::1:124) by\n\tBN6PR03CA0013.outlook.office365.com (2603:10b6:404:23::23) with\n\tMicrosoft SMTP Server (version=TLS1_2,\n\tcipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.56.9 via\n\tFrontend Transport; Wed, 27 Sep 2017 06:36:16 +0000","from tx30smr01.am.freescale.net (192.88.168.50) by\n\tBN1BFFO11FD027.mail.protection.outlook.com (10.58.144.90) with\n\tMicrosoft SMTP Server (version=TLS1_0,\n\tcipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.20.56.11\n\tvia Frontend Transport; Wed, 27 Sep 2017 06:36:16 +0000","from localhost.localdomain.ap.freescale.net ([10.232.14.21])\n\tby tx30smr01.am.freescale.net (8.14.3/8.14.0) with ESMTP id\n\tv8R6a2N9027330; Tue, 26 Sep 2017 23:36:09 -0700"],"Received-SPF":"Fail (protection.outlook.com: domain of nxp.com does not\n\tdesignate 192.88.168.50 as permitted sender)\n\treceiver=protection.outlook.com; \n\tclient-ip=192.88.168.50; helo=tx30smr01.am.freescale.net;","From":"Bharat Bhushan <Bharat.Bhushan@nxp.com>","To":"<eric.auger@redhat.com>, <eric.auger.pro@gmail.com>,\n\t<peter.maydell@linaro.org>, <alex.williamson@redhat.com>,\n\t<mst@redhat.com>, <qemu-arm@nongnu.org>, <qemu-devel@nongnu.org>","Date":"Wed, 27 Sep 2017 12:03:16 +0530","Message-ID":"<1506494000-31982-2-git-send-email-Bharat.Bhushan@nxp.com>","X-Mailer":"git-send-email 1.9.3","In-Reply-To":"<1506494000-31982-1-git-send-email-Bharat.Bhushan@nxp.com>","References":"<1506494000-31982-1-git-send-email-Bharat.Bhushan@nxp.com>","X-EOPAttributedMessage":"0","X-Matching-Connectors":"131509677765095109;\n\t(91ab9b29-cfa4-454e-5278-08d120cd25b8); ()","X-Forefront-Antispam-Report":"CIP:192.88.168.50; IPV:NLI; CTRY:US; EFV:NLI;\n\tSFV:NSPM;\n\tSFS:(10009020)(6009001)(336005)(376002)(39380400002)(39860400002)(346002)(2980300002)(1110001)(1109001)(339900001)(199003)(189002)(6666003)(2950100002)(110136005)(5003940100001)(8676002)(316002)(36756003)(189998001)(16586007)(97736004)(50226002)(54906003)(104016004)(5660300001)(7416002)(47776003)(105606002)(39060400002)(4326008)(76176999)(50986999)(8936002)(106466001)(53936002)(8656003)(50466002)(72206003)(86362001)(2906002)(81166006)(498600001)(48376002)(2201001)(356003)(77096006)(85426001)(81156014)(305945005)(68736007)(2101003);\n\tDIR:OUT; SFP:1101; SCL:1; SRVR:CY1PR03MB2364;\n\tH:tx30smr01.am.freescale.net; FPR:; SPF:Fail;\n\tPTR:InfoDomainNonexistent; A:1; MX:1; LANG:en; ","X-Microsoft-Exchange-Diagnostics":["1; BN1BFFO11FD027;\n\t1:a5MEUXVA4E7UMkc8oPJYjwxCiSYcdYgzrZ3wSmEnKW1eGFX9rsyyDKS5LnXaxJSsDbzLPoved6QGOyDZQMTvf5Gz7Y+k7JhQJ5h4vfsJSE4WTh7GXobckjYsSIJUqJ3f","1; CY1PR03MB2364;\n\t3:r7KuGDxmCmqrkPRTqHC8sBvrmSOw3FPyS6g81S89fmf8ipXkjWwN6dX8GIK55HJ5hPKOvd4p978UOlntmqrYtLgBmJoqEPRwvRdVN60MDHkB1tJzN83N1tet3hI09mq4aIqxejBolHM29tXnkoIL9y0K+ESdvdNnf5opG+CKNwkOtrY4KK924wS8VFqaz0Jne/Z9YH91RNs6rhziTG25kue5PwkoTc1R9YRO0Y9XeZ7KSQX/tPbMOlhLXftS9ExuVgFKoLQKRjH2pK0lOWoNID1a9xq+DJWHVQlf2wtF+DdII08GYfmG0qRBeFzwMB8xzBeImqN0C1NoHC93JxNp2bWyH//wHYFiYgYdEvXr+IQ=;\n\t25:rNqHgQ+3IhO+ocSS4d/Uplou05b55wwoXGZMg2JGhghnvvrBkIcfYCFmImREB6Cbu2CGqRGeH1UoiyS/mCi+P5p1zGbk7zcgkrIYWEcfAkGzAmky74nK4DKWyHUECNftpdOMHjkRrlVzjjbolEXF4gc5cII/GI5UnigvnhEhXEIOOFibHJRuLhckGXiEOi2AlvIMq3VgN3kUqbvi8j0OEAcktmEZl1gsvCaMXjEOM5iQBoINWdVt8QCpUEzUP9+tcj1UDByqzXPRAKzpznN3kfcgilpVV1hCgsmoFNpmLymAgMilAE47d5FMr15BQ4TW8BLaXnNz76jGPME4obc5UQ==","1; CY1PR03MB2364;\n\t31:7D24fxEVKyOPEdEFhNgnmMPtM5EI3i134WNZrPYYNR0rJq50x+k0zcQ48eEwujlBRkZCf82me/VUIV5XcuFLp/FiZ3B3V05Ilk48YCqjpVivki8HNKMx0/Bq+HaRVwqg9KmQdQmSZFmwrLUJuvkceI4J17LGoTAdGlopPGSYkNdSTDRHzpZBBxiA7wu7k220MEeGSwS1663hrmNZb2VBsyDvINw69Usn2ZX1mbODtg0=;\n\t4:QJiXyf6B0zbMTAzIp6b39J4g070+gZbuaUwbO26oPImw53MHtotaHxQAE/KxzcvTriSPCK99gPWlH7mq18IYS++oUU5dPctg15OELhOoP1VstCK0+ADtvi1orZVy355qknYUnbKWShPgCeKKJQj9gFYzgHZP7lSjIaA6NM+LLDTQTeIQEhRmPxrqFPTcV/XwjS5Ghi9sBKVY9fFyhaUEzwsDjr0w1hj7bQ1L+FaVbkd0Z2gkh/AhezsTodzz4Y0bcAONkSoOL+ntKnkPPemBFUUpDpWDMYZsg9xOLz0b/TM=","=?us-ascii?Q?1; CY1PR03MB2364;\n\t23:PBPxLY/H6AOmreYAJtRW4VmrSHJT4M0SBVF6bLZYh?=\n\tyliyMKi4/K1VK75E660KKBDXuubu64RUhi7sNRa+2hnwJl2D+GDmdEi3PREvx3icHu/79XzurLz2iH6DhAu6MEvtDWkFcv1Dk3wwHONI8DaxJYVaNB+5v+wt85yUdROAh3/vR6hk4x1mwOnhJA7lmtbg6xFRCikRehmo5xX49MtdS0AgeKL6MJEXWvBslMXvjfcbyDolYvXfiZBKu9s8guiIbsUZS2jtFttda0PBvwByAUy/iQG0yr6FqEN+t0qQ2LItyNomM7ALXE6OxOHvkwSJSfZpiSm1Ik8IfO5Z/ZEKszvq8LGkV7uRn8N+1pGfQ6t599QuuCR/KV/aBylYAHe/kjbdz2Ndcm1xPbTSCT8nmmasyUXvd+jSt9OAvl86EFyI+Kw/rcMOW+BCGzlOyqoGWKLcbmDqnfbl5mk/zzzQUXCLw8DL/h7xk3ok4qEinmeM6vCkgDJdS+1INM/3dRTBaQLfKft00PoW3vOeGgbmB2GhfKa2iPwf1fBoFFTDkwTUIB8EX4fMJiVzl7jTzBIUcxCN60Z9uSCZAGLFAK9i9IZOpegKRGf2R9SzjY6sEFtHZuxIcKVyNURNWvom2O94B9bP2QVuB64hIiUf5UyKFAbxkZ5eIxvk0FfLTEpo1puuG3I64WYQo1zYwAvhb94bDPkgXzOQN3OjFu4Uf9g6Qcl6I57BnvjWbp+k3dMnDmBUlYT+BzLdNoojc+r+4qDSGjjHin53scxlIqV/pHOFDPp1nr1pkxmqTRgmdILsfDvDor0ShHWvoaL0olZeVTUmtwQ7aNbbC3U0c1LRlrHBAJpmKpemfsttVTWSfpbbW8ErNcTA7C51o1MzjjxyRz4o0AkiEYHMoW81r1a1bLhSTF/Ia0b2U1hx4dVPRKoINQDitEvQuSMHrhcgkngcdBt4zRTuvtD2RMciWTnwTl9yN02f/HIB9JJfitin//8AKk9R/yqo79wlEHuFL9Oyx2X0WHaODfD5B6gU8/pY8KIqWVdXPqZdXcgqPdePOkSK6j8Rhg61dWGOxFxtRzd0ei3C/ljngMwy+FSMgH/u5RZT2B3h2JwbIWphq9CXrtKgOFWI/pXBvYUbWr54aYFnSNP/yEyWE7aKEzdh6W0aw6CFn/jaYzLeVbTLHXyihR+A6sq9JjnRc2gPa4DWyD332RjMxtfo4AH96VXrnAFenFZlA==","1; CY1PR03MB2364;\n\t6:Yx99reyICkmyL9uBbW0YP+tF6FXlY8ZnTcI63Jez2GNcslXfP3nZr9mIQ3vh1I6CnQjWRtzumYKHvn8Q+ICXO0ZZFXEQQ/urQpvqLSz0/Cs6+LOieiEAewxYsG9NBlkEdP60qkMZEvQkP9HNgwNIWpzuljBgTQJWZ7gWANgKkx9wRLDtexJdZt+KGu7fd2xCwuWWpXWRi4W5RR06w1D34i3uxLR17AQhL0lEBdNPu95XpgNwxAFWnXOCwzofwsLqenfM7hWovrfmw/wHMNggp3o7FKEw81MjpdS9+OLWtSYZNWCV1eNWyjfyfpChofURYYLuEWDqCBUAzbgE+5MVaA==;\n\t5:jgTjH7Dg4eKV/7e1DKDyrH9jmL3c/0lWHZaooO3IvbxdJLDFbtvEwtkFA7Rcwp2/4Ufv3OmL8e4D7aq/atdvEU6fOGqkDW2ak3FH3N+KRDNAFodlU4Vcim/M/tGt89PzGL/fyS8WiqdO8QFlwMGipw==;\n\t24:rFlAhsaNZ+FrvFFz5VE/+V+jNcVUmgCLby2MhyCiTVTA0j5LUOlU+upA5RpNN6sNpCRFCVmZMbT2CtfzYZRtLRx5LpfiDuwZ3A2739UlOJQ=;\n\t7:i7RPw+8f2jsihGbNWz6WuAqFvhpS0ipCzq/TRkMTXwW3YYajI1HJV60lAxwoHdgqVe0uyS32H9VUyJvi1ZOQBjW1QQqw+N1uKqdgfJwxuaeOEYnqU5qw0g7YylZY7qUQZXUCD5wAnPe3p+8CDZBOsBZS6v+PEtPYXEj73WWMYGg91JbK64IdSTtNDNia3580B+mNfnswsIbXz6mGkvlN+16dq1WlIPizTO7DpN82mGY="],"MIME-Version":"1.0","Content-Type":"text/plain","X-MS-PublicTrafficType":"Email","X-MS-Office365-Filtering-Correlation-Id":"8b2e6cf3-b9b3-40fe-e31d-08d505720e1a","X-Microsoft-Antispam":"UriScan:; BCL:0; PCL:0;\n\tRULEID:(22001)(2017052603199)(201703131430075)(201703131517081);\n\tSRVR:CY1PR03MB2364; ","X-MS-TrafficTypeDiagnostic":"CY1PR03MB2364:","X-Exchange-Antispam-Report-Test":"UriScan:(185117386973197);","X-Microsoft-Antispam-PRVS":"<CY1PR03MB2364720A5A8D7969E0DC262D9A780@CY1PR03MB2364.namprd03.prod.outlook.com>","X-Exchange-Antispam-Report-CFA-Test":"BCL:0; PCL:0;\n\tRULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6095135)(2401047)(5005006)(8121501046)(100000703101)(100105400095)(10201501046)(93006095)(93001095)(3002001)(6055026)(6096035)(20161123559100)(20161123563025)(20161123556025)(201703131430075)(201703131448075)(201703131433075)(201703161259150)(201703151042153)(20161123565025)(20161123561025)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095);\n\tSRVR:CY1PR03MB2364; BCL:0; PCL:0;\n\tRULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(400006)(100000804101)(100110200095)(100000805101)(100110500095);\n\tSRVR:CY1PR03MB2364; ","X-Forefront-PRVS":"04433051BF","SpamDiagnosticOutput":"1:99","SpamDiagnosticMetadata":"NSPM","X-MS-Exchange-CrossTenant-OriginalArrivalTime":"27 Sep 2017 06:36:16.0882\n\t(UTC)","X-MS-Exchange-CrossTenant-Id":"5afe0b00-7697-4969-b663-5eab37d5f47e","X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp":"TenantId=5afe0b00-7697-4969-b663-5eab37d5f47e; \n\tIp=[192.88.168.50]; Helo=[tx30smr01.am.freescale.net]","X-MS-Exchange-CrossTenant-FromEntityHeader":"HybridOnPrem","X-MS-Exchange-Transport-CrossTenantHeadersStamped":"CY1PR03MB2364","X-detected-operating-system":"by eggs.gnu.org: Windows 7 or 8 [fuzzy]","X-Received-From":"104.47.37.81","Subject":"[Qemu-devel] [PATCH v4 1/5] target/arm/kvm: Translate the MSI\n\tdoorbell in kvm_arch_fixup_msi_route","X-BeenThere":"qemu-devel@nongnu.org","X-Mailman-Version":"2.1.21","Precedence":"list","List-Id":"<qemu-devel.nongnu.org>","List-Unsubscribe":"<https://lists.nongnu.org/mailman/options/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>","List-Archive":"<http://lists.nongnu.org/archive/html/qemu-devel/>","List-Post":"<mailto:qemu-devel@nongnu.org>","List-Help":"<mailto:qemu-devel-request@nongnu.org?subject=help>","List-Subscribe":"<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=subscribe>","Cc":"wei@redhat.com, kevin.tian@intel.com,\n\tBharat Bhushan <Bharat.Bhushan@nxp.com>, marc.zyngier@arm.com,\n\ttn@semihalf.com, will.deacon@arm.com, drjones@redhat.com,\n\trobin.murphy@arm.com, christoffer.dall@linaro.org,\n\tbharatb.yadav@gmail.com","Errors-To":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org","Sender":"\"Qemu-devel\"\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>"},"content":"Translate msi address if device is behind virtio-iommu.\nThis logic is similar to vSMMUv3/Intel iommu emulation.\n\nThis RFC patch does not handle the case where both vsmmuv3 and\nvirtio-iommu are available.\n\nSigned-off-by: Eric Auger <eric.auger@redhat.com>\nSigned-off-by: Bharat Bhushan <Bharat.Bhushan@nxp.com>\n---\nv3->v4\n - No changes\n\n target/arm/kvm.c        | 27 +++++++++++++++++++++++++++\n target/arm/trace-events |  3 +++\n 2 files changed, 30 insertions(+)","diff":"diff --git a/target/arm/kvm.c b/target/arm/kvm.c\nindex 211a7bf..895a630 100644\n--- a/target/arm/kvm.c\n+++ b/target/arm/kvm.c\n@@ -21,7 +21,11 @@\n #include \"kvm_arm.h\"\n #include \"cpu.h\"\n #include \"internals.h\"\n+#include \"trace.h\"\n #include \"hw/arm/arm.h\"\n+#include \"hw/pci/pci.h\"\n+#include \"hw/pci/msi.h\"\n+#include \"hw/virtio/virtio-iommu.h\"\n #include \"exec/memattrs.h\"\n #include \"exec/address-spaces.h\"\n #include \"hw/boards.h\"\n@@ -666,6 +670,29 @@ int kvm_arm_vgic_probe(void)\n int kvm_arch_fixup_msi_route(struct kvm_irq_routing_entry *route,\n                              uint64_t address, uint32_t data, PCIDevice *dev)\n {\n+    AddressSpace *as = pci_device_iommu_address_space(dev);\n+    IOMMUTLBEntry entry;\n+    IOMMUDevice *sdev;\n+    IOMMUMemoryRegionClass *imrc;\n+\n+    if (as == &address_space_memory) {\n+        return 0;\n+    }\n+\n+    /* MSI doorbell address is translated by an IOMMU */\n+    sdev = container_of(as, IOMMUDevice, as);\n+\n+    imrc = memory_region_get_iommu_class_nocheck(&sdev->iommu_mr);\n+\n+    entry = imrc->translate(&sdev->iommu_mr, address, IOMMU_WO);\n+\n+    route->u.msi.address_lo = entry.translated_addr;\n+    route->u.msi.address_hi = entry.translated_addr >> 32;\n+\n+    trace_kvm_arm_fixup_msi_route(address, sdev->devfn,\n+                                  sdev->iommu_mr.parent_obj.name,\n+                                  entry.translated_addr);\n+\n     return 0;\n }\n \ndiff --git a/target/arm/trace-events b/target/arm/trace-events\nindex 9e37131..8b3c220 100644\n--- a/target/arm/trace-events\n+++ b/target/arm/trace-events\n@@ -8,3 +8,6 @@ arm_gt_tval_write(int timer, uint64_t value) \"gt_tval_write: timer %d value 0x%\"\n arm_gt_ctl_write(int timer, uint64_t value) \"gt_ctl_write: timer %d value 0x%\" PRIx64\n arm_gt_imask_toggle(int timer, int irqstate) \"gt_ctl_write: timer %d IMASK toggle, new irqstate %d\"\n arm_gt_cntvoff_write(uint64_t value) \"gt_cntvoff_write: value 0x%\" PRIx64\n+\n+# target/arm/kvm.c\n+kvm_arm_fixup_msi_route(uint64_t iova, uint32_t devid, const char *name, uint64_t gpa) \"MSI addr = 0x%\"PRIx64\" is translated for devfn=%d through %s into 0x%\"PRIx64\n","prefixes":["v4","1/5"]}