|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen master] x86/HVM: prefer is_..._domain() over is_..._vcpu()
commit c6e24bdc1bcd6c7736326ddc24104a597e754103
Author: Jan Beulich <jbeulich@xxxxxxxx>
AuthorDate: Fri Jun 12 12:03:56 2015 +0200
Commit: Jan Beulich <jbeulich@xxxxxxxx>
CommitDate: Fri Jun 12 12:03:56 2015 +0200
x86/HVM: prefer is_..._domain() over is_..._vcpu()
... when the domain pointer is already available or such operations
occur frequently in a function.
Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx>
Reviewed-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
---
xen/arch/x86/hvm/hvm.c | 23 +++++++++++------------
xen/arch/x86/hvm/vmx/vmcs.c | 2 +-
2 files changed, 12 insertions(+), 13 deletions(-)
diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
index 2736802..65baa1b 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -445,7 +445,7 @@ void hvm_do_resume(struct vcpu *v)
check_wakeup_from_wait();
- if ( is_hvm_vcpu(v) )
+ if ( is_hvm_domain(d) )
pt_restore_timer(v);
list_for_each_entry ( s,
@@ -2312,7 +2312,7 @@ int hvm_vcpu_initialise(struct vcpu *v)
v->arch.hvm_vcpu.inject_trap.vector = -1;
- if ( is_pvh_vcpu(v) )
+ if ( is_pvh_domain(d) )
{
v->arch.hvm_vcpu.hcall_64bit = 1; /* PVH 32bitfixme. */
/* This is for hvm_long_mode_enabled(v). */
@@ -2364,9 +2364,7 @@ int hvm_vcpu_initialise(struct vcpu *v)
void hvm_vcpu_destroy(struct vcpu *v)
{
- struct domain *d = v->domain;
-
- hvm_all_ioreq_servers_remove_vcpu(d, v);
+ hvm_all_ioreq_servers_remove_vcpu(v->domain, v);
nestedhvm_vcpu_destroy(v);
@@ -4921,6 +4919,7 @@ extern const uint8_t hypercall_args_table[],
compat_hypercall_args_table[];
int hvm_do_hypercall(struct cpu_user_regs *regs)
{
struct vcpu *curr = current;
+ struct domain *currd = curr->domain;
struct segment_register sreg;
int mode = hvm_guest_x86_mode(curr);
uint32_t eax = regs->eax;
@@ -4941,12 +4940,12 @@ int hvm_do_hypercall(struct cpu_user_regs *regs)
break;
}
- if ( (eax & 0x80000000) && is_viridian_domain(curr->domain) )
+ if ( (eax & 0x80000000) && is_viridian_domain(currd) )
return viridian_hypercall(regs);
if ( (eax >= NR_hypercalls) ||
- (is_pvh_vcpu(curr) ? !pvh_hypercall64_table[eax]
- : !hvm_hypercall32_table[eax]) )
+ (is_pvh_domain(currd) ? !pvh_hypercall64_table[eax]
+ : !hvm_hypercall32_table[eax]) )
{
regs->eax = -ENOSYS;
return HVM_HCALL_completed;
@@ -4980,7 +4979,7 @@ int hvm_do_hypercall(struct cpu_user_regs *regs)
#endif
curr->arch.hvm_vcpu.hcall_64bit = 1;
- regs->rax = (is_pvh_vcpu(curr)
+ regs->rax = (is_pvh_domain(currd)
? pvh_hypercall64_table
: hvm_hypercall64_table)[eax](rdi, rsi, rdx, r10, r8, r9);
curr->arch.hvm_vcpu.hcall_64bit = 0;
@@ -5001,7 +5000,7 @@ int hvm_do_hypercall(struct cpu_user_regs *regs)
}
#endif
}
- else if ( unlikely(is_pvh_vcpu(curr)) )
+ else if ( unlikely(is_pvh_domain(currd)) )
regs->_eax = -ENOSYS; /* PVH 32bitfixme. */
else
{
@@ -5053,8 +5052,8 @@ int hvm_do_hypercall(struct cpu_user_regs *regs)
if ( curr->arch.hvm_vcpu.hcall_preempted )
return HVM_HCALL_preempted;
- if ( unlikely(curr->domain->arch.hvm_domain.qemu_mapcache_invalidate) &&
- test_and_clear_bool(curr->domain->arch.hvm_domain.
+ if ( unlikely(currd->arch.hvm_domain.qemu_mapcache_invalidate) &&
+ test_and_clear_bool(currd->arch.hvm_domain.
qemu_mapcache_invalidate) )
return HVM_HCALL_invalidate;
diff --git a/xen/arch/x86/hvm/vmx/vmcs.c b/xen/arch/x86/hvm/vmx/vmcs.c
index 3aff365..4c5ceb5 100644
--- a/xen/arch/x86/hvm/vmx/vmcs.c
+++ b/xen/arch/x86/hvm/vmx/vmcs.c
@@ -1207,7 +1207,7 @@ static int construct_vmcs(struct vcpu *v)
vmx_vmcs_exit(v);
/* PVH: paging mode is updated by arch_set_info_guest(). */
- if ( is_hvm_vcpu(v) )
+ if ( is_hvm_domain(d) )
{
/* will update HOST & GUEST_CR3 as reqd */
paging_update_paging_modes(v);
--
generated by git-patchbot for /home/xen/git/xen.git#master
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |