* Regression in OSSTest Windows install test case
@ 2015-07-15 14:40 Wei Liu
2015-07-15 14:43 ` Andrew Cooper
2015-07-16 8:39 ` Paul Durrant
0 siblings, 2 replies; 14+ messages in thread
From: Wei Liu @ 2015-07-15 14:40 UTC (permalink / raw)
To: xen-devel; +Cc: Andrew Cooper, Paul Durrant, wei.liu2, Jan Beulich
Hi all
The Windows install test case has been failing reliably in OSSTest for
the last 6 runs.
The issue manifest as Windows hit blue screen with garbled text that
cannot be recognised when booting. Xen doesn't complain about any
failures.
I bisected that and found this commit is to be blamed.
commit 3bbaaec09b1b942f5624dee176da6e416d31f982
Author: Paul Durrant <paul.durrant@citrix.com>
Date: Thu Jul 9 19:04:00 2015 +0200
x86/hvm: unify stdvga mmio intercept with standard mmio intercept
It's clear from the following check in hvmemul_rep_movs:
if ( sp2mt == p2m_mmio_direct || dp2mt == p2m_mmio_direct ||
(sp2mt == p2m_mmio_dm && dp2mt == p2m_mmio_dm) )
return X86EMUL_UNHANDLEABLE;
that mmio <-> mmio copy is not handled. This means the code in the
stdvga mmio intercept that explicitly handles mmio <-> mmio copy when
hvm_copy_to/from_guest_phys() fails is never going to be executed.
This patch therefore adds a check in hvmemul_do_io_addr() to make sure
mmio <-> mmio is disallowed and then registers standard mmio intercept ops
in stdvga_init().
With this patch all mmio and portio handled within Xen now goes through
process_io_intercept().
Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
Tell me if you need more information or want me to test a patch. I do
have test environment at hand.
Wei.
^ permalink raw reply [flat|nested] 14+ messages in thread* Re: Regression in OSSTest Windows install test case 2015-07-15 14:40 Regression in OSSTest Windows install test case Wei Liu @ 2015-07-15 14:43 ` Andrew Cooper 2015-07-15 14:46 ` Wei Liu 2015-07-16 8:39 ` Paul Durrant 1 sibling, 1 reply; 14+ messages in thread From: Andrew Cooper @ 2015-07-15 14:43 UTC (permalink / raw) To: Wei Liu, xen-devel; +Cc: Paul Durrant, Jan Beulich On 15/07/15 15:40, Wei Liu wrote: > Hi all > > The Windows install test case has been failing reliably in OSSTest for > the last 6 runs. > > The issue manifest as Windows hit blue screen with garbled text that > cannot be recognised when booting. Xen doesn't complain about any > failures. > > I bisected that and found this commit is to be blamed. > > commit 3bbaaec09b1b942f5624dee176da6e416d31f982 > Author: Paul Durrant <paul.durrant@citrix.com> > Date: Thu Jul 9 19:04:00 2015 +0200 > > x86/hvm: unify stdvga mmio intercept with standard mmio intercept > > It's clear from the following check in hvmemul_rep_movs: > > if ( sp2mt == p2m_mmio_direct || dp2mt == p2m_mmio_direct || > (sp2mt == p2m_mmio_dm && dp2mt == p2m_mmio_dm) ) > return X86EMUL_UNHANDLEABLE; > > that mmio <-> mmio copy is not handled. This means the code in the > stdvga mmio intercept that explicitly handles mmio <-> mmio copy when > hvm_copy_to/from_guest_phys() fails is never going to be executed. > > This patch therefore adds a check in hvmemul_do_io_addr() to make sure > mmio <-> mmio is disallowed and then registers standard mmio intercept ops > in stdvga_init(). > > With this patch all mmio and portio handled within Xen now goes through > process_io_intercept(). > > Signed-off-by: Paul Durrant <paul.durrant@citrix.com> > Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com> > > Tell me if you need more information or want me to test a patch. I do > have test environment at hand. Given the nature of the patch, I would not be unduly surprised that the text is garbled. Which windows and qemu are you using? We have not encountered a single failure like this in XenServer testing. ~Andrew ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Regression in OSSTest Windows install test case 2015-07-15 14:43 ` Andrew Cooper @ 2015-07-15 14:46 ` Wei Liu 2015-07-15 14:47 ` Paul Durrant 2015-07-15 14:49 ` Paul Durrant 0 siblings, 2 replies; 14+ messages in thread From: Wei Liu @ 2015-07-15 14:46 UTC (permalink / raw) To: Andrew Cooper; +Cc: xen-devel, Paul Durrant, Wei Liu, Jan Beulich On Wed, Jul 15, 2015 at 03:43:09PM +0100, Andrew Cooper wrote: > On 15/07/15 15:40, Wei Liu wrote: > > Hi all > > > > The Windows install test case has been failing reliably in OSSTest for > > the last 6 runs. > > > > The issue manifest as Windows hit blue screen with garbled text that > > cannot be recognised when booting. Xen doesn't complain about any > > failures. > > > > I bisected that and found this commit is to be blamed. > > > > commit 3bbaaec09b1b942f5624dee176da6e416d31f982 > > Author: Paul Durrant <paul.durrant@citrix.com> > > Date: Thu Jul 9 19:04:00 2015 +0200 > > > > x86/hvm: unify stdvga mmio intercept with standard mmio intercept > > > > It's clear from the following check in hvmemul_rep_movs: > > > > if ( sp2mt == p2m_mmio_direct || dp2mt == p2m_mmio_direct || > > (sp2mt == p2m_mmio_dm && dp2mt == p2m_mmio_dm) ) > > return X86EMUL_UNHANDLEABLE; > > > > that mmio <-> mmio copy is not handled. This means the code in the > > stdvga mmio intercept that explicitly handles mmio <-> mmio copy when > > hvm_copy_to/from_guest_phys() fails is never going to be executed. > > > > This patch therefore adds a check in hvmemul_do_io_addr() to make sure > > mmio <-> mmio is disallowed and then registers standard mmio intercept ops > > in stdvga_init(). > > > > With this patch all mmio and portio handled within Xen now goes through > > process_io_intercept(). > > > > Signed-off-by: Paul Durrant <paul.durrant@citrix.com> > > Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com> > > > > Tell me if you need more information or want me to test a patch. I do > > have test environment at hand. > > Given the nature of the patch, I would not be unduly surprised that the > text is garbled. > > Which windows and qemu are you using? We have not encountered a single > failure like this in XenServer testing. > win7-x64.iso from OSSTest. QEMU emulator version 2.2.1, Copyright (c) 2003-2008 Fabrice Bellard > ~Andrew ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Regression in OSSTest Windows install test case 2015-07-15 14:46 ` Wei Liu @ 2015-07-15 14:47 ` Paul Durrant 2015-07-15 14:49 ` Paul Durrant 1 sibling, 0 replies; 14+ messages in thread From: Paul Durrant @ 2015-07-15 14:47 UTC (permalink / raw) To: Andrew Cooper; +Cc: xen-devel@lists.xenproject.org, Wei Liu, Jan Beulich > -----Original Message----- > From: Wei Liu [mailto:wei.liu2@citrix.com] > Sent: 15 July 2015 15:46 > To: Andrew Cooper > Cc: Wei Liu; xen-devel@lists.xenproject.org; Jan Beulich; Paul Durrant > Subject: Re: Regression in OSSTest Windows install test case > > On Wed, Jul 15, 2015 at 03:43:09PM +0100, Andrew Cooper wrote: > > On 15/07/15 15:40, Wei Liu wrote: > > > Hi all > > > > > > The Windows install test case has been failing reliably in OSSTest for > > > the last 6 runs. > > > > > > The issue manifest as Windows hit blue screen with garbled text that > > > cannot be recognised when booting. Xen doesn't complain about any > > > failures. > > > > > > I bisected that and found this commit is to be blamed. > > > > > > commit 3bbaaec09b1b942f5624dee176da6e416d31f982 > > > Author: Paul Durrant <paul.durrant@citrix.com> > > > Date: Thu Jul 9 19:04:00 2015 +0200 > > > > > > x86/hvm: unify stdvga mmio intercept with standard mmio intercept > > > > > > It's clear from the following check in hvmemul_rep_movs: > > > > > > if ( sp2mt == p2m_mmio_direct || dp2mt == p2m_mmio_direct || > > > (sp2mt == p2m_mmio_dm && dp2mt == p2m_mmio_dm) ) > > > return X86EMUL_UNHANDLEABLE; > > > > > > that mmio <-> mmio copy is not handled. This means the code in the > > > stdvga mmio intercept that explicitly handles mmio <-> mmio copy > when > > > hvm_copy_to/from_guest_phys() fails is never going to be executed. > > > > > > This patch therefore adds a check in hvmemul_do_io_addr() to make > sure > > > mmio <-> mmio is disallowed and then registers standard mmio > intercept ops > > > in stdvga_init(). > > > > > > With this patch all mmio and portio handled within Xen now goes > through > > > process_io_intercept(). > > > > > > Signed-off-by: Paul Durrant <paul.durrant@citrix.com> > > > Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com> > > > > > > Tell me if you need more information or want me to test a patch. I do > > > have test environment at hand. > > > > Given the nature of the patch, I would not be unduly surprised that the > > text is garbled. > > > > Which windows and qemu are you using? We have not encountered a > single > > failure like this in XenServer testing. > > > > win7-x64.iso from OSSTest. > > QEMU emulator version 2.2.1, Copyright (c) 2003-2008 Fabrice Bellard > Ok, could be a bad interaction with upstream QEMU then. I'll try to repro. Most of my dev testing was done with win7 32 bit and upstream QEMU though. Paul > > > ~Andrew ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Regression in OSSTest Windows install test case 2015-07-15 14:46 ` Wei Liu 2015-07-15 14:47 ` Paul Durrant @ 2015-07-15 14:49 ` Paul Durrant 2015-07-15 14:54 ` Wei Liu 1 sibling, 1 reply; 14+ messages in thread From: Paul Durrant @ 2015-07-15 14:49 UTC (permalink / raw) To: Andrew Cooper; +Cc: xen-devel@lists.xenproject.org, Wei Liu, Jan Beulich > -----Original Message----- > From: Wei Liu [mailto:wei.liu2@citrix.com] > Sent: 15 July 2015 15:46 > To: Andrew Cooper > Cc: Wei Liu; xen-devel@lists.xenproject.org; Jan Beulich; Paul Durrant > Subject: Re: Regression in OSSTest Windows install test case > > On Wed, Jul 15, 2015 at 03:43:09PM +0100, Andrew Cooper wrote: > > On 15/07/15 15:40, Wei Liu wrote: > > > Hi all > > > > > > The Windows install test case has been failing reliably in OSSTest for > > > the last 6 runs. > > > > > > The issue manifest as Windows hit blue screen with garbled text that > > > cannot be recognised when booting. Xen doesn't complain about any > > > failures. > > > > > > I bisected that and found this commit is to be blamed. > > > > > > commit 3bbaaec09b1b942f5624dee176da6e416d31f982 > > > Author: Paul Durrant <paul.durrant@citrix.com> > > > Date: Thu Jul 9 19:04:00 2015 +0200 > > > > > > x86/hvm: unify stdvga mmio intercept with standard mmio intercept > > > > > > It's clear from the following check in hvmemul_rep_movs: > > > > > > if ( sp2mt == p2m_mmio_direct || dp2mt == p2m_mmio_direct || > > > (sp2mt == p2m_mmio_dm && dp2mt == p2m_mmio_dm) ) > > > return X86EMUL_UNHANDLEABLE; > > > > > > that mmio <-> mmio copy is not handled. This means the code in the > > > stdvga mmio intercept that explicitly handles mmio <-> mmio copy > when > > > hvm_copy_to/from_guest_phys() fails is never going to be executed. > > > > > > This patch therefore adds a check in hvmemul_do_io_addr() to make > sure > > > mmio <-> mmio is disallowed and then registers standard mmio > intercept ops > > > in stdvga_init(). > > > > > > With this patch all mmio and portio handled within Xen now goes > through > > > process_io_intercept(). > > > > > > Signed-off-by: Paul Durrant <paul.durrant@citrix.com> > > > Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com> > > > > > > Tell me if you need more information or want me to test a patch. I do > > > have test environment at hand. > > > > Given the nature of the patch, I would not be unduly surprised that the > > text is garbled. > > > > Which windows and qemu are you using? We have not encountered a > single > > failure like this in XenServer testing. > > > > win7-x64.iso from OSSTest. > > QEMU emulator version 2.2.1, Copyright (c) 2003-2008 Fabrice Bellard > BTW, does the xl cfg specify cirrus or stdvga? Paul > > > ~Andrew ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Regression in OSSTest Windows install test case 2015-07-15 14:49 ` Paul Durrant @ 2015-07-15 14:54 ` Wei Liu 2015-07-15 14:55 ` Paul Durrant 0 siblings, 1 reply; 14+ messages in thread From: Wei Liu @ 2015-07-15 14:54 UTC (permalink / raw) To: Paul Durrant Cc: Andrew Cooper, Wei Liu, Jan Beulich, xen-devel@lists.xenproject.org On Wed, Jul 15, 2015 at 03:49:44PM +0100, Paul Durrant wrote: > > -----Original Message----- > > From: Wei Liu [mailto:wei.liu2@citrix.com] > > Sent: 15 July 2015 15:46 > > To: Andrew Cooper > > Cc: Wei Liu; xen-devel@lists.xenproject.org; Jan Beulich; Paul Durrant > > Subject: Re: Regression in OSSTest Windows install test case > > > > On Wed, Jul 15, 2015 at 03:43:09PM +0100, Andrew Cooper wrote: > > > On 15/07/15 15:40, Wei Liu wrote: > > > > Hi all > > > > > > > > The Windows install test case has been failing reliably in OSSTest for > > > > the last 6 runs. > > > > > > > > The issue manifest as Windows hit blue screen with garbled text that > > > > cannot be recognised when booting. Xen doesn't complain about any > > > > failures. > > > > > > > > I bisected that and found this commit is to be blamed. > > > > > > > > commit 3bbaaec09b1b942f5624dee176da6e416d31f982 > > > > Author: Paul Durrant <paul.durrant@citrix.com> > > > > Date: Thu Jul 9 19:04:00 2015 +0200 > > > > > > > > x86/hvm: unify stdvga mmio intercept with standard mmio intercept > > > > > > > > It's clear from the following check in hvmemul_rep_movs: > > > > > > > > if ( sp2mt == p2m_mmio_direct || dp2mt == p2m_mmio_direct || > > > > (sp2mt == p2m_mmio_dm && dp2mt == p2m_mmio_dm) ) > > > > return X86EMUL_UNHANDLEABLE; > > > > > > > > that mmio <-> mmio copy is not handled. This means the code in the > > > > stdvga mmio intercept that explicitly handles mmio <-> mmio copy > > when > > > > hvm_copy_to/from_guest_phys() fails is never going to be executed. > > > > > > > > This patch therefore adds a check in hvmemul_do_io_addr() to make > > sure > > > > mmio <-> mmio is disallowed and then registers standard mmio > > intercept ops > > > > in stdvga_init(). > > > > > > > > With this patch all mmio and portio handled within Xen now goes > > through > > > > process_io_intercept(). > > > > > > > > Signed-off-by: Paul Durrant <paul.durrant@citrix.com> > > > > Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com> > > > > > > > > Tell me if you need more information or want me to test a patch. I do > > > > have test environment at hand. > > > > > > Given the nature of the patch, I would not be unduly surprised that the > > > text is garbled. > > > > > > Which windows and qemu are you using? We have not encountered a > > single > > > failure like this in XenServer testing. > > > > > > > win7-x64.iso from OSSTest. > > > > QEMU emulator version 2.2.1, Copyright (c) 2003-2008 Fabrice Bellard > > > > BTW, does the xl cfg specify cirrus or stdvga? > > Paul Here is the config I use (slightly modified from the one in OSSTest). No setting with regard to video card, so it should be the cirrus. --- name = 'win' memory = 512 vif = [ 'type=ioemu,mac=5a:36:0e:98:50:33' ] # on_poweroff = 'destroy' on_reboot = 'preserve' on_crash = 'preserve' # vcpus = 2 # kernel = 'hvmloader' builder = 'hvm' # disk = [ 'phy:/dev/DATA/win,hda,w', 'file:/data/win7-x64.iso,hdc:cdrom,r' ] # usb=1 usbdevice='tablet' # #stdvga=1 keymap='en-gb'; # sdl=0 opengl=0 vnc=1 vncunused=1 vncdisplay=0 vnclisten='0.0.0.0' # #boot = 'dc' boot = 'c' device_model_version='qemu-xen' serial='file:/dev/stderr' # viridian=1 > > > > > > ~Andrew ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Regression in OSSTest Windows install test case 2015-07-15 14:54 ` Wei Liu @ 2015-07-15 14:55 ` Paul Durrant 2015-07-15 14:57 ` Wei Liu 0 siblings, 1 reply; 14+ messages in thread From: Paul Durrant @ 2015-07-15 14:55 UTC (permalink / raw) Cc: Andrew Cooper, Wei Liu, Jan Beulich, xen-devel@lists.xenproject.org > -----Original Message----- > From: Wei Liu [mailto:wei.liu2@citrix.com] > Sent: 15 July 2015 15:54 > To: Paul Durrant > Cc: Wei Liu; Andrew Cooper; xen-devel@lists.xenproject.org; Jan Beulich > Subject: Re: Regression in OSSTest Windows install test case > > On Wed, Jul 15, 2015 at 03:49:44PM +0100, Paul Durrant wrote: > > > -----Original Message----- > > > From: Wei Liu [mailto:wei.liu2@citrix.com] > > > Sent: 15 July 2015 15:46 > > > To: Andrew Cooper > > > Cc: Wei Liu; xen-devel@lists.xenproject.org; Jan Beulich; Paul Durrant > > > Subject: Re: Regression in OSSTest Windows install test case > > > > > > On Wed, Jul 15, 2015 at 03:43:09PM +0100, Andrew Cooper wrote: > > > > On 15/07/15 15:40, Wei Liu wrote: > > > > > Hi all > > > > > > > > > > The Windows install test case has been failing reliably in OSSTest for > > > > > the last 6 runs. > > > > > > > > > > The issue manifest as Windows hit blue screen with garbled text that > > > > > cannot be recognised when booting. Xen doesn't complain about any > > > > > failures. > > > > > > > > > > I bisected that and found this commit is to be blamed. > > > > > > > > > > commit 3bbaaec09b1b942f5624dee176da6e416d31f982 > > > > > Author: Paul Durrant <paul.durrant@citrix.com> > > > > > Date: Thu Jul 9 19:04:00 2015 +0200 > > > > > > > > > > x86/hvm: unify stdvga mmio intercept with standard mmio > intercept > > > > > > > > > > It's clear from the following check in hvmemul_rep_movs: > > > > > > > > > > if ( sp2mt == p2m_mmio_direct || dp2mt == p2m_mmio_direct > || > > > > > (sp2mt == p2m_mmio_dm && dp2mt == p2m_mmio_dm) ) > > > > > return X86EMUL_UNHANDLEABLE; > > > > > > > > > > that mmio <-> mmio copy is not handled. This means the code in > the > > > > > stdvga mmio intercept that explicitly handles mmio <-> mmio copy > > > when > > > > > hvm_copy_to/from_guest_phys() fails is never going to be > executed. > > > > > > > > > > This patch therefore adds a check in hvmemul_do_io_addr() to > make > > > sure > > > > > mmio <-> mmio is disallowed and then registers standard mmio > > > intercept ops > > > > > in stdvga_init(). > > > > > > > > > > With this patch all mmio and portio handled within Xen now goes > > > through > > > > > process_io_intercept(). > > > > > > > > > > Signed-off-by: Paul Durrant <paul.durrant@citrix.com> > > > > > Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com> > > > > > > > > > > Tell me if you need more information or want me to test a patch. I do > > > > > have test environment at hand. > > > > > > > > Given the nature of the patch, I would not be unduly surprised that the > > > > text is garbled. > > > > > > > > Which windows and qemu are you using? We have not encountered a > > > single > > > > failure like this in XenServer testing. > > > > > > > > > > win7-x64.iso from OSSTest. > > > > > > QEMU emulator version 2.2.1, Copyright (c) 2003-2008 Fabrice Bellard > > > > > > > BTW, does the xl cfg specify cirrus or stdvga? > > > > Paul > > Here is the config I use (slightly modified from the one in OSSTest). No > setting with regard to video card, so it should be the cirrus. > > --- > name = 'win' > memory = 512 ^^^^ Wow. That's ambitious for Windows 7! Paul > vif = [ 'type=ioemu,mac=5a:36:0e:98:50:33' ] > # > on_poweroff = 'destroy' > on_reboot = 'preserve' > on_crash = 'preserve' > # > vcpus = 2 > # > kernel = 'hvmloader' > builder = 'hvm' > # > disk = [ > 'phy:/dev/DATA/win,hda,w', > 'file:/data/win7-x64.iso,hdc:cdrom,r' > ] > # > usb=1 > usbdevice='tablet' > # > #stdvga=1 > keymap='en-gb'; > # > sdl=0 > opengl=0 > vnc=1 > vncunused=1 > vncdisplay=0 > vnclisten='0.0.0.0' > > # > #boot = 'dc' > boot = 'c' > device_model_version='qemu-xen' > serial='file:/dev/stderr' > > # > viridian=1 > > > > > > > > > > > ~Andrew ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Regression in OSSTest Windows install test case 2015-07-15 14:55 ` Paul Durrant @ 2015-07-15 14:57 ` Wei Liu 2015-07-15 15:26 ` Fabio Fantoni 0 siblings, 1 reply; 14+ messages in thread From: Wei Liu @ 2015-07-15 14:57 UTC (permalink / raw) To: Paul Durrant Cc: Andrew Cooper, Wei Liu, Jan Beulich, xen-devel@lists.xenproject.org On Wed, Jul 15, 2015 at 03:55:24PM +0100, Paul Durrant wrote: [...] > > Here is the config I use (slightly modified from the one in OSSTest). No > > setting with regard to video card, so it should be the cirrus. > > > > --- > > name = 'win' > > memory = 512 > > ^^^^ Wow. That's ambitious for Windows 7! > I notice that too. But the installation seems to finish in a reasonable time. :-P Wei. ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Regression in OSSTest Windows install test case 2015-07-15 14:57 ` Wei Liu @ 2015-07-15 15:26 ` Fabio Fantoni 0 siblings, 0 replies; 14+ messages in thread From: Fabio Fantoni @ 2015-07-15 15:26 UTC (permalink / raw) To: Wei Liu, Paul Durrant Cc: Andrew Cooper, Jan Beulich, xen-devel@lists.xenproject.org Il 15/07/2015 16:57, Wei Liu ha scritto: > On Wed, Jul 15, 2015 at 03:55:24PM +0100, Paul Durrant wrote: > [...] >>> Here is the config I use (slightly modified from the one in OSSTest). No >>> setting with regard to video card, so it should be the cirrus. Cirrus driver is not available for windows 7, support of it is near abandonment in upstream if I remember good what I read one year ago (or more) in qemu-devel, is better use stdvga instead in windows >=vista. A had also strange graphic and performance problem with cirrus on windows 7 2-3 years ago, since then I have not set the cirrus on vm windows 7. Try to vga="stdvga" >>> >>> --- >>> name = 'win' >>> memory = 512 >> ^^^^ Wow. That's ambitious for Windows 7! >> > I notice that too. But the installation seems to finish in a reasonable > time. :-P Years ago on my tests system with few ram I tried to decrease ram as possible but I saw that with windows 7 (even if 32 bit) with < 1 gb made occasional problems that wasted my tests. About performance for run tests (after windows install even if basic) 2 gb of ram at least is needed for don't waste large amount of time on massive numbers of tests. I saw many occasional windows tests fail on "[Xen-devel] [xen-unstable test] ....: regressions - FAIL" that I was unable to reproduce doing same tests (windows install, shutdown, save/restore) and that blocked push for days even if I not saw "real bug/regression" was found. If these are only caused by "bad" xl cfg values rare to find on real users domUs I think is bad and should be improved. > > Wei. > > _______________________________________________ > Xen-devel mailing list > Xen-devel@lists.xen.org > http://lists.xen.org/xen-devel ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Regression in OSSTest Windows install test case 2015-07-15 14:40 Regression in OSSTest Windows install test case Wei Liu 2015-07-15 14:43 ` Andrew Cooper @ 2015-07-16 8:39 ` Paul Durrant 2015-07-16 9:03 ` Wei Liu 1 sibling, 1 reply; 14+ messages in thread From: Paul Durrant @ 2015-07-16 8:39 UTC (permalink / raw) To: xen-devel@lists.xenproject.org; +Cc: Andrew Cooper, Wei Liu, Jan Beulich > -----Original Message----- > From: Wei Liu [mailto:wei.liu2@citrix.com] > Sent: 15 July 2015 15:40 > To: xen-devel@lists.xenproject.org > Cc: Wei Liu; Jan Beulich; Andrew Cooper; Paul Durrant > Subject: Regression in OSSTest Windows install test case > > Hi all > > The Windows install test case has been failing reliably in OSSTest for > the last 6 runs. > > The issue manifest as Windows hit blue screen with garbled text that > cannot be recognised when booting. Xen doesn't complain about any > failures. > > I bisected that and found this commit is to be blamed. > > commit 3bbaaec09b1b942f5624dee176da6e416d31f982 > Author: Paul Durrant <paul.durrant@citrix.com> > Date: Thu Jul 9 19:04:00 2015 +0200 > > x86/hvm: unify stdvga mmio intercept with standard mmio intercept > > It's clear from the following check in hvmemul_rep_movs: > > if ( sp2mt == p2m_mmio_direct || dp2mt == p2m_mmio_direct || > (sp2mt == p2m_mmio_dm && dp2mt == p2m_mmio_dm) ) > return X86EMUL_UNHANDLEABLE; > > that mmio <-> mmio copy is not handled. This means the code in the > stdvga mmio intercept that explicitly handles mmio <-> mmio copy when > hvm_copy_to/from_guest_phys() fails is never going to be executed. > > This patch therefore adds a check in hvmemul_do_io_addr() to make sure > mmio <-> mmio is disallowed and then registers standard mmio intercept > ops > in stdvga_init(). > > With this patch all mmio and portio handled within Xen now goes through > process_io_intercept(). > > Signed-off-by: Paul Durrant <paul.durrant@citrix.com> > Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com> > > Tell me if you need more information or want me to test a patch. I do > have test environment at hand. > I think I found the semantic difference. Prior to this patch it would seem that stdvga buffered writes even when not in stdvga mode. When I tested your config (using cirrus), windows drops out of stdvga quite early in boot which slows down the splash screen to a crawl. When I just uncommented the single line 'stdvga=1' then I got through the splash screen several orders of magnitude faster. So, I think this (compile tested only) incremental patch should fix the test: diff --git a/xen/arch/x86/hvm/stdvga.c b/xen/arch/x86/hvm/stdvga.c index 6d22b22..d528155 100644 --- a/xen/arch/x86/hvm/stdvga.c +++ b/xen/arch/x86/hvm/stdvga.c @@ -441,7 +441,7 @@ static int stdvga_mem_write(const struct hvm_io_handler *han }; struct hvm_ioreq_server *srv; - if ( !s->cache ) + if ( !s->cache || !s->stdvga ) goto done; /* Intercept mmio write */ @@ -503,9 +503,6 @@ static bool_t stdvga_mem_accept(const struct hvm_io_handler spin_lock(&s->lock); - if ( !s->stdvga ) - goto reject; - if ( p->dir == IOREQ_WRITE && p->count > 1 ) { /* @@ -526,7 +523,7 @@ static bool_t stdvga_mem_accept(const struct hvm_io_handler goto reject; } - else if ( p->dir == IOREQ_READ && !s->cache ) + else if ( p->dir == IOREQ_READ && !s->cache && !s->stdvga ) goto reject; /* s->lock intentionally held */ I can't say that I like the idea of unconditionally buffering VRAM writes, but I'll test patch and post it. Paul > Wei. ^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: Regression in OSSTest Windows install test case 2015-07-16 8:39 ` Paul Durrant @ 2015-07-16 9:03 ` Wei Liu 2015-07-16 9:06 ` Paul Durrant 0 siblings, 1 reply; 14+ messages in thread From: Wei Liu @ 2015-07-16 9:03 UTC (permalink / raw) To: Paul Durrant Cc: xen-devel@lists.xenproject.org, Wei Liu, Jan Beulich, Andrew Cooper On Thu, Jul 16, 2015 at 09:39:42AM +0100, Paul Durrant wrote: [...] > I think I found the semantic difference. Prior to this patch it would seem that stdvga buffered writes even when not in stdvga mode. When I tested your config (using cirrus), windows drops out of stdvga quite early in boot which slows down the splash screen to a crawl. When I just uncommented the single line 'stdvga=1' then I got through the splash screen several orders of magnitude faster. > So, I think this (compile tested only) incremental patch should fix the test: > > diff --git a/xen/arch/x86/hvm/stdvga.c b/xen/arch/x86/hvm/stdvga.c > index 6d22b22..d528155 100644 > --- a/xen/arch/x86/hvm/stdvga.c > +++ b/xen/arch/x86/hvm/stdvga.c > @@ -441,7 +441,7 @@ static int stdvga_mem_write(const struct hvm_io_handler *han > }; > struct hvm_ioreq_server *srv; > > - if ( !s->cache ) > + if ( !s->cache || !s->stdvga ) > goto done; > > /* Intercept mmio write */ > @@ -503,9 +503,6 @@ static bool_t stdvga_mem_accept(const struct hvm_io_handler > > spin_lock(&s->lock); > > - if ( !s->stdvga ) > - goto reject; > - > if ( p->dir == IOREQ_WRITE && p->count > 1 ) > { > /* > @@ -526,7 +523,7 @@ static bool_t stdvga_mem_accept(const struct hvm_io_handler > > goto reject; > } > - else if ( p->dir == IOREQ_READ && !s->cache ) > + else if ( p->dir == IOREQ_READ && !s->cache && !s->stdvga ) > goto reject; > > /* s->lock intentionally held */ > > I can't say that I like the idea of unconditionally buffering VRAM writes, but I'll test patch and post it. > Thank you for the fix. It fixes the problem for me. Tested-by: Wei Liu <wei.liu2@citrix.com> > Paul > > > > Wei. ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Regression in OSSTest Windows install test case 2015-07-16 9:03 ` Wei Liu @ 2015-07-16 9:06 ` Paul Durrant 2015-07-16 9:11 ` Wei Liu 0 siblings, 1 reply; 14+ messages in thread From: Paul Durrant @ 2015-07-16 9:06 UTC (permalink / raw) Cc: xen-devel@lists.xenproject.org, Wei Liu, Jan Beulich, Andrew Cooper > -----Original Message----- > From: Wei Liu [mailto:wei.liu2@citrix.com] > Sent: 16 July 2015 10:03 > To: Paul Durrant > Cc: Wei Liu; xen-devel@lists.xenproject.org; Jan Beulich; Andrew Cooper > Subject: Re: Regression in OSSTest Windows install test case > > On Thu, Jul 16, 2015 at 09:39:42AM +0100, Paul Durrant wrote: > [...] > > I think I found the semantic difference. Prior to this patch it would seem > that stdvga buffered writes even when not in stdvga mode. When I tested > your config (using cirrus), windows drops out of stdvga quite early in boot > which slows down the splash screen to a crawl. When I just uncommented > the single line 'stdvga=1' then I got through the splash screen several orders > of magnitude faster. > > So, I think this (compile tested only) incremental patch should fix the test: > > > > diff --git a/xen/arch/x86/hvm/stdvga.c b/xen/arch/x86/hvm/stdvga.c > > index 6d22b22..d528155 100644 > > --- a/xen/arch/x86/hvm/stdvga.c > > +++ b/xen/arch/x86/hvm/stdvga.c > > @@ -441,7 +441,7 @@ static int stdvga_mem_write(const struct > hvm_io_handler *han > > }; > > struct hvm_ioreq_server *srv; > > > > - if ( !s->cache ) > > + if ( !s->cache || !s->stdvga ) > > goto done; > > > > /* Intercept mmio write */ > > @@ -503,9 +503,6 @@ static bool_t stdvga_mem_accept(const struct > hvm_io_handler > > > > spin_lock(&s->lock); > > > > - if ( !s->stdvga ) > > - goto reject; > > - > > if ( p->dir == IOREQ_WRITE && p->count > 1 ) > > { > > /* > > @@ -526,7 +523,7 @@ static bool_t stdvga_mem_accept(const struct > hvm_io_handler > > > > goto reject; > > } > > - else if ( p->dir == IOREQ_READ && !s->cache ) > > + else if ( p->dir == IOREQ_READ && !s->cache && !s->stdvga ) > > goto reject; > > > > /* s->lock intentionally held */ > > > > I can't say that I like the idea of unconditionally buffering VRAM writes, but > I'll test patch and post it. > > > > Thank you for the fix. It fixes the problem for me. Cool. There's actually a small bug-ette in it. The line: else if ( p->dir == IOREQ_READ && !s->cache && !s->stdvga ) should be: else if ( p->dir == IOREQ_READ && (!s->cache || !s->stdvga) ) I don't think that will affect the behaviour in this case though since I very much doubt Windows is reading VRAM at this stage. Could you perhaps re-test with that change? Cheers, Paul > > Tested-by: Wei Liu <wei.liu2@citrix.com> > > > Paul > > > > > > > > > > Wei. ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Regression in OSSTest Windows install test case 2015-07-16 9:06 ` Paul Durrant @ 2015-07-16 9:11 ` Wei Liu 2015-07-16 9:12 ` Paul Durrant 0 siblings, 1 reply; 14+ messages in thread From: Wei Liu @ 2015-07-16 9:11 UTC (permalink / raw) To: Paul Durrant Cc: xen-devel@lists.xenproject.org, Wei Liu, Jan Beulich, Andrew Cooper On Thu, Jul 16, 2015 at 10:06:35AM +0100, Paul Durrant wrote: > > -----Original Message----- > > From: Wei Liu [mailto:wei.liu2@citrix.com] > > Sent: 16 July 2015 10:03 > > To: Paul Durrant > > Cc: Wei Liu; xen-devel@lists.xenproject.org; Jan Beulich; Andrew Cooper > > Subject: Re: Regression in OSSTest Windows install test case > > > > On Thu, Jul 16, 2015 at 09:39:42AM +0100, Paul Durrant wrote: > > [...] > > > I think I found the semantic difference. Prior to this patch it would seem > > that stdvga buffered writes even when not in stdvga mode. When I tested > > your config (using cirrus), windows drops out of stdvga quite early in boot > > which slows down the splash screen to a crawl. When I just uncommented > > the single line 'stdvga=1' then I got through the splash screen several orders > > of magnitude faster. > > > So, I think this (compile tested only) incremental patch should fix the test: > > > > > > diff --git a/xen/arch/x86/hvm/stdvga.c b/xen/arch/x86/hvm/stdvga.c > > > index 6d22b22..d528155 100644 > > > --- a/xen/arch/x86/hvm/stdvga.c > > > +++ b/xen/arch/x86/hvm/stdvga.c > > > @@ -441,7 +441,7 @@ static int stdvga_mem_write(const struct > > hvm_io_handler *han > > > }; > > > struct hvm_ioreq_server *srv; > > > > > > - if ( !s->cache ) > > > + if ( !s->cache || !s->stdvga ) > > > goto done; > > > > > > /* Intercept mmio write */ > > > @@ -503,9 +503,6 @@ static bool_t stdvga_mem_accept(const struct > > hvm_io_handler > > > > > > spin_lock(&s->lock); > > > > > > - if ( !s->stdvga ) > > > - goto reject; > > > - > > > if ( p->dir == IOREQ_WRITE && p->count > 1 ) > > > { > > > /* > > > @@ -526,7 +523,7 @@ static bool_t stdvga_mem_accept(const struct > > hvm_io_handler > > > > > > goto reject; > > > } > > > - else if ( p->dir == IOREQ_READ && !s->cache ) > > > + else if ( p->dir == IOREQ_READ && !s->cache && !s->stdvga ) > > > goto reject; > > > > > > /* s->lock intentionally held */ > > > > > > I can't say that I like the idea of unconditionally buffering VRAM writes, but > > I'll test patch and post it. > > > > > > > Thank you for the fix. It fixes the problem for me. > > Cool. There's actually a small bug-ette in it. The line: > > else if ( p->dir == IOREQ_READ && !s->cache && !s->stdvga ) > > should be: > > else if ( p->dir == IOREQ_READ && (!s->cache || !s->stdvga) ) > > I don't think that will affect the behaviour in this case though since I very much doubt Windows is reading VRAM at this stage. Could you perhaps re-test with that change? > It works. So again: Tested-by: Wei Liu <wei.liu2@citrix.com> > Cheers, > > Paul > > > > > Tested-by: Wei Liu <wei.liu2@citrix.com> > > > > > Paul > > > > > > > > > > > > > > > > Wei. ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Regression in OSSTest Windows install test case 2015-07-16 9:11 ` Wei Liu @ 2015-07-16 9:12 ` Paul Durrant 0 siblings, 0 replies; 14+ messages in thread From: Paul Durrant @ 2015-07-16 9:12 UTC (permalink / raw) Cc: xen-devel@lists.xenproject.org, Wei Liu, Jan Beulich, Andrew Cooper > -----Original Message----- > From: Wei Liu [mailto:wei.liu2@citrix.com] > Sent: 16 July 2015 10:12 > To: Paul Durrant > Cc: Wei Liu; xen-devel@lists.xenproject.org; Jan Beulich; Andrew Cooper > Subject: Re: Regression in OSSTest Windows install test case > > On Thu, Jul 16, 2015 at 10:06:35AM +0100, Paul Durrant wrote: > > > -----Original Message----- > > > From: Wei Liu [mailto:wei.liu2@citrix.com] > > > Sent: 16 July 2015 10:03 > > > To: Paul Durrant > > > Cc: Wei Liu; xen-devel@lists.xenproject.org; Jan Beulich; Andrew Cooper > > > Subject: Re: Regression in OSSTest Windows install test case > > > > > > On Thu, Jul 16, 2015 at 09:39:42AM +0100, Paul Durrant wrote: > > > [...] > > > > I think I found the semantic difference. Prior to this patch it would seem > > > that stdvga buffered writes even when not in stdvga mode. When I > tested > > > your config (using cirrus), windows drops out of stdvga quite early in boot > > > which slows down the splash screen to a crawl. When I just > uncommented > > > the single line 'stdvga=1' then I got through the splash screen several > orders > > > of magnitude faster. > > > > So, I think this (compile tested only) incremental patch should fix the > test: > > > > > > > > diff --git a/xen/arch/x86/hvm/stdvga.c b/xen/arch/x86/hvm/stdvga.c > > > > index 6d22b22..d528155 100644 > > > > --- a/xen/arch/x86/hvm/stdvga.c > > > > +++ b/xen/arch/x86/hvm/stdvga.c > > > > @@ -441,7 +441,7 @@ static int stdvga_mem_write(const struct > > > hvm_io_handler *han > > > > }; > > > > struct hvm_ioreq_server *srv; > > > > > > > > - if ( !s->cache ) > > > > + if ( !s->cache || !s->stdvga ) > > > > goto done; > > > > > > > > /* Intercept mmio write */ > > > > @@ -503,9 +503,6 @@ static bool_t stdvga_mem_accept(const struct > > > hvm_io_handler > > > > > > > > spin_lock(&s->lock); > > > > > > > > - if ( !s->stdvga ) > > > > - goto reject; > > > > - > > > > if ( p->dir == IOREQ_WRITE && p->count > 1 ) > > > > { > > > > /* > > > > @@ -526,7 +523,7 @@ static bool_t stdvga_mem_accept(const struct > > > hvm_io_handler > > > > > > > > goto reject; > > > > } > > > > - else if ( p->dir == IOREQ_READ && !s->cache ) > > > > + else if ( p->dir == IOREQ_READ && !s->cache && !s->stdvga ) > > > > goto reject; > > > > > > > > /* s->lock intentionally held */ > > > > > > > > I can't say that I like the idea of unconditionally buffering VRAM writes, > but > > > I'll test patch and post it. > > > > > > > > > > Thank you for the fix. It fixes the problem for me. > > > > Cool. There's actually a small bug-ette in it. The line: > > > > else if ( p->dir == IOREQ_READ && !s->cache && !s->stdvga ) > > > > should be: > > > > else if ( p->dir == IOREQ_READ && (!s->cache || !s->stdvga) ) > > > > I don't think that will affect the behaviour in this case though since I very > much doubt Windows is reading VRAM at this stage. Could you perhaps re- > test with that change? > > > > It works. So again: > > Tested-by: Wei Liu <wei.liu2@citrix.com> Excellent. Thanks, Paul > > > Cheers, > > > > Paul > > > > > > > > Tested-by: Wei Liu <wei.liu2@citrix.com> > > > > > > > Paul > > > > > > > > > > > > > > > > > > > > > > Wei. ^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2015-07-16 9:12 UTC | newest] Thread overview: 14+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2015-07-15 14:40 Regression in OSSTest Windows install test case Wei Liu 2015-07-15 14:43 ` Andrew Cooper 2015-07-15 14:46 ` Wei Liu 2015-07-15 14:47 ` Paul Durrant 2015-07-15 14:49 ` Paul Durrant 2015-07-15 14:54 ` Wei Liu 2015-07-15 14:55 ` Paul Durrant 2015-07-15 14:57 ` Wei Liu 2015-07-15 15:26 ` Fabio Fantoni 2015-07-16 8:39 ` Paul Durrant 2015-07-16 9:03 ` Wei Liu 2015-07-16 9:06 ` Paul Durrant 2015-07-16 9:11 ` Wei Liu 2015-07-16 9:12 ` Paul Durrant
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.