Score:3

หาก KVM ทำงานอยู่ เหตุใด VMX จึงแสดงเป็นปิดใช้งาน

ธง bq

ฉันเปิดใช้งาน VT-x ใน BIOS ฉันกำลังเรียกใช้ qemu/kvm/Manjaro แอลเอสพียู พูดว่า

$lscpu
สถาปัตยกรรม: x86_64
  ชื่อรุ่น: Intel(R) Core(TM) i7-8550U CPU @ 1.80GHz
ค่าสถานะ: ... vmx ... 
คุณสมบัติการจำลองเสมือน:
  การจำลองเสมือน: VT-x
ช่องโหว่:         
  Itlb multihit: KVM: Mitigation: VMX ถูกปิดใช้งาน

นอกจากนี้,

$ sudo rdmsr -f 2:0 0x3A
5

ซึ่งหมายความว่า

  • การกำหนดค่า VMX ถูกล็อก
  • VMX ถูกปิดใช้งานในสถานะ SMX (âSafer Mode Extensionsâ)
  • VMX ถูกเปิดใช้งานนอกสถานะ SMX

คำตอบนี้ ให้ความหวังกับฉัน: ถ้า เควีเอ็ม โหลดแล้ว VMX ก็ทำงาน อย่างแท้จริง, คิวมู กับ เควีเอ็ม เนื่องจากตัวเร่งความเร็วทำงานได้ดี (หรืออย่างน้อยก็ดูเหมือนว่าจะเป็นเช่นนั้น) แล้วเหตุใดจึงแสดง VMX ว่าถูกปิดใช้งานเพื่อจุดประสงค์ของช่องโหว่หลายจุด

ตัวอย่าง คิวมู วิ่ง:

$ qemu-system-x86_64 -nographic -vga none -net none -nodedefaults -machine q35 -accel kvm -cpu host -smp sockets=1,dies=1,cores=2,threads=2 -m 512M ...

มอนิเตอร์ QEMU 6.0.0 - พิมพ์ 'help' เพื่อดูข้อมูลเพิ่มเติม
(qemu) ข้อมูล kvm
ข้อมูล kvm
การสนับสนุน kvm: เปิดใช้งาน

แขก (ในกรณีนี้คือ pfSense) ทำงานได้ดี

in flag
คำตอบแรกของฉันคือมีความแตกต่างระหว่าง VT-d และ VT-x แต่จากสิ่งที่คุณพบและจากสิ่งที่ฉันรวบรวมมานั้นอาจไม่เป็นเช่นนั้น https://www.kernel.org/doc/html/latest/admin-guide/hw-vuln/multihit.html แต่ฉันก็ยังบอกว่า KVM ทำงานร่วมกับ VT-d ได้ ไม่จำเป็นต้องใช้ VT-x แต่ตรวจสอบอีกครั้ง dmesg?
bq flag
@NiKiZe VT-d และ VT-x นั้นแตกต่างกันอย่างแน่นอน แต่ที่นี่ฉันพยายามเน้นไปที่ VT-x VT-d เข้ามามีบทบาทที่ไหน?
Michael Hampton avatar
cz flag
คุณจะต้องถามคำถามนี้โดยตรงกับนักพัฒนา
in flag
แน่นอนดูเหมือนว่า จะลบข้อมูลที่ไม่ถูกต้อง dmesg พูดว่าอะไร และการพยายามเรียกใช้เครื่องที่เปิดใช้งาน KVM ให้อะไรแก่คุณ เช่น `qemu-system-x86_64 -enable-kvm -M q35 -m 1024 -cpu host`
bq flag
@NiKiZe ฉันได้แก้ไขเพื่อแสดงข้อมูลบางอย่างเกี่ยวกับตัวอย่างการรัน qemu คุณกำลังมองหาอะไรเป็นพิเศษใน dmesg; และคุณสนใจเจ้าภาพหรือแขก?
br flag
แบบง่าย: VT-x รองรับตารางเพจเลเยอร์ที่สองใน MMU ที่เชื่อมต่อกับ CPU และ VT-d รองรับตารางเพจใน MMU ที่เชื่อมต่อกับรูทคอมเพล็กซ์ PCIe คุณต้องการสิ่งหลังนี้สำหรับการส่งต่ออุปกรณ์ไปยัง VM อย่างโปร่งใส เนื่องจากพวกเขาตั้งโปรแกรมที่อยู่ทางกายภาพของผู้เยี่ยมชมลงในอุปกรณ์ที่รองรับ DMA และจำเป็นต้องแปลสิ่งเหล่านี้ระหว่างการดำเนินการ DMA
cn flag
ฉันแค่อยากจะบอกว่าฉันเห็นสิ่งเดียวกันนี้เกิดขึ้นกับ Skylake CPU และ Fedora Linux การจำลองเสมือนของฮาร์ดแวร์ทั้งหมดเปิดใช้งานใน BIOS แต่ `lscpu` อ้างว่า "ช่องโหว่ Itlb multihit: KVM: Mitigation: VMX ถูกปิดใช้งาน" สับสนมาก ฉันสงสัยว่ามันเป็นข้อบกพร่องของเคอร์เนลหรือไม่

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา