[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [adhoc xen-unstable bisection] complete test-amd64-i386-xl



This is the result of the bisection of the migration issue with 32-bit on
Linux 4.1 onwards.

This is just for info as I believe the issue is already under discussion
etc elsewhere.

I've copied the final graph to 
http://xenbits.xen.org/people/ianc/tmp/adhoc/test-amd64-i386-xl..html

Ian.


On Sun, 2015-09-06 at 04:44 +0100, Platform Team regression test user wrote:
> branch xen-unstable
> xen branch xen-unstable
> job test-amd64-i386-xl
> test guest-saverestore
> 
> Tree: linux git://xenbits.xen.org/linux-pvops.git
> Tree: linuxfirmware git://xenbits.xen.org/osstest/linux-firmware.git
> Tree: qemu git://xenbits.xen.org/staging/qemu-xen-unstable.git
> Tree: qemuu git://xenbits.xen.org/staging/qemu-upstream-unstable.git
> Tree: xen git://xenbits.xen.org/xen.git

[...snip first pass blaming a merge changeset which I aborted but was still 
reported here...]

> *** Found and reproduced problem changeset ***
> 
>   Bug is in tree:  linux git://xenbits.xen.org/linux-pvops.git
>   Bug introduced:  132978b94e66f8ad7d20790f8332f0e9c1426029
>   Bug not present: fbe1bf140671619508dfa575d74a185ae53c5dbb
> 
> 
>   commit 132978b94e66f8ad7d20790f8332f0e9c1426029
>   Author: Jan Beulich <JBeulich@xxxxxxxx>
>   Date:   Fri Dec 19 16:10:54 2014 +0000
>   
>       x86: Fix step size adjustment during initial memory mapping
>       
>       The old scheme can lead to failure in certain cases - the
>       problem is that after bumping step_size the next (non-final)
>       iteration is only guaranteed to make available a memory block
>       the size of what step_size was before. E.g. for a memory block
>       [0,3004600000) we'd have:
>       
>        iter>  > start>        >       > end>  >       > step>         >       
> > amount
>        1>     > 3004400000>   > 30045fffff>   >  2M>  >       >   2M
>        2>     > 3004000000>   > 30043fffff>   > 64M>  >       >   4M
>        3>     > 3000000000>   > 3003ffffff>   >  2G>  >       >  64M
>        4>     > 2000000000>   > 2fffffffff>   > 64G>  >       >  64G
>       
>       Yet to map 64G with 4k pages (as happens e.g. under PV Xen) we
>       need slightly over 128M, but the first three iterations made
>       only about 70M available.
>       
>       The condition (new_mapped_ram_size > mapped_ram_size) for
>       bumping step_size is just not suitable. Instead we want to bump
>       it when we know we have enough memory available to cover a block
>       of the new step_size. And rather than making that condition more
>       complicated than needed, simply adjust step_size by the largest
>       possible factor we know we can cover at that point - which is
>       shifting it left by one less than the difference between page
>       table level shifts. (Interestingly the original STEP_SIZE_SHIFT
>       definition had a comment hinting at that having been the
>       intention, just that it should have been PUD_SHIFT-PMD_SHIFT-1
>       instead of (PUD_SHIFT-PMD_SHIFT)/2, and of course for non-PAE
>       32-bit we can't really use these two constants as they're equal
>       there.)
>       
>       Furthermore the comment in get_new_step_size() didn't get
>       updated when the bottom-down mapping logic got added. Yet while
>       an overflow (flushing step_size to zero) of the shift doesn't
>       matter for the top-down method, it does for bottom-up because
>       round_up(x, 0) = 0, and an upper range boundary of zero can't
>       really work well.
>       
>       Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx>
>       Acked-by: Yinghai Lu <yinghai@xxxxxxxxxx>
>       Link: 
> http://lkml.kernel.org/r/54945C1E020000780005114E@xxxxxxxxxxxxxxxxxxxx
>       Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
> 
> 
> For bisection revision-tuple graph see:
>    
> http://osstest.xs.citrite.net/~osstest/testlogs/results-adhoc/bisect/xen-unstable/test-amd64-i386-xl..html
> Revision IDs in each graph node refer, respectively, to the Trees above.
> 
> ----------------------------------------
> Searching for failure / basis pass:
>  37864 fail [host=rice-weevil] / 37863 ok.
> Failure / basis pass flights: 37864 / 37863
> (tree with no url: ovmf)
> (tree with no url: seabios)
> Tree: linux git://xenbits.xen.org/linux-pvops.git
> Tree: linuxfirmware git://xenbits.xen.org/osstest/linux-firmware.git
> Tree: qemu git://xenbits.xen.org/staging/qemu-xen-unstable.git
> Tree: qemuu git://xenbits.xen.org/staging/qemu-upstream-unstable.git
> Tree: xen git://xenbits.xen.org/xen.git
> Latest eaa27f34e91a14cdceed26ed6c6793ec1d186115 
> c530a75c1e6a472b0eb9558310b518f0dfcd8860 
> 7f057440b31da38196e3398fd1b618fc36ad97d6 
> bcf35eec0b621c46dbf0aeb40c6bc06b5d3981aa 
> 145a8004a7d659668d5a3b0ad9868d7678b24822
> Basis pass 97bf6af1f928216fd6c5a66e8a57bfa95a659672 
> c530a75c1e6a472b0eb9558310b518f0dfcd8860 
> 7f057440b31da38196e3398fd1b618fc36ad97d6 
> bcf35eec0b621c46dbf0aeb40c6bc06b5d3981aa 
> 145a8004a7d659668d5a3b0ad9868d7678b24822
> Generating revisions with ./adhoc-revtuple-generator  
> git://xenbits.xen.org/linux-pvops.git#97bf6af1f928216fd6c5a66e8a57bfa95a659672-eaa27f34e91a14cdceed26ed6c6793ec1d186115
>  
> git://xenbits.xen.org/osstest/linux-firmware.git#c530a75c1e6a472b0eb9558310b518f0dfcd8860-c530a75c1e6a472b0eb9558310b518f0dfcd8860
>  
> git://xenbits.xen.org/staging/qemu-xen-unstable.git#7f057440b31da38196e3398fd1b618fc36ad97d6-7f057440b31da38196e3398fd1b618fc36ad97d6
>  
> git://xenbits.xen.org/staging/qemu-upstream-unstable.git#bcf35eec0b621c46dbf0aeb40c6bc06b5d3981aa-bcf35eec0b621c46dbf0aeb40c6bc06b5d3981aa
>  
> git://xenbits.xen.org/xen.git#145a8004a7d659668d5a3b0ad9868d7678b24822-145a8004a7d659668d5a3b0ad9868d7678b24822
> + exec
> + sh -xe
> + cd /export/home/osstest/repos/linux-pvops
> + git remote set-url origin 
> git://drall.uk.xensource.com:9419/git://xenbits.xen.org/linux-pvops.git
> + git fetch -p origin +refs/heads/*:refs/remotes/origin/*
> + exec
> + sh -xe
> + cd /export/home/osstest/repos/linux-pvops
> + git remote set-url origin 
> git://drall.uk.xensource.com:9419/git://xenbits.xen.org/linux-pvops.git
> + git fetch -p origin +refs/heads/*:refs/remotes/origin/*
> Loaded 1103 nodes in revision graph
> Searching for test results:
>  34279 [host=worm-moth]
>  37011 [host=bush-cricket]
>  37043 [host=grain-weevil]
>  37077 [host=scape-moth]
>  37289 [host=lace-bug]
>  37292 [host=bush-cricket]
>  37295 [host=scape-moth]
>  37298 pass irrelevant
>  37326 [host=moss-bug]
>  37331 [host=lace-bug]
>  37332 [host=itch-mite]
>  37377 [host=leaf-beetle]
>  37415 [host=grain-weevil]
>  37473 [host=gall-mite]
>  37484 [host=potato-beetle]
>  37536 []
>  37546 [host=lace-bug]
>  37552 [host=scape-moth]
>  37589 pass irrelevant
>  37719 [host=grain-weevil]
>  37711 pass irrelevant
>  37748 [host=potato-beetle]
>  37736 [host=scape-moth]
>  37751 [host=gall-mite]
>  37760 [host=grain-weevil]
>  37863 pass 97bf6af1f928216fd6c5a66e8a57bfa95a659672 
> c530a75c1e6a472b0eb9558310b518f0dfcd8860 
> 7f057440b31da38196e3398fd1b618fc36ad97d6 
> bcf35eec0b621c46dbf0aeb40c6bc06b5d3981aa 
> 145a8004a7d659668d5a3b0ad9868d7678b24822
>  37865 pass b7392d2247cfe6771f95d256374f1a8e6a6f48d6 
> c530a75c1e6a472b0eb9558310b518f0dfcd8860 
> 7f057440b31da38196e3398fd1b618fc36ad97d6 
> bcf35eec0b621c46dbf0aeb40c6bc06b5d3981aa 
> 145a8004a7d659668d5a3b0ad9868d7678b24822
>  37874 fail eaa27f34e91a14cdceed26ed6c6793ec1d186115 
> c530a75c1e6a472b0eb9558310b518f0dfcd8860 
> 7f057440b31da38196e3398fd1b618fc36ad97d6 
> bcf35eec0b621c46dbf0aeb40c6bc06b5d3981aa 
> 145a8004a7d659668d5a3b0ad9868d7678b24822
>  37875 pass b1940cd21c0f4abdce101253e860feff547291b0 
> c530a75c1e6a472b0eb9558310b518f0dfcd8860 
> 7f057440b31da38196e3398fd1b618fc36ad97d6 
> bcf35eec0b621c46dbf0aeb40c6bc06b5d3981aa 
> 145a8004a7d659668d5a3b0ad9868d7678b24822
>  37877 blocked aa9291355e19f804570466756ed7d874cd2e99ff 
> c530a75c1e6a472b0eb9558310b518f0dfcd8860 
> 7f057440b31da38196e3398fd1b618fc36ad97d6 
> bcf35eec0b621c46dbf0aeb40c6bc06b5d3981aa 
> 145a8004a7d659668d5a3b0ad9868d7678b24822
>  37867 pass b1940cd21c0f4abdce101253e860feff547291b0 
> c530a75c1e6a472b0eb9558310b518f0dfcd8860 
> 7f057440b31da38196e3398fd1b618fc36ad97d6 
> bcf35eec0b621c46dbf0aeb40c6bc06b5d3981aa 
> 145a8004a7d659668d5a3b0ad9868d7678b24822
>  37864 fail eaa27f34e91a14cdceed26ed6c6793ec1d186115 
> c530a75c1e6a472b0eb9558310b518f0dfcd8860 
> 7f057440b31da38196e3398fd1b618fc36ad97d6 
> bcf35eec0b621c46dbf0aeb40c6bc06b5d3981aa 
> 145a8004a7d659668d5a3b0ad9868d7678b24822
>  37876 fail eaa27f34e91a14cdceed26ed6c6793ec1d186115 
> c530a75c1e6a472b0eb9558310b518f0dfcd8860 
> 7f057440b31da38196e3398fd1b618fc36ad97d6 
> bcf35eec0b621c46dbf0aeb40c6bc06b5d3981aa 
> 145a8004a7d659668d5a3b0ad9868d7678b24822
>  37881 pass 11c8f01b423b2d9742ce21e44cb7da7b55429ad5 
> c530a75c1e6a472b0eb9558310b518f0dfcd8860 
> 7f057440b31da38196e3398fd1b618fc36ad97d6 
> bcf35eec0b621c46dbf0aeb40c6bc06b5d3981aa 
> 145a8004a7d659668d5a3b0ad9868d7678b24822
>  37887 blocked 75069f2b5bfb5164beafaf3da597279c25b5535a 
> c530a75c1e6a472b0eb9558310b518f0dfcd8860 
> 7f057440b31da38196e3398fd1b618fc36ad97d6 
> bcf35eec0b621c46dbf0aeb40c6bc06b5d3981aa 
> 145a8004a7d659668d5a3b0ad9868d7678b24822
>  37888 blocked eb74926920cfa756087a82e0b081df837177cb95 
> c530a75c1e6a472b0eb9558310b518f0dfcd8860 
> 7f057440b31da38196e3398fd1b618fc36ad97d6 
> bcf35eec0b621c46dbf0aeb40c6bc06b5d3981aa 
> 145a8004a7d659668d5a3b0ad9868d7678b24822
>  37892 blocked 03c751a5e10caafbb6d1afcaf1ea67f2153c3193 
> c530a75c1e6a472b0eb9558310b518f0dfcd8860 
> 7f057440b31da38196e3398fd1b618fc36ad97d6 
> bcf35eec0b621c46dbf0aeb40c6bc06b5d3981aa 
> 145a8004a7d659668d5a3b0ad9868d7678b24822
>  37893 pass b800c91a0517071156e772d4fb329ad33590da62 
> c530a75c1e6a472b0eb9558310b518f0dfcd8860 
> 7f057440b31da38196e3398fd1b618fc36ad97d6 
> bcf35eec0b621c46dbf0aeb40c6bc06b5d3981aa 
> 145a8004a7d659668d5a3b0ad9868d7678b24822
>  37894 pass ddb321a8dd158520d97ed1cbade1d4ac36b6af31 
> c530a75c1e6a472b0eb9558310b518f0dfcd8860 
> 7f057440b31da38196e3398fd1b618fc36ad97d6 
> bcf35eec0b621c46dbf0aeb40c6bc06b5d3981aa 
> 145a8004a7d659668d5a3b0ad9868d7678b24822
>  37895 fail 505569d208e61ab14f4b87957be0970ab33eb319 
> c530a75c1e6a472b0eb9558310b518f0dfcd8860 
> 7f057440b31da38196e3398fd1b618fc36ad97d6 
> bcf35eec0b621c46dbf0aeb40c6bc06b5d3981aa 
> 145a8004a7d659668d5a3b0ad9868d7678b24822
>  37896 pass 5ab551d662396f8437ec5aba12210b7a67eb492b 
> c530a75c1e6a472b0eb9558310b518f0dfcd8860 
> 7f057440b31da38196e3398fd1b618fc36ad97d6 
> bcf35eec0b621c46dbf0aeb40c6bc06b5d3981aa 
> 145a8004a7d659668d5a3b0ad9868d7678b24822
>  37898 fail 505569d208e61ab14f4b87957be0970ab33eb319 
> c530a75c1e6a472b0eb9558310b518f0dfcd8860 
> 7f057440b31da38196e3398fd1b618fc36ad97d6 
> bcf35eec0b621c46dbf0aeb40c6bc06b5d3981aa 
> 145a8004a7d659668d5a3b0ad9868d7678b24822
>  37861 pass irrelevant
>  37899 pass 5ab551d662396f8437ec5aba12210b7a67eb492b 
> c530a75c1e6a472b0eb9558310b518f0dfcd8860 
> 7f057440b31da38196e3398fd1b618fc36ad97d6 
> bcf35eec0b621c46dbf0aeb40c6bc06b5d3981aa 
> 145a8004a7d659668d5a3b0ad9868d7678b24822
>  37901 pass 97bf6af1f928216fd6c5a66e8a57bfa95a659672 
> c530a75c1e6a472b0eb9558310b518f0dfcd8860 
> 7f057440b31da38196e3398fd1b618fc36ad97d6 
> bcf35eec0b621c46dbf0aeb40c6bc06b5d3981aa 
> 145a8004a7d659668d5a3b0ad9868d7678b24822
>  37902 fail eaa27f34e91a14cdceed26ed6c6793ec1d186115 
> c530a75c1e6a472b0eb9558310b518f0dfcd8860 
> 7f057440b31da38196e3398fd1b618fc36ad97d6 
> bcf35eec0b621c46dbf0aeb40c6bc06b5d3981aa 
> 145a8004a7d659668d5a3b0ad9868d7678b24822
>  37903 fail ea174f4c4f6135e30a4e1e8c4511980338238b16 
> c530a75c1e6a472b0eb9558310b518f0dfcd8860 
> 7f057440b31da38196e3398fd1b618fc36ad97d6 
> bcf35eec0b621c46dbf0aeb40c6bc06b5d3981aa 
> 145a8004a7d659668d5a3b0ad9868d7678b24822
>  37904 pass fbe1bf140671619508dfa575d74a185ae53c5dbb 
> c530a75c1e6a472b0eb9558310b518f0dfcd8860 
> 7f057440b31da38196e3398fd1b618fc36ad97d6 
> bcf35eec0b621c46dbf0aeb40c6bc06b5d3981aa 
> 145a8004a7d659668d5a3b0ad9868d7678b24822
>  37905 fail 132978b94e66f8ad7d20790f8332f0e9c1426029 
> c530a75c1e6a472b0eb9558310b518f0dfcd8860 
> 7f057440b31da38196e3398fd1b618fc36ad97d6 
> bcf35eec0b621c46dbf0aeb40c6bc06b5d3981aa 
> 145a8004a7d659668d5a3b0ad9868d7678b24822
>  37907 fail 505569d208e61ab14f4b87957be0970ab33eb319 
> c530a75c1e6a472b0eb9558310b518f0dfcd8860 
> 7f057440b31da38196e3398fd1b618fc36ad97d6 
> bcf35eec0b621c46dbf0aeb40c6bc06b5d3981aa 
> 145a8004a7d659668d5a3b0ad9868d7678b24822
>  37908 pass 5ab551d662396f8437ec5aba12210b7a67eb492b 
> c530a75c1e6a472b0eb9558310b518f0dfcd8860 
> 7f057440b31da38196e3398fd1b618fc36ad97d6 
> bcf35eec0b621c46dbf0aeb40c6bc06b5d3981aa 
> 145a8004a7d659668d5a3b0ad9868d7678b24822
>  37909 fail 505569d208e61ab14f4b87957be0970ab33eb319 
> c530a75c1e6a472b0eb9558310b518f0dfcd8860 
> 7f057440b31da38196e3398fd1b618fc36ad97d6 
> bcf35eec0b621c46dbf0aeb40c6bc06b5d3981aa 
> 145a8004a7d659668d5a3b0ad9868d7678b24822
>  37910 pass fbe1bf140671619508dfa575d74a185ae53c5dbb 
> c530a75c1e6a472b0eb9558310b518f0dfcd8860 
> 7f057440b31da38196e3398fd1b618fc36ad97d6 
> bcf35eec0b621c46dbf0aeb40c6bc06b5d3981aa 
> 145a8004a7d659668d5a3b0ad9868d7678b24822
>  37911 fail 132978b94e66f8ad7d20790f8332f0e9c1426029 
> c530a75c1e6a472b0eb9558310b518f0dfcd8860 
> 7f057440b31da38196e3398fd1b618fc36ad97d6 
> bcf35eec0b621c46dbf0aeb40c6bc06b5d3981aa 
> 145a8004a7d659668d5a3b0ad9868d7678b24822
>  37912 pass fbe1bf140671619508dfa575d74a185ae53c5dbb 
> c530a75c1e6a472b0eb9558310b518f0dfcd8860 
> 7f057440b31da38196e3398fd1b618fc36ad97d6 
> bcf35eec0b621c46dbf0aeb40c6bc06b5d3981aa 
> 145a8004a7d659668d5a3b0ad9868d7678b24822
>  37914 fail 132978b94e66f8ad7d20790f8332f0e9c1426029 
> c530a75c1e6a472b0eb9558310b518f0dfcd8860 
> 7f057440b31da38196e3398fd1b618fc36ad97d6 
> bcf35eec0b621c46dbf0aeb40c6bc06b5d3981aa 
> 145a8004a7d659668d5a3b0ad9868d7678b24822
> Searching for interesting versions
>  Result found: flight 37863 (pass), for basis pass
>  Result found: flight 37864 (fail), for basis failure
>  Repro found: flight 37901 (pass), for basis pass
>  Repro found: flight 37902 (fail), for basis failure
>  0 revisions at fbe1bf140671619508dfa575d74a185ae53c5dbb 
> c530a75c1e6a472b0eb9558310b518f0dfcd8860 
> 7f057440b31da38196e3398fd1b618fc36ad97d6 
> bcf35eec0b621c46dbf0aeb40c6bc06b5d3981aa 
> 145a8004a7d659668d5a3b0ad9868d7678b24822
> No revisions left to test, checking graph state.
>  Result found: flight 37896 (pass), for last pass
>  Result found: flight 37898 (fail), for first failure
>  Repro found: flight 37899 (pass), for last pass
>  Repro found: flight 37907 (fail), for first failure
>  Repro found: flight 37908 (pass), for last pass
>  Repro found: flight 37909 (fail), for first failure
> 
> *** Found and reproduced problem changeset ***
> 
>   Bug is in tree:  linux git://xenbits.xen.org/linux-pvops.git
>   Bug introduced:  505569d208e61ab14f4b87957be0970ab33eb319
>   Bug not present: 5ab551d662396f8437ec5aba12210b7a67eb492b
> 
> + exec
> + sh -xe
> + cd /export/home/osstest/repos/linux-pvops
> + git remote set-url origin 
> git://drall.uk.xensource.com:9419/git://xenbits.xen.org/linux-pvops.git
> + git fetch -p origin +refs/heads/*:refs/remotes/origin/*
> 
>   commit 505569d208e61ab14f4b87957be0970ab33eb319
>   Merge: 5ab551d 2aba73a
>   Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
>   Date:   Sun Jan 11 11:53:46 2015 -0800
>   
>       Merge branch 'x86-urgent-for-linus' of 
> git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
>       
>       Pull x86 fixes from Ingo Molnar:
>        "Misc fixes: two vdso fixes, two kbuild fixes and a boot failure fix
>         with certain odd memory mappings"
>       
>       * 'x86-urgent-for-linus' of 
> git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
>         x86, vdso: Use asm volatile in __getcpu
>         x86/build: Clean auto-generated processor feature files
>         x86: Fix mkcapflags.sh bash-ism
>         x86: Fix step size adjustment during initial memory mapping
>         x86_64, vdso: Fix the vdso address randomization algorithm
>   
>   commit 2aba73a6146bb85d4a42386ca41dec0f4aa4b3ad
>   Merge: 280dbc5 1ddf0b1
>   Author: Ingo Molnar <mingo@xxxxxxxxxx>
>   Date:   Thu Jan 1 22:21:22 2015 +0100
>   
>       Merge tag 'pr-20141223-x86-vdso' of 
> git://git.kernel.org/pub/scm/linux/kernel/git/luto/linux into x86/urgent
>       
>       Pull VDSO fix from Andy Lutomirski:
>       
>        "This is hopefully the last vdso fix for 3.19.  It should be very
>         safe (it just adds a volatile).
>       
>         I don't think it fixes an actual bug (the __getcpu calls in the
>         pvclock code may not have been needed in the first place), but
>         discussion on that point is ongoing.
>       
>         It also fixes a big performance issue in 3.18 and earlier in which
>         the lsl instructions in vclock_gettime got hoisted so far up the
>         function that they happened even when the function they were in was
>         never called.  n 3.19, the performance issue seems to be gone due to
>         the whims of my compiler and some interaction with a branch that's
>         now gone.
>       
>         I'll hopefully have a much bigger overhaul of the pvclock code
>         for 3.20, but it needs careful review."
>       
>       Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
>   
>   commit 1ddf0b1b11aa8a90cef6706e935fc31c75c406ba
>   Author: Andy Lutomirski <luto@xxxxxxxxxxxxxx>
>   Date:   Sun Dec 21 08:57:46 2014 -0800
>   
>       x86, vdso: Use asm volatile in __getcpu
>       
>       In Linux 3.18 and below, GCC hoists the lsl instructions in the
>       pvclock code all the way to the beginning of __vdso_clock_gettime,
>       slowing the non-paravirt case significantly.  For unknown reasons,
>       presumably related to the removal of a branch, the performance issue
>       is gone as of
>       
>       e76b027e6408 x86,vdso: Use LSL unconditionally for vgetcpu
>       
>       but I don't trust GCC enough to expect the problem to stay fixed.
>       
>       There should be no correctness issue, because the __getcpu calls in
>       __vdso_vlock_gettime were never necessary in the first place.
>       
>       Note to stable maintainers: In 3.18 and below, depending on
>       configuration, gcc 4.9.2 generates code like this:
>       
>            9c3:       44 0f 03 e8             lsl    %ax,%r13d
>            9c7:       45 89 eb                mov    %r13d,%r11d
>            9ca:       0f 03 d8                lsl    %ax,%ebx
>       
>       This patch won't apply as is to any released kernel, but I'll send a
>       trivial backported version if needed.
>       
>       Fixes: 51c19b4f5927 x86: vdso: pvclock gettime support
>       Cc: stable@xxxxxxxxxxxxxxx # 3.8+
>       Cc: Marcelo Tosatti <mtosatti@xxxxxxxxxx>
>       Acked-by: Paolo Bonzini <pbonzini@xxxxxxxxxx>
>       Signed-off-by: Andy Lutomirski <luto@xxxxxxxxxxxxxx>
>   
>   commit 280dbc572357eb50184663fc9e4aaf09c8141e9b
>   Author: BjÃrn Mork <bjorn@xxxxxxx>
>   Date:   Tue Dec 23 12:57:43 2014 +0100
>   
>       x86/build: Clean auto-generated processor feature files
>       
>       Commit 9def39be4e96 ("x86: Support compiling out human-friendly
>       processor feature names") made two source file targets
>       conditional. Such conditional targets will not be cleaned
>       automatically by make mrproper.
>       
>       Fix by adding explicit clean-files targets for the two files.
>       
>       Fixes: 9def39be4e96 ("x86: Support compiling out human-friendly 
> processor feature names")
>       Signed-off-by: BjÃrn Mork <bjorn@xxxxxxx>
>       Cc: Josh Triplett <josh@xxxxxxxxxxxxxxxx>
>       Link: 
> http://lkml.kernel.org/r/1419335863-10608-1-git-send-email-bjorn@xxxxxxx
>       Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
>   
>   commit ea174f4c4f6135e30a4e1e8c4511980338238b16
>   Author: Sylvain BERTRAND <sylvain.bertrand@xxxxxxxxx>
>   Date:   Tue Dec 23 13:39:12 2014 +0100
>   
>       x86: Fix mkcapflags.sh bash-ism
>       
>       Chocked while compiling linux with dash shell instead of bash
>       shell. See:
>       
>          http://pubs.opengroup.org/onlinepubs/9699919799/utilities/test.html
>       
>       Signed-off-by: Sylvain BERTRAND <sylvain.bertrand@xxxxxxxxx>
>       Link: 
> http://lkml.kernel.org/r/20141223123912.GA1386@xxxxxxxxxxxxxxxxxxxxx
>       Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
>   
>   commit 132978b94e66f8ad7d20790f8332f0e9c1426029
>   Author: Jan Beulich <JBeulich@xxxxxxxx>
>   Date:   Fri Dec 19 16:10:54 2014 +0000
>   
>       x86: Fix step size adjustment during initial memory mapping
>       
>       The old scheme can lead to failure in certain cases - the
>       problem is that after bumping step_size the next (non-final)
>       iteration is only guaranteed to make available a memory block
>       the size of what step_size was before. E.g. for a memory block
>       [0,3004600000) we'd have:
>       
>        iter>  > start>        >       > end>  >       > step>         >       
> > amount
>        1>     > 3004400000>   > 30045fffff>   >  2M>  >       >   2M
>        2>     > 3004000000>   > 30043fffff>   > 64M>  >       >   4M
>        3>     > 3000000000>   > 3003ffffff>   >  2G>  >       >  64M
>        4>     > 2000000000>   > 2fffffffff>   > 64G>  >       >  64G
>       
>       Yet to map 64G with 4k pages (as happens e.g. under PV Xen) we
>       need slightly over 128M, but the first three iterations made
>       only about 70M available.
>       
>       The condition (new_mapped_ram_size > mapped_ram_size) for
>       bumping step_size is just not suitable. Instead we want to bump
>       it when we know we have enough memory available to cover a block
>       of the new step_size. And rather than making that condition more
>       complicated than needed, simply adjust step_size by the largest
>       possible factor we know we can cover at that point - which is
>       shifting it left by one less than the difference between page
>       table level shifts. (Interestingly the original STEP_SIZE_SHIFT
>       definition had a comment hinting at that having been the
>       intention, just that it should have been PUD_SHIFT-PMD_SHIFT-1
>       instead of (PUD_SHIFT-PMD_SHIFT)/2, and of course for non-PAE
>       32-bit we can't really use these two constants as they're equal
>       there.)
>       
>       Furthermore the comment in get_new_step_size() didn't get
>       updated when the bottom-down mapping logic got added. Yet while
>       an overflow (flushing step_size to zero) of the shift doesn't
>       matter for the top-down method, it does for bottom-up because
>       round_up(x, 0) = 0, and an upper range boundary of zero can't
>       really work well.
>       
>       Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx>
>       Acked-by: Yinghai Lu <yinghai@xxxxxxxxxx>
>       Link: 
> http://lkml.kernel.org/r/54945C1E020000780005114E@xxxxxxxxxxxxxxxxxxxx
>       Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
>   
>   commit fbe1bf140671619508dfa575d74a185ae53c5dbb
>   Merge: 97bf6af 394f56f
>   Author: Ingo Molnar <mingo@xxxxxxxxxx>
>   Date:   Sun Dec 21 11:16:49 2014 +0100
>   
>       Merge tag 'pr-20141220-x86-vdso' of 
> git://git.kernel.org/pub/scm/linux/kernel/git/luto/linux into x86/urgent
>       
>       Pull a VDSO fix from Andy Lutomirski:
>       
>         "One vdso fix for a longstanding ASLR bug that's been in the news 
> lately.
>       
>          The vdso base address has always been randomized, and I don't think 
> there's
>          anything particularly wrong with the range over which it's 
> randomized,
>          but the implementation seems to have been buggy since the very 
> beginning.
>       
>          This fixes the implementation to remove a large bias that caused a 
> small
>          fraction of possible vdso load addresess to be vastly more likely 
> than
>          the rest of the possible addresses."
>       
>       Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
>   
>   commit 394f56fe480140877304d342dec46d50dc823d46
>   Author: Andy Lutomirski <luto@xxxxxxxxxxxxxx>
>   Date:   Fri Dec 19 16:04:11 2014 -0800
>   
>       x86_64, vdso: Fix the vdso address randomization algorithm
>       
>       The theory behind vdso randomization is that it's mapped at a random
>       offset above the top of the stack.  To avoid wasting a page of
>       memory for an extra page table, the vdso isn't supposed to extend
>       past the lowest PMD into which it can fit.  Other than that, the
>       address should be a uniformly distributed address that meets all of
>       the alignment requirements.
>       
>       The current algorithm is buggy: the vdso has about a 50% probability
>       of being at the very end of a PMD.  The current algorithm also has a
>       decent chance of failing outright due to incorrect handling of the
>       case where the top of the stack is near the top of its PMD.
>       
>       This fixes the implementation.  The paxtest estimate of vdso
>       "randomisation" improves from 11 bits to 18 bits.  (Disclaimer: I
>       don't know what the paxtest code is actually calculating.)
>       
>       It's worth noting that this algorithm is inherently biased: the vdso
>       is more likely to end up near the end of its PMD than near the
>       beginning.  Ideally we would either nix the PMD sharing requirement
>       or jointly randomize the vdso and the stack to reduce the bias.
>       
>       In the mean time, this is a considerable improvement with basically
>       no risk of compatibility issues, since the allowed outputs of the
>       algorithm are unchanged.
>       
>       As an easy test, doing this:
>       
>       for i in `seq 10000`
>         do grep -P vdso /proc/self/maps |cut -d- -f1
>       done |sort |uniq -d
>       
>       used to produce lots of output (1445 lines on my most recent run).
>       A tiny subset looks like this:
>       
>       7fffdfffe000
>       7fffe01fe000
>       7fffe05fe000
>       7fffe07fe000
>       7fffe09fe000
>       7fffe0bfe000
>       7fffe0dfe000
>       
>       Note the suspicious fe000 endings.  With the fix, I get a much more
>       palatable 76 repeated addresses.
>       
>       Reviewed-by: Kees Cook <keescook@xxxxxxxxxxxx>
>       Cc: stable@xxxxxxxxxxxxxxx
>       Signed-off-by: Andy Lutomirski <luto@xxxxxxxxxxxxxx>
> 
>  Result found: flight 37904 (pass), for last pass
>  Result found: flight 37905 (fail), for first failure
>  Repro found: flight 37910 (pass), for last pass
>  Repro found: flight 37911 (fail), for first failure
>  Repro found: flight 37912 (pass), for last pass
>  Repro found: flight 37914 (fail), for first failure
> 
> *** Found and reproduced problem changeset ***
> 
>   Bug is in tree:  linux git://xenbits.xen.org/linux-pvops.git
>   Bug introduced:  132978b94e66f8ad7d20790f8332f0e9c1426029
>   Bug not present: fbe1bf140671619508dfa575d74a185ae53c5dbb
> 
> + exec
> + sh -xe
> + cd /export/home/osstest/repos/linux-pvops
> + git remote set-url origin 
> git://drall.uk.xensource.com:9419/git://xenbits.xen.org/linux-pvops.git
> + git fetch -p origin +refs/heads/*:refs/remotes/origin/*
> 
>   commit 132978b94e66f8ad7d20790f8332f0e9c1426029
>   Author: Jan Beulich <JBeulich@xxxxxxxx>
>   Date:   Fri Dec 19 16:10:54 2014 +0000
>   
>       x86: Fix step size adjustment during initial memory mapping
>       
>       The old scheme can lead to failure in certain cases - the
>       problem is that after bumping step_size the next (non-final)
>       iteration is only guaranteed to make available a memory block
>       the size of what step_size was before. E.g. for a memory block
>       [0,3004600000) we'd have:
>       
>        iter>  > start>        >       > end>  >       > step>         >       
> > amount
>        1>     > 3004400000>   > 30045fffff>   >  2M>  >       >   2M
>        2>     > 3004000000>   > 30043fffff>   > 64M>  >       >   4M
>        3>     > 3000000000>   > 3003ffffff>   >  2G>  >       >  64M
>        4>     > 2000000000>   > 2fffffffff>   > 64G>  >       >  64G
>       
>       Yet to map 64G with 4k pages (as happens e.g. under PV Xen) we
>       need slightly over 128M, but the first three iterations made
>       only about 70M available.
>       
>       The condition (new_mapped_ram_size > mapped_ram_size) for
>       bumping step_size is just not suitable. Instead we want to bump
>       it when we know we have enough memory available to cover a block
>       of the new step_size. And rather than making that condition more
>       complicated than needed, simply adjust step_size by the largest
>       possible factor we know we can cover at that point - which is
>       shifting it left by one less than the difference between page
>       table level shifts. (Interestingly the original STEP_SIZE_SHIFT
>       definition had a comment hinting at that having been the
>       intention, just that it should have been PUD_SHIFT-PMD_SHIFT-1
>       instead of (PUD_SHIFT-PMD_SHIFT)/2, and of course for non-PAE
>       32-bit we can't really use these two constants as they're equal
>       there.)
>       
>       Furthermore the comment in get_new_step_size() didn't get
>       updated when the bottom-down mapping logic got added. Yet while
>       an overflow (flushing step_size to zero) of the shift doesn't
>       matter for the top-down method, it does for bottom-up because
>       round_up(x, 0) = 0, and an upper range boundary of zero can't
>       really work well.
>       
>       Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx>
>       Acked-by: Yinghai Lu <yinghai@xxxxxxxxxx>
>       Link: 
> http://lkml.kernel.org/r/54945C1E020000780005114E@xxxxxxxxxxxxxxxxxxxx
>       Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
> 
> Revision graph left in 
> /home/osstest/results-adhoc/bisect/xen-unstable/test-amd64-i386-xl..{dot,ps,png,html}.
> ----------------------------------------
> 37914: trouble: broken/fail
> 
> flight 37914 xen-unstable adhoc-bisect [real]
> http://osstest.xs.citrite.net/~osstest/testlogs/logs/37914/
> 
> Failures and problems with tests :-(
> 
> Tests which did not succeed,
> including tests which could not be run:
>  37837.build-i386                              broken
>  37837.build-amd64                             broken
>  test-amd64-i386-xl           14 guest-saverestore       fail baseline 
> untested
> 
> 
> jobs:
>  37837.build-amd64                                            broken  
>  37837.build-i386                                             broken  
>  test-amd64-i386-xl                                           fail    
> 
> 
> ------------------------------------------------------------
> sg-report-flight on osstest.xs.citrite.net
> logs: /home/osstest/logs
> images: /home/osstest/images
> 
> Logs, config files, etc. are available at
>     http://osstest.xs.citrite.net/~osstest/testlogs/logs
> 
> Test harness code can be found at
>     http://xenbits.xensource.com/gitweb?p=osstest.git;a=summary
> 

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.