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

[Xen-devel] xen: Can't insert balloon page into VM userspace (WAS Re: [linux-linus bisection] complete test-arm64-arm64-xl-xsm)



(Adding more people in the thread)

Hi,

On 3/12/19 3:59 PM, Julien Grall wrote:
Hi all,

It looks like all the arm test for linus [1] and next [2] tree
are now failing. x86 seems to be mostly ok.

The bisector fingered the following commit:

commit 0ee930e6cafa048c1925893d0ca89918b2814f2c
Author: Matthew Wilcox <willy@xxxxxxxxxxxxx>
Date:   Tue Mar 5 15:46:06 2019 -0800

     mm/memory.c: prevent mapping typed pages to userspace
Pages which use page_type must never be mapped to userspace as it would
     destroy their page type.  Add an explicit check for this instead of
     assuming that kernel drivers always get this right.
Link: http://lkml.kernel.org/r/20190129053830.3749-1-willy@xxxxxxxxxxxxx
     Signed-off-by: Matthew Wilcox <willy@xxxxxxxxxxxxx>
     Reviewed-by: Kees Cook <keescook@xxxxxxxxxxxx>
     Reviewed-by: David Hildenbrand <david@xxxxxxxxxx>
     Cc: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
     Cc: Will Deacon <will.deacon@xxxxxxx>
     Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
     Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>

I have tried the latest linus mater as Dom0 and see some issue to get the
console guest:

42sh> sudo xl create -c ~/works/guest/guest.cfg
Parsing config from /home/julien/works/guest/guest.cfg
xenconsole: Could not read tty from store: Success

I have added a print in the error path added by the commit above to see
what and where it happens:

[  182.366372] PageAnon 0 PageSlab 0 page_has_type 1
[  182.371076] WARNING: CPU: 2 PID: 2210 at mm/memory.c:1459 vm_insert_page+0x3e
0/0x430
[  182.378837] Modules linked in:
[  182.381974] CPU: 2 PID: 2210 Comm: xenstored Not tainted 5.0.0-10742-gea29548
1b6e3-dirty #1310
[  182.390672] Hardware name: ARM Juno development board (r2) (DT)
[  182.396678] pstate: 40000005 (nZcv daif -PAN -UAO)
[  182.401553] pc : vm_insert_page+0x3e0/0x430
[  182.405816] lr : vm_insert_page+0x3e0/0x430
[  182.410077] sp : ffff000012773bc0
[  182.413471] x29: ffff000012773bc0 x28: 0000ffff8d3fa000
[  182.418866] x27: 0000000000000008 x26: 0000000000000001
[  182.424261] x25: 0000000000000008 x24: 0000ffff8d3fa000
[  182.429656] x23: 0068000000000f53 x22: ffff8008ab520a00
[  182.435052] x21: ffff000011644a88 x20: 0000000000000000
[  182.440454] x19: ffff7e00229b0e80 x18: 0000000000000000
[  182.445841] x17: 0000000000000000 x16: 0000000000000000
[  182.451245] x15: 00000000fffffff0 x14: 0000000000000000
[  182.456631] x13: ffff000012339ff0 x12: 0000000000000006
[  182.462027] x11: ffff000010ec4980 x10: ffff0000107d01f8
[  182.467422] x9 : 00000000fffb9fff x8 : ffff8008ab55a0a0
[  182.472817] x7 : 0000000000000001 x6 : ffff8008bb02a220
[  182.478212] x5 : ffff8008bb02a220 x4 : 0000000000000000
[  182.483607] x3 : ffff8008bb032708 x2 : b98ad6a7b7eb2900
[  182.489002] x1 : 0000000000000000 x0 : 0000000000000025
[  182.494397] Call trace:
[  182.496924]  vm_insert_page+0x3e0/0x430
[  182.500853]  gntdev_mmap+0x188/0x288
[  182.504495]  mmap_region+0x3dc/0x578
[  182.508149]  do_mmap+0x2d4/0x478
[  182.511457]  vm_mmap_pgoff+0xe0/0x108
[  182.515198]  ksys_mmap_pgoff+0xac/0x308
[  182.519116]  __arm64_sys_mmap+0x28/0x38
[  182.523029]  el0_svc_handler+0x88/0x100
[  182.526943]  el0_svc+0x8/0xc
[  182.529901] ---[ end trace cf738ac71bfed946 ]---

Does it ring any bell?

