Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S934734AbcCPGWa (ORCPT ); Wed, 16 Mar 2016 02:22:30 -0400 Received: from mail-by2on0080.outbound.protection.outlook.com ([207.46.100.80]:6944 "EHLO na01-by2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1754348AbcCPGW1 (ORCPT ); Wed, 16 Mar 2016 02:22:27 -0400 Authentication-Results: amd.com; dkim=none (message not signed) header.d=none;amd.com; dmarc=none action=none header.from=amd.com; Subject: Re: [PART1 RFC v2 05/10] KVM: x86: Detect and Initialize AVIC support To: Paolo Bonzini , , , , , References: <1457124368-2025-1-git-send-email-Suravee.Suthikulpanit@amd.com> <1457124368-2025-6-git-send-email-Suravee.Suthikulpanit@amd.com> <56DDAF2D.3060703@redhat.com> <56E841CC.4090806@amd.com> <56E844E2.6090507@redhat.com> CC: , , , From: Suravee Suthikulpanit Message-ID: <56E8FB8B.7050700@amd.com> Date: Wed, 16 Mar 2016 13:22:03 +0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.5.1 MIME-Version: 1.0 In-Reply-To: <56E844E2.6090507@redhat.com> Content-Type: text/plain; charset="windows-1252"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [124.121.8.20] X-ClientProxiedBy: SIXPR04CA0092.apcprd04.prod.outlook.com (10.141.119.50) To BLUPR12MB0434.namprd12.prod.outlook.com (25.162.92.14) X-MS-Office365-Filtering-Correlation-Id: 07afdc47-fc12-4421-6eb3-08d34d6356bc X-Microsoft-Exchange-Diagnostics: 1;BLUPR12MB0434;2:i9uVLOgBVDpXmhYofRBpgPruDR2wOsHQ0I5JMEiFVqjrw5FHa144YVLSlPqhaJSBOMlx0CNAd9wpwc10RTsN5pyATYLJ2M20INTlHuUreIbozXS1HpQBCFFfgD6hBsmKCGS24lPvDrR6oSZkBIkr8CxrqTzNBfmkTXCyOVQqK5QZNc/kK6TVwnf9Nfhi8a3d;3:4CGNxf583RrUSM+Ny9flYMoXMiYnLSS/1P/EPxyEmeoF9O4UdaYRAsCnmCiFi4NNqYPlxWCQfxkxikqyuZEnvJ4mnyzCdcDcVpJforczwBCrIF4s6MNwxJ/zchI+Qsaq;25:L84lmz+BtLBF7FHqXE9ERP2rZJAbIoSMk/hhxoklTC2e+KU8oXehsve6+QFJlw8zXwxm5Uy/TRpkPXACv/p4Y7cYCTYV3IyzZ6aKnWopfDynC78OKLcZQtcHN2RLXrQjsKBCyTDyHi5+DA5GVdzVaVAWPkW69vKNn4Tlza+buStgrGXZS7OioHwQuGFZGmOUvBEhwvQ4N5bgpbQuHNmeHg7lNWTyN5jHIEovgY/a9xgn4I2B6gacrBZv148vwfp1/T1k/+0yQolyV94Oy5S23Ez6+XmNfoSRkcUCzPQF0ybfAUu30ZgVGIXHpYRJxHWEROc4UClLtUhpHlF3UuJYLw== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BLUPR12MB0434; X-Microsoft-Exchange-Diagnostics: 1;BLUPR12MB0434;20:6H4NjV19/EgqzekXWr1/yQwPVdtEyrA2ixRwac5vhUsPDL881eBZjm1A9ogavqYiS3HbDdITK2ZHWf76GJS0GoEiMtNqM8ttYK8N8BKlP72oad0kbo3rVb2kL8bO5FWE+PWqGNdkcqca12HhqDcDvxl8ppoYycBZCkLmHNmm45szg4fDVLldOE0SUzW42nxMs8LmHmmXpCNEiFZHxBpYxlEPMVBpAzCju2WynE1zRS00awY3eo9zUS6wOp1zJ0+Vq2mHtHLvsPB9KiWGkPBWLdpHoXn/htVqVFMQAxCIed/A5r0MR5QdNQFvG6lrQF44llYicbQJ9CnwT6ruCa0BfwZo0ARaetAQQ4VNKZY1YF+sxEy9NeC1GpB0YnrzXu0yVMgiG0KSMjOIlhO0hkSE1E7UJdP1yiKYiOTYpVdlQezYYLLcfaeZz2k/cQRzEKf+fY3m3+1fp15Ue70cywIdOKNp+3+gQsAD+ddRPldwIKapX8PJAWwEN3chDIMGI3Y/;4:ju0xRmBD1QNXJtM6u+6toRh5Rx7mmL0RzIYtBLpMOj1JLV+61zD1JlMBNBj9B4OMHomNjVD0U3UFnVqttNYbcGpr0Cz3m9H+eHLDVhbA5T/T1xWvyKyB1p+FF6OpwOULDRnVAuhPZywF1JeJL6eCydiHXuL4zQ/cKSxvUvX34iIPXXLbDPfUmHWVuMAASxj8baqzE9rWIEt+cO8Lqv1tkslgHji1jAmFd6OiSN5gfuBKIrXDQYYaL5EyPzCiNWat89t0nBOCFZQ/DsxOM1DxnYcBxpHJjtnHO+yt5OOhQlA3rh2nmP3NQE8LHuD+b1ZQb9nP5Y8ZQ7PQEpoiIuENohLAe1qoT3seRtU0M4ufe0bHmbUNaLC9MbQkdA5xR+Wn X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401047)(5005006)(8121501046)(10201501046)(3002001);SRVR:BLUPR12MB0434;BCL:0;PCL:0;RULEID:;SRVR:BLUPR12MB0434; X-Forefront-PRVS: 08831F51DC X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(6049001)(6009001)(479174004)(24454002)(164054003)(377454003)(65816999)(59896002)(65956001)(230700001)(93886004)(5004730100002)(33656002)(42186005)(2950100001)(81166005)(23746002)(92566002)(2201001)(47776003)(50466002)(189998001)(5008740100001)(3846002)(66066001)(86362001)(54356999)(5001770100001)(117156001)(50986999)(4001350100001)(4326007)(2906002)(87266999)(83506001)(19580395003)(6116002)(36756003)(77096005)(64126003)(76176999)(1096002)(80316001)(586003);DIR:OUT;SFP:1101;SCL:1;SRVR:BLUPR12MB0434;H:[192.168.0.19];FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: =?Windows-1252?Q?1;BLUPR12MB0434;23:4gnz209f1lI7mk35aE4AKk7nx3kY28UQIqbBk?= =?Windows-1252?Q?IzEgdFPk+0TB6RHDR9QYi95ywP2LPED/hRGAJqNrnlGkoZBEq9iWG9hU?= =?Windows-1252?Q?78+l8KOjoBN3BxsSQdeaOEJ5+yN50LqBkPLyXloAy8YdrAAcqxG3n2TC?= =?Windows-1252?Q?AOPQqmr3J5tjfJrh/IryxfPUKJ0aDb32dTJ3r4Ck0X7gXVTh+nXkAARD?= =?Windows-1252?Q?XV4KRg7fZHv9UGrXqNI4hJyr6Otgb1ZWv8tc3blECSp4nAyXZZHq3ryX?= =?Windows-1252?Q?ZkAKy0rf1CbUxbwIZ3JG2SXmu3/PUiBsC3lZL8RtF+VSJGU1mIl3VV+l?= =?Windows-1252?Q?7FlBtkx69XCZUeTpRG71s2GZ9Uv6I7rBR76x+M8ct1LJ0rpGWmz6X2AU?= =?Windows-1252?Q?aKjU7sNogF1FmGXeIkRpus1eIfdbC53ztgl1igZKMutocwUjToFiCrZd?= =?Windows-1252?Q?ur+gv3A81o+SCXByC74gseiIIz5eglijn1j/9G7GI6x5MNcTrKU0pQ9x?= =?Windows-1252?Q?2ytby3zbRqdMoqtpk6ij/M6Hp02UoQ77bWVLW2Yw+QLOWtL7E8krlArM?= =?Windows-1252?Q?t9tQHmzOEMmY880smPZPeODnMtiMpsI6WwI7/43rAFwr3DHEw1dWC8Ls?= =?Windows-1252?Q?Ia0v8zdr6xpzMl0UQPoEYhwDf3mkXcm2RxnK0T4Ip7PJptznaFTo1Sie?= =?Windows-1252?Q?vn4X0MWzM6+vYFfJQwJn6xv49Kx0S6SHAaPI8Vbd+WKlQHeII/4jnY2G?= =?Windows-1252?Q?up/IL9+UfHlKArq/XU9ipFa6UPWHs3PF1Kp/PO5GTbb8u/zi0wWnPXWU?= =?Windows-1252?Q?alX6yJlXYoNF3IWQj47hefATpMRzF03WB2qq6eqsrn1fTGu8kV9yszd0?= =?Windows-1252?Q?DMLJ2dW2lz9XgAhI9SldVKDiowZ/BZeiupZyfBrlOmS8wlRLi3+c5lWD?= =?Windows-1252?Q?3vLSSc+363K111NGF/dPUYUT3Gzn/x9mMkK+9SRnh9HyDepjMP2tS2fh?= =?Windows-1252?Q?sGuyuiIPkelGRa7XzXI4Ke/fkEhS0eSSYYv7g2m/CSnJ1yU2XTxGvVcR?= =?Windows-1252?Q?fof1fGUwbZsSnBMC+VsvjNHDQcNXmFdjGvtjriaCr6tiiJN8jBgVq5W1?= =?Windows-1252?Q?XSko2q0peyaaFj76O7lJsukrn3xmxLZkRwj1hsdr5lQSYCprd2JV4yQQ?= =?Windows-1252?Q?/hw9eHXIaNUP7WWQAdAdFalOj+xTc/6nDtbZuM392W2gS7tZsGuOlIEz?= =?Windows-1252?Q?gvG1bfwJytP5dsVzU5FbxLBVFX6cNFo3wEHt+U=3D?= X-Microsoft-Exchange-Diagnostics: 1;BLUPR12MB0434;5:9wLD1ZC/SofqH2qjASAmwDdXd1i/jMtVMwgeCvXTQCPhbrUeIKRVrJ/65ap+o7TP2t/usYY8Gzy8kGMmEJKwX33gsf1dGqMgsA5Ptz87U81CjjRNkVPRbTaFfpSSvwPk8YRu7a/jTWkkA/MQ6+JJsQ==;24:zXpsT1Th/iEWVlPeTS8WjiP+FZROlC1p9dwn53Mb/iyhUTT074P+6iRHDY7FaZcdCs3v6AkR8KwEKhCt0/i2jJZ0GJa2vKrWOZZkjh5l+oY=;20:T7CmteLjVTfs6ds9irOsXnGPtY9RUqBq1H7LHuUZ0fArdQ15Qxy7DpYkrf2t0mSw/AuB7A/iwxzulMohEUCU7tuOkAKH79wE9Aop3JndXe6U+6kvGPGdad5dJCQ+HAvJypdUiNIm7cEUMb1cHRa9YArTZ1IqzAGTaa+0pdHiG0KmvaXrYDi71iD13cdiR10B2kf7cst96uRLxngrOP8g0R1piRio7Zu/sj37tR/zk4E6a6jTpiJyc0bRfBuFrX9l X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Mar 2016 06:22:21.0567 (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 Content-Length: 2876 Lines: 77 Hi, On 03/16/2016 12:22 AM, Paolo Bonzini wrote: >>> Why is this necessary? The APIC access page is a peculiarity of Intel >>> >>processors (and the special memslot for only needs to map 0xfee00000 to >>> >>0xfee00fff; after that there is the MSI area). >> > >> >The current lapic regs page is allocated using get_zeroed_page(), which >> >can be paged out. If I use these pages for AVIC backing pages, it seems >> >to cause VM to slow down quite a bit due to a lot of page faults. > What causes the lapic regs page to be paged out? > This is mainly causing a large number of VMEXIT due to NPF. In my test running hackbench in the guest. The following are perf result profiling for 10 seconds in the host in two cases: CASE1: Using x86_set_memory_region() for AVIC backing page # ./perf-vmexit.sh 10 [ perf record: Woken up 1 times to write data ] [ perf record: Captured and wrote 2.813 MB perf.data.guest (30356 samples) ] Analyze events for all VMs, all VCPUs: VM-EXIT Samples Samples% Time% Min Time Max Time Avg time interrupt 10042 66.30% 81.33% 0.43us 202.50us 7.43us ( +- 1.20% ) msr 5004 33.04% 15.76% 0.73us 12.21us 2.89us ( +- 0.43% ) pause 58 0.38% 0.18% 0.56us 5.88us 2.92us ( +- 6.43% ) npf 35 0.23% 2.01% 6.41us 207.78us 52.70us ( +- 23.67% ) nmi 4 0.03% 0.02% 2.31us 4.67us 3.49us ( +- 14.26% ) io 3 0.02% 0.70% 82.75us 360.90us 214.28us ( +- 37.64% ) avic_incomp_ipi 1 0.01% 0.00% 2.17us 2.17us 2.17us ( +- 0.00% ) Total Samples:15147, Total events handled time:91715.78us. CASE2: Using the lapic regs page for AVIC backing page. # ./perf-vmexit.sh 10 [ perf record: Woken up 255 times to write data ] [ perf record: Captured and wrote 509.202 MB perf.data.guest (5718856 samples) ] Analyze events for all VMs, all VCPUs: VM-EXIT Samples Samples% Time% Min Time Max Time Avg time npf 1897710 99.33% 98.08% 1.09us 243.22us 1.67us ( +- 0.04% ) interrupt 7818 0.41% 1.44% 0.44us 216.55us 5.97us ( +- 1.92% ) msr 5001 0.26% 0.45% 0.68us 12.58us 2.89us ( +- 0.50% ) pause 25 0.00% 0.00% 0.71us 4.23us 2.03us ( +- 10.76% ) io 4 0.00% 0.03% 73.91us 337.29us 206.74us ( +- 26.38% ) nmi 1 0.00% 0.00% 5.92us 5.92us 5.92us ( +- 0.00% ) Total Samples:1910559, Total events handled time:3229214.64us. Thanks, Suravee