Luvalley-3 has been released, this release is for AMD CPU only

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

 



Hi, all,

This Luvalley release is for machines with AMD CPUs only. It cannot
work on Intel CPUs. Also, this release is for Linux dom0 only. Please
refer to Luvalley-2 if you have a machine with Intel CPUs.

Due to the limitations of AMD CPUs, this Luvalley release has a new
architecture different from that on Intel CPUs. The limitation is that
AMD CPUs cannot receive the NMI IPI. That is to say, sending an NMI
IPI to other CPUs in the SMP computer cannot work. More thoroughly,
the BSP (i.e., CPU #0) can receive the NMI IPI issued from other APs
(i.e., CPU #1, CPU #2, ...). The APs, however, cannot receive the NMI
IPI from BSP. I tried in Linux 2.6.18 and Xen 3.1 and get the same
problem.

Ridiculously, the "AMD64 Architecture Programmer's Manual Volume 2:
System Programming" clearly states that NMI IPI is fully supported,
just like Intel's. The same codes works very well on Intel's CPUs, but
cannot work on AMD's CPUs.

So, we have to trap all physical interrupts on machines with AMD CPU
and then inject them back to dom0. That is to say, the CPU is
configured to vmexit to Luvalley when physical interrupts occur.
Moreover, we have to use a normal interrupt number for IPI sending and
receiving. This caused many problems on APIC ACK and interrupt block
issues.

Although there are still many problems unsolved, Luvalley indeed can
run Linux as its dom0 and a Windows domU as well. We decided to pause
the development for AMD CPUs, until (maybe impossible) AMD works
around the NMI IPI bug. On the other side, Luvalley's architecture
will be slightly modified little by little in the future, while still
preserving current features such as easy-to-use-and-install, arbitrary
dom0 OS and hardware compatibility, etc. From long-term consideration,
Luvalley should trap physical interrupts and manage APICs. At that
time, AMD CPUs could be supported even if the NMI IPI bug is still
there.


More details on Luvalley
================================
Luvalley is a Virtual Machine Monitor (VMM) spawned from the KVM
project. Its part of source codes are derived from KVM to virtualize
CPU instructions and memory management unit (MMU). However, its
overall architecture is completely different from KVM, but somewhat
like Xen. Luvalley runs outside of Linux, just like Xen's
architecture. Any operating system, including Linux, could be used as
Luvalley's scheduler, memory
manager, physical device driver provider and virtual IO device
emulator. Currently, Luvalley supports Linux and Windows. That is to
say, one may run Luvalley to boot a Linux or Windows, and then run
multiple virtualized operating systems on such Linux or Windows.

If you are interested in Luvalley project, you may download the source
codes from
   http://sourceforge.net/projects/luvalley/

Regards,

Xiaodong
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[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