[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] ARM: Drop ThumbEE support


  • To: Julien Grall <julien@xxxxxxx>
  • From: Bertrand Marquis <Bertrand.Marquis@xxxxxxx>
  • Date: Thu, 4 Dec 2025 07:19:35 +0000
  • Accept-language: en-GB, en-US
  • Arc-authentication-results: i=2; mx.microsoft.com 1; spf=pass (sender ip is 4.158.2.129) smtp.rcpttodomain=xen.org smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com] dmarc=[1,1,header.from=arm.com])
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none
  • Arc-message-signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=8rG587oZEWwoxfK1+u71M6Y71itEBhTBhYHZl3XbcZc=; b=IYOyby4r3+3E/yI9BPXNlTeatA27wZMjHoGBpHW7f5/9XfRXiXkkufAatz2WVVYVrQ6OfLiZ4/JsOyUch1vYqdiN1ptbhOUecB4ViTVBxrQ4/AxE/whT8trCyP3o/Lbx9RVwCdxFM8Pp9z7JT4d8UCch3S+aT4RA2DBUpJnXsLw2bgynCUqh24c7QqmF1T00b+ljjiGjfnKTdyaj8Rvpv3E/5DH2dteKQ7Vg7IzKanSQFsSg5J6AbsSMhHcFMh0/lm1wfNjI0gjR5Osa91L134NFTDwpEAUfFNc42OnvG5bpvjRGadKY4hcoZGJhafXugOlCdMNWA/Tx0Jq5vZVM5A==
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=8rG587oZEWwoxfK1+u71M6Y71itEBhTBhYHZl3XbcZc=; b=vkUUUJmuYZ0CqfL50zjFzv2gv7DjHfxpx0r4x2vhOjZZ3LMyhN3/BgLaLXgzm1IllreAh7p/xkxAF8I8D/TkH6teDVdEZzGy9zJlXrlhn4N4OSe9lT1TSN12gOgP/Tr/akVhf+PbzQP8KjsiIXo02tpwVUmPWvPS61e2whdTJZFajQGzVHKo8cGVcMzqzL7dUsWv3S8+Y5p80HzCcwxcydqarEC218clQe2UB+LjSvMMf6yG5NeGO/7i33c9NUdAwgLNZCQy/pHBRFjrsUzkR7XhyRWUChREYpJYxn9yXCC5WTWYW2pWvwwjmIFG6eRCUh+91J1IqplJq2LpNRwAHA==
  • Arc-seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass; b=szNsPoKqarA0xNnpFYZZAgTZ6/jDOxNonbYl+iRDbhqVV0+/wu5Gdnn1B6nO2uwb8N9VS4Rr+fhwuavSAbAaCOlmuqnYUCtHjDAswDGjaF5lNIHdd5qBW5kotelFGpbU7hLZFdeUGbRq/MPNMK/FFT/d101XqB8h7ROIwVzgB2xTl3Az8PSrnXvVbkJYeAXissgLzwgdj1dSPK7s3gmVK4pZ3aSQDIMFU7M5BPR6DlrJiqs5997SXpKpVZ2NFn41OlsCiPsKyqCN33xn5SuAuz00sRcVj4H0ptESnPGAifJfMwRDHgos0W92maWvnjRzppVOu8ObnisTDQ/yBOI1TA==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=DZqn+Kt8vblsiypluH97/ODIqs8uwPzcfrBbvNaGBhFkopUFMVS9KUysp+KPk7d8HvIGjXRs4sDPQvYcTWoSYIWPMx3HAWPGfOqY4Dd1nmoEleF6oS0lE+TtKs6eEc4YQewXfr0XLksKJzrHcI5hi/tvguBhq+tHySFIaPqfjeOJValTNWwwuFJX36V40zPhfvLEog8sScDM7hm6B8+0fVY7wadz/1RJtal9zjx8yWnKohynPZV4ezDTOMu4cpWPB1fWMYC3s0kgjohk3kCRv8oObG8JNiJkKAJkfqvpWmGMES/hoVYtAnty8Rs2xUZ5vNvOJlKQllKd91g99V67eQ==
  • Authentication-results-original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com;
  • Cc: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>, Xen-devel <xen-devel@xxxxxxxxxxxxxxxxxxxx>, Hans van Kranenburg <hans@xxxxxxxxxxx>, Stefano Stabellini <sstabellini@xxxxxxxxxx>, Volodymyr Babchuk <Volodymyr_Babchuk@xxxxxxxx>, Michal Orzel <michal.orzel@xxxxxxx>, Jan Beulich <JBeulich@xxxxxxxx>, Maximilian Engelhardt <maxi@xxxxxxxxxxxxx>
  • Delivery-date: Thu, 04 Dec 2025 07:21:01 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
  • Nodisclaimer: true
  • Thread-index: AQHcZHiHHimnEym6ZUmnz/k7agCZbbUQOtwAgAAHNICAACU0AIAArG6A
  • Thread-topic: [PATCH] ARM: Drop ThumbEE support

