ngx_cpuinfo / kvm & qemu / ngx_cacheline_size

Bertrand Paquet bpaquet at octo.com
Mon Dec 3 15:05:47 UTC 2012


Ok, thx you for answering.

Regards,

Bertrand


On Mon, Dec 3, 2012 at 2:55 PM, Maxim Dounin <mdounin at mdounin.ru> wrote:

> Hello!
>
> On Sun, Dec 02, 2012 at 12:15:03PM +0100, Bertrand Paquet wrote:
>
> > Hi,
> >
> > I have virtual machine running on qemu / kvm.
> >
> > cat /proc/cpuinfo give :
> > processor : 0
> > vendor_id : GenuineIntel
> > cpu family : 6
> > model : 2
> > model name : QEMU Virtual CPU version 1.1.2
> > stepping : 3
> > microcode : 0x1
> > cpu MHz : 1999.999
> > cache size : 4096 KB
> > fpu : yes
> > fpu_exception : yes
> > cpuid level : 4
> > wp : yes
> > flags : fpu de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pse36
> > clflush mmx fxsr sse sse2 syscall nx lm up rep_good nopl pni cx16 popcnt
> > hypervisor lahf_lm
> > bogomips : 3999.99
> > clflush size : 64
> > cache_alignment : 64
> > address sizes : 40 bits physical, 48 bits virtual
> > power management:
> >
> > the code in ngx_cpuinfo use the model value (2), and set
> > the ngx_cacheline_size to 32, instead of 64 given by cache_alignment in
> > /proc/cpuinfo.
> >
> > On same host using vmware virtualization, /proc/cpuinfo give a model of
> 45,
> > ngx_cacheline_size is set to 64.
> >
> > I think I can have low performances problems due to the
> ngx_cacheline_size
> > of 32 under qemu virtualization. Do you confirm ?
> >
> > Do you think we have to change ngx_cpuinfo code to give
> ngx_cacheline_size
> > 64 on qemu env ?
>
> Incorrectly detected cache line size may result in slightly
> non-optimal performance in some situations (I wouldn't suppose 32
> vs 64 to result in more than a few percent difference in real word
> nginx operation though, even on real hardware).  On the other
> hand, using virtualization ensures non-optimal performance in all
> situations, so one using virtualization probably don't care
> anyway.
>
> (In any case there are no plans to change Intel CPUs cache line
> size detection code to support fake emulated qemu CPUs.  In
> particular because it's not possible to tell which cache line size
> is more effective for a given emulated CPU.  It's up to you to
> configure qemu to emulate a CPU with a cache line size most
> effective on your hardware if you think you care.)
>
> --
> Maxim Dounin
> http://nginx.com/support.html
>
> _______________________________________________
> nginx mailing list
> nginx at nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.nginx.org/pipermail/nginx/attachments/20121203/7ca38ca0/attachment.html>


More information about the nginx mailing list