public inbox for kvm@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2] KVM: Cleanup the kvm_print functions and introduce pr_XX wrappers
@ 2012-05-25 16:22 Christoffer Dall
  2012-06-02  0:04 ` Marcelo Tosatti
  0 siblings, 1 reply; 3+ messages in thread
From: Christoffer Dall @ 2012-05-25 16:22 UTC (permalink / raw)
  To: kvm, android-virt, agraf

Introduces a couple of print functions, which are essentially wrappers
around standard printk functions, with a KVM: prefix.

Functions introduced or modified are:
 - kvm_err(fmt, ...)
 - kvm_info(fmt, ...)
 - kvm_debug(fmt, ...)
 - kvm_pr_unimpl(fmt, ...)
 - pr_unimpl(vcpu, fmt, ...) -> vcpu_unimpl(vcpu, fmt, ...)

Applies to kvm-next

Changelog[2]:
 - Added PID to print functions
 - Renamed vcpu_pr_unimpl to vcpu_unimpl

 Signed-off-by: Christoffer Dall <c.dall@virtualopensystems.com>
---
 arch/x86/kvm/svm.c       |    6 +++--
 arch/x86/kvm/vmx.c       |    2 +-
 arch/x86/kvm/x86.c       |   54 +++++++++++++++++++++++-----------------------
 include/linux/kvm_host.h |   17 +++++++++-----
 4 files changed, 42 insertions(+), 37 deletions(-)

diff --git a/arch/x86/kvm/svm.c b/arch/x86/kvm/svm.c
index f75af40..7a41878 100644
--- a/arch/x86/kvm/svm.c
+++ b/arch/x86/kvm/svm.c
@@ -3185,8 +3185,8 @@ static int svm_set_msr(struct kvm_vcpu *vcpu, unsigned ecx, u64 data)
 		break;
 	case MSR_IA32_DEBUGCTLMSR:
 		if (!boot_cpu_has(X86_FEATURE_LBRV)) {
-			pr_unimpl(vcpu, "%s: MSR_IA32_DEBUGCTL 0x%llx, nop\n",
-					__func__, data);
+			vcpu_unimpl(vcpu, "%s: MSR_IA32_DEBUGCTL 0x%llx, nop\n",
+				    __func__, data);
 			break;
 		}
 		if (data & DEBUGCTL_RESERVED_BITS)
@@ -3205,7 +3205,7 @@ static int svm_set_msr(struct kvm_vcpu *vcpu, unsigned ecx, u64 data)
 	case MSR_VM_CR:
 		return svm_set_vm_cr(vcpu, data);
 	case MSR_VM_IGNNE:
-		pr_unimpl(vcpu, "unimplemented wrmsr: 0x%x data 0x%llx\n", ecx, data);
+		vcpu_unimpl(vcpu, "unimplemented wrmsr: 0x%x data 0x%llx\n", ecx, data);
 		break;
 	default:
 		return kvm_set_msr_common(vcpu, ecx, data);
diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c
index 32eb588..c6b2d25 100644
--- a/arch/x86/kvm/vmx.c
+++ b/arch/x86/kvm/vmx.c
@@ -4489,7 +4489,7 @@ static int handle_cr(struct kvm_vcpu *vcpu)
 		break;
 	}
 	vcpu->run->exit_reason = 0;
-	pr_unimpl(vcpu, "unhandled control register: op %d cr %d\n",
+	vcpu_unimpl(vcpu, "unhandled control register: op %d cr %d\n",
 	       (int)(exit_qualification >> 4) & 3, cr);
 	return 0;
 }
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index b78f89d..0aac0bc 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -1437,8 +1437,8 @@ static int set_msr_hyperv_pw(struct kvm_vcpu *vcpu, u32 msr, u64 data)
 		break;
 	}
 	default:
-		pr_unimpl(vcpu, "HYPER-V unimplemented wrmsr: 0x%x "
-			  "data 0x%llx\n", msr, data);
+		vcpu_unimpl(vcpu, "HYPER-V unimplemented wrmsr: 0x%x "
+			    "data 0x%llx\n", msr, data);
 		return 1;
 	}
 	return 0;
@@ -1470,8 +1470,8 @@ static int set_msr_hyperv(struct kvm_vcpu *vcpu, u32 msr, u64 data)
 	case HV_X64_MSR_TPR:
 		return kvm_hv_vapic_msr_write(vcpu, APIC_TASKPRI, data);
 	default:
-		pr_unimpl(vcpu, "HYPER-V unimplemented wrmsr: 0x%x "
-			  "data 0x%llx\n", msr, data);
+		vcpu_unimpl(vcpu, "HYPER-V unimplemented wrmsr: 0x%x "
+			    "data 0x%llx\n", msr, data);
 		return 1;
 	}
 
@@ -1551,15 +1551,15 @@ int kvm_set_msr_common(struct kvm_vcpu *vcpu, u32 msr, u64 data)
 		data &= ~(u64)0x100;	/* ignore ignne emulation enable */
 		data &= ~(u64)0x8;	/* ignore TLB cache disable */
 		if (data != 0) {
-			pr_unimpl(vcpu, "unimplemented HWCR wrmsr: 0x%llx\n",
-				data);
+			vcpu_unimpl(vcpu, "unimplemented HWCR wrmsr: 0x%llx\n",
+				    data);
 			return 1;
 		}
 		break;
 	case MSR_FAM10H_MMIO_CONF_BASE:
 		if (data != 0) {
-			pr_unimpl(vcpu, "unimplemented MMIO_CONF_BASE wrmsr: "
-				"0x%llx\n", data);
+			vcpu_unimpl(vcpu, "unimplemented MMIO_CONF_BASE wrmsr: "
+				    "0x%llx\n", data);
 			return 1;
 		}
 		break;
@@ -1574,8 +1574,8 @@ int kvm_set_msr_common(struct kvm_vcpu *vcpu, u32 msr, u64 data)
 			   thus reserved and should throw a #GP */
 			return 1;
 		}
-		pr_unimpl(vcpu, "%s: MSR_IA32_DEBUGCTLMSR 0x%llx, nop\n",
-			__func__, data);
+		vcpu_unimpl(vcpu, "%s: MSR_IA32_DEBUGCTLMSR 0x%llx, nop\n",
+			    __func__, data);
 		break;
 	case MSR_IA32_UCODE_REV:
 	case MSR_IA32_UCODE_WRITE:
@@ -1671,8 +1671,8 @@ int kvm_set_msr_common(struct kvm_vcpu *vcpu, u32 msr, u64 data)
 	case MSR_K7_EVNTSEL2:
 	case MSR_K7_EVNTSEL3:
 		if (data != 0)
-			pr_unimpl(vcpu, "unimplemented perfctr wrmsr: "
-				"0x%x data 0x%llx\n", msr, data);
+			vcpu_unimpl(vcpu, "unimplemented perfctr wrmsr: "
+				    "0x%x data 0x%llx\n", msr, data);
 		break;
 	/* at least RHEL 4 unconditionally writes to the perfctr registers,
 	 * so we ignore writes to make it happy.
@@ -1681,8 +1681,8 @@ int kvm_set_msr_common(struct kvm_vcpu *vcpu, u32 msr, u64 data)
 	case MSR_K7_PERFCTR1:
 	case MSR_K7_PERFCTR2:
 	case MSR_K7_PERFCTR3:
-		pr_unimpl(vcpu, "unimplemented perfctr wrmsr: "
-			"0x%x data 0x%llx\n", msr, data);
+		vcpu_unimpl(vcpu, "unimplemented perfctr wrmsr: "
+			    "0x%x data 0x%llx\n", msr, data);
 		break;
 	case MSR_P6_PERFCTR0:
 	case MSR_P6_PERFCTR1:
@@ -1693,8 +1693,8 @@ int kvm_set_msr_common(struct kvm_vcpu *vcpu, u32 msr, u64 data)
 			return kvm_pmu_set_msr(vcpu, msr, data);
 
 		if (pr || data != 0)
-			pr_unimpl(vcpu, "disabled perfctr wrmsr: "
-				"0x%x data 0x%llx\n", msr, data);
+			vcpu_unimpl(vcpu, "disabled perfctr wrmsr: "
+				    "0x%x data 0x%llx\n", msr, data);
 		break;
 	case MSR_K7_CLK_CTL:
 		/*
@@ -1720,7 +1720,7 @@ int kvm_set_msr_common(struct kvm_vcpu *vcpu, u32 msr, u64 data)
 		/* Drop writes to this legacy MSR -- see rdmsr
 		 * counterpart for further detail.
 		 */
-		pr_unimpl(vcpu, "ignored wrmsr: 0x%x data %llx\n", msr, data);
+		vcpu_unimpl(vcpu, "ignored wrmsr: 0x%x data %llx\n", msr, data);
 		break;
 	case MSR_AMD64_OSVW_ID_LENGTH:
 		if (!guest_cpuid_has_osvw(vcpu))
@@ -1738,12 +1738,12 @@ int kvm_set_msr_common(struct kvm_vcpu *vcpu, u32 msr, u64 data)
 		if (kvm_pmu_msr(vcpu, msr))
 			return kvm_pmu_set_msr(vcpu, msr, data);
 		if (!ignore_msrs) {
-			pr_unimpl(vcpu, "unhandled wrmsr: 0x%x data %llx\n",
-				msr, data);
+			vcpu_unimpl(vcpu, "unhandled wrmsr: 0x%x data %llx\n",
+				    msr, data);
 			return 1;
 		} else {
-			pr_unimpl(vcpu, "ignored wrmsr: 0x%x data %llx\n",
-				msr, data);
+			vcpu_unimpl(vcpu, "ignored wrmsr: 0x%x data %llx\n",
+				    msr, data);
 			break;
 		}
 	}
@@ -1846,7 +1846,7 @@ static int get_msr_hyperv_pw(struct kvm_vcpu *vcpu, u32 msr, u64 *pdata)
 		data = kvm->arch.hv_hypercall;
 		break;
 	default:
-		pr_unimpl(vcpu, "Hyper-V unhandled rdmsr: 0x%x\n", msr);
+		vcpu_unimpl(vcpu, "Hyper-V unhandled rdmsr: 0x%x\n", msr);
 		return 1;
 	}
 
@@ -1877,7 +1877,7 @@ static int get_msr_hyperv(struct kvm_vcpu *vcpu, u32 msr, u64 *pdata)
 		data = vcpu->arch.hv_vapic;
 		break;
 	default:
-		pr_unimpl(vcpu, "Hyper-V unhandled rdmsr: 0x%x\n", msr);
+		vcpu_unimpl(vcpu, "Hyper-V unhandled rdmsr: 0x%x\n", msr);
 		return 1;
 	}
 	*pdata = data;
@@ -2030,10 +2030,10 @@ int kvm_get_msr_common(struct kvm_vcpu *vcpu, u32 msr, u64 *pdata)
 		if (kvm_pmu_msr(vcpu, msr))
 			return kvm_pmu_get_msr(vcpu, msr, pdata);
 		if (!ignore_msrs) {
-			pr_unimpl(vcpu, "unhandled rdmsr: 0x%x\n", msr);
+			vcpu_unimpl(vcpu, "unhandled rdmsr: 0x%x\n", msr);
 			return 1;
 		} else {
-			pr_unimpl(vcpu, "ignored rdmsr: 0x%x\n", msr);
+			vcpu_unimpl(vcpu, "ignored rdmsr: 0x%x\n", msr);
 			data = 0;
 		}
 		break;
@@ -4116,7 +4116,7 @@ static unsigned long emulator_get_cr(struct x86_emulate_ctxt *ctxt, int cr)
 		value = kvm_get_cr8(vcpu);
 		break;
 	default:
-		vcpu_printf(vcpu, "%s: unexpected cr %u\n", __func__, cr);
+		kvm_err("%s: unexpected cr %u\n", __func__, cr);
 		return 0;
 	}
 
@@ -4145,7 +4145,7 @@ static int emulator_set_cr(struct x86_emulate_ctxt *ctxt, int cr, ulong val)
 		res = kvm_set_cr8(vcpu, val);
 		break;
 	default:
-		vcpu_printf(vcpu, "%s: unexpected cr %u\n", __func__, cr);
+		kvm_err("%s: unexpected cr %u\n", __func__, cr);
 		res = -1;
 	}
 
diff --git a/include/linux/kvm_host.h b/include/linux/kvm_host.h
index c446435..7825f1d 100644
--- a/include/linux/kvm_host.h
+++ b/include/linux/kvm_host.h
@@ -314,13 +314,18 @@ struct kvm {
 	long tlbs_dirty;
 };
 
-/* The guest did something we don't support. */
-#define pr_unimpl(vcpu, fmt, ...)					\
-	pr_err_ratelimited("kvm: %i: cpu%i " fmt,			\
-			   current->tgid, (vcpu)->vcpu_id , ## __VA_ARGS__)
+#define kvm_err(fmt, ...) \
+	pr_err("kvm [%i]: " fmt, current->pid, ## __VA_ARGS__)
+#define kvm_info(fmt, ...) \
+	pr_info("kvm [%i]: " fmt, current->pid, ## __VA_ARGS__)
+#define kvm_debug(fmt, ...) \
+	pr_debug("kvm [%i]: " fmt, current->pid, ## __VA_ARGS__)
+#define kvm_pr_unimpl(fmt, ...) \
+	pr_err_ratelimited("kvm [%i]: " fmt, current->tgid, ## __VA_ARGS__)
 
-#define kvm_printf(kvm, fmt ...) printk(KERN_DEBUG fmt)
-#define vcpu_printf(vcpu, fmt...) kvm_printf(vcpu->kvm, fmt)
+/* The guest did something we don't support. */
+#define vcpu_unimpl(vcpu, fmt, ...)					\
+	kvm_pr_unimpl("cpu%i " fmt, (vcpu)->vcpu_id, ## __VA_ARGS__)
 
 static inline struct kvm_vcpu *kvm_get_vcpu(struct kvm *kvm, int i)
 {


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH v2] KVM: Cleanup the kvm_print functions and introduce pr_XX wrappers
  2012-05-25 16:22 [PATCH v2] KVM: Cleanup the kvm_print functions and introduce pr_XX wrappers Christoffer Dall
@ 2012-06-02  0:04 ` Marcelo Tosatti
  2012-06-03 18:18   ` Christoffer Dall
  0 siblings, 1 reply; 3+ messages in thread
From: Marcelo Tosatti @ 2012-06-02  0:04 UTC (permalink / raw)
  To: Christoffer Dall; +Cc: kvm, android-virt, agraf

On Fri, May 25, 2012 at 12:22:59PM -0400, Christoffer Dall wrote:
> Introduces a couple of print functions, which are essentially wrappers
> around standard printk functions, with a KVM: prefix.
> 
> Functions introduced or modified are:
>  - kvm_err(fmt, ...)
>  - kvm_info(fmt, ...)
>  - kvm_debug(fmt, ...)
>  - kvm_pr_unimpl(fmt, ...)
>  - pr_unimpl(vcpu, fmt, ...) -> vcpu_unimpl(vcpu, fmt, ...)
> 
> Applies to kvm-next
> 
> Changelog[2]:
>  - Added PID to print functions
>  - Renamed vcpu_pr_unimpl to vcpu_unimpl
> 
>  Signed-off-by: Christoffer Dall <c.dall@virtualopensystems.com>
> ---
>  arch/x86/kvm/svm.c       |    6 +++--
>  arch/x86/kvm/vmx.c       |    2 +-
>  arch/x86/kvm/x86.c       |   54 +++++++++++++++++++++++-----------------------
>  include/linux/kvm_host.h |   17 +++++++++-----
>  4 files changed, 42 insertions(+), 37 deletions(-)
> 
> diff --git a/arch/x86/kvm/svm.c b/arch/x86/kvm/svm.c
> index f75af40..7a41878 100644
> --- a/arch/x86/kvm/svm.c
> +++ b/arch/x86/kvm/svm.c
> @@ -3185,8 +3185,8 @@ static int svm_set_msr(struct kvm_vcpu *vcpu, unsigned ecx, u64 data)
>  		break;
>  	case MSR_IA32_DEBUGCTLMSR:
>  		if (!boot_cpu_has(X86_FEATURE_LBRV)) {
> -			pr_unimpl(vcpu, "%s: MSR_IA32_DEBUGCTL 0x%llx, nop\n",
> -					__func__, data);
> +			vcpu_unimpl(vcpu, "%s: MSR_IA32_DEBUGCTL 0x%llx, nop\n",
> +				    __func__, data);
>  			break;
>  		}
>  		if (data & DEBUGCTL_RESERVED_BITS)
> @@ -3205,7 +3205,7 @@ static int svm_set_msr(struct kvm_vcpu *vcpu, unsigned ecx, u64 data)
>  	case MSR_VM_CR:
>  		return svm_set_vm_cr(vcpu, data);
>  	case MSR_VM_IGNNE:
> -		pr_unimpl(vcpu, "unimplemented wrmsr: 0x%x data 0x%llx\n", ecx, data);
> +		vcpu_unimpl(vcpu, "unimplemented wrmsr: 0x%x data 0x%llx\n", ecx, data);
>  		break;
>  	default:
>  		return kvm_set_msr_common(vcpu, ecx, data);
> diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c
> index 32eb588..c6b2d25 100644
> --- a/arch/x86/kvm/vmx.c
> +++ b/arch/x86/kvm/vmx.c
> @@ -4489,7 +4489,7 @@ static int handle_cr(struct kvm_vcpu *vcpu)
>  		break;
>  	}
>  	vcpu->run->exit_reason = 0;
> -	pr_unimpl(vcpu, "unhandled control register: op %d cr %d\n",
> +	vcpu_unimpl(vcpu, "unhandled control register: op %d cr %d\n",
>  	       (int)(exit_qualification >> 4) & 3, cr);
>  	return 0;
>  }
> diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
> index b78f89d..0aac0bc 100644
> --- a/arch/x86/kvm/x86.c
> +++ b/arch/x86/kvm/x86.c
> @@ -1437,8 +1437,8 @@ static int set_msr_hyperv_pw(struct kvm_vcpu *vcpu, u32 msr, u64 data)
>  		break;
>  	}
>  	default:
> -		pr_unimpl(vcpu, "HYPER-V unimplemented wrmsr: 0x%x "
> -			  "data 0x%llx\n", msr, data);
> +		vcpu_unimpl(vcpu, "HYPER-V unimplemented wrmsr: 0x%x "
> +			    "data 0x%llx\n", msr, data);
>  		return 1;
>  	}
>  	return 0;
> @@ -1470,8 +1470,8 @@ static int set_msr_hyperv(struct kvm_vcpu *vcpu, u32 msr, u64 data)
>  	case HV_X64_MSR_TPR:
>  		return kvm_hv_vapic_msr_write(vcpu, APIC_TASKPRI, data);
>  	default:
> -		pr_unimpl(vcpu, "HYPER-V unimplemented wrmsr: 0x%x "
> -			  "data 0x%llx\n", msr, data);
> +		vcpu_unimpl(vcpu, "HYPER-V unimplemented wrmsr: 0x%x "
> +			    "data 0x%llx\n", msr, data);
>  		return 1;
>  	}
>  
> @@ -1551,15 +1551,15 @@ int kvm_set_msr_common(struct kvm_vcpu *vcpu, u32 msr, u64 data)
>  		data &= ~(u64)0x100;	/* ignore ignne emulation enable */
>  		data &= ~(u64)0x8;	/* ignore TLB cache disable */
>  		if (data != 0) {
> -			pr_unimpl(vcpu, "unimplemented HWCR wrmsr: 0x%llx\n",
> -				data);
> +			vcpu_unimpl(vcpu, "unimplemented HWCR wrmsr: 0x%llx\n",
> +				    data);
>  			return 1;
>  		}
>  		break;
>  	case MSR_FAM10H_MMIO_CONF_BASE:
>  		if (data != 0) {
> -			pr_unimpl(vcpu, "unimplemented MMIO_CONF_BASE wrmsr: "
> -				"0x%llx\n", data);
> +			vcpu_unimpl(vcpu, "unimplemented MMIO_CONF_BASE wrmsr: "
> +				    "0x%llx\n", data);
>  			return 1;
>  		}
>  		break;
> @@ -1574,8 +1574,8 @@ int kvm_set_msr_common(struct kvm_vcpu *vcpu, u32 msr, u64 data)
>  			   thus reserved and should throw a #GP */
>  			return 1;
>  		}
> -		pr_unimpl(vcpu, "%s: MSR_IA32_DEBUGCTLMSR 0x%llx, nop\n",
> -			__func__, data);
> +		vcpu_unimpl(vcpu, "%s: MSR_IA32_DEBUGCTLMSR 0x%llx, nop\n",
> +			    __func__, data);
>  		break;
>  	case MSR_IA32_UCODE_REV:
>  	case MSR_IA32_UCODE_WRITE:
> @@ -1671,8 +1671,8 @@ int kvm_set_msr_common(struct kvm_vcpu *vcpu, u32 msr, u64 data)
>  	case MSR_K7_EVNTSEL2:
>  	case MSR_K7_EVNTSEL3:
>  		if (data != 0)
> -			pr_unimpl(vcpu, "unimplemented perfctr wrmsr: "
> -				"0x%x data 0x%llx\n", msr, data);
> +			vcpu_unimpl(vcpu, "unimplemented perfctr wrmsr: "
> +				    "0x%x data 0x%llx\n", msr, data);
>  		break;
>  	/* at least RHEL 4 unconditionally writes to the perfctr registers,
>  	 * so we ignore writes to make it happy.
> @@ -1681,8 +1681,8 @@ int kvm_set_msr_common(struct kvm_vcpu *vcpu, u32 msr, u64 data)
>  	case MSR_K7_PERFCTR1:
>  	case MSR_K7_PERFCTR2:
>  	case MSR_K7_PERFCTR3:
> -		pr_unimpl(vcpu, "unimplemented perfctr wrmsr: "
> -			"0x%x data 0x%llx\n", msr, data);
> +		vcpu_unimpl(vcpu, "unimplemented perfctr wrmsr: "
> +			    "0x%x data 0x%llx\n", msr, data);
>  		break;
>  	case MSR_P6_PERFCTR0:
>  	case MSR_P6_PERFCTR1:
> @@ -1693,8 +1693,8 @@ int kvm_set_msr_common(struct kvm_vcpu *vcpu, u32 msr, u64 data)
>  			return kvm_pmu_set_msr(vcpu, msr, data);
>  
>  		if (pr || data != 0)
> -			pr_unimpl(vcpu, "disabled perfctr wrmsr: "
> -				"0x%x data 0x%llx\n", msr, data);
> +			vcpu_unimpl(vcpu, "disabled perfctr wrmsr: "
> +				    "0x%x data 0x%llx\n", msr, data);
>  		break;
>  	case MSR_K7_CLK_CTL:
>  		/*
> @@ -1720,7 +1720,7 @@ int kvm_set_msr_common(struct kvm_vcpu *vcpu, u32 msr, u64 data)
>  		/* Drop writes to this legacy MSR -- see rdmsr
>  		 * counterpart for further detail.
>  		 */
> -		pr_unimpl(vcpu, "ignored wrmsr: 0x%x data %llx\n", msr, data);
> +		vcpu_unimpl(vcpu, "ignored wrmsr: 0x%x data %llx\n", msr, data);
>  		break;
>  	case MSR_AMD64_OSVW_ID_LENGTH:
>  		if (!guest_cpuid_has_osvw(vcpu))
> @@ -1738,12 +1738,12 @@ int kvm_set_msr_common(struct kvm_vcpu *vcpu, u32 msr, u64 data)
>  		if (kvm_pmu_msr(vcpu, msr))
>  			return kvm_pmu_set_msr(vcpu, msr, data);
>  		if (!ignore_msrs) {
> -			pr_unimpl(vcpu, "unhandled wrmsr: 0x%x data %llx\n",
> -				msr, data);
> +			vcpu_unimpl(vcpu, "unhandled wrmsr: 0x%x data %llx\n",
> +				    msr, data);
>  			return 1;
>  		} else {
> -			pr_unimpl(vcpu, "ignored wrmsr: 0x%x data %llx\n",
> -				msr, data);
> +			vcpu_unimpl(vcpu, "ignored wrmsr: 0x%x data %llx\n",
> +				    msr, data);
>  			break;
>  		}
>  	}
> @@ -1846,7 +1846,7 @@ static int get_msr_hyperv_pw(struct kvm_vcpu *vcpu, u32 msr, u64 *pdata)
>  		data = kvm->arch.hv_hypercall;
>  		break;
>  	default:
> -		pr_unimpl(vcpu, "Hyper-V unhandled rdmsr: 0x%x\n", msr);
> +		vcpu_unimpl(vcpu, "Hyper-V unhandled rdmsr: 0x%x\n", msr);
>  		return 1;
>  	}
>  
> @@ -1877,7 +1877,7 @@ static int get_msr_hyperv(struct kvm_vcpu *vcpu, u32 msr, u64 *pdata)
>  		data = vcpu->arch.hv_vapic;
>  		break;
>  	default:
> -		pr_unimpl(vcpu, "Hyper-V unhandled rdmsr: 0x%x\n", msr);
> +		vcpu_unimpl(vcpu, "Hyper-V unhandled rdmsr: 0x%x\n", msr);
>  		return 1;
>  	}
>  	*pdata = data;
> @@ -2030,10 +2030,10 @@ int kvm_get_msr_common(struct kvm_vcpu *vcpu, u32 msr, u64 *pdata)
>  		if (kvm_pmu_msr(vcpu, msr))
>  			return kvm_pmu_get_msr(vcpu, msr, pdata);
>  		if (!ignore_msrs) {
> -			pr_unimpl(vcpu, "unhandled rdmsr: 0x%x\n", msr);
> +			vcpu_unimpl(vcpu, "unhandled rdmsr: 0x%x\n", msr);
>  			return 1;
>  		} else {
> -			pr_unimpl(vcpu, "ignored rdmsr: 0x%x\n", msr);
> +			vcpu_unimpl(vcpu, "ignored rdmsr: 0x%x\n", msr);
>  			data = 0;
>  		}
>  		break;
> @@ -4116,7 +4116,7 @@ static unsigned long emulator_get_cr(struct x86_emulate_ctxt *ctxt, int cr)
>  		value = kvm_get_cr8(vcpu);
>  		break;
>  	default:
> -		vcpu_printf(vcpu, "%s: unexpected cr %u\n", __func__, cr);
> +		kvm_err("%s: unexpected cr %u\n", __func__, cr);
>  		return 0;
>  	}
>  
> @@ -4145,7 +4145,7 @@ static int emulator_set_cr(struct x86_emulate_ctxt *ctxt, int cr, ulong val)
>  		res = kvm_set_cr8(vcpu, val);
>  		break;
>  	default:
> -		vcpu_printf(vcpu, "%s: unexpected cr %u\n", __func__, cr);
> +		kvm_err("%s: unexpected cr %u\n", __func__, cr);
>  		res = -1;
>  	}
>  
> diff --git a/include/linux/kvm_host.h b/include/linux/kvm_host.h
> index c446435..7825f1d 100644
> --- a/include/linux/kvm_host.h
> +++ b/include/linux/kvm_host.h
> @@ -314,13 +314,18 @@ struct kvm {
>  	long tlbs_dirty;
>  };
>  
> -/* The guest did something we don't support. */
> -#define pr_unimpl(vcpu, fmt, ...)					\
> -	pr_err_ratelimited("kvm: %i: cpu%i " fmt,			\
> -			   current->tgid, (vcpu)->vcpu_id , ## __VA_ARGS__)
> +#define kvm_err(fmt, ...) \
> +	pr_err("kvm [%i]: " fmt, current->pid, ## __VA_ARGS__)

Use task_pid_nr() wrapper.

> +#define kvm_info(fmt, ...) \
> +	pr_info("kvm [%i]: " fmt, current->pid, ## __VA_ARGS__)
> +#define kvm_debug(fmt, ...) \
> +	pr_debug("kvm [%i]: " fmt, current->pid, ## __VA_ARGS__)
> +#define kvm_pr_unimpl(fmt, ...) \
> +	pr_err_ratelimited("kvm [%i]: " fmt, current->tgid, ## __VA_ARGS__)
>  
> -#define kvm_printf(kvm, fmt ...) printk(KERN_DEBUG fmt)
> -#define vcpu_printf(vcpu, fmt...) kvm_printf(vcpu->kvm, fmt)
> +/* The guest did something we don't support. */
> +#define vcpu_unimpl(vcpu, fmt, ...)					\
> +	kvm_pr_unimpl("cpu%i " fmt, (vcpu)->vcpu_id, ## __VA_ARGS__)

While at it, change "cpu" to "vcpu" (avoids confusion with pcpus).


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH v2] KVM: Cleanup the kvm_print functions and introduce pr_XX wrappers
  2012-06-02  0:04 ` Marcelo Tosatti
