Re: [PATCH 6/7] Rename EMULATE_DO_PAPR to EMULATE_EXIT_USER

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

 



On 28.02.2013, at 17:31, Scott Wood wrote:

> On 02/27/2013 10:13:15 PM, Bharat Bhushan wrote:
>> Instruction emulation return EMULATE_DO_PAPR when it requires
>> exit to userspace on book3s. Similar return is required
>> for booke. EMULATE_DO_PAPR reads out to be confusing so it is
>> renamed to EMULATE_EXIT_USER.
>> Signed-off-by: Bharat Bhushan <bharat.bhushan@xxxxxxxxxxxxx>
>> ---
>> arch/powerpc/include/asm/kvm_ppc.h |    2 +-
>> arch/powerpc/kvm/book3s_emulate.c  |    2 +-
>> arch/powerpc/kvm/book3s_pr.c       |    2 +-
>> 3 files changed, 3 insertions(+), 3 deletions(-)
>> diff --git a/arch/powerpc/include/asm/kvm_ppc.h b/arch/powerpc/include/asm/kvm_ppc.h
>> index 44a657a..8b81468 100644
>> --- a/arch/powerpc/include/asm/kvm_ppc.h
>> +++ b/arch/powerpc/include/asm/kvm_ppc.h
>> @@ -44,7 +44,7 @@ enum emulation_result {
>> 	EMULATE_DO_DCR,       /* kvm_run filled with DCR request */
>> 	EMULATE_FAIL,         /* can't emulate this instruction */
>> 	EMULATE_AGAIN,        /* something went wrong. go again */
>> -	EMULATE_DO_PAPR,      /* kvm_run filled with PAPR request */
>> +	EMULATE_EXIT_USER,    /* emulation requires exit to user-space */
>> };
>> extern int kvmppc_vcpu_run(struct kvm_run *kvm_run, struct kvm_vcpu *vcpu);
>> diff --git a/arch/powerpc/kvm/book3s_emulate.c b/arch/powerpc/kvm/book3s_emulate.c
>> index 836c569..cdd19d6 100644
>> --- a/arch/powerpc/kvm/book3s_emulate.c
>> +++ b/arch/powerpc/kvm/book3s_emulate.c
>> @@ -194,7 +194,7 @@ int kvmppc_core_emulate_op(struct kvm_run *run, struct kvm_vcpu *vcpu,
>> 				run->papr_hcall.args[i] = gpr;
>> 			}
>> -			emulated = EMULATE_DO_PAPR;
>> +			emulated = EMULATE_EXIT_USER;
>> 			break;
>> 		}
>> #endif
>> diff --git a/arch/powerpc/kvm/book3s_pr.c b/arch/powerpc/kvm/book3s_pr.c
>> index 73ed11c..8df2d2d 100644
>> --- a/arch/powerpc/kvm/book3s_pr.c
>> +++ b/arch/powerpc/kvm/book3s_pr.c
>> @@ -760,7 +760,7 @@ program_interrupt:
>> 			run->exit_reason = KVM_EXIT_MMIO;
>> 			r = RESUME_HOST_NV;
>> 			break;
>> -		case EMULATE_DO_PAPR:
>> +		case EMULATE_EXIT_USER:
>> 			run->exit_reason = KVM_EXIT_PAPR_HCALL;
>> 			vcpu->arch.hcall_needed = 1;
>> 			r = RESUME_HOST_NV;
> 
> I don't think it makes sense to genericize this.  

It makes sense if the run->exit_reason = ... and hcall_needed = ... lines get pulled into the emulator. The question is basically whether we want to have another layer of abstraction inside our own emulator / kvm interface. I don't have a strong feeling either way.


Alex

> It means more than just "return to user"; it indicates what sort of exit reason should be passed back.  What if book3s later wants to be able to return KVM_EXIT_DEBUG, or we want to have userspace-handled hcalls on booke?
> 
> -Scott
> --
> To unsubscribe from this list: send the line "unsubscribe kvm-ppc" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

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


[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux