• Michael Neuling's avatar
    KVM: PPC: Book3S HV: Reserve POWER8 space in get/set_one_reg · 3b783474
    Michael Neuling authored
    This reserves space in get/set_one_reg ioctl for the extra guest state
    needed for POWER8.  It doesn't implement these at all, it just reserves
    them so that the ABI is defined now.
    
    A few things to note here:
    
    - This add *a lot* state for transactional memory.  TM suspend mode,
      this is unavoidable, you can't simply roll back all transactions and
      store only the checkpointed state.  I've added this all to
      get/set_one_reg (including GPRs) rather than creating a new ioctl
      which returns a struct kvm_regs like KVM_GET_REGS does.  This means we
      if we need to extract the TM state, we are going to need a bucket load
      of IOCTLs.  Hopefully most of the time this will not be needed as we
      can look at the MSR to see if TM is active and only grab them when
      needed.  If this becomes a bottle neck in future we can add another
      ioctl to grab all this state in one go.
    
    - The TM state is offset by 0x80000000.
    
    - For TM, I've done away with VMX and FP and created a single 64x128 bit
      VSX register space.
    
    - I've left a space of 1 (at 0x9c) since Paulus needs to add a value
      which applies to POWER7 as well.
    Signed-off-by: default avatarMichael Neuling <mikey@neuling.org>
    Signed-off-by: default avatarAlexander Graf <agraf@suse.de>
    3b783474
kvm.h 18.4 KB