diff mbox

[Xen-devel] vnc=1 / pvgrub / close fb: backend at /local/domain/0/backend/vfb/xx/0

Message ID alpine.DEB.2.02.1411051645140.22875@kaball.uk.xensource.com
State New
Headers show

Commit Message

Stefano Stabellini Nov. 5, 2014, 5:49 p.m. UTC
Hello Steven,
I have found some time to debug this myself.
I couldn't reproduce the booting issue that you reported: in my case
after seeing the grub boot menu I can successfully boot the kernel
without problems.

However I can reproduce the timeout issue that you are seeing: the
timeout doesn't work properly in graphics mode.

The reason is that the with a graphics terminal you checkkey () return 0
even when pressing no keys, resulting in wrong behaviour in run_menu. 

Does the following patch (also attached) fixes your issues?





On Thu, 23 Oct 2014, Steven Haigh wrote:
> On 23/10/2014 2:40 AM, Ian Campbell wrote:
> > On Thu, 2014-10-23 at 02:23 +1100, Steven Haigh wrote:
> > 
> >> Output using pv-grub:
> > 
> > Can you also post the qemu logs please (under /var/log/xen somewhere I
> > think).
> 
> I get very little out of this:
> -rw-r--r--  1 root root    0 Oct 23 02:45 qemu-dm-dev.vm.log
> -rw-r--r--  1 root root    0 Oct 23 02:44 xen-hotplug.log
> -rw-r--r--  1 root root   55 Oct 23 02:45 xl-dev.vm.log
> [root@dom0 xen]# cat xl-dev.vm.log
> Waiting for domain dev.vm (domid 36) to die [pid 6970]
> 
> That's it :\
> 
> >> qemu-system-i38[3956]: segfault at 0 ip           (null) sp
> >> 00007fffb4573638 error 4
> > 
> > That might be a smoking gun. Is there a core dump and/or could you try
> > and run qemu under gdb?
> 
> Any hints on doing this? I can't say I'm a gdb guru.... I can't find any
> core dumps anywhere so that's not really helpful...
> 
> -- 
> Steven Haigh
> 
> Email: netwiz@crc.id.au
> Web: http://www.crc.id.au
> Phone: (03) 9001 6090 - 0412 935 897
> 
>
diff --git a/stubdom/grub.patches/11graphics-keyboard.diff b/stubdom/grub.patches/11graphics-keyboard.diff
new file mode 100644
index 0000000..fe17b20
--- /dev/null
+++ b/stubdom/grub.patches/11graphics-keyboard.diff
@@ -0,0 +1,13 @@
+diff --git a/stage2/stage2.c b/stage2/stage2.c
+index 9d9fcc3..8353a3b 100644
+--- a/stage2/stage2.c
++++ b/stage2/stage2.c
+@@ -395,7 +395,7 @@ restart:
+ 	 pressed.  
+ 	 This avoids polling (relevant in the grub-shell and later on
+ 	 in grub if interrupt driven I/O is done).  */
+-      if (checkkey () >= 0 || grub_timeout < 0)
++      if (checkkey () > 0 || grub_timeout < 0)
+ 	{
+ 	  /* Key was pressed, show which entry is selected before GETKEY,
+ 	     since we're comming in here also on GRUB_TIMEOUT == -1 and

Comments

Steven Haigh Nov. 6, 2014, 9:49 a.m. UTC | #1
Hi Stefano,

It seems that this patch fixes the grub issue for me. I no longer get
the infinite wait at the grub prompt.

On 6/11/2014 4:49 AM, Stefano Stabellini wrote:
> Hello Steven,
> I have found some time to debug this myself.
> I couldn't reproduce the booting issue that you reported: in my case
> after seeing the grub boot menu I can successfully boot the kernel
> without problems.
> 
> However I can reproduce the timeout issue that you are seeing: the
> timeout doesn't work properly in graphics mode.
> 
> The reason is that the with a graphics terminal you checkkey () return 0
> even when pressing no keys, resulting in wrong behaviour in run_menu. 
> 
> Does the following patch (also attached) fixes your issues?
> 
> 
> diff --git a/stubdom/grub.patches/11graphics-keyboard.diff b/stubdom/grub.patches/11graphics-keyboard.diff
> new file mode 100644
> index 0000000..fe17b20
> --- /dev/null
> +++ b/stubdom/grub.patches/11graphics-keyboard.diff
> @@ -0,0 +1,13 @@
> +diff --git a/stage2/stage2.c b/stage2/stage2.c
> +index 9d9fcc3..8353a3b 100644
> +--- a/stage2/stage2.c
> ++++ b/stage2/stage2.c
> +@@ -395,7 +395,7 @@ restart:
> + 	 pressed.  
> + 	 This avoids polling (relevant in the grub-shell and later on
> + 	 in grub if interrupt driven I/O is done).  */
> +-      if (checkkey () >= 0 || grub_timeout < 0)
> ++      if (checkkey () > 0 || grub_timeout < 0)
> + 	{
> + 	  /* Key was pressed, show which entry is selected before GETKEY,
> + 	     since we're comming in here also on GRUB_TIMEOUT == -1 and
> 
> 
> 
> On Thu, 23 Oct 2014, Steven Haigh wrote:
>> On 23/10/2014 2:40 AM, Ian Campbell wrote:
>>> On Thu, 2014-10-23 at 02:23 +1100, Steven Haigh wrote:
>>>
>>>> Output using pv-grub:
>>>
>>> Can you also post the qemu logs please (under /var/log/xen somewhere I
>>> think).
>>
>> I get very little out of this:
>> -rw-r--r--  1 root root    0 Oct 23 02:45 qemu-dm-dev.vm.log
>> -rw-r--r--  1 root root    0 Oct 23 02:44 xen-hotplug.log
>> -rw-r--r--  1 root root   55 Oct 23 02:45 xl-dev.vm.log
>> [root@dom0 xen]# cat xl-dev.vm.log
>> Waiting for domain dev.vm (domid 36) to die [pid 6970]
>>
>> That's it :\
>>
>>>> qemu-system-i38[3956]: segfault at 0 ip           (null) sp
>>>> 00007fffb4573638 error 4
>>>
>>> That might be a smoking gun. Is there a core dump and/or could you try
>>> and run qemu under gdb?
>>
>> Any hints on doing this? I can't say I'm a gdb guru.... I can't find any
>> core dumps anywhere so that's not really helpful...
>>
>> -- 
>> Steven Haigh
>>
>> Email: netwiz@crc.id.au
>> Web: http://www.crc.id.au
>> Phone: (03) 9001 6090 - 0412 935 897
>>
Stefano Stabellini Nov. 6, 2014, 10:34 a.m. UTC | #2
Hello Steven,
thanks for testing!

Regarding the other issue, which QEMU version are you using? Which Xen
version? On Xen 4.5.0-rc1 I don't see any problems.


On Thu, 6 Nov 2014, Steven Haigh wrote:
> Hi Stefano,
> 
> It seems that this patch fixes the grub issue for me. I no longer get
> the infinite wait at the grub prompt.
> 
> On 6/11/2014 4:49 AM, Stefano Stabellini wrote:
> > Hello Steven,
> > I have found some time to debug this myself.
> > I couldn't reproduce the booting issue that you reported: in my case
> > after seeing the grub boot menu I can successfully boot the kernel
> > without problems.
> > 
> > However I can reproduce the timeout issue that you are seeing: the
> > timeout doesn't work properly in graphics mode.
> > 
> > The reason is that the with a graphics terminal you checkkey () return 0
> > even when pressing no keys, resulting in wrong behaviour in run_menu. 
> > 
> > Does the following patch (also attached) fixes your issues?
> > 
> > 
> > diff --git a/stubdom/grub.patches/11graphics-keyboard.diff b/stubdom/grub.patches/11graphics-keyboard.diff
> > new file mode 100644
> > index 0000000..fe17b20
> > --- /dev/null
> > +++ b/stubdom/grub.patches/11graphics-keyboard.diff
> > @@ -0,0 +1,13 @@
> > +diff --git a/stage2/stage2.c b/stage2/stage2.c
> > +index 9d9fcc3..8353a3b 100644
> > +--- a/stage2/stage2.c
> > ++++ b/stage2/stage2.c
> > +@@ -395,7 +395,7 @@ restart:
> > + 	 pressed.  
> > + 	 This avoids polling (relevant in the grub-shell and later on
> > + 	 in grub if interrupt driven I/O is done).  */
> > +-      if (checkkey () >= 0 || grub_timeout < 0)
> > ++      if (checkkey () > 0 || grub_timeout < 0)
> > + 	{
> > + 	  /* Key was pressed, show which entry is selected before GETKEY,
> > + 	     since we're comming in here also on GRUB_TIMEOUT == -1 and
> > 
> > 
> > 
> > On Thu, 23 Oct 2014, Steven Haigh wrote:
> >> On 23/10/2014 2:40 AM, Ian Campbell wrote:
> >>> On Thu, 2014-10-23 at 02:23 +1100, Steven Haigh wrote:
> >>>
> >>>> Output using pv-grub:
> >>>
> >>> Can you also post the qemu logs please (under /var/log/xen somewhere I
> >>> think).
> >>
> >> I get very little out of this:
> >> -rw-r--r--  1 root root    0 Oct 23 02:45 qemu-dm-dev.vm.log
> >> -rw-r--r--  1 root root    0 Oct 23 02:44 xen-hotplug.log
> >> -rw-r--r--  1 root root   55 Oct 23 02:45 xl-dev.vm.log
> >> [root@dom0 xen]# cat xl-dev.vm.log
> >> Waiting for domain dev.vm (domid 36) to die [pid 6970]
> >>
> >> That's it :\
> >>
> >>>> qemu-system-i38[3956]: segfault at 0 ip           (null) sp
> >>>> 00007fffb4573638 error 4
> >>>
> >>> That might be a smoking gun. Is there a core dump and/or could you try
> >>> and run qemu under gdb?
> >>
> >> Any hints on doing this? I can't say I'm a gdb guru.... I can't find any
> >> core dumps anywhere so that's not really helpful...
> >>
> >> -- 
> >> Steven Haigh
> >>
> >> Email: netwiz@crc.id.au
> >> Web: http://www.crc.id.au
> >> Phone: (03) 9001 6090 - 0412 935 897
> >>
> 
> -- 
> Steven Haigh
> 
> Email: netwiz@crc.id.au
> Web: http://www.crc.id.au
> Phone: (03) 9001 6090 - 0412 935 897
> 
>
Steven Haigh Nov. 6, 2014, 11:05 a.m. UTC | #3
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

I've been a bit busy at the moment and haven't had a chance to retest all of this and get some solid issues.

One thing I've come across is the different type of installs I've been playing with.. Some with a filesystem on xvda, some with a filesystem on xvda1.

As it seems you can only give one grub.conf entry in the extra domu config line, I have another issue to look at.

When I get some more free time I'll see I'd I can turn something up ...

On 6 November 2014 9:34:26 pm AEDT, Stefano Stabellini <stefano.stabellini@eu.citrix.com> wrote:
>Hello Steven,
>thanks for testing!
>
>Regarding the other issue, which QEMU version are you using? Which Xen
>version? On Xen 4.5.0-rc1 I don't see any problems.
>
>
>On Thu, 6 Nov 2014, Steven Haigh wrote:
>> Hi Stefano,
>>
>> It seems that this patch fixes the grub issue for me. I no longer get
>> the infinite wait at the grub prompt.
>>
>> On 6/11/2014 4:49 AM, Stefano Stabellini wrote:
>> > Hello Steven,
>> > I have found some time to debug this myself.
>> > I couldn't reproduce the booting issue that you reported: in my
>case
>> > after seeing the grub boot menu I can successfully boot the kernel
>> > without problems.
>> >
>> > However I can reproduce the timeout issue that you are seeing: the
>> > timeout doesn't work properly in graphics mode.
>> >
>> > The reason is that the with a graphics terminal you checkkey ()
>return 0
>> > even when pressing no keys, resulting in wrong behaviour in
>run_menu.
>> >
>> > Does the following patch (also attached) fixes your issues?
>> >
>> >
>> > diff --git a/stubdom/grub.patches/11graphics-keyboard.diff
>b/stubdom/grub.patches/11graphics-keyboard.diff
>> > new file mode 100644
>> > index 0000000..fe17b20
>> > --- /dev/null
>> > +++ b/stubdom/grub.patches/11graphics-keyboard.diff
>> > @@ -0,0 +1,13 @@
>> > +diff --git a/stage2/stage2.c b/stage2/stage2.c
>> > +index 9d9fcc3..8353a3b 100644
>> > +--- a/stage2/stage2.c
>> > ++++ b/stage2/stage2.c
>> > +@@ -395,7 +395,7 @@ restart:
>> > + 	 pressed.
>> > + 	 This avoids polling (relevant in the grub-shell and later on
>> > + 	 in grub if interrupt driven I/O is done).  */
>> > +-      if (checkkey () >= 0 || grub_timeout < 0)
>> > ++      if (checkkey () > 0 || grub_timeout < 0)
>> > + 	{
>> > + 	  /* Key was pressed, show which entry is selected before
>GETKEY,
>> > + 	     since we're comming in here also on GRUB_TIMEOUT == -1 and
>> >
>> >
>> >
>> > On Thu, 23 Oct 2014, Steven Haigh wrote:
>> >> On 23/10/2014 2:40 AM, Ian Campbell wrote:
>> >>> On Thu, 2014-10-23 at 02:23 +1100, Steven Haigh wrote:
>> >>>
>> >>>> Output using pv-grub:
>> >>>
>> >>> Can you also post the qemu logs please (under /var/log/xen
>somewhere I
>> >>> think).
>> >>
>> >> I get very little out of this:
>> >> -rw-r--r--  1 root root    0 Oct 23 02:45 qemu-dm-dev.vm.log
>> >> -rw-r--r--  1 root root    0 Oct 23 02:44 xen-hotplug.log
>> >> -rw-r--r--  1 root root   55 Oct 23 02:45 xl-dev.vm.log
>> >> [root@dom0 xen]# cat xl-dev.vm.log
>> >> Waiting for domain dev.vm (domid 36) to die [pid 6970]
>> >>
>> >> That's it :\
>> >>
>> >>>> qemu-system-i38[3956]: segfault at 0 ip           (null) sp
>> >>>> 00007fffb4573638 error 4
>> >>>
>> >>> That might be a smoking gun. Is there a core dump and/or could
>you try
>> >>> and run qemu under gdb?
>> >>
>> >> Any hints on doing this? I can't say I'm a gdb guru.... I can't
>find any
>> >> core dumps anywhere so that's not really helpful...
>> >>
>> >> --
>> >> Steven Haigh
>> >>
>> >> Email: netwiz@crc.id.au
>> >> Web: http://www.crc.id.au
>> >> Phone: (03) 9001 6090 - 0412 935 897
>> >>
>>
>> --
>> Steven Haigh
>>
>> Email: netwiz@crc.id.au
>> Web: http://www.crc.id.au
>> Phone: (03) 9001 6090 - 0412 935 897
>>
>>

- --
Sent from my Android device with K-9 Mail. Please excuse my brevity.
-----BEGIN PGP SIGNATURE-----
Version: APG v1.1.1

iQI9BAEBCgAnBQJUW1XtIBxTdGV2ZW4gSGFpZ2ggPG5ldHdpekBjcmMuaWQuYXU+
AAoJEEGvNdV6fTHcIr4QAKvTrrgaa4zpXxlw3wfvm3bIdYuVbaW3qEeXWWuFwEC7
13cdLPEil04PhJPW/8q/S8T/2V6vEYvlrQMgPWbcTrCfZJ6KxNN5WQJzP/aJ0s9y
IWRizMx3fD+rgQGqE/HEqvSHX7ME2rhLHIHkpAw+q/KV97t76W6n8QOKFAtrwD1+
dcgcuCVdQmra2/RzC/fu028vyFJ63ZBoNyJzD/6MfyseskUL3EYfimiKOnZpXBz0
BeLa8Dyc7UgiTg3yoXJU7+m2V80r+4oBD2kbs+eMBWwY1a/fUzLe3xITxKprBp2c
lKyap/sUJJIs17fsr1VpmoCnyQCFUzDVdms9kU8RaivwVCpCqSdtPNLkiqXZmhqX
DKJ3P2xBDdwz/SH30/fIL+S7o43LfjVl2CbEdj6/t1HN/0iPRWt2BTr/HtoGt+t+
fWedzx0pfwl8C4dd9Ac3aGojnT9UwB4Na9pPVSsLgK5SuXT0pRYU4tpZ46oZNirt
bJBFcR9xrLWcH+a9k5HydruPXf6sCVmV/kwUB+mngECeiifEP2ILQN1psyls66+w
BKwrQlYKf4wJf3EfsV7soPa+GLL0rQLpLV8P+O5UHJ0W62VCzetpKonDVyuxA13o
jCFC+POP4c0dGo4sfGk5IDeh7s0z/PIpd/VjG/sgHt2AU2QWy2FOItxM+eYPq9SN
=2gPy
-----END PGP SIGNATURE-----
diff mbox

Patch

diff --git a/stubdom/grub.patches/11graphics-keyboard.diff b/stubdom/grub.patches/11graphics-keyboard.diff
new file mode 100644
index 0000000..fe17b20
--- /dev/null
+++ b/stubdom/grub.patches/11graphics-keyboard.diff
@@ -0,0 +1,13 @@ 
+diff --git a/stage2/stage2.c b/stage2/stage2.c
+index 9d9fcc3..8353a3b 100644
+--- a/stage2/stage2.c
++++ b/stage2/stage2.c
+@@ -395,7 +395,7 @@ restart:
+ 	 pressed.  
+ 	 This avoids polling (relevant in the grub-shell and later on
+ 	 in grub if interrupt driven I/O is done).  */
+-      if (checkkey () >= 0 || grub_timeout < 0)
++      if (checkkey () > 0 || grub_timeout < 0)
+ 	{
+ 	  /* Key was pressed, show which entry is selected before GETKEY,
+ 	     since we're comming in here also on GRUB_TIMEOUT == -1 and