From patchwork Thu Nov 16 17:19:39 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Woods, Brian" X-Patchwork-Id: 10061563 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 77C4A604D3 for ; Thu, 16 Nov 2017 17:22:25 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 5B1222A6FB for ; Thu, 16 Nov 2017 17:22:25 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 4F26F2ABD7; Thu, 16 Nov 2017 17:22:25 +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 C93BF2A6FB for ; Thu, 16 Nov 2017 17:22:24 +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 1eFNpT-0003Sh-QP; Thu, 16 Nov 2017 17:19:55 +0000 Received: from mail6.bemta3.messagelabs.com ([195.245.230.39]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eFNpR-0003SF-V9 for xen-devel@lists.xen.org; Thu, 16 Nov 2017 17:19:54 +0000 Received: from [85.158.137.68] by server-12.bemta-3.messagelabs.com id 90/4A-03368-9B8CD0A5; Thu, 16 Nov 2017 17:19:53 +0000 X-Brightmail-Tracker: H4sIAAAAAAAAA1WSa0gUURiGOzuzs6M5Oa6Kn6uSbZRoaEpUFlK WhUV0+aOYkDprk7u4F9tZYyMIMzO8BCrldaNSUxOSFG+0VGhtXtDyUmpW/tAlzYRQ+1Ep2Yyj ZufH4R2e9/3mPfCRmDyHUJCs2cQa9YxWSTji6p3K6MDmTio2eLx4S2jlbAUejo7ZrAuSMyhWq tGrDOYEqTrX2kekzMnN9uHbeBrqds5GjiROZ2CQeasPy0YOJKKjYHJwBhOAnP6JoKQ8FxcAQf uBrfGHVNButBcMzQ8iQWP0KILq0SuCdqVDoc3SsezH6W3Q1vBHImiK3gt55c+Ws0BvhqeZ/cv agfeXWvNkgpbznrG0OkL0u0BXiR0X5wO0TU1hYtYXml4NEEI5oDMRzPe+4QHJh32h7MMO0eMD tl4LLuqTUFFYRAgWoLdCd8YpMVqNYKK2CxM/rsmgZ65zpVwAfPw6IxXBLwKG+4dlItDC3blHK y1CIefBIhJNY1K4mT+xAryhuHpUJoJiKfS3pCOxXjz8tkSIng4nWMr1EfVLGdTcO52H/EvXvb p03avvI0kt8uNY4yXWGBgSpDJqktQmHaPRBoYE7wrSsRzHJLFaRsUFJRp0DYhfgw38aUXVs4f bkScpUbpTMTYqVr5JZTh/Wc1w6nhjqpbl2pE3SSqBOtvBMxcjm8SaL2i0/C6tYiCdlG7U7Gse U1wKo+M0SSLqRgfJzoKRRQmZWzvK319KvqVhZOH7G+mYHNcb9KzCg1IIU2khpk7Vrw1d3dEB5 KNwpRBfU+6Uwhp1GtP/fBp5kEjpSnkKU5w0etPav6f5WhK+VtjIRqGWifmHFGlIp6Lya47GPf dKTPnUm44i+9s/h+2HKPelsILyd1dTnTdNxhusjWWd+3pjwo70xFr8HwcdmrOGO75YsNvPZRH mpdaihAP+mSdCt+8J9zp+PTruSZ9r4lv35ogR5XTV7uQWXU7WYpOlMvn7xUQ7ulPvYKuLHHcY ktU/TC2P9K8qJpQ4p2ZCAjAjx/wFNnai154DAAA= X-Env-Sender: Brian.Woods@amd.com X-Msg-Ref: server-11.tower-31.messagelabs.com!1510852787!84419345!3 X-Originating-IP: [104.47.34.86] X-SpamReason: No, hits=0.0 required=7.0 tests= X-StarScan-Received: X-StarScan-Version: 9.4.45; banners=-,-,- X-VirusChecked: Checked Received: (qmail 25031 invoked from network); 16 Nov 2017 17:19:50 -0000 Received: from mail-by2nam01on0086.outbound.protection.outlook.com (HELO NAM01-BY2-obe.outbound.protection.outlook.com) (104.47.34.86) by server-11.tower-31.messagelabs.com with AES256-SHA256 encrypted SMTP; 16 Nov 2017 17:19:50 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amdcloud.onmicrosoft.com; s=selector1-amd-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=LM7qSGTBkfDM8kC7poXSKLQGNqgENcjK23QS/5bSxDA=; b=vo+LdejXU574n4BFVQpXWzq1XqLeM1SbqjltdjlSRBh+hXdnjlCgsVNMH6kBfvJfcibNws2DvRNUCDcR8KIFbzq2C5OlR5+bQxy0kyPcx2xMEVABa368jAVjELr8RoT5athyvnN8oCD3yezNzd4N+uVELURKOOSjOgq372v58TE= Received: from nikka.amd.com (165.204.78.1) by CY4PR12MB1830.namprd12.prod.outlook.com (10.175.81.148) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.239.5; Thu, 16 Nov 2017 17:19:47 +0000 From: Brian Woods To: xen-devel@lists.xen.org Date: Thu, 16 Nov 2017 11:19:39 -0600 Message-Id: <20171116171939.6853-3-brian.woods@amd.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20171116171939.6853-1-brian.woods@amd.com> References: <20171116171939.6853-1-brian.woods@amd.com> MIME-Version: 1.0 X-Originating-IP: [165.204.78.1] X-ClientProxiedBy: CO1PR15CA0062.namprd15.prod.outlook.com (10.175.176.30) To CY4PR12MB1830.namprd12.prod.outlook.com (10.175.81.148) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 3cd85588-89bb-4e6c-0a24-08d52d163d4a X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(48565401081)(4534020)(4602075)(4627115)(201703031133081)(201702281549075)(2017052603199); SRVR:CY4PR12MB1830; X-Microsoft-Exchange-Diagnostics: 1; CY4PR12MB1830; 3:0A3SuwbJstSM3TcpuPDZ83UBN9XAgvoFQuCHoQtBS0fZssAwtReYXEtgB96TqKEPD5YRqPJobu2muXhDmEl4hHlH9uRoYJiI0IqajbF1C4IU5gPaghqTf1w7gwYVvaaFAcRLKUuLspZPw11UU0N+UngMHhSGZ6yow+CAl7gFIdYfxP8vVKUZijyL/4NwHGL/v7xGZG6g05W3pOuIchzf3wn9EpNpAycXbhWnBeCg3cOpTwXCtrdU+n/lCue0ptgn; 25:dmjXTekLvVUKCaCy3TOgr8kt6tFaqO6ig6H0WjLCpb2SNaN2BgGdcGKG9WbnseUAkMW81OXAuz96MrCpFFya6Gc3f6REeC9djncECZnt/5QoOnewy6pT1eEpbXxBI3XUoC2cRYa03q6zrTZnHEtsmdY8Ccsz3JHjpEM2w37Fz671LhwKRJ2+KCHvsTnfTMHdwQK1JVUfYwdQfZESi+aigPSQ4CfaKJn8146EF0RG/eNfdbRx1Qo1M5laL3RuSa5FuwC3O1oOTgq78ljsUS9MEdcgKrycwcv9Z8EeGcXUyZY3Tuvqdy3fKjkn7G72ValKxRMa+RynJUZTSXddGSs+jw==; 31:G628H6lGMrSJu1fy/0WJc45z4Pj1Rqiw/QqsASK/+mqLAscXxI8qb3hbcHVc20t2KnZKJbuEbngJ0DcAxity8X9abcoZjsV+lZV+m5knVVoVcc31/FNoP4zAbUmjtk6qTbYXxFtF9tIqlYwKjZUWpZR/XNfaaQe4bjof/uDzScdggBy/EbEzq6XQomzQOUv+M1ld0jgH2JTJu5gyIYhI0OQnVzIJ0dACP2Gw9I5aX7c= X-MS-TrafficTypeDiagnostic: CY4PR12MB1830: X-Microsoft-Exchange-Diagnostics: 1; CY4PR12MB1830; 20:/J/bSjcTN0holySJOujMo99alr2hC92OvdTXK5/pkA9yuiPEVR9Y3K3qKEVObiEG/LuO3kg8TMwtoKObrYeGNXxsMAAPZHpq3s7fRsFcwZB08xTuBg0mDgEivKSz1L7J0WotJMXzKkkyw0S7abGpZlatlH+FdF65oYLRty3MbnOjqqL45pGs7ha9cRe/EyRjKoEX9JPWmRCyCtj3jUVDQr8hPh8NZf57BovHcm+aK/UWdNjsZx69sH6F5pTw7zJc8bVBlpe4Z8nb2JLj6p31aBEsBfOzU4dhn4DRwwHISAPsRa/+45nfpJPHynaynr097A88D4YFrx2hODZwBWufYyx23+lDUcIfjddXTCqfBdkvP4cfrOkz839dDwXyvAkpNR8jy/dwD7LjoF6dbmGR0mLcLhXaJIydAYVV/zlTK977/BxBVR3smwNVK80oeTyQKzSTzcN/NaPPDD7LLfl4WlZUlepBojRxY5CJSeF856DTGS1fANx6+woURIHpAq3d; 4:8xnfD4PTfJfYp0LRKclOJ5/aWQw0MsoRpCBdCGUHLSJe6G2taIqKMEOaSblWEyqEtR3RLZVOyhNBr6cD3TiKC95YmGtTZOyd//1oKVm8IwL9qBZM/+d5FathhlRSpkoBYAwMPGY/nnVbZTQhjGxOdiYzZZUaZkzbuKzZ9QAQhxyrQmW7bXsjcdVQcFm6lk20poiOKXwVly7lm+CcgbTCFZ0N+WvMNzFYQRk7K1FMtYhPY2aqAOF4+HU0w7TlrRXDbMlMahQAOgQoXFtzEWRToYfDue8GOLH5zTL3wpb+Ed9QkHWXgWgy4qZ/mHtizn4m X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(767451399110); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(2401047)(5005006)(8121501046)(3231022)(3002001)(10201501046)(93006095)(93001095)(100000703101)(100105400095)(6055026)(6041248)(20161123560025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123564025)(20161123555025)(20161123562025)(20161123558100)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:CY4PR12MB1830; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:CY4PR12MB1830; X-Forefront-PRVS: 0493852DA9 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(6009001)(39860400002)(346002)(376002)(189002)(199003)(6486002)(8936002)(53416004)(72206003)(3846002)(2906002)(53936002)(6116002)(76176999)(50986999)(1076002)(25786009)(101416001)(36756003)(5660300001)(6666003)(2950100002)(478600001)(6916009)(4326008)(8676002)(50466002)(189998001)(47776003)(8666007)(66066001)(48376002)(54906003)(16586007)(305945005)(16526018)(81166006)(81156014)(97736004)(316002)(50226002)(105586002)(7736002)(2361001)(5003940100001)(106356001)(33646002)(68736007)(2351001)(86362001); DIR:OUT; SFP:1101; SCL:1; SRVR:CY4PR12MB1830; H:nikka.amd.com; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; Received-SPF: None (protection.outlook.com: amd.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CY4PR12MB1830; 23:AmU5AWvcJRgOA2bS4Js7hPxAGoiTr/JUZ2z1u1gV3?= =?us-ascii?Q?9UqRgnaN2LqC0E69IzkS+Mmeh3GAJtgdwPklxvD5wev8nRMAXElslzhvMYkX?= =?us-ascii?Q?qy5QcDtPgOOKFkqDut7K1BDoMwvQuv38ZwWS5zUkCRGdm7048fY5VVwFPCXe?= =?us-ascii?Q?b/95NpkiQTqLQa/y1qzzpRab88uWYcui14FU3iSukNThqzbG+OBOd1LBvkuO?= =?us-ascii?Q?izIU3l0mQ1uO0yIVGO7XXrJj3np7c/vNmQ3kB4fD0n7wxIUdBOjd1ZrXxRQ1?= =?us-ascii?Q?nZm5qHDs93IBRhfL3TXSXWZ7iTXh//ouU03IcbjgpZHQurUfRnaJGxO7GkhK?= =?us-ascii?Q?7vqciuZhT4nzvtjV/ESM8mTZkInQwMpVvVioneXhzIgBnefYUVYfvAuPKsbs?= =?us-ascii?Q?eToX5icsBfsZa19HScfci/dPPhGc6IkBjWa5LI082KlxOXm2Stn0qmun333w?= =?us-ascii?Q?mRKL0I/brLZtmp9g0173ITIPoEMSEsaWEV+kSRHMmbJ2vKPvltASgPyVoOxX?= =?us-ascii?Q?1Kwp3+b02xoG7nXnQ2udHI5809w26u78Kx7lbPeFRSvqMz5mPjzlxitFT20n?= =?us-ascii?Q?2DnWEjB63OqV6F0Bv6f0sKAHSMzDy9yWxVhCjk/Ov+y+rUmDCtIwOHm6cNzZ?= =?us-ascii?Q?PJjdKkHCvkJA+2506HLD5oZPhG+VAvZmEpw1icUaS4aod58fGsOlCBazTrae?= =?us-ascii?Q?n9LgCdBDLQU33v2xKAlvn7xm2ppUiM6ZMAlReYo0idi98y1RiRwVvHGKwSn3?= =?us-ascii?Q?jmQaTxkZemSBTuIEmx10D5xcJ8y0Y9H9YJucf5OWon18UoLL6DhZFMb5RAzW?= =?us-ascii?Q?zqewk6YmHYdT1ZgiCGqevfe01/2nGXgdvEbutYWKtVoBoua9MUNY1LAKcA4b?= =?us-ascii?Q?nGhbRAOkgEz5FlkqAc/HpGDIz5K5g41F43APgqDMAcU1iDTvkCJAmS7PkBf6?= =?us-ascii?Q?6ReoBmfUhGFZDu9G0McWciTc6bu2MUAo/XF95jodo65wR6fKpKGWPtzSM1/g?= =?us-ascii?Q?xNPPLWuDm1ICMMrkuGs8N5BCozzdv1cwC2z8jSA9roYP6+TjGCOramL5XZl4?= =?us-ascii?Q?F2y/QN0TfaEw/av3U0zkVzrogKxwABJ7PmKZ08BE0xQc/B0Bfq7a9akw/D8i?= =?us-ascii?Q?6YhZba7AX6mzoVS85C3MvUndSe5O3pi6ZapUYKH046WOW29XzjZn4xC0XD3f?= =?us-ascii?Q?X8Fbt1D+8Qj7ek=3D?= X-Microsoft-Exchange-Diagnostics: 1; CY4PR12MB1830; 6:lqDdr+Bfg8HVJWWkpy1dx6si5L07jEtmuWLFaIIB/u2nvniMgre1aU1eYE2yrkAPz+ra93OW7tv4Ry/HRj0QOZxN5Skz7cJIO2uHxagvEFULsBDpA7GVOxcfHOFAfzCa54r3PDSedlP5Lhb4H8iddpctzO7X3SSTbgi6YSX+oi1IFqHCyvC1cjRMCJwRdNHUb1Ydzuv1Vwapevz7AU9xNtYUrWjvq1mR/PaJHAYF7Ja0qhbX1o24Y/tlvkFPWCzafZZwhTcdD4hb9HTxN4mgFV1a5t5qW0bFsTjc2qhuO8UCoHKlCFxp1QeFGWvgKhR9mo8wHwLVmcwupPS40J49tc4StUmrDIXbcV6Gp9iHWds=; 5:jc9Unt3WjCw8xw6J62z6dvK8nkpAO+ibkyHntxV0yKsZGT0TGSHzmg85zr9PLzJwS1vXMtG+vS+oJqpt2OFhjU7zV90nfp88HnZMsIOx0f5+ES1oTBaPVwaqJph07OxELPhA6Rf1w8bhMdx9JkLLLv6iOFwAzV389BZhu8qCGKs=; 24:+E7yAuE0twZiisE1rnAVIWieV+7z3RgH9BRwC+HUjlRgEMhuzs9qhGE73ZN1/m5VZtI41gtBWeha0PPEHdJLBIwTaCAZ4xmFox0KmV3BFtA=; 7:IzfgucrOBT1f9n5/D8vNRXxpBO3jrEpT4pvwzRPiZi/2WyNNaJKHl8xgIwxSKtsj6cYRLuxHiUuKNnPKh+6kUBCRcJ8lOth4exKSlGvcqQi46GHnJxirbpDAkXWaC8Srp4mYDB+3SgvkS7qzlwxzqOo8YiRwNs4jwb3eBsBJEE13X1Qt6b2dTxLUqRs4AlhQG1ukLDZjdL4omRYsvFVxdTMMY8hOtxuJzq80WUtZ0wO9aQVRa0Tz0p6ZY1qFNsJv SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; CY4PR12MB1830; 20:S7EHSC3EuJCdj+TtbVGblchevDXYIgQqJErkHdqBr9fdYHGphVRNZfFh1L+U7txjuHB+W/Y1rJjYwxXHahn53JfFFh3rdZpw+ZUtUQ+K5Qk1HFflvUurH7+Da0seXEyfEC0Gya0zNN01+ijCq9x855wn24P9WgEgv1+3hQXDVMxZ8At4C7OHfQn3wFk7t8YPv0qd3jLXXNQol+0MNPEZHmc63VWQ3Qmkkt4ImTMMpWRUm1fNIKFoPQw7G/4o+ayL X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Nov 2017 17:19:47.5461 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 3cd85588-89bb-4e6c-0a24-08d52d163d4a X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR12MB1830 Cc: Andrew Cooper , Boris Ostrovsky , Brian Woods , Jan Beulich , Suravee Suthikulpanit Subject: [Xen-devel] [PATCH v2 2/2] x86/svm: Add virtual GIF support 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 detects and enables Virtual GIF if available. This allows a nested hypervisor to perform STGIs and CLGIs without having to be intercepted by host hypervisor. Signed-off-by: Brian Woods --- xen/arch/x86/hvm/svm/nestedsvm.c | 7 ++++++- xen/arch/x86/hvm/svm/svm.c | 1 + xen/arch/x86/hvm/svm/vmcb.c | 12 ++++++++++++ 3 files changed, 19 insertions(+), 1 deletion(-) diff --git a/xen/arch/x86/hvm/svm/nestedsvm.c b/xen/arch/x86/hvm/svm/nestedsvm.c index 1de896e456..0705cf9cb8 100644 --- a/xen/arch/x86/hvm/svm/nestedsvm.c +++ b/xen/arch/x86/hvm/svm/nestedsvm.c @@ -1597,8 +1597,13 @@ bool_t nestedsvm_gif_isset(struct vcpu *v) { struct nestedsvm *svm = &vcpu_nestedsvm(v); + struct vmcb_struct *vmcb = v->arch.hvm_svm.vmcb; - return (!!svm->ns_gif); + /* get the vmcb gif value if using vgif */ + if ( vmcb->_vintr.fields.vgif_enable ) + return vmcb->_vintr.fields.vgif; + else + return svm->ns_gif; } void svm_vmexit_do_stgi(struct cpu_user_regs *regs, struct vcpu *v) diff --git a/xen/arch/x86/hvm/svm/svm.c b/xen/arch/x86/hvm/svm/svm.c index b9cf423fd9..6b7a462fcb 100644 --- a/xen/arch/x86/hvm/svm/svm.c +++ b/xen/arch/x86/hvm/svm/svm.c @@ -1669,6 +1669,7 @@ const struct hvm_function_table * __init start_svm(void) P(cpu_has_svm_nrips, "Next-RIP Saved on #VMEXIT"); P(cpu_has_svm_cleanbits, "VMCB Clean Bits"); P(cpu_has_svm_decode, "DecodeAssists"); + P(cpu_has_svm_vgif, "Virtual GIF"); P(cpu_has_pause_filter, "Pause-Intercept Filter"); P(cpu_has_tsc_ratio, "TSC Rate MSR"); #undef P diff --git a/xen/arch/x86/hvm/svm/vmcb.c b/xen/arch/x86/hvm/svm/vmcb.c index 997e7597e0..ce656dcbce 100644 --- a/xen/arch/x86/hvm/svm/vmcb.c +++ b/xen/arch/x86/hvm/svm/vmcb.c @@ -206,6 +206,18 @@ static int construct_vmcb(struct vcpu *v) vmcb->_exception_intercepts |= (1U << TRAP_page_fault); } + /* if available, enable and configure virtual gif */ + if ( cpu_has_svm_vgif ) + { + vmcb->_vintr.fields.vgif = 1; + vmcb->_vintr.fields.vgif_enable = 1; + vmcb->_general2_intercepts &= ~GENERAL2_INTERCEPT_STGI; + vmcb->_general2_intercepts &= ~GENERAL2_INTERCEPT_CLGI; + } + else { + vmcb->_vintr.fields.vgif_enable = 0; + } + if ( cpu_has_pause_filter ) { vmcb->_pause_filter_count = SVM_PAUSEFILTER_INIT;