From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from desiato.infradead.org (desiato.infradead.org [90.155.92.199]) (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 468C145FFDE for ; Fri, 14 Aug 2026 11:57:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=90.155.92.199 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786708643; cv=none; b=PSsT52n7/Zq4S5drovjBUBHJirNd5yevaB6pRJ41ix6t9gFzsRA4rfQEXPHLXVp2T4qaI9tGs4VR6QhO0IPNEFCU11yiCipfUZRARD/Z0pPOeDCWiVHIOrijMusdnRkat9iLIRXk5fij/aeDmiMuq1MZeiKTnUWxQPMiwXAeSzA= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786708643; c=relaxed/simple; bh=d5A3sccOXPwO1q2D/pFqOOHeA5ZrSI3UYVwNxc0FeCo=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=TxLX5mKx2BwEwlkDC2s0usZHa0rdjub/OSW/yttjKblw0S2vFdC064TqPe5FIw6akCGvt03p4RJ3hL1zi+Qev6EusW3gPVE4ll8N888zW92Qc7GdRBbdHmb0StHG7i0h8QEGAqqjtnY7GMSt7g0UCFeDW1VtGccRRqQOSf0VGgs= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=infradead.org; spf=pass smtp.mailfrom=infradead.org; dkim=pass (2048-bit key) header.d=infradead.org header.i=@infradead.org header.b=SHDX/JV9; arc=none smtp.client-ip=90.155.92.199 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=infradead.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=infradead.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=infradead.org header.i=@infradead.org header.b="SHDX/JV9" DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=desiato.20200630; h=In-Reply-To:Content-Type:MIME-Version: References:Message-ID:Subject:Cc:To:From:Date:Sender:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description; bh=MObULN9H3vp3P9/SO69qGP/Ivx+cV+DXGM8EZmFdxhE=; b=SHDX/JV9DTRutQpF1BHgQmeWFe EEDbtsqCsn9jS2ySv3jzITVD4O7axvekKd82SGidYfYpqH9pcSOkTf2HQ69nGi71PuZKRa8Gf349z OxgClCadezYeWm8AGaoTJjbgD4DQ4MvByfXzJIjLYXn96+UH4dqLoOcqmUR0RDYTKP35Q1o6W7U5G Pw0bPqRh75onXCwc32HiFxYnDFZV5IfxEy59wUKDH0/oxC4bTdoAOFSVuErbPDZzYsh4vjlnrGqx6 xbLbHMxxx73Db6UT5goLnS4/FTqHV//AYOCj90224npQrcCOFmoOpdvXHuHMGe342szaatSeMbY3i 6uex8b5A==; Received: from 77-249-17-252.cable.dynamic.v4.ziggo.nl ([77.249.17.252] helo=noisy.programming.kicks-ass.net) by desiato.infradead.org with esmtpsa (Exim 4.99.2 #2 (Red Hat Linux)) id 1wuqXB-0000000Gtak-3k15; Fri, 14 Aug 2026 11:57:14 +0000 Received: by noisy.programming.kicks-ass.net (Postfix, from userid 1000) id 0A467300323; Fri, 14 Aug 2026 13:50:45 +0200 (CEST) Date: Fri, 14 Aug 2026 13:50:45 +0200 From: Peter Zijlstra To: Borislav Petkov Cc: Ronan Pigott , linux-kernel@vger.kernel.org, x86@kernel.org Subject: Re: UMIP and clearcpuid= Message-ID: <20260814115045.GH788244@noisy.programming.kicks-ass.net> References: <20260610200054.GDainCdpF585khK77w@fat_crate.local> <3868008f140c843f4443b79d800dba5456df174a@rjp.ie> <20260610235501.GGain5VbwcvpUwCxiw@fat_crate.local> <20260611075311.GH48970@noisy.programming.kicks-ass.net> <20260611160946.GAairdygGg2bMCjibT@fat_crate.local> <20260611183736.GI187714@noisy.programming.kicks-ass.net> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20260611183736.GI187714@noisy.programming.kicks-ass.net> On Thu, Jun 11, 2026 at 08:37:36PM +0200, Peter Zijlstra wrote: > And UMIP really is useful; these are gnarly instructions you really > don't want, so as along as it all runs it should be fine. I suppose I > should go re-enable it on my own machine and actually spend some time on > it if/when I find another game that flat out doesn't work with the > emulation. I've been searching the web a bit and found this: https://cs.rin.ru/forum/viewtopic.php?f=10&t=159989 That's patches and crud to work around Denuvo DRM for them software pirates Arrr!. Anyway, the interesting bit here is that they require UMIP to be disabled. AFAICT the DRM thing fingerprints the system and what they do is spoof it all to make all machines look the same, so a single prepared game image works, because fingerprint matches. The fingerprint includes CPUID, which we have CPUID faulting for (they use a hypervisor for early AMD chips, because AMD 'forgot' to allow native CPUID faulting) but also UMIP. The problem with our UMIP emulation is that they break the fingerprint, while with UMIP disabled, the Linux values match the Windows values close enough for it to magically work. When I first found this (a few weeks ago, during holidays), the forum post seemed to have a little more detail, specifically there was some patch to 'fix' the UMIP spoofing. I cannot readily find that now. And while in general I don't suppose we should condone software piracy, I don't think adding a prctl() to influence the UMIP emulation; much like we have CPUID fault handling, is too much to ask. The earlier forum post seemed to be cross about UMIP emulation not working the same as CPUID faulting, but that misses the fundamental difference between these two. CPUID faulting is opt-in, while UMIP emulation is always on and cannot cause faults userspace is not expecting. Anyway, just figured I'd share.