It turns out the problem is because the balloon driver will call __SetPageOffline() on allocated page. Therefore the page has a type and vm_insert_pages will deny the insertion.

My knowledge is quite limited in this area. So I am not sure how we can solve the problem.

I would appreciate if someone could provide input of to fix the mapping.

Cheers,


Cheers,

[1] http://logs.test-lab.xenproject.org/osstest/logs/133695/
[2] http://logs.test-lab.xenproject.org/osstest/logs/133655/

On 3/11/19 11:52 PM, osstest service owner wrote:
branch xen-unstable
xenbranch xen-unstable
job test-arm64-arm64-xl-xsm
testid guest-start

Tree: linux git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.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:  linux 
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git
    Bug introduced:  0ee930e6cafa048c1925893d0ca89918b2814f2c
    Bug not present: 2d432cb7091e99881af803cdd67a31969b863005
    Last fail repro: http://logs.test-lab.xenproject.org/osstest/logs/133723/


    commit


    Author: Matthew Wilcox <willy@xxxxxxxxxxxxx>
    Date:   Tue Mar 5 15:46:06 2019 -0800
mm/memory.c: prevent mapping typed pages to userspace Pages which use page_type must never be mapped to userspace as it would
        destroy their page type.  Add an explicit check for this instead of
        assuming that kernel drivers always get this right.
Link: http://lkml.kernel.org/r/20190129053830.3749-1-willy@xxxxxxxxxxxxx
        Signed-off-by: Matthew Wilcox <willy@xxxxxxxxxxxxx>
        Reviewed-by: Kees Cook <keescook@xxxxxxxxxxxx>
        Reviewed-by: David Hildenbrand <david@xxxxxxxxxx>
        Cc: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
        Cc: Will Deacon <will.deacon@xxxxxxx>
        Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
        Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>


For bisection revision-tuple graph see:
     
http://logs.test-lab.xenproject.org/osstest/results/bisect/linux-linus/test-arm64-arm64-xl-xsm.guest-start.html
Revision IDs in each graph node refer, respectively, to the Trees above.

----------------------------------------
Running cs-bisection-step 
--graph-out=/home/logs/results/bisect/linux-linus/test-arm64-arm64-xl-xsm.guest-start
 --summary-out=tmp/133723.bisection-summary --basis-template=133580 
--blessings=real,real-bisect linux-linus test-arm64-arm64-xl-xsm guest-start
Searching for failure / basis pass:
   133673 fail [host=laxton0] / 133605 [host=laxton1] 133580 ok.
Failure / basis pass flights: 133673 / 133580
Tree: linux git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.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 38e7571c07be01f9f19b355a9306a4e3d5cb0f5b 
c530a75c1e6a472b0eb9558310b518f0dfcd8860 
de5b678ca4dcdfa83e322491d478d66df56c1986 
eeb31ee522c7bb8541eb4c037be2c42bfcf0a3c3
Basis pass 736706bee3298208343a76096370e4f6a5c55915 
c530a75c1e6a472b0eb9558310b518f0dfcd8860 
de5b678ca4dcdfa83e322491d478d66df56c1986 
f393b82fe5ba3ed9cfe2b306ffa53368e55b75af
Generating revisions with ./adhoc-revtuple-generator  
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git#736706bee3298208343a76096370e4f6a5c55915-38e7571c07be01f9f19b355a9306a4e3d5cb0f5b
 
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#f393b82fe5ba3ed9c\
   fe2b306ffa53368e55b75af-eeb31ee522c7bb8541eb4c037be2c42bfcf0a3c3
Loaded 149180 nodes in revision graph
Searching for test results:
   133581 blocked irrelevant
   133585 blocked irrelevant
   133605 [host=laxton1]
   133580 pass 736706bee3298208343a76096370e4f6a5c55915 
c530a75c1e6a472b0eb9558310b518f0dfcd8860 
de5b678ca4dcdfa83e322491d478d66df56c1986 
f393b82fe5ba3ed9cfe2b306ffa53368e55b75af
   133679 fail irrelevant
   133689 pass irrelevant
   133674 pass 736706bee3298208343a76096370e4f6a5c55915 
c530a75c1e6a472b0eb9558310b518f0dfcd8860 
de5b678ca4dcdfa83e322491d478d66df56c1986 
f393b82fe5ba3ed9cfe2b306ffa53368e55b75af
   133631 fail irrelevant
   133686 fail irrelevant
   133678 fail irrelevant
   133681 pass irrelevant
   133683 pass irrelevant
   133685 pass irrelevant
   133687 fail irrelevant
   133688 fail irrelevant
   133673 fail 38e7571c07be01f9f19b355a9306a4e3d5cb0f5b 
