<div dir="ltr">Hi Andrea Bolognani!<div><br></div><div>Thank you very much for the reply and guide, they are very helpful. And we will treat</div><div>as this as a long-term task to try to enrich ARM capabilities, both in libvirt and QEMU</div><div>an other related projects.<br></div><div><br></div><div>As for the missing features, maybe I can do it one by one, start with simple ones,</div><div>for example, the simplest feature: "using virsh capabilities" to show host cpu model,</div><div>vendor and features is missing, this is quite simple and currently asked by our users.</div><div>I have a workable draft code that reads and parses /proc/cpuinfo for these informations,</div><div>will thar work? or Libvirt prefers reads them directly from registers like currently done</div><div>in x86 driver?</div><div><br></div><div>Thanks again,</div><div><br></div><div>Kevin Zheng</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Mar 4, 2020 at 8:46 PM Andrea Bolognani <<a href="mailto:abologna@redhat.com">abologna@redhat.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On Wed, 2020-03-04 at 15:15 +0800, Zhenyu Zheng wrote:<br>
> Hello Libvirt,<br>
> <br>
> With more and more ARM servers on the market and increasing amount of<br>
> users, we got reported alot that Libvirt cannot provide as much<br>
> function on ARM platform as on other platforms(mainly x86), some basic<br>
> founctions are missing, such as showing cpu model details and features<br>
> using ``virsh capabilities``, comparing cpus etc.<br>
> <br>
> So I would like to propose to extend the capability of ARM cpu driver.<br>
> Since I'm quite new here, I searched through the mailing list and did<br>
> not find much information on this, so I would like to know that will<br>
> this be something that I could work on?<br>
<br>
In general terms, any gaps between what is possible on x86 and what<br>
is possible on ARM are considered bugs and anyone interested in<br>
addressing them is very much welcome!<br>
<br>
On the topic of CPUs specifically, the limitations have been known<br>
for a long time but there are significant obstacles to solving them:<br>
<br>
  a) QEMU does not have named models for ARM CPUs at this point,<br>
     which makes comparing different guest CPUs basically impossible;<br>
<br>
  b) the Linux kernel does not report information about eg. CPU<br>
     frequencly consistently;<br>
<br>
  c) historically, ARM server vendors have included incorrect or<br>
     incomplete information in their products' ACPI and DMI tables.<br>
<br>
b) is, I believe, mostly a consequence of c); the latter is also the<br>
reason why libvirt can't really trust this information even if they<br>
happen to be available on a particular machine.<br>
<br>
Addressing a) is a long-term to do item for QEMU developers, and it<br>
has seen some progress lately; b) can only be addressed by hardware<br>
vendors.<br>
<br>
-- <br>
Andrea Bolognani / Red Hat / Virtualization<br>
<br>
</blockquote></div>