lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CACHz=Zj-PKj_svJaLe0DMW9U0FTvea3Es8n1ku_Fp4qzxi4zxQ@mail.gmail.com>
Date: Fri, 28 Feb 2025 12:12:55 +0000
From: Frediano Ziglio <frediano.ziglio@...ud.com>
To: Andrew Cooper <andrew.cooper3@...rix.com>
Cc: xen-devel@...ts.xenproject.org, linux-kernel@...r.kernel.org, 
	linux-pci@...r.kernel.org, Juergen Gross <jgross@...e.com>, 
	Stefano Stabellini <sstabellini@...nel.org>, 
	Oleksandr Tyshchenko <oleksandr_tyshchenko@...m.com>, Bjorn Helgaas <bhelgaas@...gle.com>
Subject: Re: [PATCH v2] xen: Add support for XenServer 6.1 platform device

On Thu, Feb 27, 2025 at 3:41 PM Andrew Cooper <andrew.cooper3@...rix.com> wrote:
>
> On 27/02/2025 2:50 pm, Frediano Ziglio wrote:
> > On XenServer on Windows machine a platform device with ID 2 instead of
> > 1 is used.
> >
> > This device is mainly identical to device 1 but due to some Windows
> > update behaviour it was decided to use a device with a different ID.
> >
> > This causes compatibility issues with Linux which expects, if Xen
> > is detected, to find a Xen platform device (5853:0001) otherwise code
> > will crash due to some missing initialization (specifically grant
> > tables). Specifically from dmesg
> >
> >     RIP: 0010:gnttab_expand+0x29/0x210
> >     Code: 90 0f 1f 44 00 00 55 31 d2 48 89 e5 41 57 41 56 41 55 41 89 fd
> >           41 54 53 48 83 ec 10 48 8b 05 7e 9a 49 02 44 8b 35 a7 9a 49 02
> >           <8b> 48 04 8d 44 39 ff f7 f1 45 8d 24 06 89 c3 e8 43 fe ff ff
> >           44 39
> >     RSP: 0000:ffffba34c01fbc88 EFLAGS: 00010086
> >     ...
> >
> > The device 2 is presented by Xapi adding device specification to
> > Qemu command line.
> >
> > Signed-off-by: Frediano Ziglio <frediano.ziglio@...ud.com>
>
> I'm split about this.  It's just papering over the bugs that exist
> elsewhere in the Xen initialisation code.
>
> But, if we're going to take this approach, then 0xc000 needs adding too,
> which is the other device ID you might find when trying to boot Linux in
> a VM configured using a Windows template.
>
> Bjorn: to answer a prior question of yours, all 3 of these devices are
> identical, and exist in production for political reasons (bindings in
> Windows Updates) rather than technical reasons.
>

Hi,
   we got some internal conversation here at XenServer trying to
understand a bit the history and situation of these devices. I'll try
to sum up.

Devices 0001 and 0002 are both "Xen Platform" devices
(https://gitlab.com/qemu-project/qemu/-/blob/master/hw/i386/xen/xen_platform.c?ref_type=heads).
Devices 0001 and 0002 are mutually exclusive. Usually on XenServer
templates for Windows present device 0002. In other words the xen
platform device is either presented as 0001 or 0002.
Device C000 is a "Xen PV Device"
(https://gitlab.com/qemu-project/qemu/-/blob/master/hw/i386/xen/xen_pvdevice.c?ref_type=heads)
which is mainly empty being a placeholder for Windows updates.

Back to this patch, as C000 is just for Windows update purpose, I
don't see the reason why Linux may care about it (I may be wrong). On
the other hand, if device 0001 is missing Linux will crash so it
should consider also device 0002 as an alternative.

I'll try to post an update for device reservations
(https://xenbits.xen.org/docs/unstable/man/xen-pci-device-reservations.7.html)
to xen-devel.

Frediano

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