c530a75c1e6a472b0eb9558310b518f0dfcd8860 
de5b678ca4dcdfa83e322491d478d66df56c1986 
eeb31ee522c7bb8541eb4c037be2c42bfcf0a3c3
   133690 fail irrelevant
   133720 fail 0ee930e6cafa048c1925893d0ca89918b2814f2c 
c530a75c1e6a472b0eb9558310b518f0dfcd8860 
de5b678ca4dcdfa83e322491d478d66df56c1986 
eeb31ee522c7bb8541eb4c037be2c42bfcf0a3c3
   133691 fail irrelevant
   133692 fail irrelevant
   133694 fail 38e7571c07be01f9f19b355a9306a4e3d5cb0f5b 
c530a75c1e6a472b0eb9558310b518f0dfcd8860 
de5b678ca4dcdfa83e322491d478d66df56c1986 
eeb31ee522c7bb8541eb4c037be2c42bfcf0a3c3
   133721 pass 2d432cb7091e99881af803cdd67a31969b863005 
c530a75c1e6a472b0eb9558310b518f0dfcd8860 
de5b678ca4dcdfa83e322491d478d66df56c1986 
eeb31ee522c7bb8541eb4c037be2c42bfcf0a3c3
   133723 fail 0ee930e6cafa048c1925893d0ca89918b2814f2c 
c530a75c1e6a472b0eb9558310b518f0dfcd8860 
de5b678ca4dcdfa83e322491d478d66df56c1986 
eeb31ee522c7bb8541eb4c037be2c42bfcf0a3c3
   133697 fail e5eed351fd5eb73eecc1407cf00309e868379253 
c530a75c1e6a472b0eb9558310b518f0dfcd8860 
de5b678ca4dcdfa83e322491d478d66df56c1986 
eeb31ee522c7bb8541eb4c037be2c42bfcf0a3c3
   133700 fail f900482da560941f978b0d36660e96f48ea78752 
c530a75c1e6a472b0eb9558310b518f0dfcd8860 
de5b678ca4dcdfa83e322491d478d66df56c1986 
eeb31ee522c7bb8541eb4c037be2c42bfcf0a3c3
   133701 pass c52e75935f8ded2bd4a75eb08e914bd96802725b 
c530a75c1e6a472b0eb9558310b518f0dfcd8860 
de5b678ca4dcdfa83e322491d478d66df56c1986 
eeb31ee522c7bb8541eb4c037be2c42bfcf0a3c3
   133702 fail 8bb4e7a2ee26c05a94ae6cb0aec2f82a3523cf35 
c530a75c1e6a472b0eb9558310b518f0dfcd8860 
de5b678ca4dcdfa83e322491d478d66df56c1986 
eeb31ee522c7bb8541eb4c037be2c42bfcf0a3c3
   133704 pass 9bebefd59084af7c75b66eeee241bf0777f39b88 
c530a75c1e6a472b0eb9558310b518f0dfcd8860 
de5b678ca4dcdfa83e322491d478d66df56c1986 
eeb31ee522c7bb8541eb4c037be2c42bfcf0a3c3
   133705 pass dc50537bdd1a0804fa2cbc990565ee9a944e66fa 
c530a75c1e6a472b0eb9558310b518f0dfcd8860 
de5b678ca4dcdfa83e322491d478d66df56c1986 
eeb31ee522c7bb8541eb4c037be2c42bfcf0a3c3
   133709 fail 0ee930e6cafa048c1925893d0ca89918b2814f2c 
c530a75c1e6a472b0eb9558310b518f0dfcd8860 
de5b678ca4dcdfa83e322491d478d66df56c1986 
eeb31ee522c7bb8541eb4c037be2c42bfcf0a3c3
   133710 pass 677dc9731b54dccaaadbdcea18f8eecc95cee832 
c530a75c1e6a472b0eb9558310b518f0dfcd8860 
de5b678ca4dcdfa83e322491d478d66df56c1986 
eeb31ee522c7bb8541eb4c037be2c42bfcf0a3c3
   133711 pass afd07389d3f4933c7f7817a92fb5e053d59a3182 