@ 2012-06-03 18:18   ` Christoffer Dall
  0 siblings, 0 replies; 3+ messages in thread
From: Christoffer Dall @ 2012-06-03 18:18 UTC (permalink / raw)
  To: Marcelo Tosatti; +Cc: kvm, android-virt, agraf

On Fri, Jun 1, 2012 at 8:04 PM, Marcelo Tosatti <mtosatti@redhat.com> wrote:
> On Fri, May 25, 2012 at 12:22:59PM -0400, Christoffer Dall wrote:
>> Introduces a couple of print functions, which are essentially wrappers
>> around standard printk functions, with a KVM: prefix.
>>
>> Functions introduced or modified are:
>>  - kvm_err(fmt, ...)
>>  - kvm_info(fmt, ...)
>>  - kvm_debug(fmt, ...)
>>  - kvm_pr_unimpl(fmt, ...)
>>  - pr_unimpl(vcpu, fmt, ...) -> vcpu_unimpl(vcpu, fmt, ...)
>>
>> Applies to kvm-next
>>
>> Changelog[2]:
>>  - Added PID to print functions
>>  - Renamed vcpu_pr_unimpl to vcpu_unimpl
>>
>>  Signed-off-by: Christoffer Dall <c.dall@virtualopensystems.com>
>> ---
>>  arch/x86/kvm/svm.c       |    6 +++--
>>  arch/x86/kvm/vmx.c       |    2 +-
>>  arch/x86/kvm/x86.c       |   54 +++++++++++++++++++++++-----------------------
>>  include/linux/kvm_host.h |   17 +++++++++-----
>>  4 files changed, 42 insertions(+), 37 deletions(-)
>>
>> diff --git a/arch/x86/kvm/svm.c b/arch/x86/kvm/svm.c
>> index f75af40..7a41878 100644
>> --- a/arch/x86/kvm/svm.c
>> +++ b/arch/x86/kvm/svm.c
>> @@ -3185,8 +3185,8 @@ static int svm_set_msr(struct kvm_vcpu *vcpu, unsigned ecx, u64 data)
>>               break;
>>       case MSR_IA32_DEBUGCTLMSR:
>>               if (!boot_cpu_has(X86_FEATURE_LBRV)) {
>> -                     pr_unimpl(vcpu, "%s: MSR_IA32_DEBUGCTL 0x%llx, nop\n",
>> -                                     __func__, data);
>> +                     vcpu_unimpl(vcpu, "%s: MSR_IA32_DEBUGCTL 0x%llx, nop\n",
>> +                                 __func__, data);
>>                       break;
>>               }
>>               if (data & DEBUGCTL_RESERVED_BITS)
>> @@ -3205,7 +3205,7 @@ static int svm_set_msr(struct kvm_vcpu *vcpu, unsigned ecx, u64 data)
>>       case MSR_VM_CR:
>>               return svm_set_vm_cr(vcpu, data);
>>       case MSR_VM_IGNNE:
>> -             pr_unimpl(vcpu, "unimplemented wrmsr: 0x%x data 0x%llx\n", ecx, data);
>> +             vcpu_unimpl(vcpu, "unimplemented wrmsr: 0x%x data 0x%llx\n", ecx, data);
>>               break;
>>       default:
>>               return kvm_set_msr_common(vcpu, ecx, data);
>> diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c
>> index 32eb588..c6b2d25 100644
>> --- a/arch/x86/kvm/vmx.c
>> +++ b/arch/x86/kvm/vmx.c
>> @@ -4489,7 +4489,7 @@ static int handle_cr(struct kvm_vcpu *vcpu)
>>               break;
>>       }
>>       vcpu->run->exit_reason = 0;
>> -     pr_unimpl(vcpu, "unhandled control register: op %d cr %d\n",
>> +     vcpu_unimpl(vcpu, "unhandled control register: op %d cr %d\n",
>>              (int)(exit_qualification >> 4) & 3, cr);
>>       return 0;
>>  }
>> diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
>> index b78f89d..0aac0bc 100644
>> --- a/arch/x86/kvm/x86.c
>> +++ b/arch/x86/kvm/x86.c
>> @@ -1437,8 +1437,8 @@ static int set_msr_hyperv_pw(struct kvm_vcpu *vcpu, u32 msr, u64 data)
>>               break;
>>       }
>>       default:
>> -             pr_unimpl(vcpu, "HYPER-V unimplemented wrmsr: 0x%x "
>> -                       "data 0x%llx\n", msr, data);
>> +             vcpu_unimpl(vcpu, "HYPER-V unimplemented wrmsr: 0x%x "
>> +                         "data 0x%llx\n", msr, data);
>>               return 1;
>>       }
>>       return 0;
>> @@ -1470,8 +1470,8 @@ static int set_msr_hyperv(struct kvm_vcpu *vcpu, u32 msr, u64 data)
>>       case HV_X64_MSR_TPR:
>>               return kvm_hv_vapic_msr_write(vcpu, APIC_TASKPRI, data);
>>       default:
>> -             pr_unimpl(vcpu, "HYPER-V unimplemented wrmsr: 0x%x "
>> -                       "data 0x%llx\n", msr, data);
>> +             vcpu_unimpl(vcpu, "HYPER-V unimplemented wrmsr: 0x%x "
>> +                         "data 0x%llx\n", msr, data);
>>               return 1;
>>       }
>>
>> @@ -1551,15 +1551,15 @@ int kvm_set_msr_common(struct kvm_vcpu *vcpu, u32 msr, u64 data)
>>               data &= ~(u64)0x100;    /* ignore ignne emulation enable */
>>               data &= ~(u64)0x8;      /* ignore TLB cache disable */
>>               if (data != 0) {
>> -                     pr_unimpl(vcpu, "unimplemented HWCR wrmsr: 0x%llx\n",
>> -                             data);
>> +                     vcpu_unimpl(vcpu, "unimplemented HWCR wrmsr: 0x%llx\n",
>> +                                 data);
>>                       return 1;
>>               }
>>               break;
>>       case MSR_FAM10H_MMIO_CONF_BASE:
>>               if (data != 0) {
>> -                     pr_unimpl(vcpu, "unimplemented MMIO_CONF_BASE wrmsr: "
>> -                             "0x%llx\n", data);
>> +                     vcpu_unimpl(vcpu, "unimplemented MMIO_CONF_BASE wrmsr: "
>> +                                 "0x%llx\n", data);
>>                       return 1;
>>               }
>>               break;
>> @@ -1574,8 +1574,8 @@ int kvm_set_msr_common(struct kvm_vcpu *vcpu, u32 msr, u64 data)
>>                          thus reserved and should throw a #GP */
>>                       return 1;
>>               }
>> -             pr_unimpl(vcpu, "%s: MSR_IA32_DEBUGCTLMSR 0x%llx, nop\n",
>> -                     __func__, data);
>> +             vcpu_unimpl(vcpu, "%s: MSR_IA32_DEBUGCTLMSR 0x%llx, nop\n",
>> +                         __func__, data);
>>               break;
>>       case MSR_IA32_UCODE_REV:
>>       case MSR_IA32_UCODE_WRITE:
>> @@ -1671,8 +1671,8 @@ int kvm_set_msr_common(struct kvm_vcpu *vcpu, u32 msr, u64 data)
>>       case MSR_K7_EVNTSEL2:
>>       case MSR_K7_EVNTSEL3:
>>               if (data != 0)
>> -                     pr_unimpl(vcpu, "unimplemented perfctr wrmsr: "
>> -                             "0x%x data 0x%llx\n", msr, data);
>> +                     vcpu_unimpl(vcpu, "unimplemented perfctr wrmsr: "
>> +                                 "0x%x data 0x%llx\n", msr, data);
>>               break;
>>       /* at least RHEL 4 unconditionally writes to the perfctr registers,
>>        * so we ignore writes to make it happy.
>> @@ -1681,8 +1681,8 @@ int kvm_set_msr_common(struct kvm_vcpu *vcpu, u32 msr, u64 data)
>>       case MSR_K7_PERFCTR1:
>>       case MSR_K7_PERFCTR2:
>>       case MSR_K7_PERFCTR3:
>> -             pr_unimpl(vcpu, "unimplemented perfctr wrmsr: "
>> -                     "0x%x data 0x%llx\n", msr, data);
>> +             vcpu_unimpl(vcpu, "unimplemented perfctr wrmsr: "
>> +                         "0x%x data 0x%llx\n", msr, data);
>>               break;
>>       case MSR_P6_PERFCTR0:
>>       case MSR_P6_PERFCTR1:
>> @@ -1693,8 +1693,8 @@ int kvm_set_msr_common(struct kvm_vcpu *vcpu, u32 msr, u64 data)
>>                       return kvm_pmu_set_msr(vcpu, msr, data);
>>
>>               if (pr || data != 0)
>> -                     pr_unimpl(vcpu, "disabled perfctr wrmsr: "
>> -                             "0x%x data 0x%llx\n", msr, data);
>> +                     vcpu_unimpl(vcpu, "disabled perfctr wrmsr: "
>> +                                 "0x%x data 0x%llx\n", msr, data);
>>               break;
>>       case MSR_K7_CLK_CTL:
>>               /*
>> @@ -1720,7 +1720,7 @@ int kvm_set_msr_common(struct kvm_vcpu *vcpu, u32 msr, u64 data)
>>               /* Drop writes to this legacy MSR -- see rdmsr
>>                * counterpart for further detail.
>>                */
>> -             pr_unimpl(vcpu, "ignored wrmsr: 0x%x data %llx\n", msr, data);
>> +             vcpu_unimpl(vcpu, "ignored wrmsr: 0x%x data %llx\n", msr, data);
>>               break;
>>       case MSR_AMD64_OSVW_ID_LENGTH:
>>               if (!guest_cpuid_has_osvw(vcpu))
>> @@ -1738,12 +1738,12 @@ int kvm_set_msr_common(struct kvm_vcpu *vcpu, u32 msr, u64 data)
>>               if (kvm_pmu_msr(vcpu, msr))
>>                       return kvm_pmu_set_msr(vcpu, msr, data);
>>               if (!ignore_msrs) {
>> -                     pr_unimpl(vcpu, "unhandled wrmsr: 0x%x data %llx\n",
>> -                             msr, data);
>> +                     vcpu_unimpl(vcpu, "unhandled wrmsr: 0x%x data %llx\n",
>> +                                 msr, data);
>>                       return 1;
>>               } else {
>> -                     pr_unimpl(vcpu, "ignored wrmsr: 0x%x data %llx\n",
>> -                             msr, data);
>> +                     vcpu_unimpl(vcpu, "ignored wrmsr: 0x%x data %llx\n",
>> +                                 msr, data);
>>                       break;
>>               }
>>       }
>> @@ -1846,7 +1846,7 @@ static int get_msr_hyperv_pw(struct kvm_vcpu *vcpu, u32 msr, u64 *pdata)
>>               data = kvm->arch.hv_hypercall;
>>               break;
>>       default:
>> -             pr_unimpl(vcpu, "Hyper-V unhandled rdmsr: 0x%x\n", msr);
>> +             vcpu_unimpl(vcpu, "Hyper-V unhandled rdmsr: 0x%x\n", msr);
>>               return 1;
>>       }
>>
>> @@ -1877,7 +1877,7 @@ static int get_msr_hyperv(struct kvm_vcpu *vcpu, u32 msr, u64 *pdata)
>>               data = vcpu->arch.hv_vapic;
>>               break;
>>       default:
>> -             pr_unimpl(vcpu, "Hyper-V unhandled rdmsr: 0x%x\n", msr);
>> +             vcpu_unimpl(vcpu, "Hyper-V unhandled rdmsr: 0x%x\n", msr);
>>               return 1;
>>       }
>>       *pdata = data;
>> @@ -2030,10 +2030,10 @@ int kvm_get_msr_common(struct kvm_vcpu *vcpu, u32 msr, u64 *pdata)
>>               if (kvm_pmu_msr(vcpu, msr))
>>                       return kvm_pmu_get_msr(vcpu, msr, pdata);
>>               if (!ignore_msrs) {
>> -                     pr_unimpl(vcpu, "unhandled rdmsr: 0x%x\n", msr);
>> +                     vcpu_unimpl(vcpu, "unhandled rdmsr: 0x%x\n", msr);
>>                       return 1;
>>               } else {
>> -                     pr_unimpl(vcpu, "ignored rdmsr: 0x%x\n", msr);
>> +                     vcpu_unimpl(vcpu, "ignored rdmsr: 0x%x\n", msr);
>>                       data = 0;
>>               }
>>               break;
>> @@ -4116,7 +4116,7 @@ static unsigned long emulator_get_cr(struct x86_emulate_ctxt *ctxt, int cr)
>>               value = kvm_get_cr8(vcpu);
>>               break;
>>       default:
>> -             vcpu_printf(vcpu, "%s: unexpected cr %u\n", __func__, cr);
>> +             kvm_err("%s: unexpected cr %u\n", __func__, cr);
>>               return 0;
>>       }
>>
>> @@ -4145,7 +4145,7 @@ static int emulator_set_cr(struct x86_emulate_ctxt *ctxt, int cr, ulong val)
>>               res = kvm_set_cr8(vcpu, val);
>>               break;
>>       default:
>> -             vcpu_printf(vcpu, "%s: unexpected cr %u\n", __func__, cr);
>> +             kvm_err("%s: unexpected cr %u\n", __func__, cr);
>>               res = -1;
>>       }
>>
>> diff --git a/include/linux/kvm_host.h b/include/linux/kvm_host.h
>> index c446435..7825f1d 100644
>> --- a/include/linux/kvm_host.h
>> +++ b/include/linux/kvm_host.h
>> @@ -314,13 +314,18 @@ struct kvm {
>>       long tlbs_dirty;
>>  };
>>
>> -/* The guest did something we don't support. */
>> -#define pr_unimpl(vcpu, fmt, ...)                                    \
>> -     pr_err_ratelimited("kvm: %i: cpu%i " fmt,                       \
>> -                        current->tgid, (vcpu)->vcpu_id , ## __VA_ARGS__)
>> +#define kvm_err(fmt, ...) \
>> +     pr_err("kvm [%i]: " fmt, current->pid, ## __VA_ARGS__)
>
> Use task_pid_nr() wrapper.
>
>> +#define kvm_info(fmt, ...) \
>> +     pr_info("kvm [%i]: " fmt, current->pid, ## __VA_ARGS__)
>> +#define kvm_debug(fmt, ...) \
>> +     pr_debug("kvm [%i]: " fmt, current->pid, ## __VA_ARGS__)
>> +#define kvm_pr_unimpl(fmt, ...) \
>> +     pr_err_ratelimited("kvm [%i]: " fmt, current->tgid, ## __VA_ARGS__)
>>
>> -#define kvm_printf(kvm, fmt ...) printk(KERN_DEBUG fmt)
>> -#define vcpu_printf(vcpu, fmt...) kvm_printf(vcpu->kvm, fmt)
>> +/* The guest did something we don't support. */
>> +#define vcpu_unimpl(vcpu, fmt, ...)                                  \
>> +     kvm_pr_unimpl("cpu%i " fmt, (vcpu)->vcpu_id, ## __VA_ARGS__)
>
> While at it, change "cpu" to "vcpu" (avoids confusion with pcpus).
>

thanks, new patch submitted.

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2012-06-03 18:18 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-05-25 16:22 [PATCH v2] KVM: Cleanup the kvm_print functions and introduce pr_XX wrappers Christoffer Dall
2012-06-02  0:04 ` Marcelo Tosatti
2012-06-03 18:18   ` Christoffer Dall

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox