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 78FF4C3ABBC for ; Fri, 9 May 2025 09:20:41 +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-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:References:Subject:From:To: Cc:Message-Id:Date:Mime-Version:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=MuET4F7wJcpowAumOnujpim5YewSXVRgH9US+kFVEaA=; b=xLojfZJcDBfrGl wtYLEX96lwI6SPG/I60+C2HfvDG2DM66VRjVKPA+mxUgOvnMH2eLcjNrhoiq3y55SCUehB5pvK+Mu knKqtFH02nyobHPkeeQsuEogHpZCKT8e0ETYbXCqpPGmVBbxKOESVC0JHvcw+zS5CbwHgdXA0u/vk O6zOkSV4DxrEL/kVITy5bGVo1kotpGmWIj+5IDsXMpxF1t0wybQ/sVg109sL5nn9BnO6l+v5v3FcC 6y2ssWffaG6Oc6+lnKCgnW87wK2m84uUjX6boXaAOTx8vpBWsP1oXMUU6htIxK/BdQOVbg2s7JFgn 87i/4nWctJZgwPtM+PRg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1uDJuL-0000000358s-1151; Fri, 09 May 2025 09:20:41 +0000 Received: from mail-ej1-x633.google.com ([2a00:1450:4864:20::633]) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1uDJMu-00000002yMp-3SIl for kvm-riscv@lists.infradead.org; Fri, 09 May 2025 08:46:09 +0000 Received: by mail-ej1-x633.google.com with SMTP id a640c23a62f3a-ab7098af6fdso26937866b.2 for ; Fri, 09 May 2025 01:46:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ventanamicro.com; s=google; t=1746780367; x=1747385167; darn=lists.infradead.org; h=in-reply-to:references:subject:from:to:cc:message-id:date :content-transfer-encoding:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=NGiJMRlH7N8wVvTRH9S0DCs9CUNhc8t6xLRe72oOUGs=; b=MG/MWb+MkrXoIS4XWT4fFwKzjR5rVSI2RqfpdJgVJcCv/nAkDj4NRh+vot3axbP042 RicTQmAWKAsnS0lF9t0muE7YAQD4qYSVKWLquVBxao/K+FAB5CNprqcw16NdPVXs4bv4 SVc9U4aoeYlrBUxncMw5dqBmrH8Lug6I5BS+ksavzcyDPfPoHwWRkgTXH45doSCSDYe/ bvIaY+CMQBWt7k7IRUhxUmJdBXkefxbXsfJWqcCZiyekoavCCNnaB1QVeGB5oXNez5eI 11hFFGzVcQALtV29H5UU//HIGcdr+shzZVDaYu5V7s6g2jE82Y+3O1T1XG4GKgkCnEkY b0Xg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1746780367; x=1747385167; h=in-reply-to:references:subject:from:to:cc:message-id:date :content-transfer-encoding:mime-version:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=NGiJMRlH7N8wVvTRH9S0DCs9CUNhc8t6xLRe72oOUGs=; b=dxqu4tOqQ2M60rkumw23RX72pPegQBqGAmMC78fweOkc41PVUl7XNR18MSiASdObkK hiIAAzVbokIytMna/5i2n3wIdmtg/ZPCj02zZlEv0x/VMRORRsjKpu0tVh7pW518Slez BcxwBRynlPvk2e7zeQnAAcHn5oyFOjKZl8tSBkBurpIe/L07A/4ptyqNmKTiuu8h8VaX H5mHSu37PPomQkXKnnr+N7dH6LuAg7ToNLqTXR5Xvv0ynr1HUggJgMmmnbHBw7fYMbgS wi4eOTaHayX/vEzX9VqAi9RbM3QnSxMFT9cA2yV48uKq2YXH3xTyYFhpVBYvGnLiz3xo dQZw== X-Gm-Message-State: AOJu0YwgpKvcgM8SS+ZOhSCKmm7l/mMISLxNNwIjyYwgJnDnGZIcueU1 ET8mFlY7Mpkg7CGIF4TO42znRReu4wx4QFog+UQfi6XgbQf+6AU2AhpMMi4WuYU= X-Gm-Gg: ASbGncsD4FJY9bLH+fzQhRI97L0kScoLvoUj64oLIlUNMWe8hg6oUGJEuOjGVv8laoo 4cuKPUWNlrS18zW+7aBln1uFZdIiaywmiIaXaiaLVmTQswJDsQcISKOe6NuTkA+utPa7zBQSETT FuI8XI748DX6uDVcduD6BwgxCHDOpCgg8GMvN5TLWsKP1gw75qyHkLfxrP9AcgY6FmdJi1onQar /gCN5LiyBnl3u3y1jLZzpsuzc/J/KDsUbVf4aPQhdviR8Elh5zE0Vb6eiLDIVcI9dnJ5oO7fekI yhKbdFu5cJ3VW2UJnTqBBgfpwiRjA1echBClDyOmiLXWD9mlqjVZZNNleBLDJc+R/1qIxafjJOE 4 X-Google-Smtp-Source: AGHT+IGAYEclMsV5S50C0hAJ9Rssz25VsqYW3XofjFIyQasz4bI9bHUIYQ48ZI6cYslINiw1CF431Q== X-Received: by 2002:a17:907:2e19:b0:acb:1d24:a9e0 with SMTP id a640c23a62f3a-ad219ac5111mr79947866b.11.1746780366510; Fri, 09 May 2025 01:46:06 -0700 (PDT) Received: from localhost (ip-89-103-73-235.bb.vodafone.cz. [89.103.73.235]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ad2192c93d3sm118978066b.16.2025.05.09.01.46.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 09 May 2025 01:46:06 -0700 (PDT) Mime-Version: 1.0 Date: Fri, 09 May 2025 10:46:05 +0200 Message-Id: Cc: , , , , "Atish Patra" , "Paul Walmsley" , "Palmer Dabbelt" , "Albert Ou" , "Alexandre Ghiti" , "Andrew Jones" To: "Anup Patel" From: =?utf-8?q?Radim_Kr=C4=8Dm=C3=A1=C5=99?= Subject: Re: [PATCH v2 2/2] RISC-V: KVM: add KVM_CAP_RISCV_MP_STATE_RESET References: <20250508142842.1496099-2-rkrcmar@ventanamicro.com> <20250508142842.1496099-4-rkrcmar@ventanamicro.com> In-Reply-To: X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250509_014608_880445_6523BFB2 X-CRM114-Status: GOOD ( 29.87 ) 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-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "kvm-riscv" Errors-To: kvm-riscv-bounces+kvm-riscv=archiver.kernel.org@lists.infradead.org MjAyNS0wNS0wOVQxMjoyNToyNCswNTozMCwgQW51cCBQYXRlbCA8YW51cEBicmFpbmZhdWx0Lm9y Zz46Cj4gT24gVGh1LCBNYXkgOCwgMjAyNSBhdCA4OjAx4oCvUE0gUmFkaW0gS3LEjW3DocWZIDxy a3JjbWFyQHZlbnRhbmFtaWNyby5jb20+IHdyb3RlOgo+Pgo+PiBBZGQgYSB0b2dnbGVhYmxlIFZN IGNhcGFiaWxpdHkgdG8gbW9kaWZ5IHNldmVyYWwgcmVzZXQgcmVsYXRlZCBjb2RlCj4+IHBhdGhz LiAgVGhlIGdvYWxzIGFyZSB0bwo+PiAgMSkgQWxsb3cgdXNlcnNwYWNlIHRvIHJlc2V0IGFueSBW Q1BVLgo+PiAgMikgQWxsb3cgdXNlcnNwYWNlIHRvIHByb3ZpZGUgdGhlIGluaXRpYWwgVkNQVSBz dGF0ZS4KPj4KPj4gKFJpZ2h0IG5vdywgdGhlIGJvb3QgVkNQVSBpc24ndCByZXNldCBieSBLVk0g YW5kIEtWTSBzZXRzIHRoZSBzdGF0ZSBmb3IKPj4gIFZDUFVzIGJyb3VnaHQgdXAgYnkgc2JpX2hh cnRfc3RhcnQgd2hpbGUgdXNlcnNwYWNlIGZvciBhbGwgb3RoZXJzLikKPj4KPj4gVGhlIGdvYWxz IGFyZSBhY2hpZXZlZCB3aXRoIHRoZSBmb2xsb3dpbmcgY2hhbmdlczoKPj4gICogUmVzZXQgdGhl IFZDUFUgd2hlbiBzZXR0aW5nIE1QX1NUQVRFX0lOSVRfUkVDRUlWRUQgdGhyb3VnaCBJT0NUTC4K Pgo+IFJhdGhlciB0aGFuIHVzaW5nIHNlcGFyYXRlIE1QX1NUQVRFX0lOSVRfUkVDRUlWRUQgaW9j dGwoKSwgd2UgY2FuCj4gZGVmaW5lIGEgY2FwYWJpbGl0eSB3aGljaCB3aGVuIHNldCwgdGhlIHNl dF9tcHN0YXRlIGlvY3RsKCkgd2lsbCByZXNldCB0aGUKPiBWQ1BVIHVwb24gY2hhbmdpbmcgVkNQ VSBzdGF0ZSBmcm9tIFJVTk5BQkxFIHRvIFNUT1BQRUQgc3RhdGUuCgpZZWFoLCBJIHN0YXJ0ZWQg d2l0aCB0aGF0IGFuZCB0aGVuIHJlYWxpemVkIGl0IGhhcyB0d28gZHJhd2JhY2tzOgoKICogSXQg d2lsbCByZXF1aXJlIGxhcmdlciBjaGFuZ2VzIGluIHVzZXJzcGFjZXMsIGJlY2F1c2UgZm9yCiAg IGV4YW1wbGUgUUVNVSBub3cgZmlyc3QgbG9hZHMgdGhlIGluaXRpYWwgc3RhdGUgYW5kIHRoZW4g dG9nZ2xlcyB0aGUKICAgbXBfc3RhdGUsIHdoaWNoIHdvdWxkIGluY29ycmVjdGx5IHJlc2V0IHRo ZSBzdGF0ZS4KCiAqIEl0IHdpbGwgYWxzbyByZXF1aXJlIGFuIGV4dHJhIElPQ1RMIGlmIGEgc3Rv cHBlZCBWQ1BVIHNob3VsZCBiZQogICByZXNldAogICAgMSkgU1RPUFBFRCAtPiBSVU5OSU5HICg9 IHJlc2V0KQogICAgMikgUlVOTklORyAtPiBTVE9QUEVEIChWQ1BVIHNob3VsZCBiZSBzdG9wcGVk KQogICBvciBpZiB0aGUgY3VycmVudCBzdGF0ZSBvZiBhIFZDUFUgaXMgbm90IGtub3duLgogICAg MSkgPz8/ICAgICAtPiBTVE9QUEVECiAgICAyKSBTVE9QUEVEIC0+IFJVTk5JTkcKICAgIDMpIFJV Tk5JTkcgLT4gU1RPUFBFRAoKSSBjYW4gZG8gdGhhdCBmb3IgdjMgaWYgeW91IHRoaW5rIGl0J3Mg YmV0dGVyLgoKPj4gICogUHJlc2VydmUgdGhlIHVzZXJzcGFjZSBpbml0aWFsaXplZCBWQ1BVIHN0 YXRlIG9uIHNiaV9oYXJ0X3N0YXJ0Lgo+PiAgKiBSZXR1cm4gdG8gdXNlcnNwYWNlIG9uIHNiaV9o YXJ0X3N0b3AuCj4KPiBUaGVyZSBpcyBubyB1c2Vyc3BhY2UgaW52b2x2ZW1lbnQgcmVxdWlyZWQg d2hlbiBhIEd1ZXN0IFZDUFUKPiBzdG9wcyBpdHNlbGYgdXNpbmcgU0JJIEhTTSBzdG9wKCkgY2Fs bCBzbyBTVFJPTkcgTk8gdG8gdGhpcyBjaGFuZ2UuCgpPaywgSSdsbCBkcm9wIGl0IGZyb20gdjMg LS0gaXQgY2FuIGJlIGhhbmRsZWQgYnkgZnV0dXJlIHBhdGNoZXMgdGhhdAp0cmFwIFNCSSBjYWxs cyB0byB1c2Vyc3BhY2UuCgpUaGUgbGFjayBvZiB1c2Vyc3BhY2UgaW52b2x2ZW1lbnQgaXMgdGhl IGlzc3VlLiAgS1ZNIGRvZXNuJ3Qga25vdyB3aGF0CnRoZSBpbml0aWFsIHN0YXRlIHNob3VsZCBi ZS4KCj4+ICAqIERvbid0IG1ha2UgVkNQVSByZXNldCByZXF1ZXN0IG9uIHNiaV9zeXN0ZW1fc3Vz cGVuZC4KPgo+IFRoZSBlbnRyeSBzdGF0ZSBvZiBpbml0aWF0aW5nIFZDUFUgaXMgYWxyZWFkeSBh dmFpbGFibGUgb24gU0JJIHN5c3RlbQo+IHN1c3BlbmQgY2FsbC4gVGhlIGluaXRpYXRpbmcgVkNQ VSBtdXN0IGJlIHJlc2V0dGVkIGFuZCBlbnRyeSBzdGF0ZSBvZgo+IGluaXRpYXRpbmcgVkNQVSBt dXN0IGJlIHNldHVwLgoKVXNlcnNwYWNlIHdvdWxkIHNpbXBseSBjYWxsIHRoZSBWQ1BVIHJlc2V0 IGFuZCBzZXQgdGhlIGNvbXBsZXRlIHN0YXRlLApiZWNhdXNlIHRoZSB1c2Vyc3BhY2UgZXhpdCBh bHJlYWR5IHByb3ZpZGVzIGFsbCB0aGUgc2JpIGluZm9ybWF0aW9uLgoKSSdsbCBkcm9wIHRoaXMg Y2hhbmdlLiAgSXQgZG9lc24ndCBtYWtlIG11Y2ggc2Vuc2UgaWYgd2UgYXJlbid0IGZpeGluZwp0 aGUgc2JpX2hhcnRfc3RhcnQgcmVzZXQuCgo+PiBUaGUgcGF0Y2ggaXMgcmV1c2luZyBNUF9TVEFU RV9JTklUX1JFQ0VJVkVELCBiZWNhdXNlIHdlIGRpZG4ndCB3YW50IHRvCj4+IGFkZCBhIG5ldyBJ T0NUTCwgc29ycnkuIDopCj4+Cj4+IFNpZ25lZC1vZmYtYnk6IFJhZGltIEtyxI1tw6HFmSA8cmty Y21hckB2ZW50YW5hbWljcm8uY29tPgo+PiAtLS0KPj4gSWYgeW91IHNlYXJjaCBmb3IgY2FwIDcu NDIgaW4gYXBpLnJzdCwgeW91J2xsIHNlZSB0aGF0IGl0IGhhcyBhIHdyb25nCj4+IG51bWJlciwg d2hpY2ggaXMgd2h5IHdlJ3JlIDcuNDMsIGluIGNhc2Ugc29tZW9uZSBib3RoZXJzIHRvIGZpeCBB Uk0uCj4+Cj4+IEkgd2FzIGFsc28gc3Ryb25nbHkgY29uc2lkZXJpbmcgY3JlYXRpbmcgYWxsIFZD UFVzIGluIFJVTk5BQkxFIHN0YXRlIC0tCj4+IGRvIHlvdSBrbm93IG9mIGFueSBzaW1pbGFyIHF1 aXJrcyB0aGF0IGFyZW4ndCBpbXBvcnRhbnQsIGJ1dCBjb3VsZCBiZQo+PiBmaXhlZCB3aXRoIHRo ZSBuZXcgdXNlcnNwYWNlIHRvZ2dsZT8KPgo+IFVwb24gY3JlYXRpbmcgYSBWTSwgb25seSBvbmUg VkNQVSBzaG91bGQgYmUgUlVOTkFCTEUgYW5kIGFsbAo+IG90aGVyIFZDUFVzIG11c3QgcmVtYWlu IGluIE9GRiBzdGF0ZS4gVGhpcyBpcyBpbnRlbnRpb25hbCBiZWNhdXNlCj4gaW1hZ2luZSBhIGxh cmdlIG51bWJlciBvZiBWQ1BVcyBlbnRlcmluZyBHdWVzdCBPUyBhdCB0aGUgc2FtZQo+IHRpbWUu IFdlIGhhdmUgc3BlbnQgYSBsb3Qgb2YgZWZmb3J0IGluIHRoZSBwYXN0IHRvIGdldCBhd2F5IGZy b20gdGhpcwo+IHNpdHVhdGlvbiBldmVuIGluIHRoZSBob3N0IGJvb3QgZmxvdy4gV2UgY2FuJ3Qg ZXhwZWN0IHVzZXIgc3BhY2UgdG8KPiBjb3JyZWN0bHkgc2V0IHRoZSBpbml0aWFsIE1QX1NUQVRF IG9mIGFsbCBWQ1BVcy4gV2UgY2FuIGNlcnRhaW5seQo+IHRoaW5rIG9mIHNvbWUgbWVjaGFuaXNt IHVzaW5nIHdoaWNoIHVzZXIgc3BhY2UgY2FuIHNwZWNpZnkKPiB3aGljaCBWQ1BVIHNob3VsZCBi ZSBydW5uYWJsZSB1cG9uIFZNIGNyZWF0aW9uLgoKV2UgYWxyZWFkeSBkbyBoYXZlIHRoZSBtZWNo YW5pc20gLS0gdGhlIHVzZXJzcGFjZSB3aWxsIHNldCBNUF9TVEFURSBvZgpWQ1BVIDAgdG8gU1RP UFBFRCBhbmQgd2hhdGV2ZXIgVkNQVXMgaXQgd2FudHMgYXMgYm9vdCB3aXRoIHRvIFJVTk5BQkxF CmJlZm9yZSBydW5uaW5nIGFsbCB0aGUgVkNQVXMgZm9yIHRoZSBmaXJzdCB0aW1lLgoKVGhlIHVz ZXJzcGFjZSBtdXN0IGNvcnJlY3RseSBzZXQgdGhlIGluaXRpYWwgTVAgc3RhdGUgYW55d2F5LCBi ZWNhdXNlIGEKcmVzdW1lIHdpbGwgd2FudCBhIG1wX3N0YXRlIHRoYXQgYSBmcmVzaCBib290LgoK PiBUaGUgY3VycmVudCBhcHByb2FjaCBpcyB0byBkbyBIU00gc3RhdGUgbWFuYWdlbWVudCBpbiBr ZXJuZWwKPiBzcGFjZSBpdHNlbGYgYW5kIG5vdCByZWx5IG9uIHVzZXIgc3BhY2UuIEFsbG93aW5n IHVzZXJzcGFjZSB0bwo+IHJlc2V0dGluZyBhbnkgVkNQVSBpcyBmaW5lIGJ1dCB0aGlzIHNob3Vs ZCBub3QgYWZmZWN0IHRoZSBmbG93IGZvcgo+IFNCSSBIU00sIFNCSSBTeXN0ZW0gUmVzZXQsIGFu ZCBTQkkgU3lzdGVtIFN1c3BlbmQuCgpZZXMsIHRoYXQgaXMgdGhlIGRlc2lnbiBJIHdhcyB0cnlp bmcgdG8gY2hhbmdlLiAgSSB0aGluayB1c2Vyc3BhY2UKc2hvdWxkIGhhdmUgY29udHJvbCBvdmVy IGFsbCBhc3BlY3RzIG9mIHRoZSBndWVzdCBpdCBleGVjdXRlcyBpbiBLVk0uCgpBY2NlbGVyYXRp bmcgU0JJIGluIEtWTSBpcyBnb29kLCBidXQgdXNlcnNwYWNlIHNob3VsZCBiZSBhYmxlIHRvIHNh eSBob3cKdGhlIHVuc3BlY2lmaWVkIHBhcnRzIGFyZSBpbXBsZW1lbnRlZC4gIFRyYXBwaW5nIHRv IHVzZXJzcGFjZSBpcyB0aGUKc2ltcGxlc3Qgb3B0aW9uLiAgKEFuZCBzdWZmaWNpZW50IGZvciBl Y2FsbHMgdGhhdCBhcmUgbm90IGEgaG90IHBhdGguKQoKVGhhbmtzLgoKLS0gCmt2bS1yaXNjdiBt YWlsaW5nIGxpc3QKa3ZtLXJpc2N2QGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmlu ZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9rdm0tcmlzY3YK From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-ej1-f53.google.com (mail-ej1-f53.google.com [209.85.218.53]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7216F276033 for ; Fri, 9 May 2025 08:46:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.53 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1746780370; cv=none; b=VBwymfMh4iFAWbzaMh9LnB8szsE9vB59ziSwb6g3oRaZpC8LXv/kBPDxeiaihqM2fBmM4A6GBVguazPxTdprnMVetGtaJo4Qbkoyl1W/T8Biv6cqzVQPukbEUixbx1YOqzUtnL6DxRvp5kF+6bwA4OB1fUr1aTPANjivpp2djIs= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1746780370; c=relaxed/simple; bh=Hd8W86XpSOoLd0GepwRihQjFEF41vT6S64z6qugV81E=; h=Mime-Version:Content-Type:Date:Message-Id:Cc:To:From:Subject: References:In-Reply-To; b=qyBFbNZJ5XoAAfwbb1tHHCnjV+6RLNfwlZSuWR4zEVA1u7TS5kuG1itgwY38bEtV2C8dtqit2i6EyPS0X1o3ukqHj6pWkUw9a/ckzpnmJuUod9NJpWN+NY0q43uc+M3i2X4Q2QVcNUb3LgokCOVZl+qmkVKuLp8tWzO1eeVIixs= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=ventanamicro.com; spf=pass smtp.mailfrom=ventanamicro.com; dkim=pass (2048-bit key) header.d=ventanamicro.com header.i=@ventanamicro.com header.b=CXcxcedS; arc=none smtp.client-ip=209.85.218.53 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=ventanamicro.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=ventanamicro.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=ventanamicro.com header.i=@ventanamicro.com header.b="CXcxcedS" Received: by mail-ej1-f53.google.com with SMTP id a640c23a62f3a-ab7098af6fdso26937966b.2 for ; Fri, 09 May 2025 01:46:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ventanamicro.com; s=google; t=1746780367; x=1747385167; darn=vger.kernel.org; h=in-reply-to:references:subject:from:to:cc:message-id:date :content-transfer-encoding:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=NGiJMRlH7N8wVvTRH9S0DCs9CUNhc8t6xLRe72oOUGs=; b=CXcxcedSkeUijGPctEMJ3D/qIaLgNd72v8mQQXSLaknTS4swjT4y8m2GUD5uGv2Qur 2Y1QqVyHHatCKdemVtRF/WgZhw83Ze+aVxcAwfu8UFRwKpMnc4hmo0S7uwvErQIIv6JA r0lBlBYb+WxydP9ku+hmEHm+kN0oCAbTKsGDzC9ZeBzY6IhAswiQAnSHy8IBP5QUE39P H0n4pXmaaNA/rgytgZUjo/9XCuhkDsrfiq/aklJvWX/HoTazkZ16QbOa5OLtEYWCVMmn oXqbJzjfFT7dq6N02Eka35WtXjhYyySj5PJaCX227XeDRh1R9t580RWnoPUpJDxDT9QM Zn3w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1746780367; x=1747385167; h=in-reply-to:references:subject:from:to:cc:message-id:date :content-transfer-encoding:mime-version:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=NGiJMRlH7N8wVvTRH9S0DCs9CUNhc8t6xLRe72oOUGs=; b=LyuRurq8atYhWdKDcszLJxiqWrFEUItq9kdhwn/hO0f9gCNOFpWEjQSG+gZJRbGmm0 qS0KBbMOh1g8/CwNLFMkMZ+aieKVWrlJ3v62eBogbzUnnHmPBxXvTPzkZcn24NmeyyCB 5lDqg+KkDdXCrMsg++vGQWfd+p9qXg64F8a3jsDsXfXnRyklZSln8r270faHEaVRN51T NpEPd/Mc7Oc/FKjqgJ6TOX7HdGhCC/i1EyzeemKm41rbjipZ7GQXtBCf1ddxxKF8+pzy NFoKWojqI8yFA+s9XQg2VAbFCWi9xCXx4fDhILvzpOY+gwAM7V2uayZlsI3vupifkGds Lklw== X-Forwarded-Encrypted: i=1; AJvYcCXOGNyQjhCj9mLEG6gu2IqaPSLBYQUahGyiPdIGQ04hnwPSW20N2OjNjklp/MhAtGdfJbQ=@vger.kernel.org X-Gm-Message-State: AOJu0YzDYdyAcOBa86DpwNclXM6NtoWfdoQJ6D3mmGuklAgSlTOomhiS Qqz5TjuSfjtYUeqGBsPrURmWRmzUiXlzuiemeBgO/DLVLwqDihh35uTDaaMJu2Q= X-Gm-Gg: ASbGncstbmNtD7xHewHRl9ZOP430dzxqCFRB20KkIFQoX5xbzzE1jBu2aUDod6BZUs8 rs9QQ2sewnAgwZUlMBt7rILDm4mMANaXt4gB1riytNN74JefLE6cJnCCH03XXeY5pkr5yYBZ5ho Ndo85SOlA4XKkJb3zwxJmE5EYEibk5YzqrUgN1CDNH7ZgY0LsqKnEEY6NstqI8sXlFCE7qFwvAP fXpP8+bKmXSXZsEtxACbEAwrAw/sl+MaOIe04N355Djhg4dzQAgAzyyWZ0QVo1pJoZke23Lmc6z Ce7vnCFzcXfLXUa2ypYNhVuBcL8zeG+tD2do/11liix2nxceNmE9XYiJpiy9at4kZ/bMIFjPKnq K X-Google-Smtp-Source: AGHT+IGAYEclMsV5S50C0hAJ9Rssz25VsqYW3XofjFIyQasz4bI9bHUIYQ48ZI6cYslINiw1CF431Q== X-Received: by 2002:a17:907:2e19:b0:acb:1d24:a9e0 with SMTP id a640c23a62f3a-ad219ac5111mr79947866b.11.1746780366510; Fri, 09 May 2025 01:46:06 -0700 (PDT) Received: from localhost (ip-89-103-73-235.bb.vodafone.cz. [89.103.73.235]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ad2192c93d3sm118978066b.16.2025.05.09.01.46.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 09 May 2025 01:46:06 -0700 (PDT) Precedence: bulk X-Mailing-List: kvm@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=UTF-8 Date: Fri, 09 May 2025 10:46:05 +0200 Message-Id: Cc: , , , , "Atish Patra" , "Paul Walmsley" , "Palmer Dabbelt" , "Albert Ou" , "Alexandre Ghiti" , "Andrew Jones" To: "Anup Patel" From: =?utf-8?q?Radim_Kr=C4=8Dm=C3=A1=C5=99?= Subject: Re: [PATCH v2 2/2] RISC-V: KVM: add KVM_CAP_RISCV_MP_STATE_RESET References: <20250508142842.1496099-2-rkrcmar@ventanamicro.com> <20250508142842.1496099-4-rkrcmar@ventanamicro.com> In-Reply-To: 2025-05-09T12:25:24+05:30, Anup Patel : > On Thu, May 8, 2025 at 8:01=E2=80=AFPM Radim Kr=C4=8Dm=C3=A1=C5=99 wrote: >> >> Add a toggleable VM capability to modify several reset related code >> paths. The goals are to >> 1) Allow userspace to reset any VCPU. >> 2) Allow userspace to provide the initial VCPU state. >> >> (Right now, the boot VCPU isn't reset by KVM and KVM sets the state for >> VCPUs brought up by sbi_hart_start while userspace for all others.) >> >> The goals are achieved with the following changes: >> * Reset the VCPU when setting MP_STATE_INIT_RECEIVED through IOCTL. > > Rather than using separate MP_STATE_INIT_RECEIVED ioctl(), we can > define a capability which when set, the set_mpstate ioctl() will reset th= e > VCPU upon changing VCPU state from RUNNABLE to STOPPED state. Yeah, I started with that and then realized it has two drawbacks: * It will require larger changes in userspaces, because for example QEMU now first loads the initial state and then toggles the mp_state, which would incorrectly reset the state. * It will also require an extra IOCTL if a stopped VCPU should be reset 1) STOPPED -> RUNNING (=3D reset) 2) RUNNING -> STOPPED (VCPU should be stopped) or if the current state of a VCPU is not known. 1) ??? -> STOPPED 2) STOPPED -> RUNNING 3) RUNNING -> STOPPED I can do that for v3 if you think it's better. >> * Preserve the userspace initialized VCPU state on sbi_hart_start. >> * Return to userspace on sbi_hart_stop. > > There is no userspace involvement required when a Guest VCPU > stops itself using SBI HSM stop() call so STRONG NO to this change. Ok, I'll drop it from v3 -- it can be handled by future patches that trap SBI calls to userspace. The lack of userspace involvement is the issue. KVM doesn't know what the initial state should be. >> * Don't make VCPU reset request on sbi_system_suspend. > > The entry state of initiating VCPU is already available on SBI system > suspend call. The initiating VCPU must be resetted and entry state of > initiating VCPU must be setup. Userspace would simply call the VCPU reset and set the complete state, because the userspace exit already provides all the sbi information. I'll drop this change. It doesn't make much sense if we aren't fixing the sbi_hart_start reset. >> The patch is reusing MP_STATE_INIT_RECEIVED, because we didn't want to >> add a new IOCTL, sorry. :) >> >> Signed-off-by: Radim Kr=C4=8Dm=C3=A1=C5=99 >> --- >> If you search for cap 7.42 in api.rst, you'll see that it has a wrong >> number, which is why we're 7.43, in case someone bothers to fix ARM. >> >> I was also strongly considering creating all VCPUs in RUNNABLE state -- >> do you know of any similar quirks that aren't important, but could be >> fixed with the new userspace toggle? > > Upon creating a VM, only one VCPU should be RUNNABLE and all > other VCPUs must remain in OFF state. This is intentional because > imagine a large number of VCPUs entering Guest OS at the same > time. We have spent a lot of effort in the past to get away from this > situation even in the host boot flow. We can't expect user space to > correctly set the initial MP_STATE of all VCPUs. We can certainly > think of some mechanism using which user space can specify > which VCPU should be runnable upon VM creation. We already do have the mechanism -- the userspace will set MP_STATE of VCPU 0 to STOPPED and whatever VCPUs it wants as boot with to RUNNABLE before running all the VCPUs for the first time. The userspace must correctly set the initial MP state anyway, because a resume will want a mp_state that a fresh boot. > The current approach is to do HSM state management in kernel > space itself and not rely on user space. Allowing userspace to > resetting any VCPU is fine but this should not affect the flow for > SBI HSM, SBI System Reset, and SBI System Suspend. Yes, that is the design I was trying to change. I think userspace should have control over all aspects of the guest it executes in KVM. Accelerating SBI in KVM is good, but userspace should be able to say how the unspecified parts are implemented. Trapping to userspace is the simplest option. (And sufficient for ecalls that are not a hot path.) Thanks. 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 DAB1CC3ABC9 for ; Fri, 9 May 2025 09:20:46 +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-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:References:Subject:From:To: Cc:Message-Id:Date:Mime-Version:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=DXI3Y9S9WMCHcOsKkMQZGNA/48GMOSi0Nd1OuqMEOIc=; b=ofxft4Ov8GMaHT RkLFd0Ny/c4wNNHyCAc4cJU0KBGWTQQhRbZG6VRARlX4PpXrArLJUpf18k+NBcbQMvOTn7yMPXH95 hDyGr1MnOm4y7MyRljPOnlvIOgG92HEJeuP2Kvy9GJto7GqDaNeBhtqwUrmbMbMCtj6kD4Awz+bk/ qddQx2x0EG01L5dQImUMwP5y2rb0KCgXTPceJgDLT5DbpUJ6MepbWHfUl6dWmMNVr9rQYzibmcCmD lkpbj5AZQWf7nnf5JUbDi3AQxABEmJbtsstz5ftLw+93VcGrtrS7y3jXmpgRDYnLO7fhEL7XRW9Z0 t0Dxmozc7gJs3R5gNYLQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1uDJuL-0000000359D-2NgL; Fri, 09 May 2025 09:20:41 +0000 Received: from mail-ej1-x62c.google.com ([2a00:1450:4864:20::62c]) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1uDJMu-00000002yMo-3RAo for linux-riscv@lists.infradead.org; Fri, 09 May 2025 08:46:09 +0000 Received: by mail-ej1-x62c.google.com with SMTP id a640c23a62f3a-acb94bf784bso30666066b.0 for ; Fri, 09 May 2025 01:46:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ventanamicro.com; s=google; t=1746780367; x=1747385167; darn=lists.infradead.org; h=in-reply-to:references:subject:from:to:cc:message-id:date :content-transfer-encoding:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=NGiJMRlH7N8wVvTRH9S0DCs9CUNhc8t6xLRe72oOUGs=; b=MG/MWb+MkrXoIS4XWT4fFwKzjR5rVSI2RqfpdJgVJcCv/nAkDj4NRh+vot3axbP042 RicTQmAWKAsnS0lF9t0muE7YAQD4qYSVKWLquVBxao/K+FAB5CNprqcw16NdPVXs4bv4 SVc9U4aoeYlrBUxncMw5dqBmrH8Lug6I5BS+ksavzcyDPfPoHwWRkgTXH45doSCSDYe/ bvIaY+CMQBWt7k7IRUhxUmJdBXkefxbXsfJWqcCZiyekoavCCNnaB1QVeGB5oXNez5eI 11hFFGzVcQALtV29H5UU//HIGcdr+shzZVDaYu5V7s6g2jE82Y+3O1T1XG4GKgkCnEkY b0Xg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1746780367; x=1747385167; h=in-reply-to:references:subject:from:to:cc:message-id:date :content-transfer-encoding:mime-version:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=NGiJMRlH7N8wVvTRH9S0DCs9CUNhc8t6xLRe72oOUGs=; b=BH5J78uOVN5ICs6/5qQgidlGsfJZWREcHFQ5C752kBZKXttqZ93ONfCz0lTY5+A12r X7W4qgdVHGcUEFuHQrCdTcysV4Q/19F5J9qh9hY2/6k3AowZsGo6BrSZ9QgIlka29SZE VGEqtom2a2MzlJrEf1ow5lXM/oIEnLlAY6wU0DwADiU1h+W7/2BNGiQrkKcAN7rJTo4N t5AYhCWp9s2GYVrdqDFyHYvv/NiD6S1I0IuqZVsLwg4Yar3W1xaS5NI+wDVWUq1mWf56 5CIbWSP89iduapUliDO2DB3tqlogqq94+mkbg8hufvQSTjs7tLTA9B5i2TPI9Q3Hl+Ep q1TQ== X-Forwarded-Encrypted: i=1; AJvYcCXm4MXcukRVY61C5peLjMTUdJK4eaSTxC9NHNxdoo7b4uLDTq3HIivGgMYRHaSLnKJtZc8umyxSYMwVHQ==@lists.infradead.org X-Gm-Message-State: AOJu0Yz5PGy/sbMaKNWrfns0A/nPP8Gp6ndDnIMl6KRXBBbrwfDNlk19 GFENi3+6OY0BnnofEqemsp6uHErWyb3KA2iKbzNW4B2jzHS1SUoQJWHF3iuGSdQ= X-Gm-Gg: ASbGncu2toTPDuZ6QxNf8ldYPH6RwPFPNp+rsKx2rDVlVOsvx0pEaVEpaqVpoaMMWVd 9W3UmUF+xtKOLOjZVDaFxWsHeWrTDK7Co8qm68v7xVvw7HG5E1FPXGGDd38iEsEMNA9kWG1cVBY FRFXXZ0KvqthhItqW3zrGM7mxu005UMzZ3h3k63WgYixZgfBm7Qs9kduXOlWC09Uq6NBNTlFf5j wJs0mOlJdb+U51eIDBAvj0dBcKgwCMZHNEsULWr6pUd+/v1XFVKphD1sTJznRHjehJ0jXCvThK2 ENXtkvoRBH2eg1cfyadlbR2ZitQ0Yoi9kbaOmt6J8M2B1BU4Vku9jzEdGn7f2vUnDW3OqWmOgWw R X-Google-Smtp-Source: AGHT+IGAYEclMsV5S50C0hAJ9Rssz25VsqYW3XofjFIyQasz4bI9bHUIYQ48ZI6cYslINiw1CF431Q== X-Received: by 2002:a17:907:2e19:b0:acb:1d24:a9e0 with SMTP id a640c23a62f3a-ad219ac5111mr79947866b.11.1746780366510; Fri, 09 May 2025 01:46:06 -0700 (PDT) Received: from localhost (ip-89-103-73-235.bb.vodafone.cz. [89.103.73.235]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ad2192c93d3sm118978066b.16.2025.05.09.01.46.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 09 May 2025 01:46:06 -0700 (PDT) Mime-Version: 1.0 Date: Fri, 09 May 2025 10:46:05 +0200 Message-Id: Cc: , , , , "Atish Patra" , "Paul Walmsley" , "Palmer Dabbelt" , "Albert Ou" , "Alexandre Ghiti" , "Andrew Jones" To: "Anup Patel" From: =?utf-8?q?Radim_Kr=C4=8Dm=C3=A1=C5=99?= Subject: Re: [PATCH v2 2/2] RISC-V: KVM: add KVM_CAP_RISCV_MP_STATE_RESET References: <20250508142842.1496099-2-rkrcmar@ventanamicro.com> <20250508142842.1496099-4-rkrcmar@ventanamicro.com> In-Reply-To: X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250509_014608_880597_6FD1C67B X-CRM114-Status: GOOD ( 29.87 ) 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-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-riscv" Errors-To: linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org MjAyNS0wNS0wOVQxMjoyNToyNCswNTozMCwgQW51cCBQYXRlbCA8YW51cEBicmFpbmZhdWx0Lm9y Zz46Cj4gT24gVGh1LCBNYXkgOCwgMjAyNSBhdCA4OjAx4oCvUE0gUmFkaW0gS3LEjW3DocWZIDxy a3JjbWFyQHZlbnRhbmFtaWNyby5jb20+IHdyb3RlOgo+Pgo+PiBBZGQgYSB0b2dnbGVhYmxlIFZN IGNhcGFiaWxpdHkgdG8gbW9kaWZ5IHNldmVyYWwgcmVzZXQgcmVsYXRlZCBjb2RlCj4+IHBhdGhz LiAgVGhlIGdvYWxzIGFyZSB0bwo+PiAgMSkgQWxsb3cgdXNlcnNwYWNlIHRvIHJlc2V0IGFueSBW Q1BVLgo+PiAgMikgQWxsb3cgdXNlcnNwYWNlIHRvIHByb3ZpZGUgdGhlIGluaXRpYWwgVkNQVSBz dGF0ZS4KPj4KPj4gKFJpZ2h0IG5vdywgdGhlIGJvb3QgVkNQVSBpc24ndCByZXNldCBieSBLVk0g YW5kIEtWTSBzZXRzIHRoZSBzdGF0ZSBmb3IKPj4gIFZDUFVzIGJyb3VnaHQgdXAgYnkgc2JpX2hh cnRfc3RhcnQgd2hpbGUgdXNlcnNwYWNlIGZvciBhbGwgb3RoZXJzLikKPj4KPj4gVGhlIGdvYWxz IGFyZSBhY2hpZXZlZCB3aXRoIHRoZSBmb2xsb3dpbmcgY2hhbmdlczoKPj4gICogUmVzZXQgdGhl IFZDUFUgd2hlbiBzZXR0aW5nIE1QX1NUQVRFX0lOSVRfUkVDRUlWRUQgdGhyb3VnaCBJT0NUTC4K Pgo+IFJhdGhlciB0aGFuIHVzaW5nIHNlcGFyYXRlIE1QX1NUQVRFX0lOSVRfUkVDRUlWRUQgaW9j dGwoKSwgd2UgY2FuCj4gZGVmaW5lIGEgY2FwYWJpbGl0eSB3aGljaCB3aGVuIHNldCwgdGhlIHNl dF9tcHN0YXRlIGlvY3RsKCkgd2lsbCByZXNldCB0aGUKPiBWQ1BVIHVwb24gY2hhbmdpbmcgVkNQ VSBzdGF0ZSBmcm9tIFJVTk5BQkxFIHRvIFNUT1BQRUQgc3RhdGUuCgpZZWFoLCBJIHN0YXJ0ZWQg d2l0aCB0aGF0IGFuZCB0aGVuIHJlYWxpemVkIGl0IGhhcyB0d28gZHJhd2JhY2tzOgoKICogSXQg d2lsbCByZXF1aXJlIGxhcmdlciBjaGFuZ2VzIGluIHVzZXJzcGFjZXMsIGJlY2F1c2UgZm9yCiAg IGV4YW1wbGUgUUVNVSBub3cgZmlyc3QgbG9hZHMgdGhlIGluaXRpYWwgc3RhdGUgYW5kIHRoZW4g dG9nZ2xlcyB0aGUKICAgbXBfc3RhdGUsIHdoaWNoIHdvdWxkIGluY29ycmVjdGx5IHJlc2V0IHRo ZSBzdGF0ZS4KCiAqIEl0IHdpbGwgYWxzbyByZXF1aXJlIGFuIGV4dHJhIElPQ1RMIGlmIGEgc3Rv cHBlZCBWQ1BVIHNob3VsZCBiZQogICByZXNldAogICAgMSkgU1RPUFBFRCAtPiBSVU5OSU5HICg9 IHJlc2V0KQogICAgMikgUlVOTklORyAtPiBTVE9QUEVEIChWQ1BVIHNob3VsZCBiZSBzdG9wcGVk KQogICBvciBpZiB0aGUgY3VycmVudCBzdGF0ZSBvZiBhIFZDUFUgaXMgbm90IGtub3duLgogICAg MSkgPz8/ICAgICAtPiBTVE9QUEVECiAgICAyKSBTVE9QUEVEIC0+IFJVTk5JTkcKICAgIDMpIFJV Tk5JTkcgLT4gU1RPUFBFRAoKSSBjYW4gZG8gdGhhdCBmb3IgdjMgaWYgeW91IHRoaW5rIGl0J3Mg YmV0dGVyLgoKPj4gICogUHJlc2VydmUgdGhlIHVzZXJzcGFjZSBpbml0aWFsaXplZCBWQ1BVIHN0 YXRlIG9uIHNiaV9oYXJ0X3N0YXJ0Lgo+PiAgKiBSZXR1cm4gdG8gdXNlcnNwYWNlIG9uIHNiaV9o YXJ0X3N0b3AuCj4KPiBUaGVyZSBpcyBubyB1c2Vyc3BhY2UgaW52b2x2ZW1lbnQgcmVxdWlyZWQg d2hlbiBhIEd1ZXN0IFZDUFUKPiBzdG9wcyBpdHNlbGYgdXNpbmcgU0JJIEhTTSBzdG9wKCkgY2Fs bCBzbyBTVFJPTkcgTk8gdG8gdGhpcyBjaGFuZ2UuCgpPaywgSSdsbCBkcm9wIGl0IGZyb20gdjMg LS0gaXQgY2FuIGJlIGhhbmRsZWQgYnkgZnV0dXJlIHBhdGNoZXMgdGhhdAp0cmFwIFNCSSBjYWxs cyB0byB1c2Vyc3BhY2UuCgpUaGUgbGFjayBvZiB1c2Vyc3BhY2UgaW52b2x2ZW1lbnQgaXMgdGhl IGlzc3VlLiAgS1ZNIGRvZXNuJ3Qga25vdyB3aGF0CnRoZSBpbml0aWFsIHN0YXRlIHNob3VsZCBi ZS4KCj4+ICAqIERvbid0IG1ha2UgVkNQVSByZXNldCByZXF1ZXN0IG9uIHNiaV9zeXN0ZW1fc3Vz cGVuZC4KPgo+IFRoZSBlbnRyeSBzdGF0ZSBvZiBpbml0aWF0aW5nIFZDUFUgaXMgYWxyZWFkeSBh dmFpbGFibGUgb24gU0JJIHN5c3RlbQo+IHN1c3BlbmQgY2FsbC4gVGhlIGluaXRpYXRpbmcgVkNQ VSBtdXN0IGJlIHJlc2V0dGVkIGFuZCBlbnRyeSBzdGF0ZSBvZgo+IGluaXRpYXRpbmcgVkNQVSBt dXN0IGJlIHNldHVwLgoKVXNlcnNwYWNlIHdvdWxkIHNpbXBseSBjYWxsIHRoZSBWQ1BVIHJlc2V0 IGFuZCBzZXQgdGhlIGNvbXBsZXRlIHN0YXRlLApiZWNhdXNlIHRoZSB1c2Vyc3BhY2UgZXhpdCBh bHJlYWR5IHByb3ZpZGVzIGFsbCB0aGUgc2JpIGluZm9ybWF0aW9uLgoKSSdsbCBkcm9wIHRoaXMg Y2hhbmdlLiAgSXQgZG9lc24ndCBtYWtlIG11Y2ggc2Vuc2UgaWYgd2UgYXJlbid0IGZpeGluZwp0 aGUgc2JpX2hhcnRfc3RhcnQgcmVzZXQuCgo+PiBUaGUgcGF0Y2ggaXMgcmV1c2luZyBNUF9TVEFU RV9JTklUX1JFQ0VJVkVELCBiZWNhdXNlIHdlIGRpZG4ndCB3YW50IHRvCj4+IGFkZCBhIG5ldyBJ T0NUTCwgc29ycnkuIDopCj4+Cj4+IFNpZ25lZC1vZmYtYnk6IFJhZGltIEtyxI1tw6HFmSA8cmty Y21hckB2ZW50YW5hbWljcm8uY29tPgo+PiAtLS0KPj4gSWYgeW91IHNlYXJjaCBmb3IgY2FwIDcu NDIgaW4gYXBpLnJzdCwgeW91J2xsIHNlZSB0aGF0IGl0IGhhcyBhIHdyb25nCj4+IG51bWJlciwg d2hpY2ggaXMgd2h5IHdlJ3JlIDcuNDMsIGluIGNhc2Ugc29tZW9uZSBib3RoZXJzIHRvIGZpeCBB Uk0uCj4+Cj4+IEkgd2FzIGFsc28gc3Ryb25nbHkgY29uc2lkZXJpbmcgY3JlYXRpbmcgYWxsIFZD UFVzIGluIFJVTk5BQkxFIHN0YXRlIC0tCj4+IGRvIHlvdSBrbm93IG9mIGFueSBzaW1pbGFyIHF1 aXJrcyB0aGF0IGFyZW4ndCBpbXBvcnRhbnQsIGJ1dCBjb3VsZCBiZQo+PiBmaXhlZCB3aXRoIHRo ZSBuZXcgdXNlcnNwYWNlIHRvZ2dsZT8KPgo+IFVwb24gY3JlYXRpbmcgYSBWTSwgb25seSBvbmUg VkNQVSBzaG91bGQgYmUgUlVOTkFCTEUgYW5kIGFsbAo+IG90aGVyIFZDUFVzIG11c3QgcmVtYWlu IGluIE9GRiBzdGF0ZS4gVGhpcyBpcyBpbnRlbnRpb25hbCBiZWNhdXNlCj4gaW1hZ2luZSBhIGxh cmdlIG51bWJlciBvZiBWQ1BVcyBlbnRlcmluZyBHdWVzdCBPUyBhdCB0aGUgc2FtZQo+IHRpbWUu IFdlIGhhdmUgc3BlbnQgYSBsb3Qgb2YgZWZmb3J0IGluIHRoZSBwYXN0IHRvIGdldCBhd2F5IGZy b20gdGhpcwo+IHNpdHVhdGlvbiBldmVuIGluIHRoZSBob3N0IGJvb3QgZmxvdy4gV2UgY2FuJ3Qg ZXhwZWN0IHVzZXIgc3BhY2UgdG8KPiBjb3JyZWN0bHkgc2V0IHRoZSBpbml0aWFsIE1QX1NUQVRF IG9mIGFsbCBWQ1BVcy4gV2UgY2FuIGNlcnRhaW5seQo+IHRoaW5rIG9mIHNvbWUgbWVjaGFuaXNt IHVzaW5nIHdoaWNoIHVzZXIgc3BhY2UgY2FuIHNwZWNpZnkKPiB3aGljaCBWQ1BVIHNob3VsZCBi ZSBydW5uYWJsZSB1cG9uIFZNIGNyZWF0aW9uLgoKV2UgYWxyZWFkeSBkbyBoYXZlIHRoZSBtZWNo YW5pc20gLS0gdGhlIHVzZXJzcGFjZSB3aWxsIHNldCBNUF9TVEFURSBvZgpWQ1BVIDAgdG8gU1RP UFBFRCBhbmQgd2hhdGV2ZXIgVkNQVXMgaXQgd2FudHMgYXMgYm9vdCB3aXRoIHRvIFJVTk5BQkxF CmJlZm9yZSBydW5uaW5nIGFsbCB0aGUgVkNQVXMgZm9yIHRoZSBmaXJzdCB0aW1lLgoKVGhlIHVz ZXJzcGFjZSBtdXN0IGNvcnJlY3RseSBzZXQgdGhlIGluaXRpYWwgTVAgc3RhdGUgYW55d2F5LCBi ZWNhdXNlIGEKcmVzdW1lIHdpbGwgd2FudCBhIG1wX3N0YXRlIHRoYXQgYSBmcmVzaCBib290LgoK PiBUaGUgY3VycmVudCBhcHByb2FjaCBpcyB0byBkbyBIU00gc3RhdGUgbWFuYWdlbWVudCBpbiBr ZXJuZWwKPiBzcGFjZSBpdHNlbGYgYW5kIG5vdCByZWx5IG9uIHVzZXIgc3BhY2UuIEFsbG93aW5n IHVzZXJzcGFjZSB0bwo+IHJlc2V0dGluZyBhbnkgVkNQVSBpcyBmaW5lIGJ1dCB0aGlzIHNob3Vs ZCBub3QgYWZmZWN0IHRoZSBmbG93IGZvcgo+IFNCSSBIU00sIFNCSSBTeXN0ZW0gUmVzZXQsIGFu ZCBTQkkgU3lzdGVtIFN1c3BlbmQuCgpZZXMsIHRoYXQgaXMgdGhlIGRlc2lnbiBJIHdhcyB0cnlp bmcgdG8gY2hhbmdlLiAgSSB0aGluayB1c2Vyc3BhY2UKc2hvdWxkIGhhdmUgY29udHJvbCBvdmVy IGFsbCBhc3BlY3RzIG9mIHRoZSBndWVzdCBpdCBleGVjdXRlcyBpbiBLVk0uCgpBY2NlbGVyYXRp bmcgU0JJIGluIEtWTSBpcyBnb29kLCBidXQgdXNlcnNwYWNlIHNob3VsZCBiZSBhYmxlIHRvIHNh eSBob3cKdGhlIHVuc3BlY2lmaWVkIHBhcnRzIGFyZSBpbXBsZW1lbnRlZC4gIFRyYXBwaW5nIHRv IHVzZXJzcGFjZSBpcyB0aGUKc2ltcGxlc3Qgb3B0aW9uLiAgKEFuZCBzdWZmaWNpZW50IGZvciBl Y2FsbHMgdGhhdCBhcmUgbm90IGEgaG90IHBhdGguKQoKVGhhbmtzLgoKX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtcmlzY3YgbWFpbGluZyBsaXN0 CmxpbnV4LXJpc2N2QGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5v cmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1yaXNjdgo=