Hi Andrew and Julien,

R52 which i think is one of the few Arm CPUs that some people are looking at 
using
32bit instructions support Thumb-2 but not ThumbEE.

ThumbEE has been deprecated so I think Andrews changes (including the one
that traps any ThumbEE usage which is definitely required) are Ok.

Even on Cortex A15, I am not that sure that many people actually used ThumbEE.

Regards
Bertrand

> On 3 Dec 2025, at 22:02, Julien Grall <julien@xxxxxxx> wrote:
> 
> Hi Andrew,
> 
> On 03/12/2025 18:49, Andrew Cooper wrote:
>> On 03/12/2025 6:23 pm, Julien Grall wrote:
>>> Hi Andrew,
>>> 
>>> On 03/12/2025 17:16, Andrew Cooper wrote:
>>>> to keep it working, but there was apparently no use of ThumbEE
>>>> outside of demo
>>>> code, so simply drop it.
>>> 
>>> I am in favor of dropping support for ThumbEE for guest. But I am not
>>> sure I understand this comment.
>> There's no production use of ThumbEE known to ARM.
> 
> Interesting. The Arm Arm is less assertive and in fact confusing, the latest 
> spec released in 2018 (ARM DDI 0406C.d) has the following:
> 
> "
> From the publication of issue C.a of this manual, ARM deprecates any use of 
> the ThumbEE instruction set.
> 
> [...]
> 
> ThumbEE is both the name of the instruction set and the name of the extension 
> that provides support for that
> instruction set. The ThumbEE Extension is:
> • Required in implementations of the ARMv7-A profile.
> "
> 
> I have also checked the TRM of the Cortex-A15 (one of the Armv7 CPU we used 
> to have in the CI before gitlab) and it supports ThumbEE. So I think we need 
> to additional diff you sent in this patch.
> 
>>> Are you saying there are no processors supporting ThumbEE where Xen
>>> would run? Asking because below, you are removing code to context
>>> switch the ThumbEE registers. But I don't see any code that would
>>> ensure the registers are trapping (i.e. HSTR.TEE is set). So wouldn't
>>> this result to a cross-VM leak on those processors?
>>> 
>>> If we really don't want to support CPU where ThumbEE is available,
>>> then we should check that "cpu_has_thumbee" is 0.
>> The registers exist in ARM v7 only.  They do not exist in ARM v8.
>> I suppose yes this change would result in a cross-VM leak on hardware
>> supporting ThumbEE.
>> Can HSTR.TTEE be set unilaterally, or does it need gating on
>> cpu_has_thumbee?
> 
> From my understanding of the Armv7 specification, the bit doesn't need to be 
> gated. The Armv8 specification suggest it is RES0 so in theory it could be 
> used in the future. So the diff you sent is correct.
> 
>> Is setting HSTR.TTEE sufficient to cause an undefined instruction
>> exception to be thrown back at a guest which goes poking?  (I guess this
>> is really "will the default do the right thing")
> 
> I believe so. The default behavior in Xen is to inject an undefined exception 
> if it can't handle a trap.
> 
>> I'll freely admit that I'm out of my depth here, but the build failure
>> does need fixing.
> 
> I agree. Do we need to include the fix in 4.19 (I think Jan asked to cut it 
> tomorrow)? Thanks for sending the patch!
> 
> Cheers,
> 
> -- 
> Julien Grall



 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.