<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<STYLE type=text/css> <!--@import url(scrollbar.css); --></STYLE>
<META content="text/html; charset=utf-8" http-equiv=Content-Type>
<STYLE> body{FONT-SIZE:12pt; FONT-FAMILY:宋体,serif;} </STYLE>
<META name=GENERATOR content="MSHTML 10.00.9200.16521"><BASE
target=_blank></HEAD>
<BODY
style="BORDER-LEFT-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; MARGIN: 12px; LINE-HEIGHT: 1.3; BORDER-TOP-WIDTH: 0px"
marginheight="0" marginwidth="0">
<DIV><FONT color=#000000 size=3 face=Verdana>Hi
Daniel,</FONT></DIV>
<DIV><FONT face=Verdana></FONT> </DIV>
<DIV><FONT face=Verdana>Thanks for your help in advance.</FONT></DIV>
<DIV><FONT face=Verdana>I have read your wiki page and it explains this
issue very clearly.</FONT></DIV>
<DIV><FONT face=Verdana>But I have a question about the 'technical design', you
give us a prototype method as below:</FONT></DIV>
<DIV><FONT face=Verdana>def get_guest_cpu_topology(self, inst_type, image,
preferred_topology, mandatory_topology):</FONT></DIV>
<DIV><FONT face=Verdana>my question is that, how/where we can get these two
parameters 'preferred_topology, mandatory_topology'?</FONT></DIV>
<DIV><FONT face=Verdana>from the nova config file? or get from
the hypervisor?</FONT></DIV>
<DIV><FONT face=Verdana></FONT> </DIV>
<DIV><FONT face=Verdana>Thanks again.</FONT></DIV>
<DIV> </DIV>
<DIV align=left><FONT color=#c0c0c0 size=2 face=Verdana>2013-11-20</FONT></DIV>
<DIV align=left><FONT size=2 face=Verdana>
<HR id=SignNameHR style="HEIGHT: 2px; WIDTH: 122px" align=left SIZE=2>
</FONT></DIV>
<DIV align=left><FONT color=#c0c0c0 size=2 face=Verdana><SPAN
id=_FlashSignName>Wangpan</SPAN></FONT></DIV>
<DIV><FONT size=2 face=Verdana>
<HR>
</FONT></DIV>
<DIV><FONT size=2 face=Verdana><STRONG>发件人:</STRONG>"Daniel P. Berrange"
<berrange@redhat.com></FONT></DIV>
<DIV><FONT size=2
face=Verdana><STRONG>发送时间:</STRONG>2013-11-19 20:15</FONT></DIV>
<DIV><FONT size=2 face=Verdana><STRONG>主题:</STRONG>[openstack-dev] [Nova]
Blueprint: standard specification of guest CPU topology</FONT></DIV>
<DIV><FONT size=2
face=Verdana><STRONG>收件人:</STRONG>"openstack-dev"<openstack-dev@lists.openstack.org></FONT></DIV>
<DIV><FONT size=2 face=Verdana><STRONG>抄送:</STRONG></FONT></DIV>
<DIV><FONT size=2 face=Verdana></FONT> </DIV>
<DIV><FONT size=2 face=Verdana>
<DIV>For attention of maintainers of Nova virt drivers </DIV>
<DIV> </DIV>
<DIV>A while back there was a bug requesting the ability to set the CPU </DIV>
<DIV>topology (sockets/cores/threads) for guests explicitly </DIV>
<DIV> </DIV>
<DIV> https://bugs.launchpad.net/nova/+bug/1199019 </DIV>
<DIV> </DIV>
<DIV>I countered that setting explicit topology doesn't play well with </DIV>
<DIV>booting images with a variety of flavours with differing vCPU counts. </DIV>
<DIV> </DIV>
<DIV>This led to the following change which used an image property to </DIV>
<DIV>express maximum constraints on CPU topology (max-sockets/max-cores/ </DIV>
<DIV>max-threads) which the libvirt driver will use to figure out the </DIV>
<DIV>actual topology (sockets/cores/threads) </DIV>
<DIV> </DIV>
<DIV> https://review.openstack.org/#/c/56510/ </DIV>
<DIV> </DIV>
<DIV>I believe this is a prime example of something we must co-ordinate </DIV>
<DIV>across virt drivers to maximise happiness of our users. </DIV>
<DIV> </DIV>
<DIV>There's a blueprint but I find the description rather hard to </DIV>
<DIV>follow </DIV>
<DIV> </DIV>
<DIV> https://blueprints.launchpad.net/nova/+spec/support-libvirt-vcpu-topology </DIV>
<DIV> </DIV>
<DIV>So I've created a standalone wiki page which I hope describes the </DIV>
<DIV>idea more clearly </DIV>
<DIV> </DIV>
<DIV> https://wiki.openstack.org/wiki/VirtDriverGuestCPUTopology </DIV>
<DIV> </DIV>
<DIV>Launchpad doesn't let me link the URL to the blueprint since I'm not </DIV>
<DIV>the blurprint creator :-( </DIV>
<DIV> </DIV>
<DIV>Anyway this mail is to solicit input on the proposed standard way to </DIV>
<DIV>express this which is hypervisor portable and the addition of some </DIV>
<DIV>shared code for doing the calculations which virt driver impls can </DIV>
<DIV>just all into rather than re-inventing </DIV>
<DIV> </DIV>
<DIV>I'm looking for buy-in to the idea from the maintainers of each </DIV>
<DIV>virt driver that this conceptual approach works for them, before </DIV>
<DIV>we go merging anything with the specific impl for libvirt. </DIV>
<DIV> </DIV>
<DIV>Regards, </DIV>
<DIV>Daniel </DIV>
<DIV>-- </DIV>
<DIV>|: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| </DIV>
<DIV>|: http://libvirt.org -o- http://virt-manager.org :| </DIV>
<DIV>|: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| </DIV>
<DIV>|: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :| </DIV>
<DIV> </DIV>
<DIV>_______________________________________________ </DIV>
<DIV>OpenStack-dev mailing list </DIV>
<DIV>OpenStack-dev@lists.openstack.org </DIV>
<DIV>http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev </DIV></FONT></DIV></BODY></HTML>