c530a75c1e6a472b0eb9558310b518f0dfcd8860 
de5b678ca4dcdfa83e322491d478d66df56c1986 
eeb31ee522c7bb8541eb4c037be2c42bfcf0a3c3
   133713 pass 2d432cb7091e99881af803cdd67a31969b863005 
c530a75c1e6a472b0eb9558310b518f0dfcd8860 
de5b678ca4dcdfa83e322491d478d66df56c1986 
eeb31ee522c7bb8541eb4c037be2c42bfcf0a3c3
   133715 fail 0ee930e6cafa048c1925893d0ca89918b2814f2c 
c530a75c1e6a472b0eb9558310b518f0dfcd8860 
de5b678ca4dcdfa83e322491d478d66df56c1986 
eeb31ee522c7bb8541eb4c037be2c42bfcf0a3c3
   133718 blocked 2d432cb7091e99881af803cdd67a31969b863005 
c530a75c1e6a472b0eb9558310b518f0dfcd8860 
de5b678ca4dcdfa83e322491d478d66df56c1986 
eeb31ee522c7bb8541eb4c037be2c42bfcf0a3c3
   133719 pass 2d432cb7091e99881af803cdd67a31969b863005 
c530a75c1e6a472b0eb9558310b518f0dfcd8860 
de5b678ca4dcdfa83e322491d478d66df56c1986 
eeb31ee522c7bb8541eb4c037be2c42bfcf0a3c3
Searching for interesting versions
   Result found: flight 133580 (pass), for basis pass
   Result found: flight 133673 (fail), for basis failure
   Repro found: flight 133674 (pass), for basis pass
   Repro found: flight 133694 (fail), for basis failure
   0 revisions at 2d432cb7091e99881af803cdd67a31969b863005 
c530a75c1e6a472b0eb9558310b518f0dfcd8860 
de5b678ca4dcdfa83e322491d478d66df56c1986 
eeb31ee522c7bb8541eb4c037be2c42bfcf0a3c3
No revisions left to test, checking graph state.
   Result found: flight 133713 (pass), for last pass
   Result found: flight 133715 (fail), for first failure
   Repro found: flight 133719 (pass), for last pass
   Repro found: flight 133720 (fail), for first failure
   Repro found: flight 133721 (pass), for last pass
   Repro found: flight 133723 (fail), for first failure

*** Found and reproduced problem changeset ***

    Bug is in tree:  linux 
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git
    Bug introduced:  0ee930e6cafa048c1925893d0ca89918b2814f2c
    Bug not present: 2d432cb7091e99881af803cdd67a31969b863005
    Last fail repro: http://logs.test-lab.xenproject.org/osstest/logs/133723/


    commit 0ee930e6cafa048c1925893d0ca89918b2814f2c
    Author: Matthew Wilcox <willy@xxxxxxxxxxxxx>
    Date:   Tue Mar 5 15:46:06 2019 -0800
mm/memory.c: prevent mapping typed pages to userspace Pages which use page_type must never be mapped to userspace as it would
        destroy their page type.  Add an explicit check for this instead of
        assuming that kernel drivers always get this right.
Link: http://lkml.kernel.org/r/20190129053830.3749-1-willy@xxxxxxxxxxxxx
        Signed-off-by: Matthew Wilcox <willy@xxxxxxxxxxxxx>
        Reviewed-by: Kees Cook <keescook@xxxxxxxxxxxx>
        Reviewed-by: David Hildenbrand <david@xxxxxxxxxx>
        Cc: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
        Cc: Will Deacon <will.deacon@xxxxxxx>
        Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
        Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>

pnmtopng: 189 colors found
Revision graph left in 
/home/logs/results/bisect/linux-linus/test-arm64-arm64-xl-xsm.guest-start.{dot,ps,png,html,svg}.
----------------------------------------
133723: tolerable ALL FAIL

flight 133723 linux-linus real-bisect [real]
http://logs.test-lab.xenproject.org/osstest/logs/133723/

Failures :-/ but no regressions.

Tests which did not succeed,
including tests which could not be run:
   test-arm64-arm64-xl-xsm      12 guest-start             fail baseline 
untested


jobs:
   test-arm64-arm64-xl-xsm                                      fail


------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at
      http://logs.test-lab.xenproject.org/osstest/logs

Explanation of these reports, and of osstest in general, is at
      
http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
      http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master

Test harness code can be found at
      http://xenbits.xen.org/gitweb?p=osstest.git;a=summary


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel



--
Julien Grall

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel

 


Rackspace

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