1. 29 Aug, 2014 13 commits
  2. 26 Aug, 2014 4 commits
    • Paolo Bonzini's avatar
      Merge tag 'kvm-s390-next-20140825' of... · a7428c3d
      Paolo Bonzini authored
      Merge tag 'kvm-s390-next-20140825' of git://git.kernel.org/pub/scm/linux/kernel/git/kvms390/linux into HEAD
      
      KVM: s390: Fixes and features for 3.18 part 1
      
      1. The usual cleanups: get rid of duplicate code, use defines, factor
         out the sync_reg handling, additional docs for sync_regs, better
         error handling on interrupt injection
      2. We use KVM_REQ_TLB_FLUSH instead of open coding tlb flushes
      3. Additional registers for kvm_run sync regs. This is usually not
         needed in the fast path due to eventfd/irqfd, but kvm stat claims
         that we reduced the overhead of console output by ~50% on my system
      4. A rework of the gmap infrastructure. This is the 2nd step towards
         host large page support (after getting rid of the storage key
         dependency). We introduces two radix trees to store the guest-to-host
         and host-to-guest translations. This gets us rid of most of
         the page-table walks in the gmap code. Only one in __gmap_link is left,
         this one is required to link the shadow page table to the process page
         table. Finally this contains the plumbing to support gmap page tables
         with less than 5 levels.
      a7428c3d
    • Martin Schwidefsky's avatar
      KVM: s390/mm: remove outdated gmap data structures · f079e952
      Martin Schwidefsky authored
      The radix tree rework removed all code that uses the gmap_rmap
      and gmap_pgtable data structures. Remove these outdated definitions.
      Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
      Signed-off-by: default avatarChristian Borntraeger <borntraeger@de.ibm.com>
      f079e952
    • Martin Schwidefsky's avatar
      KVM: s390/mm: support gmap page tables with less than 5 levels · c6c956b8
      Martin Schwidefsky authored
      Add an addressing limit to the gmap address spaces and only allocate
      the page table levels that are needed for the given limit. The limit
      is fixed and can not be changed after a gmap has been created.
      Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
      Signed-off-by: default avatarChristian Borntraeger <borntraeger@de.ibm.com>
      c6c956b8
    • Martin Schwidefsky's avatar
      KVM: s390/mm: use radix trees for guest to host mappings · 527e30b4
      Martin Schwidefsky authored
      Store the target address for the gmap segments in a radix tree
      instead of using invalid segment table entries. gmap_translate
      becomes a simple radix_tree_lookup, gmap_fault is split into the
      address translation with gmap_translate and the part that does
      the linking of the gmap shadow page table with the process page
      table.
      A second radix tree is used to keep the pointers to the segment
      table entries for segments that are mapped in the guest address
      space. On unmap of a segment the pointer is retrieved from the
      radix tree and is used to carry out the segment invalidation in
      the gmap shadow page table. As the radix tree can only store one
      pointer, each host segment may only be mapped to exactly one
      guest location.
      Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
      Signed-off-by: default avatarChristian Borntraeger <borntraeger@de.ibm.com>
      527e30b4
  3. 25 Aug, 2014 16 commits
  4. 21 Aug, 2014 7 commits