Commit d36f19e9 authored by Joerg Roedel's avatar Joerg Roedel Committed by Avi Kivity
Browse files

KVM: SVM: Remove nsvm_printk debugging code



With all important informations now delivered through
tracepoints we can savely remove the nsvm_printk debugging
code for nested svm.

Signed-off-by: default avatarJoerg Roedel <joerg.roedel@amd.com>
Signed-off-by: default avatarMarcelo Tosatti <mtosatti@redhat.com>
parent 532a46b9
Loading
Loading
Loading
Loading
+0 −34
Original line number Original line Diff line number Diff line
@@ -53,15 +53,6 @@ MODULE_LICENSE("GPL");


#define DEBUGCTL_RESERVED_BITS (~(0x3fULL))
#define DEBUGCTL_RESERVED_BITS (~(0x3fULL))


/* Turn on to get debugging output*/
/* #define NESTED_DEBUG */

#ifdef NESTED_DEBUG
#define nsvm_printk(fmt, args...) printk(KERN_INFO fmt, ## args)
#else
#define nsvm_printk(fmt, args...) do {} while(0)
#endif

static const u32 host_save_user_msrs[] = {
static const u32 host_save_user_msrs[] = {
#ifdef CONFIG_X86_64
#ifdef CONFIG_X86_64
	MSR_STAR, MSR_LSTAR, MSR_CSTAR, MSR_SYSCALL_MASK, MSR_KERNEL_GS_BASE,
	MSR_STAR, MSR_LSTAR, MSR_CSTAR, MSR_SYSCALL_MASK, MSR_KERNEL_GS_BASE,
@@ -1540,14 +1531,12 @@ static int nested_svm_exit_handled(struct vcpu_svm *svm)
	}
	}
	default: {
	default: {
		u64 exit_bits = 1ULL << (exit_code - SVM_EXIT_INTR);
		u64 exit_bits = 1ULL << (exit_code - SVM_EXIT_INTR);
		nsvm_printk("exit code: 0x%x\n", exit_code);
		if (svm->nested.intercept & exit_bits)
		if (svm->nested.intercept & exit_bits)
			vmexit = NESTED_EXIT_DONE;
			vmexit = NESTED_EXIT_DONE;
	}
	}
	}
	}


	if (vmexit == NESTED_EXIT_DONE) {
	if (vmexit == NESTED_EXIT_DONE) {
		nsvm_printk("#VMEXIT reason=%04x\n", exit_code);
		nested_svm_vmexit(svm);
		nested_svm_vmexit(svm);
	}
	}


@@ -1658,10 +1647,6 @@ static int nested_svm_vmexit(struct vcpu_svm *svm)
	/* Restore the original control entries */
	/* Restore the original control entries */
	copy_vmcb_control_area(vmcb, hsave);
	copy_vmcb_control_area(vmcb, hsave);


	/* Kill any pending exceptions */
	if (svm->vcpu.arch.exception.pending == true)
		nsvm_printk("WARNING: Pending Exception\n");

	kvm_clear_exception_queue(&svm->vcpu);
	kvm_clear_exception_queue(&svm->vcpu);
	kvm_clear_interrupt_queue(&svm->vcpu);
	kvm_clear_interrupt_queue(&svm->vcpu);


@@ -1826,25 +1811,14 @@ static bool nested_svm_vmrun(struct vcpu_svm *svm)


	force_new_asid(&svm->vcpu);
	force_new_asid(&svm->vcpu);
	svm->vmcb->control.int_ctl = nested_vmcb->control.int_ctl | V_INTR_MASKING_MASK;
	svm->vmcb->control.int_ctl = nested_vmcb->control.int_ctl | V_INTR_MASKING_MASK;
	if (nested_vmcb->control.int_ctl & V_IRQ_MASK) {
		nsvm_printk("nSVM Injecting Interrupt: 0x%x\n",
				nested_vmcb->control.int_ctl);
	}
	if (nested_vmcb->control.int_ctl & V_INTR_MASKING_MASK)
	if (nested_vmcb->control.int_ctl & V_INTR_MASKING_MASK)
		svm->vcpu.arch.hflags |= HF_VINTR_MASK;
		svm->vcpu.arch.hflags |= HF_VINTR_MASK;
	else
	else
		svm->vcpu.arch.hflags &= ~HF_VINTR_MASK;
		svm->vcpu.arch.hflags &= ~HF_VINTR_MASK;


	nsvm_printk("nSVM exit_int_info: 0x%x | int_state: 0x%x\n",
			nested_vmcb->control.exit_int_info,
			nested_vmcb->control.int_state);

	svm->vmcb->control.int_vector = nested_vmcb->control.int_vector;
	svm->vmcb->control.int_vector = nested_vmcb->control.int_vector;
	svm->vmcb->control.int_state = nested_vmcb->control.int_state;
	svm->vmcb->control.int_state = nested_vmcb->control.int_state;
	svm->vmcb->control.tsc_offset += nested_vmcb->control.tsc_offset;
	svm->vmcb->control.tsc_offset += nested_vmcb->control.tsc_offset;
	if (nested_vmcb->control.event_inj & SVM_EVTINJ_VALID)
		nsvm_printk("Injecting Event: 0x%x\n",
				nested_vmcb->control.event_inj);
	svm->vmcb->control.event_inj = nested_vmcb->control.event_inj;
	svm->vmcb->control.event_inj = nested_vmcb->control.event_inj;
	svm->vmcb->control.event_inj_err = nested_vmcb->control.event_inj_err;
	svm->vmcb->control.event_inj_err = nested_vmcb->control.event_inj_err;


@@ -1913,8 +1887,6 @@ static int vmsave_interception(struct vcpu_svm *svm)


static int vmrun_interception(struct vcpu_svm *svm)
static int vmrun_interception(struct vcpu_svm *svm)
{
{
	nsvm_printk("VMrun\n");

	if (nested_svm_check_permissions(svm))
	if (nested_svm_check_permissions(svm))
		return 1;
		return 1;


@@ -1974,7 +1946,6 @@ static int clgi_interception(struct vcpu_svm *svm)
static int invlpga_interception(struct vcpu_svm *svm)
static int invlpga_interception(struct vcpu_svm *svm)
{
{
	struct kvm_vcpu *vcpu = &svm->vcpu;
	struct kvm_vcpu *vcpu = &svm->vcpu;
	nsvm_printk("INVLPGA\n");


	trace_kvm_invlpga(svm->vmcb->save.rip, vcpu->arch.regs[VCPU_REGS_RCX],
	trace_kvm_invlpga(svm->vmcb->save.rip, vcpu->arch.regs[VCPU_REGS_RCX],
			  vcpu->arch.regs[VCPU_REGS_RAX]);
			  vcpu->arch.regs[VCPU_REGS_RAX]);
@@ -2389,10 +2360,6 @@ static int handle_exit(struct kvm_vcpu *vcpu)
					svm->vmcb->control.exit_int_info,
					svm->vmcb->control.exit_int_info,
					svm->vmcb->control.exit_int_info_err);
					svm->vmcb->control.exit_int_info_err);


		nsvm_printk("nested handle_exit: 0x%x | 0x%lx | 0x%lx | 0x%lx\n",
			    exit_code, svm->vmcb->control.exit_info_1,
			    svm->vmcb->control.exit_info_2, svm->vmcb->save.rip);

		vmexit = nested_svm_exit_special(svm);
		vmexit = nested_svm_exit_special(svm);


		if (vmexit == NESTED_EXIT_CONTINUE)
		if (vmexit == NESTED_EXIT_CONTINUE)
@@ -2539,7 +2506,6 @@ static int svm_interrupt_allowed(struct kvm_vcpu *vcpu)
static void enable_irq_window(struct kvm_vcpu *vcpu)
static void enable_irq_window(struct kvm_vcpu *vcpu)
{
{
	struct vcpu_svm *svm = to_svm(vcpu);
	struct vcpu_svm *svm = to_svm(vcpu);
	nsvm_printk("Trying to open IRQ window\n");


	nested_svm_intr(svm);
	nested_svm_intr(svm);