[Bug 206579] KVM with passthrough generates "BUG: kernel NULL pointer dereference" and crashes

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



https://bugzilla.kernel.org/show_bug.cgi?id=206579

--- Comment #22 from muncrief (rmuncrief@xxxxxxxxxxxxxxx) ---
Created attachment 287607
  --> https://bugzilla.kernel.org/attachment.cgi?id=287607&action=edit
svm.c patch option 2

Okay gentlemen, per Suravee's inquiry I created a patch with the "if (!avic ||
!lapic_in_kernel(&svm->vcpu))" option, did a clean build, and tested the VM.
Everything worked great, and there was no perceptible difference in operation
or performance between the two patch variations. I've attached the alternate
patch to this comment. I know nothing about the details of what's going on here
of course, so it's up to you to choose which one you prefer.

The problem now is that it appears that avic is not actually working. I
executed "perf kvm stat live" as Suravee suggested and all I saw was vintr,
there were no vmexit events. I also disabled avic per Paolo's instructions and
there was no perceptible difference in VM performance. I've done everything I
could discover to assure avic is enabled as follows:

\# dmesg | grep -i AMD-Vi
[    0.918716] pci 0000:00:00.2: AMD-Vi: IOMMU performance counters supported
[    0.920160] pci 0000:00:00.2: AMD-Vi: Found IOMMU cap 0x40
[    0.920161] pci 0000:00:00.2: AMD-Vi: Extended features (0x58f77ef22294ade):
[    0.920163] AMD-Vi: Interrupt remapping enabled
[    0.920163] AMD-Vi: Virtual APIC enabled
[    0.920163] AMD-Vi: X2APIC enabled
[    0.920272] AMD-Vi: Lazy IO/TLB flushing enabled
[    0.927736] AMD-Vi: AMD IOMMUv2 driver by Joerg Roedel <jroedel@xxxxxxx>

\# cat /sys/module/kvm_amd/parameters/avic
1

\# systool -m kvm_amd -v
...
```
  Parameters:
    avic                = "1"
    dump_invalid_vmcb   = "N"
    nested              = "1"
    npt                 = "1"
    nrips               = "1"
    pause_filter_count_grow= "2"
    pause_filter_count_max= "65535"
    pause_filter_count_shrink= "0"
    pause_filter_count  = "3000"
    pause_filter_thresh = "128"
    sev                 = "0"
    vgif                = "1"
    vls                 = "1"
...
```

So at this point I'm perplexed as to why avic isn't working. Any suggestions or
further instructions would be greatly appreciated.

-- 
You are receiving this mail because:
You are watching the assignee of the bug.



[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux