From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from out-189.mta1.migadu.com (out-189.mta1.migadu.com [95.215.58.189]) (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 7FCFF8286D for ; Mon, 13 May 2024 21:26:58 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=95.215.58.189 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1715635620; cv=none; b=UlbbwPa/1cOj5r1byd2gV1DTYCmgf3HKYd8cAcj2n7jOygnltlgtbkBxu/KXCXm8HBUi/j62wVAFi9nvuGfHRstoYZsOcvyJZj+DABSJevd0Tw6RDeSPwREm6VgmNRjXhGO7jeROePlElhq2rAJEZLeCquKorWjl+NGGAcNyccA= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1715635620; c=relaxed/simple; bh=rc5hMZJSGK5c1xFdPHd7Rb8V6zQm6y0iHDSXPea0qBw=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=Vn7AR95OTeKwq9bN2Di6r+WSuqy0kOehQDdz0Gi40MzC81uJm9gc77XoSidBqtUF6HQRmU5B5ntx/eSMlQb2QwPMqNG1erM9/dRD3hsagoUIDqPwhl80bfv0so6VQHBd17kzmE/jauGfILwwm7TP/6hJucWnyyx9MXz2EwW+6wQ= 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=RP24kNmD; arc=none smtp.client-ip=95.215.58.189 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="RP24kNmD" Date: Mon, 13 May 2024 21:26:50 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1715635616; 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=i7TDZt0L+IUvLZV757VcMzJBKk2TPSQV4UCOXzYOwuo=; b=RP24kNmDsiGLmdMUkB6uypxYB7086QfZt22D2thzkL+u0UKEh6f8+nAkC9EZAWg69xLW0T lZKthkvV5yUQpUVU7LetNpKw1i+mDLcIzQARiwiP5W3cTjqFYc9yfPXjg9B+ztOiX7i/4U XUTPizGuqgY13ZVTUrUtJWDy69pSKXc= X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. From: Oliver Upton To: Cornelia Huck Cc: "Russell King (Oracle)" , Marc Zyngier , Catalin Marinas , Will Deacon , James Morse , Suzuki K Poulose , Zenghui Yu , linux-arm-kernel@lists.infradead.org, kvmarm@lists.linux.dev Subject: Re: [PATCH RFC] KVM: arm64: allow ID_MMFR4_EL1 to be writable Message-ID: References: <87jzk4h5ir.fsf@redhat.com> <875xvlhfci.fsf@redhat.com> Precedence: bulk X-Mailing-List: kvmarm@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <875xvlhfci.fsf@redhat.com> X-Migadu-Flow: FLOW_OUT On Fri, May 10, 2024 at 05:11:09PM +0200, Cornelia Huck wrote: > On Wed, May 08 2024, Oliver Upton wrote: > > I'm willing to wager that the set of users who want to migrate state > > from kernel N -> (N - 1) know the exact CPU definition they want to > > expose to the guest, and in that case should be using a static set of > > feature register values matching their intent. > > I think the trouble starts when we introduce additional ranges of > registers that can be controled via that interface -- old userspace will > be able to figure out that there are more ranges available than what it > is aware of, but will have no idea how to handle those additional ranges > to get into a defined state (what is the actual range, for example?) Even though the UAPI was designed around supporting multiple ranges, I do not see this being an issue for quite some time. We already fully describe the Feature ID register range from the architecture. > > > > Beyond the CPU architecture, KVM presents hypercall features to the VM > > which userspace can _opt-out_ of on a per-feature basis using the > > feature bitmap registers described in [2]. Like the feature ID > > registers, we've preallocated a range of indices to be used for > > hypercall bitmaps. So if an unexpected bitmap register appears on a new > > kernel, userspace should write 0 to it to prevent new features from > > silently creeping in. > > Hm, the doc says: "The features for the registers that are untouched, > probably because userspace isn’t aware of them, will be exposed as is to > the guest." Seems to indicate that it is not too hard to get this wrong :) Sure, but keep in mind the full range of possible Feature ID registers is already known to userspace. Many of these register encodings are reserved, RAZ to allow for future expansion of the architecture [*]. New registers will come from one of these RAZ encodings. If userspace wants to assert complete control over the CPU feature set exposed to the VM it should use a pre-baked value for every register in the range Op0=3, Op1=0, CRn=0, CRm={1-8}, Op2={0-8}. [*] DDI0487J.a Table D18-2 > > > > The canonical reason for this behavior, though, is that KVM/arm64 > > defaults to the maximum-possible feature set as discussed above. > > /me contemplating "reverse" features, but too tired to think this > through on a Friday afternoon. > Reverse as in a negative / removed feature? These tend to appear as negative ID register fields, to imply that the feature set is less than what's provided for with a value of 0x0. KVM probably couldn't start deprecating features in the default ID register values but userspace could probe for features it can opt-out of using the writable mask + trying to write -1 to a field. DDI0487J.a D19.1.3 covers this. -- Thanks, Oliver 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 018C3C25B10 for ; Mon, 13 May 2024 21:27:21 +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:MIME-Version:References: Message-ID:Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=6E5sZcvM51MaQgm6yScfa6JH3MWqOCX51OeWAq1znKo=; b=pyjv88iFWsAY9I Ke2Eux2FHoIFXacXaAOMwfsglfN/0PZyLxOOV1QyYZ+KyRCatvDgYFtTmICkrluBB/+kKyOptdA6m C6qSTlM32T748WVMBehC5sQQgC9ib1w3SOQZmY5J2yz2xGcMnDI+YG0IC+zR0GLRgLriyDlg8E3Ss rHw8ZEKp2Lsx3nUDOCdHjOrov/rNK7NeGGE29ekF0qCSYYYdo6b9lf3EBWLKWAgeU52CQLlIkW/th 2go7sYBirg1jZvetq9efVnLoWKUfGewEtr0ZwGv5nu9OdNVSmtoXNKX6xNgztNfm17UMtscyFS3kw MjS/CzBOTEFo8V67MBng==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1s6dCR-0000000EF98-1BlB; Mon, 13 May 2024 21:27:11 +0000 Received: from out-183.mta1.migadu.com ([95.215.58.183]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1s6dCN-0000000EF4P-2QDn for linux-arm-kernel@lists.infradead.org; Mon, 13 May 2024 21:27:09 +0000 Date: Mon, 13 May 2024 21:26:50 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1715635616; 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=i7TDZt0L+IUvLZV757VcMzJBKk2TPSQV4UCOXzYOwuo=; b=RP24kNmDsiGLmdMUkB6uypxYB7086QfZt22D2thzkL+u0UKEh6f8+nAkC9EZAWg69xLW0T lZKthkvV5yUQpUVU7LetNpKw1i+mDLcIzQARiwiP5W3cTjqFYc9yfPXjg9B+ztOiX7i/4U XUTPizGuqgY13ZVTUrUtJWDy69pSKXc= X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. From: Oliver Upton To: Cornelia Huck Cc: "Russell King (Oracle)" , Marc Zyngier , Catalin Marinas , Will Deacon , James Morse , Suzuki K Poulose , Zenghui Yu , linux-arm-kernel@lists.infradead.org, kvmarm@lists.linux.dev Subject: Re: [PATCH RFC] KVM: arm64: allow ID_MMFR4_EL1 to be writable Message-ID: References: <87jzk4h5ir.fsf@redhat.com> <875xvlhfci.fsf@redhat.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <875xvlhfci.fsf@redhat.com> X-Migadu-Flow: FLOW_OUT X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240513_142708_253031_AC85A2D3 X-CRM114-Status: GOOD ( 25.77 ) X-BeenThere: linux-arm-kernel@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-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org T24gRnJpLCBNYXkgMTAsIDIwMjQgYXQgMDU6MTE6MDlQTSArMDIwMCwgQ29ybmVsaWEgSHVjayB3 cm90ZToKPiBPbiBXZWQsIE1heSAwOCAyMDI0LCBPbGl2ZXIgVXB0b24gPG9saXZlci51cHRvbkBs aW51eC5kZXY+IHdyb3RlOgo+ID4gSSdtIHdpbGxpbmcgdG8gd2FnZXIgdGhhdCB0aGUgc2V0IG9m IHVzZXJzIHdobyB3YW50IHRvIG1pZ3JhdGUgc3RhdGUKPiA+IGZyb20ga2VybmVsIE4gLT4gKE4g LSAxKSBrbm93IHRoZSBleGFjdCBDUFUgZGVmaW5pdGlvbiB0aGV5IHdhbnQgdG8KPiA+IGV4cG9z ZSB0byB0aGUgZ3Vlc3QsIGFuZCBpbiB0aGF0IGNhc2Ugc2hvdWxkIGJlIHVzaW5nIGEgc3RhdGlj IHNldCBvZgo+ID4gZmVhdHVyZSByZWdpc3RlciB2YWx1ZXMgbWF0Y2hpbmcgdGhlaXIgaW50ZW50 Lgo+IAo+IEkgdGhpbmsgdGhlIHRyb3VibGUgc3RhcnRzIHdoZW4gd2UgaW50cm9kdWNlIGFkZGl0 aW9uYWwgcmFuZ2VzIG9mCj4gcmVnaXN0ZXJzIHRoYXQgY2FuIGJlIGNvbnRyb2xlZCB2aWEgdGhh dCBpbnRlcmZhY2UgLS0gb2xkIHVzZXJzcGFjZSB3aWxsCj4gYmUgYWJsZSB0byBmaWd1cmUgb3V0 IHRoYXQgdGhlcmUgYXJlIG1vcmUgcmFuZ2VzIGF2YWlsYWJsZSB0aGFuIHdoYXQgaXQKPiBpcyBh d2FyZSBvZiwgYnV0IHdpbGwgaGF2ZSBubyBpZGVhIGhvdyB0byBoYW5kbGUgdGhvc2UgYWRkaXRp b25hbCByYW5nZXMKPiB0byBnZXQgaW50byBhIGRlZmluZWQgc3RhdGUgKHdoYXQgaXMgdGhlIGFj dHVhbCByYW5nZSwgZm9yIGV4YW1wbGU/KQoKRXZlbiB0aG91Z2ggdGhlIFVBUEkgd2FzIGRlc2ln bmVkIGFyb3VuZCBzdXBwb3J0aW5nIG11bHRpcGxlIHJhbmdlcywgSQpkbyBub3Qgc2VlIHRoaXMg YmVpbmcgYW4gaXNzdWUgZm9yIHF1aXRlIHNvbWUgdGltZS4gV2UgYWxyZWFkeSBmdWxseQpkZXNj cmliZSB0aGUgRmVhdHVyZSBJRCByZWdpc3RlciByYW5nZSBmcm9tIHRoZSBhcmNoaXRlY3R1cmUu Cgo+ID4KPiA+IEJleW9uZCB0aGUgQ1BVIGFyY2hpdGVjdHVyZSwgS1ZNIHByZXNlbnRzIGh5cGVy Y2FsbCBmZWF0dXJlcyB0byB0aGUgVk0KPiA+IHdoaWNoIHVzZXJzcGFjZSBjYW4gX29wdC1vdXRf IG9mIG9uIGEgcGVyLWZlYXR1cmUgYmFzaXMgdXNpbmcgdGhlCj4gPiBmZWF0dXJlIGJpdG1hcCBy ZWdpc3RlcnMgZGVzY3JpYmVkIGluIFsyXS4gTGlrZSB0aGUgZmVhdHVyZSBJRAo+ID4gcmVnaXN0 ZXJzLCB3ZSd2ZSBwcmVhbGxvY2F0ZWQgYSByYW5nZSBvZiBpbmRpY2VzIHRvIGJlIHVzZWQgZm9y Cj4gPiBoeXBlcmNhbGwgYml0bWFwcy4gU28gaWYgYW4gdW5leHBlY3RlZCBiaXRtYXAgcmVnaXN0 ZXIgYXBwZWFycyBvbiBhIG5ldwo+ID4ga2VybmVsLCB1c2Vyc3BhY2Ugc2hvdWxkIHdyaXRlIDAg dG8gaXQgdG8gcHJldmVudCBuZXcgZmVhdHVyZXMgZnJvbQo+ID4gc2lsZW50bHkgY3JlZXBpbmcg aW4uCj4gCj4gSG0sIHRoZSBkb2Mgc2F5czogIlRoZSBmZWF0dXJlcyBmb3IgdGhlIHJlZ2lzdGVy cyB0aGF0IGFyZSB1bnRvdWNoZWQsCj4gcHJvYmFibHkgYmVjYXVzZSB1c2Vyc3BhY2UgaXNu4oCZ dCBhd2FyZSBvZiB0aGVtLCB3aWxsIGJlIGV4cG9zZWQgYXMgaXMgdG8KPiB0aGUgZ3Vlc3QuIiBT ZWVtcyB0byBpbmRpY2F0ZSB0aGF0IGl0IGlzIG5vdCB0b28gaGFyZCB0byBnZXQgdGhpcyB3cm9u ZyA6KQoKU3VyZSwgYnV0IGtlZXAgaW4gbWluZCB0aGUgZnVsbCByYW5nZSBvZiBwb3NzaWJsZSBG ZWF0dXJlIElEIHJlZ2lzdGVycyBpcwphbHJlYWR5IGtub3duIHRvIHVzZXJzcGFjZS4gTWFueSBv ZiB0aGVzZSByZWdpc3RlciBlbmNvZGluZ3MgYXJlIHJlc2VydmVkLApSQVogdG8gYWxsb3cgZm9y IGZ1dHVyZSBleHBhbnNpb24gb2YgdGhlIGFyY2hpdGVjdHVyZSBbKl0uIE5ldyByZWdpc3RlcnMK d2lsbCBjb21lIGZyb20gb25lIG9mIHRoZXNlIFJBWiBlbmNvZGluZ3MuCgpJZiB1c2Vyc3BhY2Ug d2FudHMgdG8gYXNzZXJ0IGNvbXBsZXRlIGNvbnRyb2wgb3ZlciB0aGUgQ1BVIGZlYXR1cmUgc2V0 CmV4cG9zZWQgdG8gdGhlIFZNIGl0IHNob3VsZCB1c2UgYSBwcmUtYmFrZWQgdmFsdWUgZm9yIGV2 ZXJ5IHJlZ2lzdGVyIGluCnRoZSByYW5nZSBPcDA9MywgT3AxPTAsIENSbj0wLCBDUm09ezEtOH0s IE9wMj17MC04fS4KClsqXSBEREkwNDg3Si5hIFRhYmxlIEQxOC0yCgo+ID4KPiA+IFRoZSBjYW5v bmljYWwgcmVhc29uIGZvciB0aGlzIGJlaGF2aW9yLCB0aG91Z2gsIGlzIHRoYXQgS1ZNL2FybTY0 Cj4gPiBkZWZhdWx0cyB0byB0aGUgbWF4aW11bS1wb3NzaWJsZSBmZWF0dXJlIHNldCBhcyBkaXNj dXNzZWQgYWJvdmUuCj4gCj4gL21lIGNvbnRlbXBsYXRpbmcgInJldmVyc2UiIGZlYXR1cmVzLCBi dXQgdG9vIHRpcmVkIHRvIHRoaW5rIHRoaXMKPiB0aHJvdWdoIG9uIGEgRnJpZGF5IGFmdGVybm9v bi4KPiAKClJldmVyc2UgYXMgaW4gYSBuZWdhdGl2ZSAvIHJlbW92ZWQgZmVhdHVyZT8KClRoZXNl IHRlbmQgdG8gYXBwZWFyIGFzIG5lZ2F0aXZlIElEIHJlZ2lzdGVyIGZpZWxkcywgdG8gaW1wbHkg dGhhdCB0aGUKZmVhdHVyZSBzZXQgaXMgbGVzcyB0aGFuIHdoYXQncyBwcm92aWRlZCBmb3Igd2l0 aCBhIHZhbHVlIG9mIDB4MC4gS1ZNCnByb2JhYmx5IGNvdWxkbid0IHN0YXJ0IGRlcHJlY2F0aW5n IGZlYXR1cmVzIGluIHRoZSBkZWZhdWx0IElEIHJlZ2lzdGVyCnZhbHVlcyBidXQgdXNlcnNwYWNl IGNvdWxkIHByb2JlIGZvciBmZWF0dXJlcyBpdCBjYW4gb3B0LW91dCBvZiB1c2luZwp0aGUgd3Jp dGFibGUgbWFzayArIHRyeWluZyB0byB3cml0ZSAtMSB0byBhIGZpZWxkLgoKRERJMDQ4N0ouYSBE MTkuMS4zIGNvdmVycyB0aGlzLgoKLS0gClRoYW5rcywKT2xpdmVyCgpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2VybmVsIG1haWxpbmcg bGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmlu ZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVsCg==