
Kaige Fu
On 08-13 Mon 10:01, Eddie Dong wrote: In general we should do in different patch for bug fix. But this one is simple for those compile option --- this looks like MISRAC patches, we can do together to save
Got it. -----Original Message----- From: acrn-dev@... [mailto:acrn-dev@...] On Behalf Of Kaige Fu Sent: Monday, August 13, 2018 5:18 PM To: acrn-dev@... Subject: Re: [acrn-dev] [PATCH] HV: hv_main: Add #ifdef HV_DEBUG before debug specific code
On 08-13 Mon 08:27, Eddie Dong wrote:
On 08-13 Mon 07:59, Eddie Dong wrote:
This is part of SBUF component, what kind of compile option do we
use?
Let us use same one. shell command "vmexit" is the only one user of vmexit_time/cnt and we use the get_vmexit_profile, enclosed by HV_DEBUG, to access these variables.
Ok then.
BTW, hcall side also needs this kind of compile option.
I can't follow here. Can you make it more clear.
The sbuf has a hypercall, we need compile option to cover all sbuf code...
Absolutely, we should do it. This should be done in another patch, right?
|
|

Eddie Dong
In general we should do in different patch for bug fix. But this one is simple for those compile option --- this looks like MISRAC patches, we can do together to save
toggle quoted messageShow quoted text
-----Original Message----- From: acrn-dev@... [mailto:acrn-dev@...] On Behalf Of Kaige Fu Sent: Monday, August 13, 2018 5:18 PM To: acrn-dev@... Subject: Re: [acrn-dev] [PATCH] HV: hv_main: Add #ifdef HV_DEBUG before debug specific code
On 08-13 Mon 08:27, Eddie Dong wrote:
On 08-13 Mon 07:59, Eddie Dong wrote:
This is part of SBUF component, what kind of compile option do we
use?
Let us use same one. shell command "vmexit" is the only one user of vmexit_time/cnt and we use the get_vmexit_profile, enclosed by HV_DEBUG, to access these variables.
Ok then.
BTW, hcall side also needs this kind of compile option.
I can't follow here. Can you make it more clear.
The sbuf has a hypercall, we need compile option to cover all sbuf code...
Absolutely, we should do it. This should be done in another patch, right?
|
|

Kaige Fu
On 08-13 Mon 08:27, Eddie Dong wrote: On 08-13 Mon 07:59, Eddie Dong wrote:
This is part of SBUF component, what kind of compile option do we use? Let us use same one. shell command "vmexit" is the only one user of vmexit_time/cnt and we use the get_vmexit_profile, enclosed by HV_DEBUG, to access these variables. Ok then.
BTW, hcall side also needs this kind of compile option.
I can't follow here. Can you make it more clear.
The sbuf has a hypercall, we need compile option to cover all sbuf code...
Absolutely, we should do it. This should be done in another patch, right?
|
|

Eddie Dong
On 08-13 Mon 07:59, Eddie Dong wrote:
This is part of SBUF component, what kind of compile option do we use? Let us use same one. shell command "vmexit" is the only one user of vmexit_time/cnt and we use the get_vmexit_profile, enclosed by HV_DEBUG, to access these variables.
Ok then.
BTW, hcall side also needs this kind of compile option.
I can't follow here. Can you make it more clear.
The sbuf has a hypercall, we need compile option to cover all sbuf code...
|
|

Kaige Fu
On 08-13 Mon 07:59, Eddie Dong wrote: This is part of SBUF component, what kind of compile option do we use? Let us use same one.
shell command "vmexit" is the only one user of vmexit_time/cnt and we use the get_vmexit_profile, enclosed by HV_DEBUG, to access these variables. BTW, hcall side also needs this kind of compile option.
I can't follow here. Can you make it more clear. -- Thanks Kaige Fu
-----Original Message----- From: acrn-dev@... [mailto:acrn-dev@...] On Behalf Of Kaige Fu Sent: Monday, August 13, 2018 1:28 PM To: acrn-dev@... Subject: [acrn-dev] [PATCH] HV: hv_main: Add #ifdef HV_DEBUG before debug specific code
vmexit_time and vmexit_cnt is used for debuging only. This patch encloses these debug specific code using #ifdef HV_DEBUG.
Signed-off-by: Kaige Fu <kaige.fu@...> --- hypervisor/common/hv_main.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-)
diff --git a/hypervisor/common/hv_main.c b/hypervisor/common/hv_main.c index 15f1d9d..e3657f9 100644 --- a/hypervisor/common/hv_main.c +++ b/hypervisor/common/hv_main.c @@ -59,11 +59,13 @@ void vcpu_thread(struct vcpu *vcpu) continue; }
+#ifdef HV_DEBUG vmexit_end = rdtsc(); if (vmexit_begin != 0UL) { per_cpu(vmexit_time, vcpu->pcpu_id)[basic_exit_reason] += (vmexit_end - vmexit_begin); } +#endif TRACE_2L(TRACE_VM_ENTER, 0UL, 0UL);
/* Restore guest TSC_AUX */ @@ -79,7 +81,9 @@ void vcpu_thread(struct vcpu *vcpu) continue; }
+#ifdef HV_DEBUG vmexit_begin = rdtsc(); +#endif
vcpu->arch_vcpu.nrexits++; /* Save guest TSC_AUX */ @@ -90,16 +94,18 @@ void vcpu_thread(struct vcpu *vcpu) CPU_IRQ_ENABLE(); /* Dispatch handler */ ret = vmexit_handler(vcpu); + basic_exit_reason = vcpu->arch_vcpu.exit_reason & 0xFFFFU; if (ret < 0) { pr_fatal("dispatch VM exit handler failed for reason" - " %d, ret = %d!", - vcpu->arch_vcpu.exit_reason & 0xFFFFU, ret); + " %d, ret = %d!", basic_exit_reason, ret); vcpu_inject_gp(vcpu, 0U); continue; }
- basic_exit_reason = vcpu->arch_vcpu.exit_reason & 0xFFFFU; +#ifdef HV_DEBUG per_cpu(vmexit_cnt, vcpu->pcpu_id)[basic_exit_reason]++; +#endif + TRACE_2L(TRACE_VM_EXIT, basic_exit_reason, vcpu_get_rip(vcpu)); } while (1); } -- 2.7.4
|
|

