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

Re: [PATCH] x86/kexec: Fix crash on transition to a 32bit kernel on AMD hardware


  • To: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
  • From: Jan Beulich <jbeulich@xxxxxxxx>
  • Date: Tue, 2 Nov 2021 13:54:18 +0100
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=wsAg9WVLRUVM0ca1onBlBcvsawHWo7t99JjAUNtg5/c=; b=kPMinJ37sWJQYTcoV9QrLq6wyQnO2oMBQRfFuUIAy+69cx5+yYohHvZcPQOLWEJYpcxPsmGQSxVipDUQiL7r2wymAQtN1DyatFHH5YVTAaWtE9Q4KFqaIfLss91SwyspnQV+neyERAgVjPM9z1vFLop7JJiuuIlgR+gkeIOKg+HfC+RquSv0i7Q7WTidFmk2xID4KV8HuZB3wVOivw+0a4XhkVGlnNeINHJ4X0kwIVip4tna9QK7IhN1KksULhLABwtvBZDuaFbx5mWtGBjvhZFyAmAl8hjraKfSEcjMVJXokxN97aiCX0Ltzv47riAD0YT7l5wUC5gkL+I9BfsPxg==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=MKLQCT5rGSVsINDgWxVbFjDvq5FetlEjV6zxnpJtjHuJkwGkEJjcrGfJTgEN3rJiEM/sP9Bowa3rxY4JbWOR/+EE0UKPjwc+5gAq3gsD0ZsEl7qz7l3n825Spo88bRyg5f0yGMg8uYuyRyJQK72v9nXo9YG6yt8c8kzAuzfzx/OPgxWoOhmMyYPF8ZtDab1ZbImGuTy6dcdapPw9gSWuBy9EMMVlR8AFHEgh8avn6ICj9QanJEhbVB422KLad4YyOvGl0DM2QmoQaptPs+MZi6mo7wtrwzqbslKixrPKKaTr3RtMJ9WRGdK5RnCVOaJrxaBBk6rGclh6oy3lf2jRxA==
  • Authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com;
  • Cc: Roger Pau Monné <roger.pau@xxxxxxxxxx>, Wei Liu <wl@xxxxxxx>, Ian Jackson <iwj@xxxxxxxxxxxxxx>, Xen-devel <xen-devel@xxxxxxxxxxxxxxxxxxxx>
  • Delivery-date: Tue, 02 Nov 2021 12:54:50 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

On 29.10.2021 01:26, Andrew Cooper wrote:
> The `ljmp *mem` instruction is (famously?) not binary compatible between Intel
> and AMD CPUS.  The AMD-compatible version would require .long to be .quad in
> the second hunk.

>From all sources I have the incompatibility is only with REX.W: Intel
honors it (allowing a mem64:16) operand, while AMD ignores it (using
the same mem32:16 operand form as without REX.W). All the same as for
L{F,G,S}S. Hence I do not see why the present form of (32-bit) LJMP
would be a problem anywhere.

> Switch to using lretq, which is compatible between Intel and AMD, as well as
> being less logic overall.

I certainly don't mind the switch to LRETQ, but then the reasoning
will imo need to change.

Jan




 


Rackspace

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