diff mbox series

minios: Revert recent change and revert to working minios

Message ID 20200904160034.11456-1-iwj@xenproject.org (mailing list archive)
State New, archived
Headers show
Series minios: Revert recent change and revert to working minios | expand

Commit Message

Ian Jackson Sept. 4, 2020, 4 p.m. UTC
Currently, xen.git#staging does not build in many environments because
of issues with minios master.  This regression was introduced in an
uncontrolled manner by an update to mini-os.git#master.

This is because in e013e8514389 "config: use mini-os master for
unstable" we switched to tracking minios master in an uncontrolled
manner.  At the time we thought it was unlikely that minios changes
would break the Xen build.  This turns out to have been overly
optimistic.

Xen currently uses unstable internal interfaces of minios.  Until this
can be sorted out, internal changes to minios can require lockstep
changes in Xen.

All this means that "config: use mini-os master for unstable" was
wrong.  We should undo it.  Instead, we go back to the previous
situation: xen.git names a specific minios commit.

This scheme is the model used for qemu-xen-traditional.

That nailed commit must be updated manually, to have xen.git pick up
changes from minios.  If the minios changes require changes in xen.git
too, to avoid breaking the Xen build, they can be made freely in
minios without adverse consequences.  When the minios commitid is
updated in xen.git, the corresponding changes to the actual source
files in xen.git should be bundled together.

For example, when minios is fixed, 8d990807ec2c "stubdom/grub: update
init_netfront() call for mini-os" will need to be reapplied, folded
into the same commit as updates MINIOS_UPSTREAM_REVISION.  For now
that commit must be reverted as we are going back to a previous
version of minios.

This reverts commit 8d990807ec2cde3061222a5ed2df62aba78bace9.
This reverts commit e013e8514389b739153016349e49f5a78e34ddf0.

CC: Jan Beulich <jbeulich@suse.com>
CC: Costin Lupu <costin.lupu@cs.pub.ro>
CC: Wei Liu <wl@xen.org>
CC: Samuel Thibault <samuel.thibault@ens-lyon.org>
Signed-off-by: Ian Jackson <iwj@xenproject.org>
---
 Config.mk              | 2 +-
 stubdom/grub/mini-os.c | 4 +++-
 2 files changed, 4 insertions(+), 2 deletions(-)

Comments

Ian Jackson Sept. 4, 2020, 4:50 p.m. UTC | #1
Jan Beulich writes ("Re: [xen-unstable test] 153602: regressions - FAIL"):
> Actually, with also reverting 8d990807ec2c in the main tree (along with
> effectively reverting e013e8514389, which comes down to the same as Ian
> suggested for 165f3afbfc3d), and with its future re-installment at the
> same time bumping the mini-os commit to use, things ought to work I
> would think. That would then be the same model again as used for
> qemu-trad.

I implemented this here:

Ian Jackson writes ("[PATCH] minios: Revert recent change and revert to working minios"):
> Currently, xen.git#staging does not build in many environments because
> of issues with minios master.  This regression was introduced in an
> uncontrolled manner by an update to mini-os.git#master.

I don't have any formal acks for this but, having build-tested it, I
am going to push it now, because the build is broken.

Ian.
Wei Liu Sept. 4, 2020, 5:35 p.m. UTC | #2
On Fri, Sep 04, 2020 at 05:50:28PM +0100, Ian Jackson wrote:
> Jan Beulich writes ("Re: [xen-unstable test] 153602: regressions - FAIL"):
> > Actually, with also reverting 8d990807ec2c in the main tree (along with
> > effectively reverting e013e8514389, which comes down to the same as Ian
> > suggested for 165f3afbfc3d), and with its future re-installment at the
> > same time bumping the mini-os commit to use, things ought to work I
> > would think. That would then be the same model again as used for
> > qemu-trad.
> 
> I implemented this here:
> 
> Ian Jackson writes ("[PATCH] minios: Revert recent change and revert to working minios"):
> > Currently, xen.git#staging does not build in many environments because
> > of issues with minios master.  This regression was introduced in an
> > uncontrolled manner by an update to mini-os.git#master.
> 
> I don't have any formal acks for this but, having build-tested it, I
> am going to push it now, because the build is broken.

Thanks for handling this.

Wei.

> 
> Ian.
Jason Long Sept. 4, 2020, 10:01 p.m. UTC | #3
Hello,Can anyone tell me about the goal and features of Mini-OS?

Sent from Yahoo Mail on Android 
 
  On Fri, Sep 4, 2020 at 8:31 PM, Ian Jackson<iwj@xenproject.org> wrote:   Currently, xen.git#staging does not build in many environments because
of issues with minios master.  This regression was introduced in an
uncontrolled manner by an update to mini-os.git#master.

This is because in e013e8514389 "config: use mini-os master for
unstable" we switched to tracking minios master in an uncontrolled
manner.  At the time we thought it was unlikely that minios changes
would break the Xen build.  This turns out to have been overly
optimistic.

Xen currently uses unstable internal interfaces of minios.  Until this
can be sorted out, internal changes to minios can require lockstep
changes in Xen.

All this means that "config: use mini-os master for unstable" was
wrong.  We should undo it.  Instead, we go back to the previous
situation: xen.git names a specific minios commit.

This scheme is the model used for qemu-xen-traditional.

That nailed commit must be updated manually, to have xen.git pick up
changes from minios.  If the minios changes require changes in xen.git
too, to avoid breaking the Xen build, they can be made freely in
minios without adverse consequences.  When the minios commitid is
updated in xen.git, the corresponding changes to the actual source
files in xen.git should be bundled together.

For example, when minios is fixed, 8d990807ec2c "stubdom/grub: update
init_netfront() call for mini-os" will need to be reapplied, folded
into the same commit as updates MINIOS_UPSTREAM_REVISION.  For now
that commit must be reverted as we are going back to a previous
version of minios.

This reverts commit 8d990807ec2cde3061222a5ed2df62aba78bace9.
This reverts commit e013e8514389b739153016349e49f5a78e34ddf0.

CC: Jan Beulich <jbeulich@suse.com>
CC: Costin Lupu <costin.lupu@cs.pub.ro>
CC: Wei Liu <wl@xen.org>
CC: Samuel Thibault <samuel.thibault@ens-lyon.org>
Signed-off-by: Ian Jackson <iwj@xenproject.org>
---
 Config.mk              | 2 +-
 stubdom/grub/mini-os.c | 4 +++-
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/Config.mk b/Config.mk
index 8269503f73..db434ee2c6 100644
--- a/Config.mk
+++ b/Config.mk
@@ -246,7 +246,7 @@ MINIOS_UPSTREAM_URL ?= git://xenbits.xen.org/mini-os.git
 endif
 OVMF_UPSTREAM_REVISION ?= a3741780fe3535e19e02efa869a7cac481891129
 QEMU_UPSTREAM_REVISION ?= master
-MINIOS_UPSTREAM_REVISION ?= master
+MINIOS_UPSTREAM_REVISION ?= 0b4b7897e08b967a09bed2028a79fabff82342dd
 
 SEABIOS_UPSTREAM_REVISION ?= rel-1.14.0
 
diff --git a/stubdom/grub/mini-os.c b/stubdom/grub/mini-os.c
index b33dbf02fb..4fc052a255 100644
--- a/stubdom/grub/mini-os.c
+++ b/stubdom/grub/mini-os.c
@@ -291,6 +291,8 @@ struct netfront_dev *net_dev;
 int
 minios_probe (struct nic *nic)
 {
+    char *ip;
+
    if (net_dev)
        return 1;
 
@@ -298,7 +300,7 @@ minios_probe (struct nic *nic)
    grub_memset ((char *) arptable, 0,
                  MAX_ARP * sizeof (struct arptable_t));
 
-    net_dev = init_netfront(NULL, (void*) -1, nic->node_addr, NULL, NULL, NULL);
+    net_dev = init_netfront(NULL, (void*) -1, nic->node_addr, &ip);
    if (!net_dev)
        return 0;
Jürgen Groß Sept. 5, 2020, 4:50 a.m. UTC | #4
On 04.09.20 18:50, Ian Jackson wrote:
> Jan Beulich writes ("Re: [xen-unstable test] 153602: regressions - FAIL"):
>> Actually, with also reverting 8d990807ec2c in the main tree (along with
>> effectively reverting e013e8514389, which comes down to the same as Ian
>> suggested for 165f3afbfc3d), and with its future re-installment at the
>> same time bumping the mini-os commit to use, things ought to work I
>> would think. That would then be the same model again as used for
>> qemu-trad.
> 
> I implemented this here:
> 
> Ian Jackson writes ("[PATCH] minios: Revert recent change and revert to working minios"):
>> Currently, xen.git#staging does not build in many environments because
>> of issues with minios master.  This regression was introduced in an
>> uncontrolled manner by an update to mini-os.git#master.
> 
> I don't have any formal acks for this but, having build-tested it, I
> am going to push it now, because the build is broken.

Any reason you selected the 4.13 tag instead of the 4.14 one?

Would you even consider using d8a7bd2430a590a958f3c17fc1b2f7f563a04db2
in order not to block my libbuild series?


Juergen
Samuel Thibault Sept. 5, 2020, 6:12 p.m. UTC | #5
Hello,

Jason Long, le ven. 04 sept. 2020 22:01:42 +0000, a ecrit:
> Can anyone tell me about the goal and features of Mini-OS?

https://wiki.xen.org/wiki/Mini-OS

Samuel
Jason Long Sept. 5, 2020, 9:02 p.m. UTC | #6
What is the difference with Unikraft?

Sent from Yahoo Mail on Android 
 
  On Sat, Sep 5, 2020 at 10:43 PM, Samuel Thibault<samuel.thibault@ens-lyon.org> wrote:   Hello,

Jason Long, le ven. 04 sept. 2020 22:01:42 +0000, a ecrit:
> Can anyone tell me about the goal and features of Mini-OS?

https://wiki.xen.org/wiki/Mini-OS

Samuel
Samuel Thibault Sept. 5, 2020, 9:35 p.m. UTC | #7
Jason Long, le sam. 05 sept. 2020 21:02:16 +0000, a ecrit:
> What is the difference with Unikraft?

Unikraft is originally based on MiniOS, and AIUI is actively being
worked on while MiniOS is mostly only maintained.

Samuel
diff mbox series

Patch

diff --git a/Config.mk b/Config.mk
index 8269503f73..db434ee2c6 100644
--- a/Config.mk
+++ b/Config.mk
@@ -246,7 +246,7 @@  MINIOS_UPSTREAM_URL ?= git://xenbits.xen.org/mini-os.git
 endif
 OVMF_UPSTREAM_REVISION ?= a3741780fe3535e19e02efa869a7cac481891129
 QEMU_UPSTREAM_REVISION ?= master
-MINIOS_UPSTREAM_REVISION ?= master
+MINIOS_UPSTREAM_REVISION ?= 0b4b7897e08b967a09bed2028a79fabff82342dd
 
 SEABIOS_UPSTREAM_REVISION ?= rel-1.14.0
 
diff --git a/stubdom/grub/mini-os.c b/stubdom/grub/mini-os.c
index b33dbf02fb..4fc052a255 100644
--- a/stubdom/grub/mini-os.c
+++ b/stubdom/grub/mini-os.c
@@ -291,6 +291,8 @@  struct netfront_dev *net_dev;
 int
 minios_probe (struct nic *nic)
 {
+    char *ip;
+
     if (net_dev)
         return 1;
 
@@ -298,7 +300,7 @@  minios_probe (struct nic *nic)
     grub_memset ((char *) arptable, 0,
                  MAX_ARP * sizeof (struct arptable_t));
 
-    net_dev = init_netfront(NULL, (void*) -1, nic->node_addr, NULL, NULL, NULL);
+    net_dev = init_netfront(NULL, (void*) -1, nic->node_addr, &ip);
     if (!net_dev)
         return 0;