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

Re: [PATCH RFC 3/3] xen: Introduce a platform sub-op to retrieve the VGA information


  • To: Jan Beulich <jbeulich@xxxxxxxx>
  • From: Roger Pau Monné <roger.pau@xxxxxxxxxx>
  • Date: Mon, 7 Feb 2022 12:58:16 +0100
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; 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=Iq+8m9qsftcZOIGoD/LsdsZv4D2ECNj+IK28MoDaZ5w=; b=eCxEmBv/YoI/boJnF/ulAGQn2UfKO5A0od1DcZ/HbOYy1iIbYljtzxR8i/60ljwRZOr3D8Np8yFPfi7bpO2s6DttRO+jU/3jJTcBBsN9aSZaqqOhZ0wZP5vycjaD1MWCsWZA3osHPGpTV1PDpYJn/gE5T+pOymFjxkXqxCT7604g8w1bNAx5ndLzqaTW5MKh2jxdxSLkU+NS3rrddNydJPD3gJsJc8BrQYf2Q9P3t7G2Xi8yOkp2+Qq20OG+Pplzgp1KabIf3YbWDiABAQ4AkNjXVCRxLwp3fT5FiBsqetvSSmf2Qogizlip5CihGxB6u0sRtOC1cN+6tU0ANgG6Jw==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=F89Cevid0G0s+zXzmuUGe7LwDC/wc4TM/0a/IzWBS1LsmkazTBAlt0JzWN0d8bHUMLBMjWwqxuy0CV6gmjbB0TAfyTOo9DceodUCJZjVCtxhsTuSiKntRzKi9Ads+lGuLzkfO5nMI8vaWOFUuC/7pc5pwo4MjzqoD4JL8RpWDTqG9cZz4/Z+Ic7QZ+e2JAGFtoGO5FUqwK0AdwbZYWgXkwOQ2ugRG41QxsCX3dgbR3CExHoSS72bZxUVT+L2EMIKskLbYR1zf+7HH7VppqxYButKwk6fSTZskaKlzjQf1FSeI1okQJ6L0FVU94HyaD0djLN65YUVgr1i/3MZsL+yJw==
  • Authentication-results: esa4.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
  • Cc: Julien Grall <julien@xxxxxxx>, <ehem+xen@xxxxxxx>, Julien Grall <jgrall@xxxxxxxxxx>, Stefano Stabellini <sstabellini@xxxxxxxxxx>, Volodymyr Babchuk <Volodymyr_Babchuk@xxxxxxxx>, Bertrand Marquis <bertrand.marquis@xxxxxxx>, Andrew Cooper <andrew.cooper3@xxxxxxxxxx>, George Dunlap <george.dunlap@xxxxxxxxxx>, Wei Liu <wl@xxxxxxx>, <xen-devel@xxxxxxxxxxxxxxxxxxxx>
  • Delivery-date: Mon, 07 Feb 2022 11:58:49 +0000
  • Ironport-data: A9a23:IAe4w6pR/WOHqARp0gwEiQedUJdeBmJHYxIvgKrLsJaIsI4StFCzt garIBmCOfmJamb3fYslb9+/o0kD75Dcz9dnGwZu/iEwFCIUo5uZCYyVIHmrMnLJJKUvbq7GA +byyDXkBJppJpMJjk71atANlZT4vE2xbuKU5NTsY0idfic5Dndx4f5fs7Rh2NQw24DmW1rlV e7a+KUzBnf0g1aYDUpMg06zgEsHUCPa4W5wUvQWPJinjXeG/5UnJMt3yZKZdhMUdrJ8DO+iL 9sv+Znilo/vE7XBPfv++lrzWhVirrc/pmFigFIOM0SpqkAqSiDfTs/XnRfTAKtao2zhojx/9 DlCnbfoQwgSGoLipNYQS0ZBPDt3JYl/x7CSdBBTseTLp6HHW37lwvEoB0AqJ4wIvO1wBAmi9 9RBdmpLNErawbvrnvTrEYGAhex6RCXvFJkYtXx6iynQEN4tQIzZQrWM7thdtNs1rp4TTaqDP ZRDAdZpRETvYx5lBw82NL87uvyruCD/dC9esE3A8MLb5ECMlVcsgdABKuH9cNGQWd9cmEreo 2vc5nn4GTkTLtnZwj2AmlqSgevIkTL+SZglPrSy/f53g3We3mUWThYRUDOTsfS/z0KzRd9bA 0gV4TY167g/8lSxSdvwVAH+p2SL1jYDX/JAHut87xuCooLP+BqQDGUASj9HafQludUwSDhs0 UWG9/vrGDhuvbu9WX+bsLCOoluaOyIYMGsDbi8sVhYe7p/op4RbphDAVN9nFIa8i9TnHje2y DePxAAzh7gWzt4G0Y2+oEiBiDWpzqUlVSZsuF+RBDj8qFokOsj1PORE9GQ3895rdIyWdX2uk kQ2ltDB9c8UBImprROCFbBl8K6S296JNzjVgFhKFpYn9iiw93PLQb288A2SN28ybJ9aJGaBj Fv7/FoIucQNZCfCgbpfPtrpY/nG25QMAjgMuhr8StNVKqZ8ewaclM2FTR7Bhju9+KTAfExWB Ht6TSpOJStAYUiE5GDvLwv47VPM7npvrV4/vbihk3yaPUO2PRZ5s4stPlqUdfwe56iZugjT+ Ns3H5LUl0kGAbSnPHiNqNV7wbU2wZ8TX8GeliCqXrTbfloO9J8JV5c9Po/Ni6Q6xv8Ix48kD 1m2W1NCyUqXuJE0AV7iV5yXU5u2BcwXhStiZUQEZA/0s1B+MdfHxPpOLPMfIOh4nMQ9lqQcZ 6deJK297gFnF22vF8I1NsKm8uSPtX2D2GqzAsZSSGJjJs47GV2VpYOMk8mG3HBmMxdbfPAW+ tWI/gjaXYACV0JlCsPXY+io1FS/oT4Wn+caYqcCCoA7lJzE/Nc4JirvoOUwJs1QexzPyiHDj 1SdAAsCpPmLqIgwqYGbiaeBpoavMu1/AksFQDWLsefobXHXrji53ItNcOeUZjSBBmn6z7qvO LdOxPbmPfxZwFsT69hgE6xmxL4V7sf0o+MI1RxtGXjGNgz5Cr5pLnSc89NIs6lBmu1QtQesA xrd8dhGI7SZfsjiFQdJdgYia+2C09ASmyXTsqtpcBmruncv8ePeA0tIPhSKhChMF5dPMdsok bU7pcobyw2jkR52YNyIuT9ZqjaXJXsaXqR56pxDWN33ihAmw01paIDHDnOk+4mGbthBPxV4I jKQg6ae1b1QylCbLig2HHnJm+FcmY4PqFZBy1pbfwaFnd/Mh/kW2hxN8GtoElQJn0sfi+8ja HJ2M0BVJLmV+2Y6jcdOaGmgBgVdCUDL4Uf20VYIyDXUQkTAurYh94Hh1TJhJHwkzl8=
  • Ironport-hdrordr: A9a23:CwDYRajtqFwJ8vu+yxww7HfOMXBQXzh13DAbv31ZSRFFG/FwyP rAoB1L73PJYWgqNU3I+ergBEGBKUmskqKdxbNhR4tKPTOWw1dASbsN0WKM+UyDJ8STzJ856U 4kSdkCNDSSNykFsS+Z2njALz9I+rDum8rJ9ITjJjVWPHlXgslbnnhE422gYytLrWd9dP4E/M 323Ls6m9PsQwVeUu2LQl0+G8TTrdzCk5zrJTYAGh4c8QGLyRel8qTzHRS01goXF2on+8ZpzU H11yjCoomzufCyzRHRk0fV8pRtgdPkjv9OHtaFhMQ5IijlziyoeINicbufuy1dmpDl1H8a1P 335zswNcV67H3cOkmzvBvWwgHllA0j7nfzoGXo9kfLkIjcfnYXGsBBjYVWfl/y8Ew7puxx16 pNwiawq4dXJQmoplWz2/H4EzVR0makq3srluAey1ZFV5EFVbNXpYsDuGtIDZY7Gj7g4oxPKp gjMCjl3ocWTbqmVQGYgoE2q+bcHUjbXy32D3Tqg/blnQS/xxtCvgklLM92pAZ1yHtycegA2w 3+CNUZqFh5dL5iUUtMPpZxfSKJMB2/ffvtChPlHb21LtBPB5ryw6SHkondotvaPKA18A==
  • Ironport-sdr: jkFriPrE20WyII4DKXoa+b1H6ehKmfe5a7Oe9IkTuBQ++3GT5ONYUgKexR5Mtj8KZqYDXRixcy KpcMItXx6VLNTaOU0+Gdc9bpJjEJpvh0xP4IDR0fo7D7vnwPvMgSVEqIx5A8YSEj0TKI0hZ6kj WXXjUS2ECt+GymQ3EyBB4w6/Ln3ep4o8vRTtXBfrkPZzaUmchkCRn5w3GP4iET8mb3JBfy54TG C50BxczQu93ejH8R9S3cUhOvAdghIobKp57uxS3+LH5X86tGlTQ8bJpA64UEQYjA5QTmRzt0EI UldklG6ruKjxHvfU4kFc6Zpv
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

