RE: [PATCH v4] video: hyperv: hyperv_fb: Obtain screen resolution from Hyper-V host

From: Dexuan Cui
Date: Mon Sep 16 2019 - 17:45:46 EST


> From: linux-hyperv-owner@xxxxxxxxxxxxxxx
> <linux-hyperv-owner@xxxxxxxxxxxxxxx> On Behalf Of Dexuan Cui
> Sent: Thursday, September 12, 2019 11:39 PM
> To: Michael Kelley <mikelley@xxxxxxxxxxxxx>; Wei Hu <weh@xxxxxxxxxxxxx>;
> b.zolnierkie@xxxxxxxxxxx; linux-hyperv@xxxxxxxxxxxxxxx;
> dri-devel@xxxxxxxxxxxxxxxxxxxxx; linux-fbdev@xxxxxxxxxxxxxxx;
> linux-kernel@xxxxxxxxxxxxxxx; Stephen Hemminger
> <sthemmin@xxxxxxxxxxxxx>; sashal@xxxxxxxxxx; Haiyang Zhang
> <haiyangz@xxxxxxxxxxxxx>; KY Srinivasan <kys@xxxxxxxxxxxxx>
> Cc: Iouri Tarassov <iourit@xxxxxxxxxxxxx>
> Subject: RE: [PATCH v4] video: hyperv: hyperv_fb: Obtain screen resolution
> from Hyper-V host
>
> > From: Michael Kelley <mikelley@xxxxxxxxxxxxx>
> > Sent: Thursday, September 5, 2019 7:06 AM
> >
> > From: Wei Hu <weh@xxxxxxxxxxxxx> Sent: Thursday, September 5, 2019
> 2:12
> > AM
> > >
> > > Beginning from Windows 10 RS5+, VM screen resolution is obtained from
> > host.
> > > The "video=hyperv_fb" boot time option is not needed, but still can be
> > > used to overwrite what the host specifies. The VM resolution on the host
> > > could be set by executing the powershell "set-vmvideo" command.
> > >
> > > Signed-off-by: Iouri Tarassov <iourit@xxxxxxxxxxxxx>
> > > Signed-off-by: Wei Hu <weh@xxxxxxxxxxxxx>
> > > ---
> > > v2:
> > > - Implemented fallback when version negotiation failed.
> > > - Defined full size for supported_resolution array.
> > >
> > > v3:
> > > - Corrected the synthvid major and minor version comparison
> problem.
> > >
> > > v4:
> > > - Changed function name to synthvid_ver_ge().
> > >
> > > drivers/video/fbdev/hyperv_fb.c | 159
> > +++++++++++++++++++++++++++++---
> > > 1 file changed, 147 insertions(+), 12 deletions(-)
> > >
> >
> > Reviewed-by: Michael Kelley <mikelley@xxxxxxxxxxxxx>
>
> Looks good to me.
>
> Reviewed-by: Dexuan Cui <decui@xxxxxxxxxxxxx>

Hi Wei,
It turns out we need to make a further fix. :-)

The patch forgets to take par->update into consideration.

When the VM Connection window is closed (or minimized?),
the host sends a message to the guest, and the guest sets
par->update to false in synthvid_recv_sub().

If par->update is false, the guest doesn't need to call
synthvid_update().

Thanks,
-- Dexuan