From patchwork Thu Jun 8 13:03:41 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Manish Jaggi X-Patchwork-Id: 9774605 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id EF1F8601C3 for ; Thu, 8 Jun 2017 13:06:43 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id E106925404 for ; Thu, 8 Jun 2017 13:06:43 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id D595728556; Thu, 8 Jun 2017 13:06:43 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-4.1 required=2.0 tests=BAYES_00,DKIM_SIGNED, RCVD_IN_DNSWL_MED,T_DKIM_INVALID autolearn=ham version=3.3.1 Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id F2B4128557 for ; Thu, 8 Jun 2017 13:06:42 +0000 (UTC) Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dIx6m-0000LY-Jy; Thu, 08 Jun 2017 13:04:16 +0000 Received: from mail6.bemta3.messagelabs.com ([195.245.230.39]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dIx6l-0000LS-GM for xen-devel@lists.xenproject.org; Thu, 08 Jun 2017 13:04:15 +0000 Received: from [85.158.137.68] by server-4.bemta-3.messagelabs.com id BD/68-31580-E4B49395; Thu, 08 Jun 2017 13:04:14 +0000 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFupkk+JIrShJLcpLzFFi42LJ0Fcy0vX1tow 0eH7L2OL7lslMDowehz9cYQlgjGLNzEvKr0hgzZgy9wl7wX+ritbX99gbGE/rdTFycbAI9DJL tO5/zwriMAr0MUp0bzsP5ggJNDJJ3Pk4hb2LkZNDRGAKo8T/pZUgNpuAnsT3T/vA4sIC1hIf/ uxjBrF5BVwlnmy6w9TFyAE0VkWitR8sLCoQLXH99SFGiBJBiZMzn7CA2MwCZhLzNj9khrDlJb a/nQNmSwgoSxyavRzsBgmBLkaJOVNuMoEkhATUJKad7mKCKJKVOHp2DguErSMxYcJtqGZfifU zn0LFiySa7jZC2f/ZJHafVIEYeoBdovHDTaiGAonV6yaxQthaEuuufmSGKNrLKvFxwio2iEQb v8SOpVIQtozEz3m/2CCK7rJIHDj2jR3CaeeXmHJxElT7eRaJ1s8voL5Yziqx9/tbNkiISUm83 3GSEcKWkdgwYw7LBEbVWUihMwspdGYhhc4CRuZVjOrFqUVlqUW6lnpJRZnpGSW5iZk5uoYGxn q5qcXFiempOYlJxXrJ+bmbGIHJop6BgXEH4+ufTocYJTmYlER5FQUsI4X4kvJTKjMSizPii0p zUosPMWpwcAhsXrv6AqMUS15+XqqSBO8RT6A6waLU9NSKtMwcYDqDKZXg4FES4XX3AErzFhck 5hZnpkOkTjEqSonzHgfpEwBJZJTmwbXBUuglRlkpYV5GBgYGIZ6C1KLczBJU+VeM4hyMSsK8i iDjeTLzSuCmvwJazAS0eMk7C5DFJYkIKakGRlfxqC8t+fsjuNuj2f82/xZRdjQJzbhweM8Rsa 8VSwLrj1cfNuq4HvTq1JeWTTtVonjCn5+7n6q/8tnEI8ySwYve7dhSMdk0gV/GuevjYu96XU2 LyQ3/ZRemcQresOvYJKygbH7t6B8505z9e4R2vp0QO00y64nUsWUivucMTS5PD/sk85ErU4ml OCPRUIu5qDgRAHET2w6cAwAA X-Env-Sender: Manish.Jaggi@cavium.com X-Msg-Ref: server-2.tower-31.messagelabs.com!1496927051!93015333!1 X-Originating-IP: [104.47.34.50] X-SpamReason: No, hits=0.0 required=7.0 tests= X-StarScan-Received: X-StarScan-Version: 9.4.19; banners=-,-,- X-VirusChecked: Checked Received: (qmail 22758 invoked from network); 8 Jun 2017 13:04:13 -0000 Received: from mail-by2nam01on0050.outbound.protection.outlook.com (HELO NAM01-BY2-obe.outbound.protection.outlook.com) (104.47.34.50) by server-2.tower-31.messagelabs.com with AES256-SHA256 encrypted SMTP; 8 Jun 2017 13:04:13 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=CAVIUMNETWORKS.onmicrosoft.com; s=selector1-cavium-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=BpXf3zNyHzIihR3JoJpff+0HfcrB0c09yNZIzaDpK+E=; b=MvrpAWLG8cWawrO2nOZmS3QubELbzX4V+fBm6Pb4Vkf8iEzOMECFf84RHvbOJbGbdVKXNMdKGIiBrlrM+rVTXH2JHlq0Hoa9ZyMqU/Bs5LQLJBK8YHVqNBxaJAmaCOfpqF3+2RWTDFTD3nOKCJevwaamavUxmbe1DeIqobf74kE= Received: from [192.168.0.103] (115.252.122.142) by BLUPR0701MB2065.namprd07.prod.outlook.com (10.163.122.148) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1157.12; Thu, 8 Jun 2017 13:03:54 +0000 To: "xen-devel@lists.xenproject.org" , Julien Grall , Andre Przywara From: Manish Jaggi Message-ID: <6ed5eb3b-861c-e1bd-20a2-f24e55ce59e3@caviumnetworks.com> Date: Thu, 8 Jun 2017 18:33:41 +0530 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0 MIME-Version: 1.0 X-Originating-IP: [115.252.122.142] X-ClientProxiedBy: BM1PR01CA0082.INDPRD01.PROD.OUTLOOK.COM (10.174.208.150) To BLUPR0701MB2065.namprd07.prod.outlook.com (10.163.122.148) X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BLUPR0701MB2065: X-MS-Office365-Filtering-Correlation-Id: 0e217cbf-b674-43a7-1b38-08d4ae6ed212 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(201703131423075)(201703031133081); SRVR:BLUPR0701MB2065; X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB2065; 3:6EhXkr+vrtpb5JbMtzD+rLAx7yn1yPGllI6Rmf1iuH82Qqi49qpvwbgrFPz+uoHJZx+HeONm/O5N6jjm23wbpqGcld8SOh+gnGzzdN62r2C/nGdjmfF+mko1LqOJy+3NVeYo4stmW/tXnI55V0glkp3VxOE32cBXJoJkx+VMrSlqqG3bHzMNoTgULcYMJfPWjmbEpO3kZ38jUy/QIBnr0S5TGT7+MNW9YY84UqD5tikgVn8060hTLsyOim92ARvuBfvO7p/UiHzG0bKYZyM74fVkI5y1WGgrqxsRSEBfT9Gv0TY3qNObPac3ImBMq+i454jaqlbDjagFR4XNmgJp2g==; 25:pIKlWQU0SVlU0J32ZcJH7tpS2dkC+6LyvOL1L1m+cAU1XGnrIvAHwDXzSNJAl79/sYr1nqSQYeo+8ZgKfk+em5sUa4mA7E9YyPJwH6ymC6SZNgJ/3+GdCUPH9N4Bw5bcnsyqWMiemkmrj9Sif/AyS7ZdLTwqFWYG/HBI+RAsd9SSUKqz/WjWBBvY2ft/qvl7bweAcNTpZJz4cjcvhR/Hq5FmrmnfFteR/oHljeHTq7RBnQhgTaGCXLEYUU2uAXWTvQpAvVK/HOHkDXskzhWWbobMh+/Ib9Zwf/x67BcpavNUQmKPY3YX0N+kfwTRZF59dX9ShDJpCKVGJeZ4wEVUlPTSBwgd0E+4OVALFgYqwuKMakOeLWxpV3vgijZ/+oSajsAaa1XObV2JAtXIt3v7wupvYzIN7x1qegwk0z413eYR+HIsnfu6ieSPgcTopkntGVl3i0bQaKwi7LAE180QVW1S3BCwFdmt6+ZJnx8y3CU= X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB2065; 31:icwHSix+PeZ+FbWW1kugerCEgjSGkd5IINdNCoYBNMx+6bxdF4lixYi0J5a02m58IQPhKHlKXT0s9K7K1UhoLZOiAQNv92cMVXJb9b4QirRMJV5CDpPrLRc5HinDT0IlFvHlMmAdrQOBDqwX7cA3DkwGqL5Q/l5rB0mZJqjHiSbxXcvxHYEHpXiKaEtkbDuJalwVDG6ZWyp5eKQz3qi3UkNfvSGmAdRL8Ly0QbidBSZWXPF/fRSpBxwECzOaoSJFaLiZxg1eoGK7QOmuL8Vl1Q==; 20:JOs25Fin1NDYYb2pNiMQ6lrzI6ccedYgmff7weoGstWnrCR18MG/uwZQB8KIxMl4NIK5hUK/ZSESFlZRgLDPW+bSwSHalZCocay7jJa8kkgr5SWIX4oL+5700Un1U3cGHehDrckG7RYrHzuA9zhhZpPVAtDPZ39ToRVP2Mro2aEwbt9OIpUqmKzT+chR9oNH41ksDxbKAZHrdx2WUp28DMaDGqa7DybbIDP6kzOCLdYo3B1F8od7kJXeDv41gyM5Hxn3OZATaTu61LdJXRUlfuu/bJcT7egdmaHZ2OtPmYQB9Q+koKKvfY67OpXD3pya3v7VtjpODSeAnOh2azrc5I2XCW9QM7z5rLLUXE6D8s3XG02+zbh+H1B8BxWjcFFC8WC5uHRC+wRvJm+rQDiqalB0nKVeZkyuDaopBCYwzqCv2IlyrX/urAMOW07OrH1U9E+8KIv/xHiiPU3U+Mo7HaMWciAxACfHaUcsA+g1qq1++BantnFhhKvxkeW235UVxXJPPxL+Q01qldGELcz8WDN3HidrhJyYFBMi9xkSY8FqPgIHRJ1D/Ki92hJCMYlCC/xi03uXM4Iu9NIvbPv8eU+nVQkjuRvoDMAO57FCj74= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(8121501046)(5005006)(93006095)(10201501046)(3002001)(100000703101)(100105400095)(6041248)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123558100)(20161123562025)(20161123560025)(20161123564025)(20161123555025)(6072148)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:BLUPR0701MB2065; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:BLUPR0701MB2065; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtCTFVQUjA3MDFNQjIwNjU7NDpYQytHazBKMmVIbWtVenRmZnJ4VWlnTXZp?= =?utf-8?B?eUFTS0xjenAvRWZ5bCt0dlJOcXJVQk5NN3puNllha2VGVG9XVTNqRjlqTmxN?= =?utf-8?B?elZpYXp1OEFFZ0pxSkowSU8wQW9iR0RJTkcwSElwS0hLeENFUGo4eDdoUis5?= =?utf-8?B?MTZZNEFJTU9QZVcrM1pnTDdFVUh2SUMwQTl0RnEyM1g3Wmw0ZEFUQ1RGc0l0?= =?utf-8?B?bWZEVVBhWGNMdlpNNFU0RnZKcjBJRjVjZWZYY2ZPWFpVNTZnV3Fzem0wTkgy?= =?utf-8?B?MGduU1FRb1d1VHd3R253Y24yeExLeldXTEpBNUpxWG1LRXZta2RUSnE3d1Az?= =?utf-8?B?cXptSFh5Yk9VaTFObmZWMTBWVlFFMnJaUFlHc2FNUjlZZDBQbzJJbE1rVVpI?= =?utf-8?B?N1F6ckVmb0EwbC9Va255bDZLY04wanNXSDZJdkUwS3JMWTRINTdvRWdLNjU4?= =?utf-8?B?cXNUSjMrZTQyZzB0enU1cWxQSm5BTzUxbVMvV0h1MzgwaHdwVmVlNWMwazZ0?= =?utf-8?B?K3hycWxTQ2lMT0VmcWlTV1BSSTg5VTNYS2ZrV2FTSHc1eWZFWjZadzlOTVE2?= =?utf-8?B?NXZtK3RxdXBPUktDNGRNRlNqZlR3QzkvaHc5dXJWRkY1SzFrOXY2S0p6bVNM?= =?utf-8?B?MVZtY0d0M1I1dkJmODBoLzlndElHUWVkdnFtbVpBeGxBYVUrS0dHeWlGSHZ1?= =?utf-8?B?dUhIc01oUnFKQVJnZjRRSEt4TnIrdzZ0S2l6alNaUUtGc1Y3TkkyU0F0dmc2?= =?utf-8?B?b0VJTWMxTUtza0pOaE05dEJKOVdDdGp1TlZhUkQwaDcwbk1ZTHNLcnA0M1dK?= =?utf-8?B?Q1FBTXd2bjZqRjJmamF5TFNuV3NDYll5ZDI3dzZWbHJ3cDQzd3NoeXlWYVZL?= =?utf-8?B?SGRZR0lPTGJ0MjVwdWNRU3dkVXUxUGFjVmVWS1BwRC9WdXE5Mkt2VlU1dFFE?= =?utf-8?B?WmM1NU9FRDZtbzR4c2hReWIvZ3YzR2dkK3BaV1RTeHdGeFRvRnZKaVZ4Skhm?= =?utf-8?B?Q2VFMEd5aksxVXk0NERTSlI2SU82OHNKU0s2bkl4U0MwZmI5UW90Q2xReDRN?= =?utf-8?B?clNxTTdDODkyc0lTZVdsOXpjRUNPRHE2UXA1d0ZsaW1OTVhlMzB5YzVZTWNi?= =?utf-8?B?dDlXdjNMejIzUXVjczlxcUNsdGRod25mSi81N0FXTXMzelN2S1lLa2ZGZjc0?= =?utf-8?B?OGJXbkdqNXFhQzg4VS9ZTTZKcmRROWFzQUJtZlJCQzNlaHVudkxtb3laWjdK?= =?utf-8?B?dElrOEdWSUJjTEQxRXNwdVpSbWhHeEZDRWZGbm5ZVTFvRnczVlgwN3JEZmhW?= =?utf-8?B?RmgxTTZuWWViV1U0aU9OUWJDUW51MnpFVVVMQmFLT3YzVWRIYVRnMnBpSU5o?= =?utf-8?B?SDdCM1hLb1RZSVFaNllEVmZXa0VXNHR1cGxzS04yUWwzcDRLU2RpRGJ1K2JN?= =?utf-8?B?L3ZzNUxHVld6bU5QNDNTRGQ4Wk9SY3JHcUs5TzJ5YXNLNVVXcjI5TktyMDl5?= =?utf-8?Q?vigOgHF/ndxbVcdAunQZQmIM+8=3D?= X-Forefront-PRVS: 0332AACBC3 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(6049001)(6009001)(39410400002)(39400400002)(39850400002)(39840400002)(39450400003)(31686004)(65826007)(189998001)(81166006)(6666003)(3846002)(72206003)(42186005)(42882006)(5660300001)(8676002)(77096006)(6486002)(7736002)(31696002)(90366009)(575784001)(305945005)(230700001)(478600001)(117156002)(53936002)(2906002)(38730400002)(36756003)(64126003)(25786009)(47776003)(66066001)(33646002)(23676002)(54356999)(65956001)(2501003)(65806001)(50986999); DIR:OUT; SFP:1101; SCL:1; SRVR:BLUPR0701MB2065; H:[192.168.0.103]; FPR:; SPF:None; MLV:sfv; LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtCTFVQUjA3MDFNQjIwNjU7MjM6dGZDQUJZZE1BOSt4Wk0yMXcrZktyNVdx?= =?utf-8?B?d2FoRHc2Tlh1eHVsdWN6RGhvVkRoZlhCMzFiS0FSWHJWQm1QZWRqdk1Rd3dO?= =?utf-8?B?VEZlTmtoUkZTc0ZrWVl4TWlLSVhlUEpaaWdrV1hZQXlmcGx3NlBuN0NlK0tz?= =?utf-8?B?bExyYlU5d0VHeDFvZE1veFl2Wkk0Skt5djkvcTRIRUY5bFEyaTRBQXZHSUxI?= =?utf-8?B?V1c3VWhqQ3BPQ1pXTmU4VStHS2FWSTNDUm9LUjVMSnRkaUh2WTBUUkZGUkxt?= =?utf-8?B?R0FQVU9zQ3Y2VEx1RTNlZU1zUHNxYkpsQ2NWMVVZUHpHYk9GRXV6c1pzdDdq?= =?utf-8?B?Z3U3UktDWEV0Uk5rRlFuRXJ4aWZMY1RWQTZOWkZWRFpqdGRndDVWRnllTm0z?= =?utf-8?B?QVJzb3U1d0VlbTA5MVNoc1FSeHFEaG1TRGFBUEFvRlJ4a1p1YjlVclpnWnhk?= =?utf-8?B?WTQrZ2dnL2lxOFJUTS9WNmsrdjVTYmJkZDVQcWt2OXRtRG16MmIvd1hWeUJN?= =?utf-8?B?R25Xdk9KOXMvc2ZFeCtxVDVnaCt2a095aGFVaDF5SVVmdjdoOWFPMElLN2tQ?= =?utf-8?B?UVVlUEFWR3l5QWp0cFBiWmZ2ZXRFaWFCS1dxSWMzTFVnTzUyQ2lseW1GVkZ1?= =?utf-8?B?MEQ5NVBxdjhsZ3doTmpnOFEyeklTRUdheXJFMnVrQi82VE0yZk9jYUwwTG1B?= =?utf-8?B?WFRIN3RsT1VZU3IyeDRGSVlicHVleUY0eklNaGFzL0kvTmg4YXJzL2lSV05H?= =?utf-8?B?bTZYR1lEUVllUVRpNkhZazRBZzY3dVBhZXMxWEQ4VXpWWXBTVHVLQ291WWZJ?= =?utf-8?B?QXhxT2NPOHJPSUdyckx5ckZNc0laM1UzQXgvMDh5VG1nall5T0ttSVJmZ013?= =?utf-8?B?QlgrbThqS1hBTVA3WEJmaGEzV01JNDFUR2dYZjZUOUphdVZPYWxZSENWMmhC?= =?utf-8?B?Z0hBOGlWQWpwcnFQVEs2aFFNSUQraHBJeXZJT0I5Y2hYN0Jndk8zbllIK3dp?= =?utf-8?B?SHZkV0lGTkxIS3YxRjhZcTd6ZjR5ekJuTWxWNWtjQlc4Y0NXT0s5VEZ6Q1NK?= =?utf-8?B?SXFxNUJyQllUSE1kayt5RGVmSzhCWUliS2JkTDNMNlFtK1YxWklRUWNXcHl6?= =?utf-8?B?OVdOUTRxRWYwUUNqeFA5eEs4MmdKWWtvMXI4N3dNZGxCR2xDMUdmUkdWd3lv?= =?utf-8?B?bkk3UDdIUGNhc2MrMzk5UHYrZHlpdEJtcktHY3BiVVQvSHdQZDZrcjZLQlpw?= =?utf-8?B?c0ErTHFiWDQ2Y1d0L0VrbGxrSmg0K3kwSTNocERHWUVYd2grekhVY3UvTHNE?= =?utf-8?B?eDErZDdOdVdTUzNleEMyOHp1bk96TGlwaU0yelo4eTVKYW8rUVlCZ3ZqUTZw?= =?utf-8?B?cDFFREd3di81aXBRQ0hIQTUvampXTjl0UEUwZjcvM1MrdjNWWloyVFptRDBl?= =?utf-8?B?UGlSRGFJbUFUUStrR2FxaUwxUlNsYVVKRjhPL3ozaHU5RE1ISzRRNGt1Ynpm?= =?utf-8?Q?GRncX9JznLxgPJdsxCv5qaz9css=3D?= X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB2065; 6:6CtnRFmvhvMvdCEW5O9d1b7I1s79nv9XtZQ8iyObcWVYdih9QlZDJUeEbjekneTpKP45JxvHIVvT7/rFDmNFuHAc5G4kFja1bDg/1pBKlsMk6m9XY5dP7LUeBhnzwZla9cOtKI3BaM3vIcnWTRm8uYC5JyzyebOFs9JfiBUg1ezjsdAMWo7ppf8BjEHGQaEgzIy+bXchw8Z4lNJcBMMoJezyety/5fRPkdMtVN/W1bS21sRrbHmC3uq2BPa9IWSHXoo8kkXuCHjM+x+Ua82pvz3fyUgpIwx45IorcPqmYskiif2aw2xZKPDmqeDl9tIRVRNvSCF9fA/gTlzmCLi+ZS1uIqRSeJI63miToug4IyNtLrGWEi99yz8v+6OGAgj55d8BBfo6xe63fP9W2oS3Wx4T7m1FRCsap4iNWuZ3gQlexIsVyUDS1P+kdrnlO9ryo9KL8PxvcbCZcAVTJiL2wKGptPKjIOwB7hi2N1pV9DmE950/OEWlX0sRcRrI2ut0mndzfVHHcGvnmgHWYzjpqw== X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB2065; 5:bI/rGcXJ3uILd2DWbJVH4hUxfQacNzBaQ6mpgm08q/20UCvoyRRrntCk+5z6ortrz1x9IlBwaD2tB2+GvXeQUnXC+i6WNqWvwP412QnbqYKZN4/lGVaXt0TmrbBzDZ+TQdK8AdJC8d+5c9aLpMo9hSkYahZ7zdHcn2w5CdDF7ouY/4/Uu+wNqTOSglwR2OQKS6KFTox9vbbRR5nsw/5R3qGLupOp4e48I8isXz97bFyqYXqnINl15e5KyFlpbUIkwG5P6h5V6aIWqUofyccDGdSikVjz0tlnmhgfHfYPs5U0zyzLqNF5W9Z5UdJmUwxerM6XFeahB11tJxJGrKgZw2ngByfTXsHf5wtWh06LTruT+3VmD3k6WQ8EUbInLywEqfZ4Ud5Kxg/z29Xt9WNvnBpii7JdTRc/dkCcoiRLIKfZoQdKdcSGg47rloJvqAL201lHSGnt8t7yejiwnubOgX8argHFopgW+d5pco5AC/x2WwrgAfF1AY0LOfp7GfZ2; 24:uYQTN4nzI0UFj6IA/GFnCnN1VXtwI0GKYJBWJJ8CRE2izZLlueLc5meqEnWmU9awvIfbBBW4YMzUc2E6svyA0KKh5kmLk144JCAwElDOWfk= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB2065; 7:1ITmPgSfHf7xxZslEaDbNx55ySSBaogAgs9Jv/vTbIaMOHvsdDiqgCvzRC5lBwLu42ceP6CrUTpsawDJJ4zF3ICPjsTv4wAa6ShuAGkeJB+Jay5CnA0wZgab3ppS5teJvkAB940jJiwIYwUt1kqRyk1RpDYMIQAmCQA7aK7xNdTFVOKDd4Z+bIT5t4pNm/ScNGSM2inBU7DqiRmjPsqe9qiDalNmHfm7s0EcrRAUH7uy6cKMuFzCYes7VGFgf7mC7h4v5bnP5cVv7uSYkiNHYbyG8U6mVHEzFBBRIW2amE8X5/b53SvJpYYbvwTooQFRxpHAkfouaqCzITUrql3sng== X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Jun 2017 13:03:54.3244 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLUPR0701MB2065 Subject: [Xen-devel] [RFC v2][PATCH] arm-acpi: Add ITS Support for Dom0 X-BeenThere: xen-devel@lists.xen.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" X-Virus-Scanned: ClamAV using ClamSMTP This patch supports ITS in hardware domain, supports ITS in Xen when booting with ACPI. Signed-off-by: Manish Jaggi --- Changes since v1: - Moved its specific code to gic-v3-its.c - fixed macros xen/arch/arm/domain_build.c | 6 ++-- xen/arch/arm/gic-v3-its.c | 75 +++++++++++++++++++++++++++++++++++++++- xen/arch/arm/gic-v3.c | 10 ++++-- xen/include/asm-arm/gic_v3_its.h | 6 ++++ 4 files changed, 91 insertions(+), 6 deletions(-) @@ -167,6 +169,10 @@ int gicv3_its_make_hwdom_dt_nodes(const struct domain *d, const struct dt_device_node *gic, void *fdt); +u32 gicv3_its_make_hwdom_madt(u8 *base_ptr, u32 offset); +u32 gicv3_its_madt_generic_translator_size(void); +/* Deny iomem access for its */ +int gicv3_its_deny_access(const struct domain *d); /* * Map a device on the host by allocating an ITT on the host (ITS). * "nr_event" specifies how many events (interrupts) this device will need. diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c index 3abacc0..d6d6c94 100644 --- a/xen/arch/arm/domain_build.c +++ b/xen/arch/arm/domain_build.c @@ -20,7 +20,7 @@ #include #include #include - +#include #include #include #include @@ -1804,7 +1804,9 @@ static int estimate_acpi_efi_size(struct domain *d, struct kernel_info *kinfo) madt_size = sizeof(struct acpi_table_madt) + sizeof(struct acpi_madt_generic_interrupt) * d->max_vcpus - + sizeof(struct acpi_madt_generic_distributor); + + sizeof(struct acpi_madt_generic_distributor) + + gicv3_its_madt_generic_translator_size(); + if ( d->arch.vgic.version == GIC_V3 ) madt_size += sizeof(struct acpi_madt_generic_redistributor) * d->arch.vgic.nr_regions; diff --git a/xen/arch/arm/gic-v3-its.c b/xen/arch/arm/gic-v3-its.c index 1fb06ca..937b970 100644 --- a/xen/arch/arm/gic-v3-its.c +++ b/xen/arch/arm/gic-v3-its.c @@ -25,14 +25,18 @@ #include #include #include +#include #include #include #include #include #include +#include +#include +#include #define ITS_CMD_QUEUE_SZ SZ_1M - +#define ACPI_GICV3_ITS_MEM_SIZE (SZ_64K) /* * No lock here, as this list gets only populated upon boot while scanning * firmware tables for all host ITSes, and only gets iterated afterwards. @@ -920,6 +924,55 @@ int gicv3_lpi_change_vcpu(struct domain *d, paddr_t vdoorbell, return 0; } +int gicv3_its_deny_access(const struct domain *d) +{ + int rc = 0; + unsigned long mfn, nr; + const struct host_its *its_data; + + list_for_each_entry(its_data, &host_its_list, entry) + { + mfn = paddr_to_pfn(its_data->addr); + nr = PFN_UP(ACPI_GICV3_ITS_MEM_SIZE); + rc = iomem_deny_access(d, mfn, mfn + nr); + if ( rc ) + goto end; + } +end: + return rc; +} + +u32 gicv3_its_madt_generic_translator_size(void) +{ + const struct host_its *its_data; + u32 size = 0; + + list_for_each_entry(its_data, &host_its_list, entry) + { + size += sizeof(struct acpi_madt_generic_translator); + } + return size; +} + +u32 gicv3_its_make_hwdom_madt(u8 *base_ptr, u32 offset) +{ + struct acpi_madt_generic_translator *gic_its; + const struct host_its *its_data; + u32 table_len = offset, size; + + /* Update GIC ITS information in hardware domain's MADT */ + list_for_each_entry(its_data, &host_its_list, entry) + { + size = sizeof(struct acpi_madt_generic_translator); + gic_its = (struct acpi_madt_generic_translator *)(base_ptr + table_len); + gic_its->header.type = ACPI_MADT_TYPE_GENERIC_TRANSLATOR; + gic_its->header.length = size; + gic_its->base_address = its_data->addr; + table_len += size; + } + return table_len; +} + /* * Create the respective guest DT nodes from a list of host ITSes. * This copies the reg property, so the guest sees the ITS at the same address @@ -992,6 +1045,26 @@ int gicv3_its_make_hwdom_dt_nodes(const struct domain *d, return res; } +int gicv3_its_acpi_init(struct acpi_subtable_header *header, const unsigned long end) +{ + struct acpi_madt_generic_translator *its_entry; + struct host_its *its_data; + + its_data = xzalloc(struct host_its); + if (!its_data) + return -1; + + its_entry = (struct acpi_madt_generic_translator *)header; + its_data->addr = its_entry->base_address; + its_data->size = ACPI_GICV3_ITS_MEM_SIZE; + + spin_lock_init(&its_data->cmd_lock); + + printk("GICv3: Found ITS @0x%lx\n", its_data->addr); + + list_add_tail(&its_data->entry, &host_its_list); + return 0; +} /* Scan the DT for any ITS nodes and create a list of host ITSes out of it. */ void gicv3_its_dt_init(const struct dt_device_node *node) { diff --git a/xen/arch/arm/gic-v3.c b/xen/arch/arm/gic-v3.c index c927306..f0f6d12 100644 --- a/xen/arch/arm/gic-v3.c +++ b/xen/arch/arm/gic-v3.c @@ -1333,9 +1333,8 @@ static int gicv3_iomem_deny_access(const struct domain *d) return iomem_deny_access(d, mfn, mfn + nr); } - return 0; + return gicv3_its_deny_access(d); } - #ifdef CONFIG_ACPI static void __init gic_acpi_add_rdist_region(paddr_t base, paddr_t size, bool single_rdist) @@ -1374,6 +1373,7 @@ static int gicv3_make_hwdom_madt(const struct domain *d, u32 offset) for ( i = 0; i < d->max_vcpus; i++ ) { gicc = (struct acpi_madt_generic_interrupt *)(base_ptr + table_len); + ACPI_MEMCPY(gicc, host_gicc, size); gicc->cpu_interface_number = i; gicc->uid = i; @@ -1399,7 +1399,7 @@ static int gicv3_make_hwdom_madt(const struct domain *d, u32 offset) gicr->length = d->arch.vgic.rdist_regions[i].size; table_len += size; } - + table_len = gicv3_its_make_hwdom_madt(base_ptr, table_len); return table_len; } @@ -1567,6 +1567,9 @@ static void __init gicv3_acpi_init(void) gicv3.rdist_stride = 0; + acpi_table_parse_madt(ACPI_MADT_TYPE_GENERIC_TRANSLATOR, + gicv3_its_acpi_init, 0); + /* * In ACPI, 0 is considered as the invalid address. However the rest * of the initialization rely on the invalid address to be @@ -1585,6 +1588,7 @@ static void __init gicv3_acpi_init(void) else vsize = GUEST_GICC_SIZE; + } #else static void __init gicv3_acpi_init(void) { } diff --git a/xen/include/asm-arm/gic_v3_its.h b/xen/include/asm-arm/gic_v3_its.h index d2a3e53..b72aec2 100644 --- a/xen/include/asm-arm/gic_v3_its.h +++ b/xen/include/asm-arm/gic_v3_its.h @@ -105,6 +105,7 @@ #include #include +#include #define HOST_ITS_FLUSH_CMD_QUEUE (1U << 0) #define HOST_ITS_USES_PTA (1U << 1) @@ -134,6 +135,7 @@ extern struct list_head host_its_list; /* Parse the host DT and pick up all host ITSes. */ void gicv3_its_dt_init(const struct dt_device_node *node); +int gicv3_its_acpi_init(struct acpi_subtable_header *header, const unsigned long end); bool gicv3_its_host_has_its(void);