RE: [patch] fix kvm_arch_vcpu_ioctl_[gs]et_regs()

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

 



Avi Kivity wrote:
> Jes Sorensen wrote:
>> Hi,
>> 
>> This patch makes these two macros do something sensible on ia64 and
>> work the way qemu expects to use them. The old versions clearly
>> couldn't have worked since the get_regs() call expected pointers in
>> the kvm_regs struct which were never copied in.
>> 
>> Fix kvm_arch_vcpu_ioctl_[gs]et_regs() to do something meaningful on
>> ia64. Old versions could never have worked since they required
>> pointers to be set in the ioctl payload which were never being set by
>> the ioctl handler for get_regs.
>> 
>> This version doesn't support copying the KVM kernel stack in/out of
>> the kernel. This should be implemented in a seperate ioctl call if
>> ever needed.
>> 
>> 
>>  struct kvm_regs {
>> -	char *saved_guest;
>> -	char *saved_stack;
>>  	struct saved_vpd vpd;
>>  	/*Arch-regs*/
>>  	int mp_state;
>> @@ -233,6 +231,8 @@
>>  	unsigned long fp_psr;       /*used for lazy float register */ 
>>  	unsigned long saved_gp; /*for phycial  emulation */
>> +
>> +	union context saved_guest;
>>  };
>> 
>> 
> 
> This makes several tons of sense, but breaks backwards compatibility.
> If I understand correctly, get/set was never used so this shouldn't
> matter? 

It doesn't matter, we haven't enabled  userspace code for save/restore and live migration before, so shouldn't result in the issue.   

> I suggest reserving some space at the end of kvm_regs in case further
> state needs to be added.
> Please add a KVM_CAP_ entry to advertise the fixup.  This way
> userspace can determine that it's compiling or running on an old
> kernel and error out gracefully.

Agree. 

Xiantao

--
To unsubscribe from this list: send the line "unsubscribe kvm-ia64" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux KVM Devel]     [Linux Virtualization]     [Big List of Linux Books]     [Linux SCSI]     [Yosemite Forum]

  Powered by Linux