lkml.org 
[lkml]   [2017]   [Jun]   [2]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: [PATCH RFC 0/2] KVM: s390: avoid having to enable vm.alloc_pgste
    From
    Date
    On 02.06.2017 09:02, Heiko Carstens wrote:
    > On Thu, Jun 01, 2017 at 12:46:51PM +0200, Martin Schwidefsky wrote:
    >>> Unfortunately, converting all page tables to 4k pgste page tables is
    >>> not possible without provoking various race conditions.
    >>
    >> That is one approach we tried and was found to be buggy. The point is that
    >> you are not allowed to reallocate a page table while a VMA exists that is
    >> in the address range of that page table.
    >>
    >> Another approach we tried is to use an ELF flag on the qemu executable.
    >> That does not work either because fs/exec.c allocates and populates the
    >> new mm struct for the argument pages before fs/binfmt_elf.c comes into
    >> play.
    >
    > How about if you would fail the system call within arch_check_elf() if you
    > detect that the binary requires pgstes (as indicated by elf flags) and then
    > restart the system call?
    >
    > That is: arch_check_elf() e.g. would set a thread flag that future mm's
    > should be allocated with pgstes. Then do_execve() would cleanup everything
    > and return to entry.S. Upon return to userspace we detect this condition
    > and simply restart the system call, similar to signals vs -ERESTARTSYS.
    >
    > That would make do_execve() cleanup everything and upon reentering it would
    > allocate an mm with the pgste flag set.

    Cool, I thought that we would not be able to get around having to make a
    decision at fork time, but this really looks promising.

    Thanks for this idea Heiko!


    --

    Thanks,

    David

    \
     
     \ /
      Last update: 2017-06-05 00:10    [W:4.238 / U:0.100 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site