• H
    s390/mm: remove set_fs / rework address space handling · 87d59863
    Heiko Carstens 提交于
    Remove set_fs support from s390. With doing this rework address space
    handling and simplify it. As a result address spaces are now setup
    like this:
    
    CPU running in              | %cr1 ASCE | %cr7 ASCE | %cr13 ASCE
    ----------------------------|-----------|-----------|-----------
    user space                  |  user     |  user     |  kernel
    kernel, normal execution    |  kernel   |  user     |  kernel
    kernel, kvm guest execution |  gmap     |  user     |  kernel
    
    To achieve this the getcpu vdso syscall is removed in order to avoid
    secondary address mode and a separate vdso address space in for user
    space. The getcpu vdso syscall will be implemented differently with a
    subsequent patch.
    
    The kernel accesses user space always via secondary address space.
    This happens in different ways:
    - with mvcos in home space mode and directly read/write to secondary
      address space
    - with mvcs/mvcp in primary space mode and copy from primary space to
      secondary space or vice versa
    - with e.g. cs in secondary space mode and access secondary space
    
    Switching translation modes happens with sacf before and after
    instructions which access user space, like before.
    
    Lazy handling of control register reloading is removed in the hope to
    make everything simpler, but at the cost of making kernel entry and
    exit a bit slower. That is: on kernel entry the primary asce is always
    changed to contain the kernel asce, and on kernel exit the primary
    asce is changed again so it contains the user asce.
    
    In kernel mode there is only one exception to the primary asce: when
    kvm guests are executed the primary asce contains the gmap asce (which
    describes the guest address space). The primary asce is reset to
    kernel asce whenever kvm guest execution is interrupted, so that this
    doesn't has to be taken into account for any user space accesses.
    Reviewed-by: NSven Schnelle <svens@linux.ibm.com>
    Signed-off-by: NHeiko Carstens <hca@linux.ibm.com>
    87d59863
processor.h 9.0 KB