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;
        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;
        }
 
                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;
                           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:
        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.
        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:
                        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:
                /*
                /* 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))
                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;
                }
        }
                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;
        }
 
                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;
                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;
                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;
        }
 
                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;
        }
 
 
        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, task_pid_nr(current), ## __VA_ARGS__)
+#define kvm_info(fmt, ...) \
+       pr_info("kvm [%i]: " fmt, task_pid_nr(current), ## __VA_ARGS__)
+#define kvm_debug(fmt, ...) \
+       pr_debug("kvm [%i]: " fmt, task_pid_nr(current), ## __VA_ARGS__)
+#define kvm_pr_unimpl(fmt, ...) \
+       pr_err_ratelimited("kvm [%i]: " fmt, \
+                          task_tgid_nr(current), ## __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("vcpu%i " fmt, (vcpu)->vcpu_id, ## __VA_ARGS__)
 
 static inline struct kvm_vcpu *kvm_get_vcpu(struct kvm *kvm, int i)
 {