On 25/09/18 07:45, osstest service owner wrote:
> branch xen-unstable-smoke
> xenbranch xen-unstable-smoke
> job test-arm64-arm64-xl-xsm
> testid xen-boot
>
> Tree: linux git://xenbits.xen.org/linux-pvops.git
> Tree: linuxfirmware git://xenbits.xen.org/osstest/linux-firmware.git
> Tree: qemuu git://xenbits.xen.org/qemu-xen.git
> Tree: xen git://xenbits.xen.org/xen.git
>
> *** Found and reproduced problem changeset ***
>
>   Bug is in tree:  xen git://xenbits.xen.org/xen.git
>   Bug introduced:  cd8015b634b005a3911bd6025351cd854d63a82a
>   Bug not present: 17bd254a508f4174fe0d56a9f1b9892b7649b4b9
>   Last fail repro: http://logs.test-lab.xenproject.org/osstest/logs/128044/
>
>
>   commit cd8015b634b005a3911bd6025351cd854d63a82a
>   Author: Andrew Cooper <[email protected]>
>   Date:   Mon Sep 24 14:00:02 2018 +0100
>   
>       ARM/dom0: Avoid using a variable length array in make_memory_node()
>       
>       The reg[] array can have a maximum size of 8 in practice, so use the 
> worst
>       case calculation rather than making it variable length.
>       
>       Signed-off-by: Andrew Cooper <[email protected]>
>       Reviewed-by: Julien Grall <[email protected]>
>
>
> For bisection revision-tuple graph see:
>    
> http://logs.test-lab.xenproject.org/osstest/results/bisect/xen-unstable-smoke/test-arm64-arm64-xl-xsm.xen-boot.html
> Revision IDs in each graph node refer, respectively, to the Trees above.
>
> ----------------------------------------
> Running cs-bisection-step 
> --graph-out=/home/logs/results/bisect/xen-unstable-smoke/test-arm64-arm64-xl-xsm.xen-boot
>  --summary-out=tmp/128044.bisection-summary --basis-template=127928 
> --blessings=real,real-bisect xen-unstable-smoke test-arm64-arm64-xl-xsm 
> xen-boot
> Searching for failure / basis pass:
>  128038 fail [host=laxton1] / 127928 ok.
> Failure / basis pass flights: 128038 / 127928
> Tree: linux git://xenbits.xen.org/linux-pvops.git
> Tree: linuxfirmware git://xenbits.xen.org/osstest/linux-firmware.git
> Tree: qemuu git://xenbits.xen.org/qemu-xen.git
> Tree: xen git://xenbits.xen.org/xen.git
> Latest 50484ee133c2219a26fd98b39770187221b5e0bc 
> c530a75c1e6a472b0eb9558310b518f0dfcd8860 
> de5b678ca4dcdfa83e322491d478d66df56c1986 
> 1bd9cc34e152addeacbbf44898125c7be00e7677
> Basis pass 50484ee133c2219a26fd98b39770187221b5e0bc 
> c530a75c1e6a472b0eb9558310b518f0dfcd8860 
> de5b678ca4dcdfa83e322491d478d66df56c1986 
> 940185b2f6f343251c2b83bd96e599398cea51ec
> Generating revisions with ./adhoc-revtuple-generator  
> git://xenbits.xen.org/linux-pvops.git#50484ee133c2219a26fd98b39770187221b5e0bc-50484ee133c2219a26fd98b39770187221b5e0bc
>  
> git://xenbits.xen.org/osstest/linux-firmware.git#c530a75c1e6a472b0eb9558310b518f0dfcd8860-c530a75c1e6a472b0eb9558310b518f0dfcd8860
>  
> git://xenbits.xen.org/qemu-xen.git#de5b678ca4dcdfa83e322491d478d66df56c1986-de5b678ca4dcdfa83e322491d478d66df56c1986
>  
> git://xenbits.xen.org/xen.git#940185b2f6f343251c2b83bd96e599398cea51ec-1bd9cc34e152addeacbbf44898125c7be00e7677
> Loaded 1001 nodes in revision graph
> Searching for test results:
>  127928 pass 50484ee133c2219a26fd98b39770187221b5e0bc 
> c530a75c1e6a472b0eb9558310b518f0dfcd8860 
> de5b678ca4dcdfa83e322491d478d66df56c1986 
> 940185b2f6f343251c2b83bd96e599398cea51ec
>  128013 fail 50484ee133c2219a26fd98b39770187221b5e0bc 
> c530a75c1e6a472b0eb9558310b518f0dfcd8860 
> de5b678ca4dcdfa83e322491d478d66df56c1986 
> cd8015b634b005a3911bd6025351cd854d63a82a
>  128019 fail 50484ee133c2219a26fd98b39770187221b5e0bc 
> c530a75c1e6a472b0eb9558310b518f0dfcd8860 
> de5b678ca4dcdfa83e322491d478d66df56c1986 
> 1bd9cc34e152addeacbbf44898125c7be00e7677
>  128017 pass 50484ee133c2219a26fd98b39770187221b5e0bc 
> c530a75c1e6a472b0eb9558310b518f0dfcd8860 
> de5b678ca4dcdfa83e322491d478d66df56c1986 
> 940185b2f6f343251c2b83bd96e599398cea51ec
>  128020 fail 50484ee133c2219a26fd98b39770187221b5e0bc 
> c530a75c1e6a472b0eb9558310b518f0dfcd8860 
> de5b678ca4dcdfa83e322491d478d66df56c1986 
> cd8015b634b005a3911bd6025351cd854d63a82a
>  128023 pass 50484ee133c2219a26fd98b39770187221b5e0bc 
> c530a75c1e6a472b0eb9558310b518f0dfcd8860 
> de5b678ca4dcdfa83e322491d478d66df56c1986 
> 17bd254a508f4174fe0d56a9f1b9892b7649b4b9
>  128026 pass 50484ee133c2219a26fd98b39770187221b5e0bc 
> c530a75c1e6a472b0eb9558310b518f0dfcd8860 
> de5b678ca4dcdfa83e322491d478d66df56c1986 
> 940185b2f6f343251c2b83bd96e599398cea51ec
>  128025 fail 50484ee133c2219a26fd98b39770187221b5e0bc 
> c530a75c1e6a472b0eb9558310b518f0dfcd8860 
> de5b678ca4dcdfa83e322491d478d66df56c1986 
> 1bd9cc34e152addeacbbf44898125c7be00e7677
>  128027 fail 50484ee133c2219a26fd98b39770187221b5e0bc 
> c530a75c1e6a472b0eb9558310b518f0dfcd8860 
> de5b678ca4dcdfa83e322491d478d66df56c1986 
> 1bd9cc34e152addeacbbf44898125c7be00e7677
>  128029 fail 50484ee133c2219a26fd98b39770187221b5e0bc 
> c530a75c1e6a472b0eb9558310b518f0dfcd8860 
> de5b678ca4dcdfa83e322491d478d66df56c1986 
> 1bd9cc34e152addeacbbf44898125c7be00e7677
>  128032 fail 50484ee133c2219a26fd98b39770187221b5e0bc 
> c530a75c1e6a472b0eb9558310b518f0dfcd8860 
> de5b678ca4dcdfa83e322491d478d66df56c1986 
> cd8015b634b005a3911bd6025351cd854d63a82a
>  128034 pass 50484ee133c2219a26fd98b39770187221b5e0bc 
> c530a75c1e6a472b0eb9558310b518f0dfcd8860 
> de5b678ca4dcdfa83e322491d478d66df56c1986 
> 17bd254a508f4174fe0d56a9f1b9892b7649b4b9
>  128039 fail 50484ee133c2219a26fd98b39770187221b5e0bc 
> c530a75c1e6a472b0eb9558310b518f0dfcd8860 
> de5b678ca4dcdfa83e322491d478d66df56c1986 
> cd8015b634b005a3911bd6025351cd854d63a82a
>  128038 fail 50484ee133c2219a26fd98b39770187221b5e0bc 
> c530a75c1e6a472b0eb9558310b518f0dfcd8860 
> de5b678ca4dcdfa83e322491d478d66df56c1986 
> 1bd9cc34e152addeacbbf44898125c7be00e7677
>  128042 pass 50484ee133c2219a26fd98b39770187221b5e0bc 
> c530a75c1e6a472b0eb9558310b518f0dfcd8860 
> de5b678ca4dcdfa83e322491d478d66df56c1986 
> 17bd254a508f4174fe0d56a9f1b9892b7649b4b9
>  128044 fail 50484ee133c2219a26fd98b39770187221b5e0bc 
> c530a75c1e6a472b0eb9558310b518f0dfcd8860 
> de5b678ca4dcdfa83e322491d478d66df56c1986 
> cd8015b634b005a3911bd6025351cd854d63a82a
> Searching for interesting versions
>  Result found: flight 127928 (pass), for basis pass
>  Result found: flight 128019 (fail), for basis failure
>  Repro found: flight 128026 (pass), for basis pass
>  Repro found: flight 128027 (fail), for basis failure
>  0 revisions at 50484ee133c2219a26fd98b39770187221b5e0bc 
> c530a75c1e6a472b0eb9558310b518f0dfcd8860 
> de5b678ca4dcdfa83e322491d478d66df56c1986 
> 17bd254a508f4174fe0d56a9f1b9892b7649b4b9
> No revisions left to test, checking graph state.
>  Result found: flight 128023 (pass), for last pass
>  Result found: flight 128032 (fail), for first failure
>  Repro found: flight 128034 (pass), for last pass
>  Repro found: flight 128039 (fail), for first failure
>  Repro found: flight 128042 (pass), for last pass
>  Repro found: flight 128044 (fail), for first failure
>
> *** Found and reproduced problem changeset ***
>
>   Bug is in tree:  xen git://xenbits.xen.org/xen.git
>   Bug introduced:  cd8015b634b005a3911bd6025351cd854d63a82a
>   Bug not present: 17bd254a508f4174fe0d56a9f1b9892b7649b4b9
>   Last fail repro: http://logs.test-lab.xenproject.org/osstest/logs/128044/
>
>
>   commit cd8015b634b005a3911bd6025351cd854d63a82a
>   Author: Andrew Cooper <[email protected]>
>   Date:   Mon Sep 24 14:00:02 2018 +0100
>   
>       ARM/dom0: Avoid using a variable length array in make_memory_node()
>       
>       The reg[] array can have a maximum size of 8 in practice, so use the 
> worst
>       case calculation rather than making it variable length.
>       
>       Signed-off-by: Andrew Cooper <[email protected]>
>       Reviewed-by: Julien Grall <[email protected]>

So obviously this change has broken something, but it is not obvious what.

The fully diff is:

diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index 38e0de3..ac8d479 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -539,9 +539,11 @@ static int __init make_memory_node(const struct domain *d,
     int res, i;
     int reg_size = addrcells + sizecells;
     int nr_cells = reg_size*kinfo->mem.nr_banks;
-    __be32 reg[nr_cells];
+    __be32 reg[NR_MEM_BANKS * 4 /* Worst case addrcells + sizecells */];
     __be32 *cells;
 
+    BUG_ON(nr_cells >= ARRAY_SIZE(reg));
+
     dt_dprintk("Create memory node (reg size %d, nr cells %d)\n",
                reg_size, nr_cells);


and the BUG_ON() is not tripping.  Boot continues, and d0v0 appears to
be doing something but (presumably?) not making any progress.

Sadly at this point, my best guess is that there is/was some Undefined
Behaviour which is now being optimised differently.

~andrew

_______________________________________________
Xen-devel mailing list
[email protected]
https://lists.xenproject.org/mailman/listinfo/xen-devel

Reply via email to