From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id AE978C54FB3 for ; Thu, 29 May 2025 18:44:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:Content-Type: Content-Transfer-Encoding:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:From:References:Cc:To:Subject: MIME-Version:Date:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=m6dU9bC2IZNaleKmHgEgWsdO+xch6gYEVNu5oeU/FTc=; b=JZBvQkpdcZ3HXt PwKR2JW+/GISHmsxo5Bp+YhdZgXtVmXze8mjIPg3apFqyvkHa+9ogdLVig8d9e/ivZj641yvEtjwM LPlA/CzDREKOS26o9A4B9BHmccSN8kw1+dTofaG1ejBvdPFaRCHpz94JblCGJKGXDuZbQlogCa53E kyqZbtH+UyLrAwJHNg9M6n1j4hUSbqtM85hDGEFluBgRQ9PIRsjuk49XvB4NMvWwGnxu8h8UznFDb DuhvBkwLYNj23e6zPeUcYHVeiai9f7owVfNPrzM1ZrZyy2Au1fUhr0UZYzPaOX4Dm3gSMucbi4SNb le4XO6Nxr32J7P7kisQQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1uKiFI-0000000GNrQ-0GEI; Thu, 29 May 2025 18:44:52 +0000 Received: from out-185.mta0.migadu.com ([2001:41d0:1004:224b::b9]) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1uKiFF-0000000GNqG-3IDf for kvm-riscv@lists.infradead.org; Thu, 29 May 2025 18:44:51 +0000 Message-ID: <2bac252c-883c-4f8a-9ae1-283660991520@linux.dev> DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1748544285; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=D/pRYWDTxiG5vCNFI6iYMlgTAzPGEOIy86Z1rIh0MtM=; b=t6mBC+6Vi9P2ogn7IGSjVpOGG1D0PLvPIsnclmwguKD8GZzY2EEBw/0/oi4M/Egs3o+WNK HH1NOZh09QJrVEtpDa095Akv9MrBQAzRDOB0r2l/HaMNV1G8fR9FrQ3JwJG9336cGDa+IH hJYSzpx0d4G0hPc4CWp7pb1SJGYRCiM= Date: Thu, 29 May 2025 11:44:38 -0700 MIME-Version: 1.0 Subject: Re: [PATCH v3 9/9] RISC-V: KVM: Upgrade the supported SBI version to 3.0 To: =?UTF-8?B?UmFkaW0gS3LEjW3DocWZ?= , Andrew Jones Cc: Anup Patel , Will Deacon , Mark Rutland , Paul Walmsley , Palmer Dabbelt , Mayuresh Chitale , linux-riscv@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, kvm@vger.kernel.org, kvm-riscv@lists.infradead.org, linux-riscv References: <20250522-pmu_event_info-v3-0-f7bba7fd9cfe@rivosinc.com> <20250522-pmu_event_info-v3-9-f7bba7fd9cfe@rivosinc.com> <61627296-6f94-45ea-9410-ed0ea2251870@linux.dev> <20250526-224478e15ee50987124a47ac@orel> <20250528-ff9f6120de39c3e4eefc5365@orel> <1169138f-8445-4522-94dd-ad008524c600@linux.dev> Content-Language: en-US X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. From: Atish Patra In-Reply-To: X-Migadu-Flow: FLOW_OUT X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250529_114450_121430_B6428DD9 X-CRM114-Status: GOOD ( 41.59 ) X-BeenThere: kvm-riscv@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "kvm-riscv" Errors-To: kvm-riscv-bounces+kvm-riscv=archiver.kernel.org@lists.infradead.org Ck9uIDUvMjkvMjUgMzoyNCBBTSwgUmFkaW0gS3LEjW3DocWZIHdyb3RlOgo+IEkgb3JpZ2luYWxs eSBnYXZlIHVwIG9uIHRoZSBpZGVhLCBidXQgSSBmZWVsIGtpbmRhIGJhZCBmb3IgRHJldyBub3cs IHNvCj4gdHJ5aW5nIGFnYWluOgoKSSBhbSBzb3JyeSBpZiBzb21lIG9mIG15IHJlcGxpZXMgY2Ft ZSBhY3Jvc3MgaW4gdGhlIHdyb25nIHdheS4gVGhhdCB3YXMgCm5ldmVyCnRoZSBpbnRlbnRpb24u CgoKPiAyMDI1LTA1LTI4VDEyOjIxOjU5LTA3OjAwLCBBdGlzaCBQYXRyYSA8YXRpc2gucGF0cmFA bGludXguZGV2PjoKPj4gT24gNS8yOC8yNSA4OjA5IEFNLCBBbmRyZXcgSm9uZXMgd3JvdGU6Cj4+ PiBPbiBXZWQsIE1heSAyOCwgMjAyNSBhdCAwNzoxNjoxMUFNIC0wNzAwLCBBdGlzaCBQYXRyYSB3 cm90ZToKPj4+PiBPbiA1LzI2LzI1IDQ6MTMgQU0sIEFuZHJldyBKb25lcyB3cm90ZToKPj4+Pj4g T24gTW9uLCBNYXkgMjYsIDIwMjUgYXQgMTE6MDA6MzBBTSArMDIwMCwgUmFkaW0gS3LEjW3DocWZ IHdyb3RlOgo+Pj4+Pj4gMjAyNS0wNS0yM1QxMDoxNjoxMS0wNzowMCwgQXRpc2ggUGF0cmEgPGF0 aXNoLnBhdHJhQGxpbnV4LmRldj46Cj4+Pj4+Pj4gT24gNS8yMy8yNSA2OjMxIEFNLCBSYWRpbSBL csSNbcOhxZkgd3JvdGU6Cj4+Pj4+Pj4+IDIwMjUtMDUtMjJUMTI6MDM6NDMtMDc6MDAsIEF0aXNo IFBhdHJhIDxhdGlzaHBAcml2b3NpbmMuY29tPjoKPj4+Pj4+Pj4+IFVwZ3JhZGUgdGhlIFNCSSB2 ZXJzaW9uIHRvIHYzLjAgc28gdGhhdCBjb3JyZXNwb25kaW5nIGZlYXR1cmVzCj4+Pj4+Pj4+PiBj YW4gYmUgZW5hYmxlZCBpbiB0aGUgZ3Vlc3QuCj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4gU2lnbmVkLW9m Zi1ieTogQXRpc2ggUGF0cmEgPGF0aXNocEByaXZvc2luYy5jb20+Cj4+Pj4+Pj4+PiAtLS0KPj4+ Pj4+Pj4+IGRpZmYgLS1naXQgYS9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL2t2bV92Y3B1X3NiaS5o IGIvYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9rdm1fdmNwdV9zYmkuaAo+Pj4+Pj4+Pj4gLSNkZWZp bmUgS1ZNX1NCSV9WRVJTSU9OX01BSk9SIDIKPj4+Pj4+Pj4+ICsjZGVmaW5lIEtWTV9TQklfVkVS U0lPTl9NQUpPUiAzCj4+Pj4+Pj4+IEkgdGhpbmsgaXQncyB0aW1lIHRvIGFkZCB2ZXJzaW9uaW5n IHRvIEtWTSBTQkkgaW1wbGVtZW50YXRpb24uCj4+Pj4+Pj4+IFVzZXJzcGFjZSBzaG91bGQgYmUg YWJsZSB0byBzZWxlY3QgdGhlIGRlc2lyZWQgU0JJIHZlcnNpb24gYW5kIEtWTSB3b3VsZAo+Pj4+ Pj4+PiB0ZWxsIHRoZSBndWVzdCB0aGF0IG5ld2VyIGZlYXR1cmVzIGFyZSBub3Qgc3VwcG9ydGVk Lgo+Pj4+PiBXZSBuZWVkIG5ldyBjb2RlIGZvciB0aGlzLCBidXQgaXQncyBhIGdvb2QgaWRlYS4K Pj4+Pj4KPj4+Pj4+PiBXZSBjYW4gYWNoaWV2ZSB0aGF0IHRocm91Z2ggb25lcmVnIGludGVyZmFj ZSBieSBkaXNhYmxpbmcgaW5kaXZpZHVhbCBTQkkKPj4+Pj4+PiBleHRlbnNpb25zLgo+Pj4+Pj4+ IFdlIGNhbiBleHRlbmQgdGhlIGV4aXN0aW5nIG9uZXJlZyBpbnRlcmZhY2UgdG8gZGlzYWJsZSBh IHNwZWNpZmljIFNCSQo+Pj4+Pj4+IHZlcnNpb24gZGlyZWN0bHkKPj4+Pj4+PiBpbnN0ZWFkIG9m IGluZGl2aWR1YWwgb25lcyB0byBzYXZlIHRob3NlIElPQ1RMIGFzIHdlbGwuCj4+Pj4+PiBZZXMs IEkgYW0gYWxsIGluIGZhdm9yIG9mIGxldHRpbmcgdXNlcnNwYWNlIHByb3ZpZGUgYWxsIHZhbHVl cyBpbiB0aGUKPj4+Pj4+IEJBU0UgZXh0ZW5zaW9uLgo+Pj4+IFdlIGFscmVhZHkgc3VwcG9ydCB2 ZW5kb3JpZC9hcmNoaWQvaW1waWQgdGhyb3VnaCBvbmUgcmVnLiBJIHRoaW5rIHdlIGp1c3QKPj4+ PiBuZWVkIHRvIGFkZCB0aGUgU0JJIHZlcnNpb24gc3VwcG9ydCB0byB0aGF0IHNvIHRoYXQgdXNl ciBzcGFjZSBjYW4gc2V0IGl0Lgo+Pj4+Cj4+Pj4+IFRoaXMgaXMgY292ZXJlZCBieSB5b3VyIHJl Y2VudCBwYXRjaCB0aGF0IHByb3ZpZGVzIHVzZXJzcGFjZV9zYmkuCj4+Pj4gV2h5IGRvIHdlIG5l ZWQgdG8gaW52ZW50IG5ldyBJT0NUTCBmb3IgdGhpcyA/IE9uY2UgdGhlIHVzZXIgc3BhY2Ugc2V0 cyB0aGUKPj4+PiBTQkkgdmVyc2lvbiwgS1ZNIGNhbiBlbmZvcmNlIGl0Lgo+Pj4gSWYgYW4gU0JJ IHNwZWMgdmVyc2lvbiBwcm92aWRlcyBhbiBleHRlbnNpb24gdGhhdCBjYW4gYmUgZW11bGF0ZWQg YnkKPj4+IHVzZXJzcGFjZSwgdGhlbiB1c2Vyc3BhY2UgY291bGQgY2hvb3NlIHRvIGFkdmVydGlz ZSB0aGF0IHNwZWMgdmVyc2lvbiwKPj4+IGltcGxlbWVudCBhIEJBU0UgcHJvYmUgZnVuY3Rpb24g dGhhdCBhZHZlcnRpc2VzIHRoZSBleHRlbnNpb24sIGFuZAo+Pj4gaW1wbGVtZW50IHRoZSBleHRl bnNpb24sIGV2ZW4gaWYgdGhlIEtWTSB2ZXJzaW9uIHJ1bm5pbmcgaXMgb2xkZXIKPj4+IGFuZCB1 bmF3YXJlIG9mIGl0LiBCdXQsIGluIG9yZGVyIHRvIGRvIHRoYXQsIHdlIG5lZWQgS1ZNIHRvIGV4 aXQgdG8KPj4+IHVzZXJzcGFjZSBmb3IgYWxsIHVua25vd24gU0JJIGNhbGxzIGFuZCB0byBhbGxv dyBCQVNFIHRvIGJlIG92ZXJyaWRkZW4KPj4gWW91IG1lYW4gb25seSB0aGUgdmVyc2lvbiBmaWVs ZCBpbiBCQVNFIC0gQ29ycmVjdCA/Cj4gTm8sICJCQVNFIHByb2JlIGZ1bmN0aW9uIiBpcyB0aGUg c2JpX3Byb2JlX2V4dGVuc2lvbigpIGVjYWxsLgo+Cj4+PiBieSB1c2Vyc3BhY2UuIFRoZSBuZXcg S1ZNIENBUCBpb2N0bCBhbGxvd3Mgb3B0aW5nIGludG8gdGhhdCBuZXcgYmVoYXZpb3IuCj4+IEJ1 dCB3aHkgd2UgbmVlZCBhIG5ldyBJT0NUTCBmb3IgdGhhdCA/IFdlIGNhbiBhY2hpZXZlIHRoYXQg d2l0aCBleGlzdGluZwo+PiBvbmUgcmVnIGludGVyZmFjZSB3aXRoIGltcHJvdmVtZW50cy4KPiBJ dCdzIGFuIGV4aXN0aW5nIElPQ1RMIHdpdGggYSBuZXcgZGF0YSBwYXlsb2FkLCBidXQgSSBjYW4g ZWFzaWx5IHVzZQo+IE9ORV9SRUcgaWYgeW91IHdhbnQgdG8gZG8gZXZlcnl0aGluZyB0aHJvdWdo IHRoYXQuCj4KPiBLVk0gZG9lc24ndCByZWFsbHkgbmVlZCBhbnkgb3RoZXIgSU9DVEwgdGhhbiBP TkVfUkVHcywgaXQncyBqdXN0Cj4gc29tZXRpbWVzIG1vcmUgcmVhc29uYWJsZSB0byB1c2UgYSBk aWZmZXJlbnQgSU9DVEwsIGxpa2UgRU5BQkxFX0NBUC4KPgo+Pj4gVGhlIG9sZCBLVk0gd2l0aCBu ZXcgVk1NIGNvbmZpZ3VyYXRpb24gaXNuJ3QgdG90YWxseSBmYXItZmV0Y2hlZC4gV2hpbGUKPj4+ IGhvc3Qga2VybmVscyB0ZW5kIHRvIGdldCB1cGRhdGVkIHJlZ3VsYXJseSB0byBpbmNsdWRlIHNl Y3VyaXR5IGZpeGVzLAo+Pj4gZW50ZXJwcmlzZSBrZXJuZWxzIHRlbmQgdG8gc3RvcCBhZGRpbmcg ZmVhdHVyZXMgYXQgc29tZSBwb2ludCBpbiBvcmRlcgo+Pj4gdG8gbWF4aW1pemUgc3RhYmlsaXR5 LiBXaGlsZSBlbnRlcnByaXNlIFZNTXMgd291bGQgYWxzbyBldmVudHVhbGx5IHN0b3AKPj4+IGFk ZGluZyBmZWF0dXJlcywgZW50ZXJwcmlzZSBjb25zdW1lcnMgYXJlIGFsd2F5cyBmcmVlIHRvIHVz ZSB0aGVpciBvd24KPj4+IFZNTXMgKGF0IHRoZWlyIG93biByaXNrKS4gU28sIHRoZXJlJ3MgYSBy ZWFsIGNoYW5jZSB3ZSBjb3VsZCBoYXZlCj4+IEkgdGhpbmsgd2UgYXJlIHllYXJzIGF3YXkgZnJv bSB0aGF0IGhhcHBlbmluZyAoaWYgaXQgaGFwcGVucykuIE15Cj4+IHN1Z2dlc3Rpb24gd2FzIG5v dCB0bwo+PiB0cnkgdG8gYnVpbGQgYSB3b3JsZCB3aGVyZSBubyBib2R5IGxpdmVzIDspLiBXaGVu IHdlIGdldCB0byB0aGF0Cj4+IHNjZW5hcmlvLCB0aGUgZGVmYXVsdCBLVk0KPj4gc2hpcHBlZCB3 aWxsIGhhdmUgbWFueSBleHRlbnNpb24gaW1wbGVtZW50ZWQuIFNvIHRoZXJlIHdvbid0IGJlIG11 Y2gKPj4gYWR2YW50YWdlIHRvCj4+IHJlaW1wbGVtZW50IHRoZW0gaW4gdGhlIHVzZXIgc3BhY2Uu IFdlIGNhbiBhbHNvIHRha2UgYW4gaW5mb3JtZWQKPj4gZGVjaXNpb24gYXQgdGhhdCB0aW1lCj4+ IGlmIHRoZSBjdXJyZW50IHNlbGVjdGl2ZSBmb3J3YXJkaW5nIGFwcHJvYWNoIGlzIGJldHRlcgo+ IFBsZWFzZSBkb24ndCByZXBlYXQgdGhlIGRlc2lnbiBvZiBTVVNQL1NSU1QvREJDTi4KPiBTZWVp bmcgdGhlbSBpcyBvbmUgb2YgdGhlIHJlYXNvbnMgd2h5IEkgcHJvcG9zZWQgdGhlIG5ldyBpbnRl cmZhY2UuCj4KPiAiQmxpbmRseSIgZm9yd2FyZGluZyBEQkNOIHRvIHVzZXJzcGFjZSBpcyBldmVu IGEgbWlub3Igb3B0aW1pemF0aW9uLiA6KQo+Cj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3Igd2UgbmVlZCB0bwo+PiBibGluZGx5IGZv cndhcmQgYW55Cj4+IHVua25vd24gU0JJIGNhbGxzIHRvIHRoZSB1c2VyIHNwYWNlLgo+IFllcywg S1ZNIGhhcyB0byBkbyB3aGF0IHVzZXJwYWNlIGNvbmZpZ3VyZXMgaXQgdG8gZG8uCj4KPiBJIGRv bid0IHRoaW5rIHRoYXQgaW1wbGVtZW50aW5nIHVuc3VwcG9ydGVkIFNCSSBleHRlbnNpb25zIGlu IEtWTSBpcwo+IGltcG9ydGFudCAtLSB0aGV5IHNob3VsZCBub3QgYmUgYSBob3QgcGF0aC4KPgo+ Pj4gZGVwbG95bWVudHMgd2l0aCBvbGRlciwgc3RhYmxlIEtWTSB3aGVyZSB1c2VycyB3YW50IHRv IGVuYWJsZSBsYXRlciBTQkkKPj4+IGV4dGVuc2lvbnMsIGFuZCwgaW4gc29tZSBjYXNlcywgdGhh dCBzaG91bGQgYmUgcG9zc2libGUgYnkganVzdCB1cGRhdGluZwo+Pj4gdGhlIFZNTSAtLSBidXQg b25seSBpZiBLVk0gaXMgb25seSBhY3RpbmcgYXMgYW4gU0JJIGltcGxlbWVudGF0aW9uCj4+PiBh Y2NlbGVyYXRvciBhbmQgbm90IGFzIGEgdXNlcnNwYWNlIFNCSSBpbXBsZW1lbnRhdGlvbiBnYXRl a2VlcGVyLgo+PiBCdXQgc29tZSBvZiB0aGUgU0JJIGV4dGVuc2lvbnMgYXJlIHNvIGZ1bmRhbWVu dGFsIHRoYXQgaXQgbXVzdCBiZQo+PiBpbXBsZW1lbnRlZCBpbiBLVk0KPj4gZm9yIHZhcmlvdXMg cmVhc29ucyBwb2ludGVkIGJ5IEFudXAgb24gb3RoZXIgdGhyZWFkLgo+IE5vLCBTQkkgZG9lcyBu b3QgaGF2ZSB0byBiZSBpbXBsZW1lbnRlZCBpbiBLVk0gYXQgYWxsLgo+Cj4gV2UgZG8gaGF2ZSBh IGRlZXAgZGlzYWdyZWVtZW50IG9uIHdoYXQgaXMgdmlydHVhbGl6YXRpb24gYW5kIHRoZSByb2xl IG9mCj4gS1ZNIGluIGl0LiAgSSB0aGluayB0aGF0IHVzZXJzcGFjZSB3YW50cyBhIGdlbmVyaWMg SVNBIGFjY2VsZXJhdG9yLgoKSSB0aGluayB0aGUgZGlzYWdyZWVtZW50IGlzIHRoZSByb2xlIG9m IFNCSSBpbiBLVk0gdmlydHVhbGl6YXRpb24gcmF0aGVyIAp0aGFuCmEgZ2VuZXJpYyB2aXJ0dWFs aXphdGlvbiBhbmQgdGhlIHJvbGUgb2YgS1ZNIGluIGl0LiBJIGNvbXBsZXRlbHkgYWdyZWUgCnRo YXQgS1ZNIHNob3VsZCBhY3QgYXMgYW4gYWNjZWxlcmF0b3IgYW5kIGRlZmVyIHRoZSBjb250cm9s IHRvIHRoZSB1c2VyIApzcGFjZSBpbiBtb3N0IG9mIHRoZSBjYXNlcwpzdWNoIGUuZyBJL08gb3Bl cmF0aW9ucyBvciBzeXN0ZW0gcmVsYXRlZCBmdW5jdGlvbmFsaXRpZXMuIEhvd2V2ZXIsIFNCSSAK c3BlY2lmaWNhdGlvbiBzb2x2ZXMKbXVjaCB3aWRlciBwcm9ibGVtcyB0aGFuIHRob3NlLiBCcm9h ZGx5IHdlIGNhbiBjYXRlZ29yaXplIFNCSSAKZnVuY3Rpb25hbGl0aWVzIGludG8gdGhlIGZvbGxv d2luZwphcmVhcwoKMS4gQnJpZGdpbmcgSVNBIEdBUAoyLiBIaWdoZXIgUHJpdmlsZWdlIEFzc2lz dGFuY2UKMy4gVmlydHVhbGl6YXRpb24KNC4gUGxhdGZvcm0gYWJzdHJhY3Rpb24KNS4gQ29uZmlk ZW50aWFsIGNvbXB1dGluZwoKRm9yICMxLCAjMyBhbmQgIzUsIEkgYmVsaWV2ZSB1c2VyIHNwYWNl IHNob3VsZG4ndCBiZSBpbnZvbHZlZCBpbiAKaW1wbGVtZW50YXRpb24Kc29tZSBvZiB0aGVtIGFy ZSBpbiBob3QgcGF0aCBhcyB3ZWxsLiBGb3IgIzQgYW5kICMyLCB0aGVyZSBhcmUgc29tZSAKb3Bw b3J0dW5pdGllcyB3aGljaApjYW4gYmUgaW1wbGVtZW50ZWQgaW4gdXNlciBzcGFjZSBkZXBlbmRp bmcgb24gdGhlIGV4YWN0IG5lZWQuIEkgYW0gc3RpbGwgCm5vdCBjbGVhciB3aGF0IGlzIHRoZSBl eGFjdAptb3RpdmF0aW9uIC9yaWdodCBub3cvIHRvIHB1cnN1ZSBzdWNoIGEgcGF0aC4gTWF5IGJl IEkgbWlzc2VkIHNvbWV0aGluZy4KQXMgcGVyIG15IHVuZGVyc3RhbmRpbmcgZnJvbSBvdXIgZGlz Y3Vzc2lvbiB0aHJlYWRzLCB0aGVyZSBhcmUgdHdvIHVzZSAKY2FzZXMgcG9zc2libGUKCjEuIHVz ZXJzcGFjZSB3YW50cyB0byB1cGRhdGUgbW9yZSBzdGF0ZXMgaW4gSFNNLiBXaGF0IGFyZSB0aGUg c3RhdGVzIAp1c2VyIHNwYWNlIHNob3VsZCBjYXJlIGFib3V0IHNjb3VudGVyZW4gKGZpeGVkIGFs cmVhZHkgaW4gdXNwdHJlYW0pID8KMi4gVk1NIHZzIEtWTSB2ZXJzaW9uIGRpZmZlcmVuY2UgLSB0 aGlzIG1heSBiZSB0cnVlIGluIHRoZSBmdXR1cmUgCmRlcGVuZGluZyBvbiB0aGUgc3BlZWQgb2Yg UklTQy1WIHZpcnR1YWxpemF0aW9uIGFkb3B0aW9uIGluIHRoZSBpbmR1c3RyeS4KQnV0IHdlIGFy ZSBkZWZpbml0ZWx5IG5vdCB0aGVyZSB5ZXQuIFBsZWFzZSBsZXQgbWUga25vdyBpZiBJIAptaXN1 bmRlcnN0b29kIGFueSB1c2UgY2FzZXMuCgo+IEV2ZW4gaWYgdXNlcnNwYWNlIHdhbnRzIFNCSSBm b3IgdGhlIE0tbW9kZSBpbnRlcmZhY2UsIHNlY3VyaXR5IG1pbmRlZApUaGlzIGlzIHByb2JhYmx5 IGEgM3JkIG9uZSA/IFdoeSB3ZSB3YW50IE0tbW9kZSBpbnRlcmZhY2UgaW4gdGhlIHVzZXIgCnNw YWNlID8KPiB1c2Vyc3BhY2UgYWltcyBmb3IgYXMgbGl0dGxlIGtlcm5lbCBjb2RlIGFzIHBvc3Np YmxlLgoKV2UgdHJ1c3QgVk1NIGNvZGUgbW9yZSB0aGFuIEtWTSBjb2RlID8KCj4gVXNlcnNwYWNl IG1pZ2h0IHdhbnQgdG8gYWNjZWxlcmF0ZSBzb21lIFNCSSBleHRlbnNpb24gaW4gS1ZNLCBidXQg aXQKPiBzaG91bGQgbm90IGJlIEtWTSB3aG8gZGVjaWRlcyB3aGF0IHVzZXJzcGFjZSB3YW50cy4K Ci0tIAprdm0tcmlzY3YgbWFpbGluZyBsaXN0Cmt2bS1yaXNjdkBsaXN0cy5pbmZyYWRlYWQub3Jn Cmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8va3ZtLXJpc2N2Cg== From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from out-186.mta0.migadu.com (out-186.mta0.migadu.com [91.218.175.186]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C58342AD31 for ; Thu, 29 May 2025 18:44:57 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=91.218.175.186 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748544301; cv=none; b=Ca/2qBhPwx9cORL0aqaIYHI8E6OGK0OFJduEbuhDyu71x0bX8VWM3sOzS4IdxjbT7bYsz6FKDZm8bnB7Ap9D5VTkU7IjP7GXlF5VhrlURRPGsvrWkmp/QJupOHniwgxnHE6t4ogTHYokoq1/i7Lsu3fDR3HjTl1KKoV07Kv6HME= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748544301; c=relaxed/simple; bh=xiqUhpB4KuUz8/jc+y5yuABJB9UUxpWPRhy2iybY4KQ=; h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From: In-Reply-To:Content-Type; b=V68OdpOnqqPyZkn1fBUUdJu8hOrNaH9vpTBnZ+x8Udc7gL7/ZtA4w2Q54Tla0+UIC58i9/047awR3SrQYYc0p17A8m8wHc4MdE7kLsuUERiNUAPe6YaWfnPbwRnMeUF/EYW6jh89DwYiRKWkJLga/BeVdDjfmluHH/YUxnBe/QU= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.dev; spf=pass smtp.mailfrom=linux.dev; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b=t6mBC+6V; arc=none smtp.client-ip=91.218.175.186 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.dev Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linux.dev Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b="t6mBC+6V" Message-ID: <2bac252c-883c-4f8a-9ae1-283660991520@linux.dev> DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1748544285; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=D/pRYWDTxiG5vCNFI6iYMlgTAzPGEOIy86Z1rIh0MtM=; b=t6mBC+6Vi9P2ogn7IGSjVpOGG1D0PLvPIsnclmwguKD8GZzY2EEBw/0/oi4M/Egs3o+WNK HH1NOZh09QJrVEtpDa095Akv9MrBQAzRDOB0r2l/HaMNV1G8fR9FrQ3JwJG9336cGDa+IH hJYSzpx0d4G0hPc4CWp7pb1SJGYRCiM= Date: Thu, 29 May 2025 11:44:38 -0700 Precedence: bulk X-Mailing-List: kvm@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Subject: Re: [PATCH v3 9/9] RISC-V: KVM: Upgrade the supported SBI version to 3.0 To: =?UTF-8?B?UmFkaW0gS3LEjW3DocWZ?= , Andrew Jones Cc: Anup Patel , Will Deacon , Mark Rutland , Paul Walmsley , Palmer Dabbelt , Mayuresh Chitale , linux-riscv@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, kvm@vger.kernel.org, kvm-riscv@lists.infradead.org, linux-riscv References: <20250522-pmu_event_info-v3-0-f7bba7fd9cfe@rivosinc.com> <20250522-pmu_event_info-v3-9-f7bba7fd9cfe@rivosinc.com> <61627296-6f94-45ea-9410-ed0ea2251870@linux.dev> <20250526-224478e15ee50987124a47ac@orel> <20250528-ff9f6120de39c3e4eefc5365@orel> <1169138f-8445-4522-94dd-ad008524c600@linux.dev> Content-Language: en-US X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. From: Atish Patra In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Migadu-Flow: FLOW_OUT On 5/29/25 3:24 AM, Radim Krčmář wrote: > I originally gave up on the idea, but I feel kinda bad for Drew now, so > trying again: I am sorry if some of my replies came across in the wrong way. That was never the intention. > 2025-05-28T12:21:59-07:00, Atish Patra : >> On 5/28/25 8:09 AM, Andrew Jones wrote: >>> On Wed, May 28, 2025 at 07:16:11AM -0700, Atish Patra wrote: >>>> On 5/26/25 4:13 AM, Andrew Jones wrote: >>>>> On Mon, May 26, 2025 at 11:00:30AM +0200, Radim Krčmář wrote: >>>>>> 2025-05-23T10:16:11-07:00, Atish Patra : >>>>>>> On 5/23/25 6:31 AM, Radim Krčmář wrote: >>>>>>>> 2025-05-22T12:03:43-07:00, Atish Patra : >>>>>>>>> Upgrade the SBI version to v3.0 so that corresponding features >>>>>>>>> can be enabled in the guest. >>>>>>>>> >>>>>>>>> Signed-off-by: Atish Patra >>>>>>>>> --- >>>>>>>>> diff --git a/arch/riscv/include/asm/kvm_vcpu_sbi.h b/arch/riscv/include/asm/kvm_vcpu_sbi.h >>>>>>>>> -#define KVM_SBI_VERSION_MAJOR 2 >>>>>>>>> +#define KVM_SBI_VERSION_MAJOR 3 >>>>>>>> I think it's time to add versioning to KVM SBI implementation. >>>>>>>> Userspace should be able to select the desired SBI version and KVM would >>>>>>>> tell the guest that newer features are not supported. >>>>> We need new code for this, but it's a good idea. >>>>> >>>>>>> We can achieve that through onereg interface by disabling individual SBI >>>>>>> extensions. >>>>>>> We can extend the existing onereg interface to disable a specific SBI >>>>>>> version directly >>>>>>> instead of individual ones to save those IOCTL as well. >>>>>> Yes, I am all in favor of letting userspace provide all values in the >>>>>> BASE extension. >>>> We already support vendorid/archid/impid through one reg. I think we just >>>> need to add the SBI version support to that so that user space can set it. >>>> >>>>> This is covered by your recent patch that provides userspace_sbi. >>>> Why do we need to invent new IOCTL for this ? Once the user space sets the >>>> SBI version, KVM can enforce it. >>> If an SBI spec version provides an extension that can be emulated by >>> userspace, then userspace could choose to advertise that spec version, >>> implement a BASE probe function that advertises the extension, and >>> implement the extension, even if the KVM version running is older >>> and unaware of it. But, in order to do that, we need KVM to exit to >>> userspace for all unknown SBI calls and to allow BASE to be overridden >> You mean only the version field in BASE - Correct ? > No, "BASE probe function" is the sbi_probe_extension() ecall. > >>> by userspace. The new KVM CAP ioctl allows opting into that new behavior. >> But why we need a new IOCTL for that ? We can achieve that with existing >> one reg interface with improvements. > It's an existing IOCTL with a new data payload, but I can easily use > ONE_REG if you want to do everything through that. > > KVM doesn't really need any other IOCTL than ONE_REGs, it's just > sometimes more reasonable to use a different IOCTL, like ENABLE_CAP. > >>> The old KVM with new VMM configuration isn't totally far-fetched. While >>> host kernels tend to get updated regularly to include security fixes, >>> enterprise kernels tend to stop adding features at some point in order >>> to maximize stability. While enterprise VMMs would also eventually stop >>> adding features, enterprise consumers are always free to use their own >>> VMMs (at their own risk). So, there's a real chance we could have >> I think we are years away from that happening (if it happens). My >> suggestion was not to >> try to build a world where no body lives ;). When we get to that >> scenario, the default KVM >> shipped will have many extension implemented. So there won't be much >> advantage to >> reimplement them in the user space. We can also take an informed >> decision at that time >> if the current selective forwarding approach is better > Please don't repeat the design of SUSP/SRST/DBCN. > Seeing them is one of the reasons why I proposed the new interface. > > "Blindly" forwarding DBCN to userspace is even a minor optimization. :) > >> or we need to >> blindly forward any >> unknown SBI calls to the user space. > Yes, KVM has to do what userpace configures it to do. > > I don't think that implementing unsupported SBI extensions in KVM is > important -- they should not be a hot path. > >>> deployments with older, stable KVM where users want to enable later SBI >>> extensions, and, in some cases, that should be possible by just updating >>> the VMM -- but only if KVM is only acting as an SBI implementation >>> accelerator and not as a userspace SBI implementation gatekeeper. >> But some of the SBI extensions are so fundamental that it must be >> implemented in KVM >> for various reasons pointed by Anup on other thread. > No, SBI does not have to be implemented in KVM at all. > > We do have a deep disagreement on what is virtualization and the role of > KVM in it. I think that userspace wants a generic ISA accelerator. I think the disagreement is the role of SBI in KVM virtualization rather than a generic virtualization and the role of KVM in it. I completely agree that KVM should act as an accelerator and defer the control to the user space in most of the cases such e.g I/O operations or system related functionalities. However, SBI specification solves much wider problems than those. Broadly we can categorize SBI functionalities into the following areas 1. Bridging ISA GAP 2. Higher Privilege Assistance 3. Virtualization 4. Platform abstraction 5. Confidential computing For #1, #3 and #5, I believe user space shouldn't be involved in implementation some of them are in hot path as well. For #4 and #2, there are some opportunities which can be implemented in user space depending on the exact need. I am still not clear what is the exact motivation /right now/ to pursue such a path. May be I missed something. As per my understanding from our discussion threads, there are two use cases possible 1. userspace wants to update more states in HSM. What are the states user space should care about scounteren (fixed already in usptream) ? 2. VMM vs KVM version difference - this may be true in the future depending on the speed of RISC-V virtualization adoption in the industry. But we are definitely not there yet. Please let me know if I misunderstood any use cases. > Even if userspace wants SBI for the M-mode interface, security minded This is probably a 3rd one ? Why we want M-mode interface in the user space ? > userspace aims for as little kernel code as possible. We trust VMM code more than KVM code ? > Userspace might want to accelerate some SBI extension in KVM, but it > should not be KVM who decides what userspace wants. From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 45F23C54FB3 for ; Thu, 29 May 2025 18:47:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:Content-Type: Content-Transfer-Encoding:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:From:References:Cc:To:Subject: MIME-Version:Date:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=hUb9/5cRpgqM91fDzOuJY3qaNA/mzFt3uKydfkTZgXc=; b=hBgdEmKR8vgr/w OIY5ENLxJhGdPfO1o5TdA5Uuelqir2bAuLEVgiDT9awlB0y4wZWn34uPIyc54fhZIDvXh2UCO2YDm 2MuDLvRywmtugSFdp4S565icSfAlWpc43gLBOFeVJaioUVjYJnVLf1nCmrWumibDmgnGL4xukAvSE 5tHUUWWs03b4Q+eqXfWa0BIIb+0VxbJOLM5sCNaeGArt/tr4xJYHNe141Ege/WM+uXBVNhaDKBrfe XZ5WQ0WHJKCxIra9Bog0FpJWE+9ZQK5Xq6Rlxgh4JnevQ4GNPhjve+GD1VilBe6D8JlUV1FcYSC3S LDkp64/FcJ/uyJke7aQg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1uKiHW-0000000GO25-1uwd; Thu, 29 May 2025 18:47:10 +0000 Received: from out-170.mta0.migadu.com ([2001:41d0:1004:224b::aa]) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1uKiFN-0000000GNsF-3mer for linux-riscv@lists.infradead.org; Thu, 29 May 2025 18:45:00 +0000 Message-ID: <2bac252c-883c-4f8a-9ae1-283660991520@linux.dev> DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1748544285; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=D/pRYWDTxiG5vCNFI6iYMlgTAzPGEOIy86Z1rIh0MtM=; b=t6mBC+6Vi9P2ogn7IGSjVpOGG1D0PLvPIsnclmwguKD8GZzY2EEBw/0/oi4M/Egs3o+WNK HH1NOZh09QJrVEtpDa095Akv9MrBQAzRDOB0r2l/HaMNV1G8fR9FrQ3JwJG9336cGDa+IH hJYSzpx0d4G0hPc4CWp7pb1SJGYRCiM= Date: Thu, 29 May 2025 11:44:38 -0700 MIME-Version: 1.0 Subject: Re: [PATCH v3 9/9] RISC-V: KVM: Upgrade the supported SBI version to 3.0 To: =?UTF-8?B?UmFkaW0gS3LEjW3DocWZ?= , Andrew Jones Cc: Anup Patel , Will Deacon , Mark Rutland , Paul Walmsley , Palmer Dabbelt , Mayuresh Chitale , linux-riscv@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, kvm@vger.kernel.org, kvm-riscv@lists.infradead.org, linux-riscv References: <20250522-pmu_event_info-v3-0-f7bba7fd9cfe@rivosinc.com> <20250522-pmu_event_info-v3-9-f7bba7fd9cfe@rivosinc.com> <61627296-6f94-45ea-9410-ed0ea2251870@linux.dev> <20250526-224478e15ee50987124a47ac@orel> <20250528-ff9f6120de39c3e4eefc5365@orel> <1169138f-8445-4522-94dd-ad008524c600@linux.dev> Content-Language: en-US X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. From: Atish Patra In-Reply-To: X-Migadu-Flow: FLOW_OUT X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250529_114458_075938_A826CADD X-CRM114-Status: GOOD ( 41.59 ) X-BeenThere: linux-riscv@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "linux-riscv" Errors-To: linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org Ck9uIDUvMjkvMjUgMzoyNCBBTSwgUmFkaW0gS3LEjW3DocWZIHdyb3RlOgo+IEkgb3JpZ2luYWxs eSBnYXZlIHVwIG9uIHRoZSBpZGVhLCBidXQgSSBmZWVsIGtpbmRhIGJhZCBmb3IgRHJldyBub3cs IHNvCj4gdHJ5aW5nIGFnYWluOgoKSSBhbSBzb3JyeSBpZiBzb21lIG9mIG15IHJlcGxpZXMgY2Ft ZSBhY3Jvc3MgaW4gdGhlIHdyb25nIHdheS4gVGhhdCB3YXMgCm5ldmVyCnRoZSBpbnRlbnRpb24u CgoKPiAyMDI1LTA1LTI4VDEyOjIxOjU5LTA3OjAwLCBBdGlzaCBQYXRyYSA8YXRpc2gucGF0cmFA bGludXguZGV2PjoKPj4gT24gNS8yOC8yNSA4OjA5IEFNLCBBbmRyZXcgSm9uZXMgd3JvdGU6Cj4+ PiBPbiBXZWQsIE1heSAyOCwgMjAyNSBhdCAwNzoxNjoxMUFNIC0wNzAwLCBBdGlzaCBQYXRyYSB3 cm90ZToKPj4+PiBPbiA1LzI2LzI1IDQ6MTMgQU0sIEFuZHJldyBKb25lcyB3cm90ZToKPj4+Pj4g T24gTW9uLCBNYXkgMjYsIDIwMjUgYXQgMTE6MDA6MzBBTSArMDIwMCwgUmFkaW0gS3LEjW3DocWZ IHdyb3RlOgo+Pj4+Pj4gMjAyNS0wNS0yM1QxMDoxNjoxMS0wNzowMCwgQXRpc2ggUGF0cmEgPGF0 aXNoLnBhdHJhQGxpbnV4LmRldj46Cj4+Pj4+Pj4gT24gNS8yMy8yNSA2OjMxIEFNLCBSYWRpbSBL csSNbcOhxZkgd3JvdGU6Cj4+Pj4+Pj4+IDIwMjUtMDUtMjJUMTI6MDM6NDMtMDc6MDAsIEF0aXNo IFBhdHJhIDxhdGlzaHBAcml2b3NpbmMuY29tPjoKPj4+Pj4+Pj4+IFVwZ3JhZGUgdGhlIFNCSSB2 ZXJzaW9uIHRvIHYzLjAgc28gdGhhdCBjb3JyZXNwb25kaW5nIGZlYXR1cmVzCj4+Pj4+Pj4+PiBj YW4gYmUgZW5hYmxlZCBpbiB0aGUgZ3Vlc3QuCj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4gU2lnbmVkLW9m Zi1ieTogQXRpc2ggUGF0cmEgPGF0aXNocEByaXZvc2luYy5jb20+Cj4+Pj4+Pj4+PiAtLS0KPj4+ Pj4+Pj4+IGRpZmYgLS1naXQgYS9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL2t2bV92Y3B1X3NiaS5o IGIvYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9rdm1fdmNwdV9zYmkuaAo+Pj4+Pj4+Pj4gLSNkZWZp bmUgS1ZNX1NCSV9WRVJTSU9OX01BSk9SIDIKPj4+Pj4+Pj4+ICsjZGVmaW5lIEtWTV9TQklfVkVS U0lPTl9NQUpPUiAzCj4+Pj4+Pj4+IEkgdGhpbmsgaXQncyB0aW1lIHRvIGFkZCB2ZXJzaW9uaW5n IHRvIEtWTSBTQkkgaW1wbGVtZW50YXRpb24uCj4+Pj4+Pj4+IFVzZXJzcGFjZSBzaG91bGQgYmUg YWJsZSB0byBzZWxlY3QgdGhlIGRlc2lyZWQgU0JJIHZlcnNpb24gYW5kIEtWTSB3b3VsZAo+Pj4+ Pj4+PiB0ZWxsIHRoZSBndWVzdCB0aGF0IG5ld2VyIGZlYXR1cmVzIGFyZSBub3Qgc3VwcG9ydGVk Lgo+Pj4+PiBXZSBuZWVkIG5ldyBjb2RlIGZvciB0aGlzLCBidXQgaXQncyBhIGdvb2QgaWRlYS4K Pj4+Pj4KPj4+Pj4+PiBXZSBjYW4gYWNoaWV2ZSB0aGF0IHRocm91Z2ggb25lcmVnIGludGVyZmFj ZSBieSBkaXNhYmxpbmcgaW5kaXZpZHVhbCBTQkkKPj4+Pj4+PiBleHRlbnNpb25zLgo+Pj4+Pj4+ IFdlIGNhbiBleHRlbmQgdGhlIGV4aXN0aW5nIG9uZXJlZyBpbnRlcmZhY2UgdG8gZGlzYWJsZSBh IHNwZWNpZmljIFNCSQo+Pj4+Pj4+IHZlcnNpb24gZGlyZWN0bHkKPj4+Pj4+PiBpbnN0ZWFkIG9m IGluZGl2aWR1YWwgb25lcyB0byBzYXZlIHRob3NlIElPQ1RMIGFzIHdlbGwuCj4+Pj4+PiBZZXMs IEkgYW0gYWxsIGluIGZhdm9yIG9mIGxldHRpbmcgdXNlcnNwYWNlIHByb3ZpZGUgYWxsIHZhbHVl cyBpbiB0aGUKPj4+Pj4+IEJBU0UgZXh0ZW5zaW9uLgo+Pj4+IFdlIGFscmVhZHkgc3VwcG9ydCB2 ZW5kb3JpZC9hcmNoaWQvaW1waWQgdGhyb3VnaCBvbmUgcmVnLiBJIHRoaW5rIHdlIGp1c3QKPj4+ PiBuZWVkIHRvIGFkZCB0aGUgU0JJIHZlcnNpb24gc3VwcG9ydCB0byB0aGF0IHNvIHRoYXQgdXNl ciBzcGFjZSBjYW4gc2V0IGl0Lgo+Pj4+Cj4+Pj4+IFRoaXMgaXMgY292ZXJlZCBieSB5b3VyIHJl Y2VudCBwYXRjaCB0aGF0IHByb3ZpZGVzIHVzZXJzcGFjZV9zYmkuCj4+Pj4gV2h5IGRvIHdlIG5l ZWQgdG8gaW52ZW50IG5ldyBJT0NUTCBmb3IgdGhpcyA/IE9uY2UgdGhlIHVzZXIgc3BhY2Ugc2V0 cyB0aGUKPj4+PiBTQkkgdmVyc2lvbiwgS1ZNIGNhbiBlbmZvcmNlIGl0Lgo+Pj4gSWYgYW4gU0JJ IHNwZWMgdmVyc2lvbiBwcm92aWRlcyBhbiBleHRlbnNpb24gdGhhdCBjYW4gYmUgZW11bGF0ZWQg YnkKPj4+IHVzZXJzcGFjZSwgdGhlbiB1c2Vyc3BhY2UgY291bGQgY2hvb3NlIHRvIGFkdmVydGlz ZSB0aGF0IHNwZWMgdmVyc2lvbiwKPj4+IGltcGxlbWVudCBhIEJBU0UgcHJvYmUgZnVuY3Rpb24g dGhhdCBhZHZlcnRpc2VzIHRoZSBleHRlbnNpb24sIGFuZAo+Pj4gaW1wbGVtZW50IHRoZSBleHRl bnNpb24sIGV2ZW4gaWYgdGhlIEtWTSB2ZXJzaW9uIHJ1bm5pbmcgaXMgb2xkZXIKPj4+IGFuZCB1 bmF3YXJlIG9mIGl0LiBCdXQsIGluIG9yZGVyIHRvIGRvIHRoYXQsIHdlIG5lZWQgS1ZNIHRvIGV4 aXQgdG8KPj4+IHVzZXJzcGFjZSBmb3IgYWxsIHVua25vd24gU0JJIGNhbGxzIGFuZCB0byBhbGxv dyBCQVNFIHRvIGJlIG92ZXJyaWRkZW4KPj4gWW91IG1lYW4gb25seSB0aGUgdmVyc2lvbiBmaWVs ZCBpbiBCQVNFIC0gQ29ycmVjdCA/Cj4gTm8sICJCQVNFIHByb2JlIGZ1bmN0aW9uIiBpcyB0aGUg c2JpX3Byb2JlX2V4dGVuc2lvbigpIGVjYWxsLgo+Cj4+PiBieSB1c2Vyc3BhY2UuIFRoZSBuZXcg S1ZNIENBUCBpb2N0bCBhbGxvd3Mgb3B0aW5nIGludG8gdGhhdCBuZXcgYmVoYXZpb3IuCj4+IEJ1 dCB3aHkgd2UgbmVlZCBhIG5ldyBJT0NUTCBmb3IgdGhhdCA/IFdlIGNhbiBhY2hpZXZlIHRoYXQg d2l0aCBleGlzdGluZwo+PiBvbmUgcmVnIGludGVyZmFjZSB3aXRoIGltcHJvdmVtZW50cy4KPiBJ dCdzIGFuIGV4aXN0aW5nIElPQ1RMIHdpdGggYSBuZXcgZGF0YSBwYXlsb2FkLCBidXQgSSBjYW4g ZWFzaWx5IHVzZQo+IE9ORV9SRUcgaWYgeW91IHdhbnQgdG8gZG8gZXZlcnl0aGluZyB0aHJvdWdo IHRoYXQuCj4KPiBLVk0gZG9lc24ndCByZWFsbHkgbmVlZCBhbnkgb3RoZXIgSU9DVEwgdGhhbiBP TkVfUkVHcywgaXQncyBqdXN0Cj4gc29tZXRpbWVzIG1vcmUgcmVhc29uYWJsZSB0byB1c2UgYSBk aWZmZXJlbnQgSU9DVEwsIGxpa2UgRU5BQkxFX0NBUC4KPgo+Pj4gVGhlIG9sZCBLVk0gd2l0aCBu ZXcgVk1NIGNvbmZpZ3VyYXRpb24gaXNuJ3QgdG90YWxseSBmYXItZmV0Y2hlZC4gV2hpbGUKPj4+ IGhvc3Qga2VybmVscyB0ZW5kIHRvIGdldCB1cGRhdGVkIHJlZ3VsYXJseSB0byBpbmNsdWRlIHNl Y3VyaXR5IGZpeGVzLAo+Pj4gZW50ZXJwcmlzZSBrZXJuZWxzIHRlbmQgdG8gc3RvcCBhZGRpbmcg ZmVhdHVyZXMgYXQgc29tZSBwb2ludCBpbiBvcmRlcgo+Pj4gdG8gbWF4aW1pemUgc3RhYmlsaXR5 LiBXaGlsZSBlbnRlcnByaXNlIFZNTXMgd291bGQgYWxzbyBldmVudHVhbGx5IHN0b3AKPj4+IGFk ZGluZyBmZWF0dXJlcywgZW50ZXJwcmlzZSBjb25zdW1lcnMgYXJlIGFsd2F5cyBmcmVlIHRvIHVz ZSB0aGVpciBvd24KPj4+IFZNTXMgKGF0IHRoZWlyIG93biByaXNrKS4gU28sIHRoZXJlJ3MgYSBy ZWFsIGNoYW5jZSB3ZSBjb3VsZCBoYXZlCj4+IEkgdGhpbmsgd2UgYXJlIHllYXJzIGF3YXkgZnJv bSB0aGF0IGhhcHBlbmluZyAoaWYgaXQgaGFwcGVucykuIE15Cj4+IHN1Z2dlc3Rpb24gd2FzIG5v dCB0bwo+PiB0cnkgdG8gYnVpbGQgYSB3b3JsZCB3aGVyZSBubyBib2R5IGxpdmVzIDspLiBXaGVu IHdlIGdldCB0byB0aGF0Cj4+IHNjZW5hcmlvLCB0aGUgZGVmYXVsdCBLVk0KPj4gc2hpcHBlZCB3 aWxsIGhhdmUgbWFueSBleHRlbnNpb24gaW1wbGVtZW50ZWQuIFNvIHRoZXJlIHdvbid0IGJlIG11 Y2gKPj4gYWR2YW50YWdlIHRvCj4+IHJlaW1wbGVtZW50IHRoZW0gaW4gdGhlIHVzZXIgc3BhY2Uu IFdlIGNhbiBhbHNvIHRha2UgYW4gaW5mb3JtZWQKPj4gZGVjaXNpb24gYXQgdGhhdCB0aW1lCj4+ IGlmIHRoZSBjdXJyZW50IHNlbGVjdGl2ZSBmb3J3YXJkaW5nIGFwcHJvYWNoIGlzIGJldHRlcgo+ IFBsZWFzZSBkb24ndCByZXBlYXQgdGhlIGRlc2lnbiBvZiBTVVNQL1NSU1QvREJDTi4KPiBTZWVp bmcgdGhlbSBpcyBvbmUgb2YgdGhlIHJlYXNvbnMgd2h5IEkgcHJvcG9zZWQgdGhlIG5ldyBpbnRl cmZhY2UuCj4KPiAiQmxpbmRseSIgZm9yd2FyZGluZyBEQkNOIHRvIHVzZXJzcGFjZSBpcyBldmVu IGEgbWlub3Igb3B0aW1pemF0aW9uLiA6KQo+Cj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3Igd2UgbmVlZCB0bwo+PiBibGluZGx5IGZv cndhcmQgYW55Cj4+IHVua25vd24gU0JJIGNhbGxzIHRvIHRoZSB1c2VyIHNwYWNlLgo+IFllcywg S1ZNIGhhcyB0byBkbyB3aGF0IHVzZXJwYWNlIGNvbmZpZ3VyZXMgaXQgdG8gZG8uCj4KPiBJIGRv bid0IHRoaW5rIHRoYXQgaW1wbGVtZW50aW5nIHVuc3VwcG9ydGVkIFNCSSBleHRlbnNpb25zIGlu IEtWTSBpcwo+IGltcG9ydGFudCAtLSB0aGV5IHNob3VsZCBub3QgYmUgYSBob3QgcGF0aC4KPgo+ Pj4gZGVwbG95bWVudHMgd2l0aCBvbGRlciwgc3RhYmxlIEtWTSB3aGVyZSB1c2VycyB3YW50IHRv IGVuYWJsZSBsYXRlciBTQkkKPj4+IGV4dGVuc2lvbnMsIGFuZCwgaW4gc29tZSBjYXNlcywgdGhh dCBzaG91bGQgYmUgcG9zc2libGUgYnkganVzdCB1cGRhdGluZwo+Pj4gdGhlIFZNTSAtLSBidXQg b25seSBpZiBLVk0gaXMgb25seSBhY3RpbmcgYXMgYW4gU0JJIGltcGxlbWVudGF0aW9uCj4+PiBh Y2NlbGVyYXRvciBhbmQgbm90IGFzIGEgdXNlcnNwYWNlIFNCSSBpbXBsZW1lbnRhdGlvbiBnYXRl a2VlcGVyLgo+PiBCdXQgc29tZSBvZiB0aGUgU0JJIGV4dGVuc2lvbnMgYXJlIHNvIGZ1bmRhbWVu dGFsIHRoYXQgaXQgbXVzdCBiZQo+PiBpbXBsZW1lbnRlZCBpbiBLVk0KPj4gZm9yIHZhcmlvdXMg cmVhc29ucyBwb2ludGVkIGJ5IEFudXAgb24gb3RoZXIgdGhyZWFkLgo+IE5vLCBTQkkgZG9lcyBu b3QgaGF2ZSB0byBiZSBpbXBsZW1lbnRlZCBpbiBLVk0gYXQgYWxsLgo+Cj4gV2UgZG8gaGF2ZSBh IGRlZXAgZGlzYWdyZWVtZW50IG9uIHdoYXQgaXMgdmlydHVhbGl6YXRpb24gYW5kIHRoZSByb2xl IG9mCj4gS1ZNIGluIGl0LiAgSSB0aGluayB0aGF0IHVzZXJzcGFjZSB3YW50cyBhIGdlbmVyaWMg SVNBIGFjY2VsZXJhdG9yLgoKSSB0aGluayB0aGUgZGlzYWdyZWVtZW50IGlzIHRoZSByb2xlIG9m IFNCSSBpbiBLVk0gdmlydHVhbGl6YXRpb24gcmF0aGVyIAp0aGFuCmEgZ2VuZXJpYyB2aXJ0dWFs aXphdGlvbiBhbmQgdGhlIHJvbGUgb2YgS1ZNIGluIGl0LiBJIGNvbXBsZXRlbHkgYWdyZWUgCnRo YXQgS1ZNIHNob3VsZCBhY3QgYXMgYW4gYWNjZWxlcmF0b3IgYW5kIGRlZmVyIHRoZSBjb250cm9s IHRvIHRoZSB1c2VyIApzcGFjZSBpbiBtb3N0IG9mIHRoZSBjYXNlcwpzdWNoIGUuZyBJL08gb3Bl cmF0aW9ucyBvciBzeXN0ZW0gcmVsYXRlZCBmdW5jdGlvbmFsaXRpZXMuIEhvd2V2ZXIsIFNCSSAK c3BlY2lmaWNhdGlvbiBzb2x2ZXMKbXVjaCB3aWRlciBwcm9ibGVtcyB0aGFuIHRob3NlLiBCcm9h ZGx5IHdlIGNhbiBjYXRlZ29yaXplIFNCSSAKZnVuY3Rpb25hbGl0aWVzIGludG8gdGhlIGZvbGxv d2luZwphcmVhcwoKMS4gQnJpZGdpbmcgSVNBIEdBUAoyLiBIaWdoZXIgUHJpdmlsZWdlIEFzc2lz dGFuY2UKMy4gVmlydHVhbGl6YXRpb24KNC4gUGxhdGZvcm0gYWJzdHJhY3Rpb24KNS4gQ29uZmlk ZW50aWFsIGNvbXB1dGluZwoKRm9yICMxLCAjMyBhbmQgIzUsIEkgYmVsaWV2ZSB1c2VyIHNwYWNl IHNob3VsZG4ndCBiZSBpbnZvbHZlZCBpbiAKaW1wbGVtZW50YXRpb24Kc29tZSBvZiB0aGVtIGFy ZSBpbiBob3QgcGF0aCBhcyB3ZWxsLiBGb3IgIzQgYW5kICMyLCB0aGVyZSBhcmUgc29tZSAKb3Bw b3J0dW5pdGllcyB3aGljaApjYW4gYmUgaW1wbGVtZW50ZWQgaW4gdXNlciBzcGFjZSBkZXBlbmRp bmcgb24gdGhlIGV4YWN0IG5lZWQuIEkgYW0gc3RpbGwgCm5vdCBjbGVhciB3aGF0IGlzIHRoZSBl eGFjdAptb3RpdmF0aW9uIC9yaWdodCBub3cvIHRvIHB1cnN1ZSBzdWNoIGEgcGF0aC4gTWF5IGJl IEkgbWlzc2VkIHNvbWV0aGluZy4KQXMgcGVyIG15IHVuZGVyc3RhbmRpbmcgZnJvbSBvdXIgZGlz Y3Vzc2lvbiB0aHJlYWRzLCB0aGVyZSBhcmUgdHdvIHVzZSAKY2FzZXMgcG9zc2libGUKCjEuIHVz ZXJzcGFjZSB3YW50cyB0byB1cGRhdGUgbW9yZSBzdGF0ZXMgaW4gSFNNLiBXaGF0IGFyZSB0aGUg c3RhdGVzIAp1c2VyIHNwYWNlIHNob3VsZCBjYXJlIGFib3V0IHNjb3VudGVyZW4gKGZpeGVkIGFs cmVhZHkgaW4gdXNwdHJlYW0pID8KMi4gVk1NIHZzIEtWTSB2ZXJzaW9uIGRpZmZlcmVuY2UgLSB0 aGlzIG1heSBiZSB0cnVlIGluIHRoZSBmdXR1cmUgCmRlcGVuZGluZyBvbiB0aGUgc3BlZWQgb2Yg UklTQy1WIHZpcnR1YWxpemF0aW9uIGFkb3B0aW9uIGluIHRoZSBpbmR1c3RyeS4KQnV0IHdlIGFy ZSBkZWZpbml0ZWx5IG5vdCB0aGVyZSB5ZXQuIFBsZWFzZSBsZXQgbWUga25vdyBpZiBJIAptaXN1 bmRlcnN0b29kIGFueSB1c2UgY2FzZXMuCgo+IEV2ZW4gaWYgdXNlcnNwYWNlIHdhbnRzIFNCSSBm b3IgdGhlIE0tbW9kZSBpbnRlcmZhY2UsIHNlY3VyaXR5IG1pbmRlZApUaGlzIGlzIHByb2JhYmx5 IGEgM3JkIG9uZSA/IFdoeSB3ZSB3YW50IE0tbW9kZSBpbnRlcmZhY2UgaW4gdGhlIHVzZXIgCnNw YWNlID8KPiB1c2Vyc3BhY2UgYWltcyBmb3IgYXMgbGl0dGxlIGtlcm5lbCBjb2RlIGFzIHBvc3Np YmxlLgoKV2UgdHJ1c3QgVk1NIGNvZGUgbW9yZSB0aGFuIEtWTSBjb2RlID8KCj4gVXNlcnNwYWNl IG1pZ2h0IHdhbnQgdG8gYWNjZWxlcmF0ZSBzb21lIFNCSSBleHRlbnNpb24gaW4gS1ZNLCBidXQg aXQKPiBzaG91bGQgbm90IGJlIEtWTSB3aG8gZGVjaWRlcyB3aGF0IHVzZXJzcGFjZSB3YW50cy4K Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LXJp c2N2IG1haWxpbmcgbGlzdApsaW51eC1yaXNjdkBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9s aXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtcmlzY3YK