From patchwork Thu Mar 30 09:13:15 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Wei Chen X-Patchwork-Id: 9653335 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 A36D16034C for ; Thu, 30 Mar 2017 09:16:39 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 886C52857D for ; Thu, 30 Mar 2017 09:16:39 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 7934B28482; Thu, 30 Mar 2017 09:16:39 +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=BAD_ENC_HEADER,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 B2B8228482 for ; Thu, 30 Mar 2017 09:16:38 +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 1ctW9o-0005O6-DT; Thu, 30 Mar 2017 09:14:16 +0000 Received: from mail6.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ctW9n-0005MU-EZ for xen-devel@lists.xen.org; Thu, 30 Mar 2017 09:14:15 +0000 Received: from [193.109.254.147] by server-8.bemta-6.messagelabs.com id 9E/15-03648-66CCCD85; Thu, 30 Mar 2017 09:14:14 +0000 X-Brightmail-Tracker: H4sIAAAAAAAAA1VSe0hTcRTud3d3vZqz63wdX5GLsML5gl5aYQS WiOk/gRg9rnZ1o23K7rQZFJNVoCEagc5lqWWSSo5KM9ImaeYz85WhSTkoMlMrQSit7F7vNPv9 9X2/7zvnfAcOKZIuiX1IRq9jtBpaJSOccEUIipCn9o4nhk557a78fhuPQofbmxaxBJQkVmqS0 /WnxApbZb9DRq+v3rIwJDagCs885ETilEEEMyNdBE+kVBUG1rZyUR5y5EgHBk9LY3kBUYMImt pLRILLiiDnU6edFGBg7irDBFKG4HK+heDrCSoA8q/m4Dx2p/yhNq/Ugcciyoig7mc0j92oRGi bzV/+x6ktUGgzYjyWUFGQM3dvuRaojTDal7ucyZE6ADlmGyHki4KbCwNiwe8KXSUfcKE/wLPJ SfsO/lA8/hIJfbxhZLSfm0VyeDN0XzzCZwbqLQ6WxT9IIOVisLxusBfEwa2iV3bhCgLDcJ5YI A04fCyqsLusBDx5r+exCyWFxolmTDA9wmCmflgkmFQwX9xjL4iEgaIyQjB9xaDgnQkvRHLzmj 3Ma/YoR1gN2soy2ixGKw8LD07WKtMUOjWtVMnDQncGqxmWpdMYFZ3MBqekqx8g7hjWce8xGrq f0Iq8SUzmIXl4YzxR6pKcfjpbQbOKk9pMFcO2Ij+SlIEkvIfTXLVMGqNPVaq4i1qRgXSWuUt+ d3OyhM2g1awyTZC6kZwcMzRPY1Jck65hfLwkDnwPijcpMjWrLVbuchD5+7hJEBdK6pzBaNVK3 f/6FPIikcxNssSPclZqdKuTprgQGBfCa+8YH0JH/5N8DOhQwZusmH01pg3sueZtjapY34AX36 rNRHUlsb7lmtXREnSwrkNn7EXuzzv9ju3Z9GVu12zrXVWcych8bjy/cDZ7SVN/uPaCy8R+Y1B gijQ64tKPkOvW/trc3qq+yXjTr4ykwZh4ZAiZPmEzHW9KouZndgR6eEaeiRmbbDnaytruyHBW QYdtF2lZ+i8pFA35kgMAAA== X-Env-Sender: Wei.Chen@arm.com X-Msg-Ref: server-9.tower-27.messagelabs.com!1490865253!94600337!1 X-Originating-IP: [104.47.1.58] X-SpamReason: No, hits=0.0 required=7.0 tests= X-StarScan-Received: X-StarScan-Version: 9.2.3; banners=-,-,- X-VirusChecked: Checked Received: (qmail 53643 invoked from network); 30 Mar 2017 09:14:13 -0000 Received: from mail-ve1eur01on0058.outbound.protection.outlook.com (HELO EUR01-VE1-obe.outbound.protection.outlook.com) (104.47.1.58) by server-9.tower-27.messagelabs.com with AES256-SHA256 encrypted SMTP; 30 Mar 2017 09:14:13 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector1-arm-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=7zyKzcbyD79QW9Pj6MPkzFCE4Ybm1S5+CX12Ha82lCU=; b=oNfafWsViM5lhwpv+r5DQxgu9WdcNDfThkEU8AM5CvfPEXXQ7yg5ue4lGWW00CElh+H+Lw5Y7KUiOh6R2kEKLWUjpqboby3VYcv3v/rFJGNZOzXMUseZ1JDYrRuPJCnovUajlMpHkfJYLgxYK012sp5+w48OHTS1h9FXfLgMwl0= Received: from AM4PR0802CA0011.eurprd08.prod.outlook.com (2603:10a6:200:57::21) by DB3PR08MB0220.eurprd08.prod.outlook.com (2a01:111:e400:504f::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.991.14; Thu, 30 Mar 2017 09:14:12 +0000 Received: from VE1EUR03FT025.eop-EUR03.prod.protection.outlook.com (2a01:111:f400:7e09::203) by AM4PR0802CA0011.outlook.office365.com (2603:10a6:200:57::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1005.10 via Frontend Transport; Thu, 30 Mar 2017 09:14:12 +0000 Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 217.140.96.140 as permitted sender) receiver=protection.outlook.com; client-ip=217.140.96.140; helo=nebula.arm.com; Received: from nebula.arm.com (217.140.96.140) by VE1EUR03FT025.mail.protection.outlook.com (10.152.18.74) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P384) id 15.1.977.7 via Frontend Transport; Thu, 30 Mar 2017 09:14:11 +0000 Received: from P300.p300.shanghai.arm.com (10.1.2.79) by mail.arm.com (10.1.106.66) with Microsoft SMTP Server id 14.3.294.0; Thu, 30 Mar 2017 10:13:44 +0100 From: Wei Chen To: Date: Thu, 30 Mar 2017 17:13:15 +0800 Message-ID: <1490865209-18283-6-git-send-email-Wei.Chen@arm.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1490865209-18283-1-git-send-email-Wei.Chen@arm.com> References: <1490865209-18283-1-git-send-email-Wei.Chen@arm.com> MIME-Version: 1.0 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-HT: Tenant X-Forefront-Antispam-Report: CIP:217.140.96.140; IPV:CAL; SCL:-1; CTRY:GB; EFV:NLI; SFV:NSPM; SFS:(10009020)(6009001)(39450400003)(39860400002)(39850400002)(39400400002)(39410400002)(39840400002)(2980300002)(438002)(199003)(189002)(4326008)(5003940100001)(110136004)(104016004)(38730400002)(86362001)(8676002)(54906002)(36756003)(50226002)(50466002)(8936002)(77096006)(48376002)(189998001)(6916009)(2950100002)(356003)(47776003)(305945005)(2351001)(106466001)(76176999)(50986999)(5660300001)(2906002)(6666003); DIR:OUT; SFP:1101; SCL:1; SRVR:DB3PR08MB0220; H:nebula.arm.com; FPR:; SPF:Pass; MLV:sfv; A:1; MX:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; VE1EUR03FT025; 1:5kE2sKUs6L6lB7v5wxiG4169AKMp6JzpR2ZsBgTaHn028i8zKocIfLGzoR0XBBdp37c4yCo7jDZyvJVeorKtpicTluKMBo5vw1IwlEFQlb/GE6zyrfPCJCyXWWA29t/IPu0Tovb4frC7MrQ02q/qV1VHMUgAj3FEKOXrkF2U8wrnaSX7QaeMpnkbgwGzZt2wI7xrRFyLO9ed6qGU4vtW+Kwf7V3Tg+8Wrbc807RJf95at840nazQ+LkUyZkvBGYQwA7/xdUpK9/kKfNDZbUXonJu7IGdJ5p2yHR2BRUddTwHrnruOwObHqaiiDT03Yq2gWTh42QtP3sY/yPfmyUA+PES4YSIqDIalARQyWESgD0Qpl6pGAjKA8prbAdIxk0Rv3+nwWh1xCZ8CRxucAZw0ECDzclX4hZ7M9QkI8FMHuilOMgn11xH+aKRpj25sEsof9btHw4LCF/xQfG0n6bOjXZEaPYWZjyY18tLu+YUnmVfZrgG3ZV0e1Zgd/0mlk1XK1EItczTvZoVrxJWBPMHl/42HszWtfZUCDN5KcjlqlpgngRWzJvjRuwWy/PZ4e6gSrLy7abxGu80kvI8mg96bwHpjEUkp6vifyApogXdPNE= X-MS-Office365-Filtering-Correlation-Id: a163941b-621a-4c7a-2fb2-08d4774d2163 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(8251501002)(2017030254075)(201703131423075)(201703031133081); SRVR:DB3PR08MB0220; X-Microsoft-Exchange-Diagnostics: 1; DB3PR08MB0220; 3:xFToN0ToB889n3DSeq6Id2aoHaeskxJ6A+wGgu0B/3oIlllvEYsqDY2FIN5C47u3+bNpNeFQI9pKGqL7f0G80AgAUA8PZvd5C3HBte1X/tD/O+/KFQc8L0gfmdnFc2fXILtxFXXzMaoINNUyYrUPOX4mJObxDbj50PcgiVbGBxhk/a7xgrGkq0gil5iSPquaY5lw0/Crk3HV1gqdwv5NKNyYa48PitZuw2oS+44tqQT5xLqfr/C9kyJ/m1hr9ojHq1zOG+IUrn/ZAoMkIHJDi0onTKdxHhqgAVQlQ4OFDI078GaFpI3vt/9Nz3CMf+IqgB8WY5PaCpbKGeJ0htaQhB9ltS15UsGx4ZRYpHcwCeHpejsHwb4WJ80UDHrIlpZDNk5bI/C/oJgTrFtSKqUQly5m/D6TKUt3nAgZ5q+XKZHTtPFbgnD9b7itSjpLVpWAp+8PIiv0GiSdt9YfdO+ZPKmnI/CPCySVFBhFVm1QXP5Mq/km2hSAaLwlVN3gD3pe X-Microsoft-Exchange-Diagnostics: 1; DB3PR08MB0220; 25:xSTCzBqAyU+Gd3s0APtlp5/ZPHVk03mL0lKO/652MNvUkqEMJJcK5zKMQGnDoihJmsA7L4uzWB+ONfowKl8bziITni5wcNrpTTjyG4jK2VbXsuRgATQkKD4vDGDQkKm2W8ekW/yAg40A0qIVtC9GA+kEytECiNutRDRMt/qFTXlz80WmAWmArFheeW5nvNt3Xy5+6du5bhUdHM/VXya+/U7brYpbTchuVGJTbu01n30oZ4B7vC6W8jqHukVKGwTBd8jIhAlertToipAUXWAOcYlgOwKS2k5AmyHraieFYmoiZ2Yheh2kKuBK13iGIdyIpOEospGW2TKk/zJZkLUkweEefwYcYiXb33p2CBJ0GNJFbvAueOiZbp1BlsFCTrCYyR0Hbi6WzDr0+tHJZYoAZljQsMMPNDUsgJxC8p/MggH4vw3X3/OuCb+jopdGs5XRnYhtmOch21ZSB1EMDAqezQ==; 31:Dn/fALtZx7CXezSC8mmojd8aYC1Wnbag0Epk4BJHsbGHAb8w0/x+slNGRlXM9N/XPPSU4fH9ZITueM45iAqZqdoGgWoPm/r4LIEN5+KmftQtmTSX9bZaFEuHtdkl2jPr7B6pxSIky88zlx5mJLdVbolbquH3rhNFuhOSCqjWAQ1RTW37vOqqJQOUB7oHBZmzUvOYtUfTQNKuyXXoRTbEfvzVstaoXULrsuDrm6/UQnlDLEYIOeK+rBEGgvCosr4TrqK/lEC5BNc59q5LT5AIGdE6cUnybqfCkBfFgF3Ndqg= NoDisclaimer: True X-Microsoft-Exchange-Diagnostics: 1; DB3PR08MB0220; 20:6rlblEqWe6MPHRt5YtqqkVM72FweibyCQxlWRhf81Kf+dvHqcXI33sl1HJBg/Z2CNEOtASugYboJf9xNlq7MUc2UEKp87kQl8hGEqOJZw+HRHM+F9KuHPqf3VUlXByTwaydwCwqmogXXRCOqG89OZbFLpqxAy3cE4dVxrSbyLfB7BSmVGRfw0Se4rIMTQqRSqBbz9t5IyBu9gWAeqRTZAEWTcrx+tgj2uAqfD+GqCscTOyZtNtyO8VMAfgmXmtCX X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(180628864354917); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040450)(601004)(2401047)(13013025)(5005006)(8121501046)(13020025)(13023025)(13024025)(10201501046)(3002001)(6055026)(6041248)(20161123555025)(20161123560025)(20161123562025)(20161123564025)(201703131423075)(201702281528075)(201703061421075)(6072148); SRVR:DB3PR08MB0220; BCL:0; PCL:0; RULEID:; SRVR:DB3PR08MB0220; X-Microsoft-Exchange-Diagnostics: 1; DB3PR08MB0220; 4:OrsSSw/XduYTYCVho+eFOYhwyxFAvZIULzpCTQ/6CREZPGmh0TyZOEVpfO16OzLOoQkAPu9xrGbtns5Jp9/gK/llfCA18YbOU5dVJUellEbR1+OWZEhEtZK8lIPhHO6XYTAPUq8xTxWS0wrg/KyuZrws7XFeuDCHbol3skDN/chEoVSTEBaqu6tfTKP7Ufv4jKwaQYYs36vVxVnazBWoKfrkCmwBZ3jNWA0DFMnMkZLR7aExvky4wSuU4hgW9CI7D6jxAGemXyeP9nBblNAfv94geIhnqSBdD0f3ZYeTB9LdFkF55wVn8sgXb1BtyWAw5M08TWIGIqnV2TpuvX+7ur6QDebkCygwTREB4LxxBY4tE/sDZ8uPDaD0VhJnjIG33I3gD8zg2m5YmDZNoWzaQoRiH2M0i1WGP8wZsNNLKvenvl/qVX74+5F9OBLjKtRXJgmhoS5mrylYnoxu0Fhtyv85XPK3srz6peSkaxv9NehFzKuA2sfu0jqgvClSdOuk9HHCaNJph9TnFZo7aHHHjSwoKp2vGkdx/N159pz0Kq4AEY/xlhuO5P2h5ThL1PuDhknOrzp5JMC42MJM9J40kLG4p5aTyiIGZv7XMU9UXRIhNnN4+tJpQOAnsFyHm2zPE+cK1bEWIUjBlEmLbuOpYeWtt+W3Cv/IJacNqfDmpMHLXtSKYUSy/QYk8sI+T2XqzzAdcjvQv4LLkbGPaN102conmfWM2L02UVRYVD29veQBjeBCBfoPbHqABlARYqgRzkxxP6uvHhIcPUr6kCRwT+GdqZVrfn0Xsm+JLUkrNZC/xdKJsq7w7dK99aN4IsLr X-Forefront-PRVS: 02622CEF0A X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DB3PR08MB0220; 23:aZTBaKmnfRIKB4OcYSCMseS1J3kSCT0MC1xLvitaL?= =?us-ascii?Q?AnFTlN4TWUx49GrkrRUI8FUdA+ih1vy7/Bve6fHyVlWIDvhrK8vG5ScuNggl?= =?us-ascii?Q?OUTSSshmYAUB1AfUSWrqpdWDDBEAWnNBigp/Ovh60SBEfojeINh/vqyeE5T3?= =?us-ascii?Q?OjPQC9q6Fm4etGejpmvVwNVXcKlewm1FddJPp6L16lrBB76VeYemluEhmOYx?= =?us-ascii?Q?9ePyHm6LC7uwyKyG6i2MwbLRxJlG1XKsUPJW1JMGADVCx70+4vbyUYhi7oRh?= =?us-ascii?Q?VZw0jn3Zo0JVeSpCBDOAi3tKYFqWBB7vabvZdgHCwTpo2Bu3T5fVF8GdCfnF?= =?us-ascii?Q?KggJ3H23M+wp+WiD2LbqR/ZBF36NXbf9Sko45P8/tnYlk84CzN0YGDkXAOWS?= =?us-ascii?Q?b+AtWGewXLOVXhRvVW6EifQns7ZvxIC3OZWH8VDYa6yHCljtaNclfuutyd9z?= =?us-ascii?Q?Hwn0mYkRvaWUhjhWL03qrRswAqEuwblGzAhhfashnDx7xjQXxWwH6fNB3tfH?= =?us-ascii?Q?5qp7Ia6GhBOaDG1ftCH0FSEKlxFXQyMuVx9zEq2+y1lSrOCEMekkX+Edt/wf?= =?us-ascii?Q?phdW++xWMK4s890/hACXRIppCz4NvhS753GEldIEdqB42yo+cslrOr55ptox?= =?us-ascii?Q?osQXCF9Hpi619Q4tLYF26KIm88mYbvBcAlOBn3vxB+2YFePCYA4tDXxrPFFm?= =?us-ascii?Q?AtNt0vWfIDxYWfYqm0UGL8J6f8mdznxg/QMiaF36REpZ+WtcZ/arHw4Z0dZ5?= =?us-ascii?Q?fd2jcfOpkde6ahBuJJXAoCGTvr0GZ2P6EunrqCECNhmmkB2PzOOSG4QRP2Kn?= =?us-ascii?Q?2nJoJLskn8yD1RmAiKdeADyCngcdUklEd+A+ns0W7Vwi8TqlCVaiQ/tVQcxf?= =?us-ascii?Q?Ta7f0vGaxNWvqOERWQr+1tXnvleI18uej/jMEVfMpIK3xKqaf9HSGnjIo63l?= =?us-ascii?Q?pfL+L5PEp3swmfPHdciQHiymMMr5Wt/Lim98shMYw=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1; DB3PR08MB0220; 6:e44Sa8hs7U/zEcxqK60wGd+0ashsVcsye3necfgJnisc5L5dwMKfkqG8tXOBcaZU+uEuQ61aYGXMVLusUPNJbr5OxIY4Mik5FYGAL6Efa+5gNhOTnlc8rf+4w1j0lpyn3kfsuTIpgsCTO7ic89HK6+ZkbZ6GxkJKCAhwuMEQ0pyyEFymF/zrUnObxHI4xUj0m+J+IxttaUgXtUJwA6xpiOYuV0oxJ91ou7qcd434xk4filyTZJxU5ZjLvlTsLjf5zXmV0fFTaH5Mm4oBslaI/skFCBANKBVEPaL8Wj+LAEW0LpL5vblpv4U8QKxDUgPukWoZ0JffH+qXYdWfuSyefs8HiesxyQgeaCGyX+AYn6WsTVd3fqZg2lWwU9ZogOO4TCYaobwlAywfldTJxyVt8AwK3TlA1dBIdTmDiKQppwY=; 5:xY90Y/Jozf6uBCw1n1WPdWD6ChvgG3NUOYC/LUI3xldbvX0+OCpH3t5frpENK+7CFcJM92j7CnZcrrCnEl/1CUzlhEuqEye9fHLxm8nSQRFk/tBsLtkud8ddV5tJBOQQcusW2Besg+xjNgnMWBuFXQ==; 24:tatkWVxywrWhax9JoWoxapQcUvbg724FiQDQz4XtOz0SLqK/1zwMW6LWgCr6RQ0Gpdy2D0uugIRbRugc8ntJ4zCJbktyz1WtEM9wZ4o+6bM= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DB3PR08MB0220; 7:F7SU6XQnsKLKlyClkt1Jybgr1sQ64ct4aK1gv21rrSmOHgycxyLyjJt2m4rmxMcYHfgjngUsxI1cPNaRq3ZR6XlBNeVlOgiNPAMYqHS3KzUGA2RIT3KnHIXFUvcQqUY2D7i4UQmlL9G+JI9Zpd8L7oQZWDPoOT/1x/8RqZUT6a6bV/x7869VMP882torucb0dWzHplhh++eHnfwT9WLdcqUnyhcnT94zsfgfY+GD6hmmYftnWYhgGHOu6sFiN9MZnR2bvWmCRUHWYLeThPH4Lhk/UGHhE7+ijBprZp1y6QNsJW4xfnMlu2/d9ZUqiPyoeyuxcjm5W37RzwJvgnitQg== X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Mar 2017 09:14:11.9605 (UTC) X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d; Ip=[217.140.96.140]; Helo=[nebula.arm.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB3PR08MB0220 Cc: sstabellini@kernel.org, wei.chen@arm.com, steve.capper@arm.com, Kaly.Xin@arm.com, julien.grall@arm.com, nd@arm.com Subject: [Xen-devel] [PATCH v2 05/19] xen/arm: Avoid setting/clearing HCR_RW at every context switch 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 The HCR_EL2 flags for 64-bit and 32-bit domains are different. But when we initialized the HCR_EL2 for vcpu0 of Dom0 and all vcpus of DomU in vcpu_initialise, we didn't know the domain's address size information. We had to use compatible flags to initialize HCR_EL2, and set HCR_RW for 64-bit domain or clear HCR_RW for 32-bit domain at every context switch. But, after we added the HCR_EL2 to vcpu's context, this behaviour seems a little fussy. We can update the HCR_RW bit in vcpu's context as soon as we get the domain's address size to avoid setting/clearing HCR_RW at every context switch. Signed-off-by: Wei Chen Acked-by: Julien Grall Reviewed-by: Stefano Stabellini --- xen/arch/arm/arm64/domctl.c | 6 ++++++ xen/arch/arm/domain.c | 5 +++++ xen/arch/arm/domain_build.c | 7 +++++++ xen/arch/arm/p2m.c | 5 ----- xen/include/asm-arm/domain.h | 1 + 5 files changed, 19 insertions(+), 5 deletions(-) diff --git a/xen/arch/arm/arm64/domctl.c b/xen/arch/arm/arm64/domctl.c index 44e1e7b..ab8781f 100644 --- a/xen/arch/arm/arm64/domctl.c +++ b/xen/arch/arm/arm64/domctl.c @@ -14,6 +14,8 @@ static long switch_mode(struct domain *d, enum domain_type type) { + struct vcpu *v; + if ( d == NULL ) return -EINVAL; if ( d->tot_pages != 0 ) @@ -23,6 +25,10 @@ static long switch_mode(struct domain *d, enum domain_type type) d->arch.type = type; + if ( is_64bit_domain(d) ) + for_each_vcpu(d, v) + vcpu_switch_to_aarch64_mode(v); + return 0; } diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c index c69e204..18b34e7 100644 --- a/xen/arch/arm/domain.c +++ b/xen/arch/arm/domain.c @@ -553,6 +553,11 @@ void vcpu_destroy(struct vcpu *v) free_xenheap_pages(v->arch.stack, STACK_ORDER); } +void vcpu_switch_to_aarch64_mode(struct vcpu *v) +{ + v->arch.hcr_el2 |= HCR_RW; +} + int arch_domain_create(struct domain *d, unsigned int domcr_flags, struct xen_arch_domainconfig *config) { diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c index 8af223e..14475a5 100644 --- a/xen/arch/arm/domain_build.c +++ b/xen/arch/arm/domain_build.c @@ -2148,6 +2148,10 @@ int construct_dom0(struct domain *d) return -EINVAL; } d->arch.type = kinfo.type; + + if ( is_64bit_domain(d) ) + vcpu_switch_to_aarch64_mode(v); + #endif allocate_memory(d, &kinfo); @@ -2247,6 +2251,9 @@ int construct_dom0(struct domain *d) printk("Failed to allocate dom0 vcpu %d on pcpu %d\n", i, cpu); break; } + + if ( is_64bit_domain(d) ) + vcpu_switch_to_aarch64_mode(d->vcpu[i]); } return 0; diff --git a/xen/arch/arm/p2m.c b/xen/arch/arm/p2m.c index 83c4b7d..34d5776 100644 --- a/xen/arch/arm/p2m.c +++ b/xen/arch/arm/p2m.c @@ -137,11 +137,6 @@ void p2m_restore_state(struct vcpu *n) WRITE_SYSREG64(p2m->vttbr, VTTBR_EL2); isb(); - if ( is_32bit_domain(n->domain) ) - n->arch.hcr_el2 &= ~HCR_RW; - else - n->arch.hcr_el2 |= HCR_RW; - WRITE_SYSREG(n->arch.sctlr, SCTLR_EL1); isb(); diff --git a/xen/include/asm-arm/domain.h b/xen/include/asm-arm/domain.h index 7b1dacc..68185e2 100644 --- a/xen/include/asm-arm/domain.h +++ b/xen/include/asm-arm/domain.h @@ -268,6 +268,7 @@ struct arch_vcpu void vcpu_show_execution_state(struct vcpu *); void vcpu_show_registers(const struct vcpu *); +void vcpu_switch_to_aarch64_mode(struct vcpu *); unsigned int domain_max_vcpus(const struct domain *);