Eddie Dong
This is part of SBUF component, what kind of compile option do we use? Let us use same one.
BTW, hcall side also needs this kind of compile option.
toggle quoted messageShow quoted text
-----Original Message----- From: acrn-dev@... [mailto:acrn-dev@...] On Behalf Of Kaige Fu Sent: Monday, August 13, 2018 1:28 PM To: acrn-dev@... Subject: [acrn-dev] [PATCH] HV: hv_main: Add #ifdef HV_DEBUG before debug specific code
vmexit_time and vmexit_cnt is used for debuging only. This patch encloses these debug specific code using #ifdef HV_DEBUG.
Signed-off-by: Kaige Fu <kaige.fu@...> --- hypervisor/common/hv_main.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-)
diff --git a/hypervisor/common/hv_main.c b/hypervisor/common/hv_main.c index 15f1d9d..e3657f9 100644 --- a/hypervisor/common/hv_main.c +++ b/hypervisor/common/hv_main.c @@ -59,11 +59,13 @@ void vcpu_thread(struct vcpu *vcpu) continue; }
+#ifdef HV_DEBUG vmexit_end = rdtsc(); if (vmexit_begin != 0UL) { per_cpu(vmexit_time, vcpu->pcpu_id)[basic_exit_reason] += (vmexit_end - vmexit_begin); } +#endif TRACE_2L(TRACE_VM_ENTER, 0UL, 0UL);
/* Restore guest TSC_AUX */ @@ -79,7 +81,9 @@ void vcpu_thread(struct vcpu *vcpu) continue; }
+#ifdef HV_DEBUG vmexit_begin = rdtsc(); +#endif
vcpu->arch_vcpu.nrexits++; /* Save guest TSC_AUX */ @@ -90,16 +94,18 @@ void vcpu_thread(struct vcpu *vcpu) CPU_IRQ_ENABLE(); /* Dispatch handler */ ret = vmexit_handler(vcpu); + basic_exit_reason = vcpu->arch_vcpu.exit_reason & 0xFFFFU; if (ret < 0) { pr_fatal("dispatch VM exit handler failed for reason" - " %d, ret = %d!", - vcpu->arch_vcpu.exit_reason & 0xFFFFU, ret); + " %d, ret = %d!", basic_exit_reason, ret); vcpu_inject_gp(vcpu, 0U); continue; }
- basic_exit_reason = vcpu->arch_vcpu.exit_reason & 0xFFFFU; +#ifdef HV_DEBUG per_cpu(vmexit_cnt, vcpu->pcpu_id)[basic_exit_reason]++; +#endif + TRACE_2L(TRACE_VM_EXIT, basic_exit_reason, vcpu_get_rip(vcpu)); } while (1); } -- 2.7.4
|
|

Kaige Fu
vmexit_time and vmexit_cnt is used for debuging only. This patch encloses these debug specific code using #ifdef HV_DEBUG.
Signed-off-by: Kaige Fu <kaige.fu@...> --- hypervisor/common/hv_main.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-)
diff --git a/hypervisor/common/hv_main.c b/hypervisor/common/hv_main.c index 15f1d9d..e3657f9 100644 --- a/hypervisor/common/hv_main.c +++ b/hypervisor/common/hv_main.c @@ -59,11 +59,13 @@ void vcpu_thread(struct vcpu *vcpu) continue; } +#ifdef HV_DEBUG vmexit_end = rdtsc(); if (vmexit_begin != 0UL) { per_cpu(vmexit_time, vcpu->pcpu_id)[basic_exit_reason] += (vmexit_end - vmexit_begin); } +#endif TRACE_2L(TRACE_VM_ENTER, 0UL, 0UL); /* Restore guest TSC_AUX */ @@ -79,7 +81,9 @@ void vcpu_thread(struct vcpu *vcpu) continue; } +#ifdef HV_DEBUG vmexit_begin = rdtsc(); +#endif vcpu->arch_vcpu.nrexits++; /* Save guest TSC_AUX */ @@ -90,16 +94,18 @@ void vcpu_thread(struct vcpu *vcpu) CPU_IRQ_ENABLE(); /* Dispatch handler */ ret = vmexit_handler(vcpu); + basic_exit_reason = vcpu->arch_vcpu.exit_reason & 0xFFFFU; if (ret < 0) { pr_fatal("dispatch VM exit handler failed for reason" - " %d, ret = %d!", - vcpu->arch_vcpu.exit_reason & 0xFFFFU, ret); + " %d, ret = %d!", basic_exit_reason, ret); vcpu_inject_gp(vcpu, 0U); continue; } - basic_exit_reason = vcpu->arch_vcpu.exit_reason & 0xFFFFU; +#ifdef HV_DEBUG per_cpu(vmexit_cnt, vcpu->pcpu_id)[basic_exit_reason]++; +#endif + TRACE_2L(TRACE_VM_EXIT, basic_exit_reason, vcpu_get_rip(vcpu)); } while (1); } -- 2.7.4
|
|