Message ID | alpine.DEB.2.02.1411051645140.22875@kaball.uk.xensource.com |
---|---|
State | New |
Headers | show |
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 >>
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 > >
-----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 --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