On Mon, Feb 07, 2022 at 09:57:55AM +0100, Jan Beulich wrote:
> On 06.02.2022 20:28, Julien Grall wrote:
> > From: Julien Grall <jgrall@xxxxxxxxxx>
> > 
> > When using EFI, the VGA information is fetched using the EFI
> > boot services. However, Xen will have exited the boot services.
> > Therefore, we need to find a different way to pass the information
> > to dom0.
> > 
> > For PV dom0, they are part of the start_info. But this is not
> > something that exists on Arm. So the best way would to be to
> > use a hypercall.
> > 
> > For now the structure layout is based on dom0_vga_console_info
> > for convenience. I am open on another proposal.
> > 
> > Signed-off-by: Julien Grall <jgrall@xxxxxxxxxx>
> 
> Cc-ing Roger as this may want using for PVH Dom0 also on x86; my
> first attempt to propagate this information was rejected.

I think it's easier to use a Xen specific layout in XENPF, as that's
already a Xen specific interface.

I wonder however if passing the information here (instead of doing it
in the start info or equivalent) could cause a delay in the
initialization of the video console. I guess the same happens when
using the Xen consoles (either the hypercall one or the shared ring),
so it's fine.

> > --- a/xen/include/public/platform.h
> > +++ b/xen/include/public/platform.h
> > @@ -244,6 +244,7 @@ DEFINE_XEN_GUEST_HANDLE(xenpf_efi_runtime_call_t);
> >  #define  XEN_FW_EFI_PCI_ROM        5
> >  #define  XEN_FW_EFI_APPLE_PROPERTIES 6
> >  #define XEN_FW_KBD_SHIFT_FLAGS    5
> > +#define XEN_FW_VGA_INFO           6
> 
> Perhaps s/VGA/VIDEO/, despite ...
> 
> >  struct xenpf_firmware_info {
> >      /* IN variables. */
> >      uint32_t type;
> > @@ -311,6 +312,7 @@ struct xenpf_firmware_info {
> >  
> >          /* Int16, Fn02: Get keyboard shift flags. */
> >          uint8_t kbd_shift_flags; /* XEN_FW_KBD_SHIFT_FLAGS */
> > +        struct dom0_vga_console_info vga;
> 
> ... the structure name including "vga" (but if the #define is adjusted,
> the field name would want to become "video" as well).

It's my understanding that this will forcefully be
XEN_VGATYPE_EFI_LFB, at which point we could consider giving a type
name to the vesa_lfb field of dom0_vga_console_info (video_lfb) and
use the same struct here?

There's no need to propagate XEN_VGATYPE_TEXT_MODE_3 into this
interface.

Thanks, Roger.



 


Rackspace

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