<div dir="ltr"><span class="gmail-m_-2643208640856821907gmail-im" style="font-size:14px"><p class="MsoNormal" style="margin-right:0cm;margin-left:36pt;font-size:12pt;font-family:"times new roman""><span style="font-size:11pt">hi all</span><span style="font-size:10.5pt"><u></u><u></u></span></p><p class="MsoNormal" style="margin-right:0cm;margin-left:36pt;font-size:12pt;font-family:"times new roman""><span style="font-size:10.5pt"><br></span></p><p class="MsoNormal" style="margin-right:0cm;margin-left:36pt;font-size:12pt;font-family:"times new roman""><span style="font-size:10.5pt"><u></u>Sorry for resend this again, I forget to add subject :( ... </span></p><p class="MsoNormal" style="margin-right:0cm;margin-left:36pt;font-size:12pt;font-family:"times new roman""><span style="font-size:10.5pt"><br></span></p><p class="MsoNormal" style="margin-right:0cm;margin-left:36pt;font-size:12pt;font-family:"times new roman""><span style="font-size:11pt">Thanks all for the comment for previous RFC version, I summary all input here also with Opens which I am not sure, can you please review again?</span><span style="font-size:10.5pt"><u></u><u></u></span></p><p class="MsoNormal" style="margin-right:0cm;margin-left:36pt;font-size:12pt;font-family:"times new roman""><span style="font-size:10.5pt"><u></u> <u></u></span></p><p class="MsoNormal" style="margin-right:0cm;margin-left:36pt;font-size:12pt;font-family:"times new roman""><span style="font-size:11pt">#Propose Changes</span><span style="font-size:10.5pt"><u></u><u></u></span></p><p class="MsoNormal" style="margin-right:0cm;margin-left:36pt;font-size:12pt;font-family:"times new roman""><span style="font-size:10.5pt"><u></u> <u></u></span></p><p class="MsoNormal" style="margin-right:0cm;margin-left:36pt;font-size:12pt;font-family:"times new roman""><span style="font-size:11pt">## Expose cache information into capabilities</span><span style="font-size:10.5pt"><u></u><u></u></span></p><p class="MsoNormal" style="margin-right:0cm;margin-left:36pt;font-size:12pt;font-family:"times new roman""><span style="font-size:10.5pt"><u></u> <u></u></span></p><p class="MsoNormal" style="margin-right:0cm;margin-left:36pt;font-size:12pt;font-family:"times new roman""><span style="font-size:10.5pt"><u></u> <u></u></span></p><p class="MsoNormal" style="margin-right:0cm;margin-left:36pt;font-size:12pt;font-family:"times new roman""><span style="font-size:11pt">Extend capabilities to expose all level cache resource information and should tell the topology of caches also tell which kinds of resources can be tuned/allocation</span><span style="font-size:10.5pt"><u></u><u></u></span></p><p class="MsoNormal" style="margin-right:0cm;margin-left:36pt;font-size:12pt;font-family:"times new roman""><span style="font-size:11pt"> </span><span style="font-size:10.5pt"><u></u><u></u></span></p><p class="MsoNormal" style="margin-right:0cm;margin-left:36pt;font-size:12pt;font-family:"times new roman""><span style="font-size:10.5pt">There information comes from /sys/devices/system/cpu/c<wbr>pu0/cache/index${level}/size also /sys/fs/resctrl/ (this is CAT sys interface in linux kernel)<u></u><u></u></span></p><p class="MsoNormal" style="margin-right:0cm;margin-left:36pt;font-size:12pt;font-family:"times new roman""><span style="font-size:10.5pt"><u></u> <u></u></span></p><p class="MsoNormal" style="margin-right:0cm;margin-left:36pt;font-size:12pt;font-family:"times new roman""><span style="font-size:11pt">virsh capabilities </span><span style="font-size:10.5pt"><u></u><u></u></span></p><p class="MsoNormal" style="margin-right:0cm;margin-left:36pt;font-size:12pt;font-family:"times new roman""><span style="font-size:10.5pt"><u></u> <u></u></span></p><p class="MsoNormal" style="margin-right:0cm;margin-left:36pt;font-size:12pt;font-family:"times new roman"">    <cache><br><br>      <bank id='0, 'type="l3" size="56320" units="KiB" cpus="0,1,2,6,7,8"/>  <--------------------- level 3 cache is per socket, so group them by socket id<br><br>           <control unit="KiB" min="2816"/><br><br>      <bank id='1', type="l3" size="56320" units="KiB" cpus="3,4,5,9,10,11"/><br><br>      <bank id='2' type="l2" size="256" units="KiB" cpus="0"/><br><br>      <bank id='3' type="l2" size="256" units="KiB" cpus="1"/><br><br>      <bank id='4' type="l2" size="256" units="KiB" cpus="2"/><br><br>      <bank id='5' type="l2" size="256" units="KiB" cpus="3"/><br><br>      <bank id='6' type="l2" size="256" units="KiB" cpus="4"/><br><br>...<br><br>     <cache> <u></u><u></u></p></span><div style="font-size:14px"><p class="MsoNormal" style="margin-right:0cm;margin-left:36pt;font-size:12pt;font-family:"times new roman""><u></u> <u></u></p><p class="MsoNormal" style="margin-right:0cm;margin-left:36pt;font-size:12pt;font-family:"times new roman""><span style="font-size:10.5pt">Opens<u></u><u></u></span></p><p class="MsoNormal" style="margin-right:0cm;margin-left:72pt;font-size:12pt;font-family:"times new roman""><u></u>1.<span style="font-stretch:normal;font-size:7pt;line-height:normal">      </span><u></u>how about add socket id to bank for bank type = l3 ? <u></u><u></u></p><p class="MsoNormal" style="margin-right:0cm;margin-left:72pt;font-size:12pt;font-family:"times new roman""><u></u>2.<span style="font-stretch:normal;font-size:7pt;line-height:normal">      </span><u></u>do we really want to expose l2/l3 cache for now , they are per core resource and linux kernel don't support l2 yet (depend no hardware)?<u></u><u></u></p><p class="MsoNormal" style="margin-right:0cm;margin-left:72pt;font-size:12pt;font-family:"times new roman""><u></u>3.<span style="font-stretch:normal;font-size:7pt;line-height:normal">      </span><u></u>if enable CDP in resctrl, for bank type=l3 , it will be split to l3data l3code, should expose this ability.<u></u><u></u></p><div class="gmail-m_-2643208640856821907gmail-yj6qo gmail-m_-2643208640856821907gmail-ajU" style="margin:2px 0px 0px"><div id="gmail-m_-2643208640856821907gmail-:1y9" class="gmail-m_-2643208640856821907gmail-ajR"><img class="gmail-m_-2643208640856821907gmail-ajT gmail-CToWUd" src="https://ssl.gstatic.com/ui/v1/icons/mail/images/cleardot.gif"></div></div><div class="gmail-m_-2643208640856821907gmail-adL"><div class="gmail-m_-2643208640856821907gmail-adm"></div><div class="gmail-m_-2643208640856821907gmail-im"><p class="gmail-m_-2643208640856821907gmail-m_-2755478657613498364gmail-m1078163815136569527gmail-p1" style="margin-right:0cm;margin-left:36pt;font-size:12pt;font-family:"times new roman""><span class="gmail-m_-2643208640856821907gmail-m_-2755478657613498364gmail-m1078163815136569527gmail-s1">      <bank type="l3" size="56320" units="KiB" cpus="0,1,2,6,7,8"/>  <--------------------- level 3 cache is per socket, so group them by socket id</span><u></u><u></u></p><p class="gmail-m_-2643208640856821907gmail-m_-2755478657613498364gmail-m1078163815136569527gmail-p1" style="margin-right:0cm;margin-left:36pt;font-size:12pt;font-family:"times new roman""><span class="gmail-m_-2643208640856821907gmail-m_-2755478657613498364gmail-m1078163815136569527gmail-s1">           <control unit="KiB" min="2816" cdp="enabled"/></span><u></u><u></u></p><p class="gmail-m_-2643208640856821907gmail-m_-2755478657613498364gmail-m1078163815136569527gmail-p1" style="margin-right:0cm;margin-left:36pt;font-size:12pt;font-family:"times new roman""><u></u> <u></u></p><p class="MsoNormal" style="margin-right:0cm;margin-left:36pt;font-size:12pt;font-family:"times new roman""><span style="font-size:11pt">## Provide a new API to get the avail cache on each bank, such as the output are:</span><u></u><u></u></p><p class="MsoNormal" style="margin-right:0cm;margin-left:36pt;font-size:12pt;font-family:"times new roman""><span style="font-size:10.5pt"><u></u> <u></u></span></p><p class="gmail-m_-2643208640856821907gmail-m_-2755478657613498364gmail-p1" style="margin-right:0cm;margin-left:36pt;font-size:12pt;font-family:"times new roman""><span class="gmail-m_-2643208640856821907gmail-m_-2755478657613498364gmail-s1">   id=0</span><u></u><u></u></p><p class="gmail-m_-2643208640856821907gmail-m_-2755478657613498364gmail-p1" style="margin-right:0cm;margin-left:36pt;font-size:12pt;font-family:"times new roman""><span class="gmail-m_-2643208640856821907gmail-m_-2755478657613498364gmail-s1">   type=l3</span><u></u><u></u></p><p class="gmail-m_-2643208640856821907gmail-m_-2755478657613498364gmail-p1" style="margin-right:0cm;margin-left:36pt;font-size:12pt;font-family:"times new roman""><span class="gmail-m_-2643208640856821907gmail-m_-2755478657613498364gmail-s1">   avail=56320</span><u></u><u></u></p><p class="gmail-m_-2643208640856821907gmail-m_-2755478657613498364gmail-p1" style="margin-right:0cm;margin-left:36pt;font-size:12pt;font-family:"times new roman""><span class="gmail-m_-2643208640856821907gmail-m_-2755478657613498364gmail-s1">   total = ?? <--------- do we need this?</span><u></u><u></u></p><p class="gmail-m_-2643208640856821907gmail-m_-2755478657613498364gmail-p2" style="margin-right:0cm;margin-left:36pt;font-size:12pt;font-family:"times new roman""><u></u> <u></u></p><p class="gmail-m_-2643208640856821907gmail-m_-2755478657613498364gmail-p1" style="margin-right:0cm;margin-left:36pt;font-size:12pt;font-family:"times new roman""><span class="gmail-m_-2643208640856821907gmail-m_-2755478657613498364gmail-s1">   id=1</span><u></u><u></u></p><p class="gmail-m_-2643208640856821907gmail-m_-2755478657613498364gmail-p1" style="margin-right:0cm;margin-left:36pt;font-size:12pt;font-family:"times new roman""><span class="gmail-m_-2643208640856821907gmail-m_-2755478657613498364gmail-s1">   type=l3</span><u></u><u></u></p><p class="gmail-m_-2643208640856821907gmail-m_-2755478657613498364gmail-p1" style="margin-right:0cm;margin-left:36pt;font-size:12pt;font-family:"times new roman""><span class="gmail-m_-2643208640856821907gmail-m_-2755478657613498364gmail-s1">   avail=56320</span><u></u><u></u></p><p class="gmail-m_-2643208640856821907gmail-m_-2755478657613498364gmail-p2" style="margin-right:0cm;margin-left:36pt;font-size:12pt;font-family:"times new roman""><u></u> <u></u></p><p class="gmail-m_-2643208640856821907gmail-m_-2755478657613498364gmail-p1" style="margin-right:0cm;margin-left:36pt;font-size:12pt;font-family:"times new roman""><span class="gmail-m_-2643208640856821907gmail-m_-2755478657613498364gmail-s1">   id=3</span><u></u><u></u></p><p class="gmail-m_-2643208640856821907gmail-m_-2755478657613498364gmail-p1" style="margin-right:0cm;margin-left:36pt;font-size:12pt;font-family:"times new roman""><span class="gmail-m_-2643208640856821907gmail-m_-2755478657613498364gmail-s1">   type=l2</span><u></u><u></u></p><p class="gmail-m_-2643208640856821907gmail-m_-2755478657613498364gmail-p1" style="margin-right:0cm;margin-left:36pt;font-size:12pt;font-family:"times new roman""><span class="gmail-m_-2643208640856821907gmail-m_-2755478657613498364gmail-s1">   avail=</span>256<u></u><u></u></p><p class="gmail-m_-2643208640856821907gmail-m_-2755478657613498364gmail-p1" style="margin-right:0cm;margin-left:36pt;font-size:12pt;font-family:"times new roman""><u></u> <u></u></p><p class="gmail-m_-2643208640856821907gmail-m_-2755478657613498364gmail-p1" style="margin-right:0cm;margin-left:36pt;font-size:12pt;font-family:"times new roman"">Opens:<u></u><u></u></p><p class="MsoNormal" style="margin-right:0cm;margin-left:72pt;font-size:12pt;font-family:"times new roman""><u></u><span style="font-size:10pt;font-family:symbol">·<span style="font-stretch:normal;font-size:7pt;line-height:normal;font-family:"times new roman"">         </span></span><u></u>Don't expose the avail cache information if the host can not do the allocation of that type cache(eg, for l2 currently) ?<u></u><u></u></p><p class="MsoNormal" style="margin-right:0cm;margin-left:72pt;font-size:12pt;font-family:"times new roman""><u></u><span style="font-size:10pt;font-family:symbol">·<span style="font-stretch:normal;font-size:7pt;line-height:normal;font-family:"times new roman"">         </span></span><u></u>We can not make all of the cache , the reservation amount is the min_cbm_len (=1) * min_unit . <u></u><u></u></p><p class="MsoNormal" style="margin-right:0cm;margin-left:72pt;font-size:12pt;font-family:"times new roman""><u></u><span style="font-size:10pt;font-family:symbol">·<span style="font-stretch:normal;font-size:7pt;line-height:normal;font-family:"times new roman"">         </span></span><u></u>do we need to expose total? <u></u><u></u></p><p class="MsoNormal" style="margin-right:0cm;margin-left:36pt;font-size:12pt;font-family:"times new roman""><span style="font-size:10.5pt"><u></u> <u></u></span></p><p class="MsoNormal" style="margin-right:0cm;margin-left:36pt;font-size:12pt;font-family:"times new roman""><span style="font-size:10.5pt"><u></u> <u></u></span></p><p class="MsoNormal" style="margin-right:0cm;margin-left:36pt;font-size:12pt;font-family:"times new roman""><span style="font-size:10.5pt"><u></u> <u></u></span></p><p class="MsoNormal" style="margin-right:0cm;margin-left:36pt;font-size:12pt;font-family:"times new roman""><span style="font-size:11pt">##  enable CAT for a domain</span><span style="font-size:10.5pt"><u></u><u></u></span></p><p class="MsoNormal" style="margin-right:0cm;margin-left:36pt;font-size:12pt;font-family:"times new roman""><span style="font-size:10.5pt"><u></u> <u></u></span></p><p class="MsoNormal" style="margin-right:0cm;margin-left:36pt;font-size:12pt;font-family:"times new roman""><span style="font-size:11pt">1 Domain XML changes</span><span style="font-size:10.5pt"><u></u><u></u></span></p><p class="MsoNormal" style="margin-right:0cm;margin-left:36pt;font-size:12pt;font-family:"times new roman""><span style="font-size:11pt"> </span><span style="font-size:10.5pt"><u></u><u></u></span></p><p class="gmail-m_-2643208640856821907gmail-m_-2755478657613498364gmail-m1078163815136569527gmail-p1" style="margin-right:0cm;margin-left:36pt;font-size:12pt;font-family:"times new roman""><span class="gmail-m_-2643208640856821907gmail-m_-2755478657613498364gmail-m1078163815136569527gmail-s1">   <cputune></span><u></u><u></u></p><p class="gmail-m_-2643208640856821907gmail-m_-2755478657613498364gmail-m1078163815136569527gmail-p1" style="margin-right:0cm;margin-left:36pt;font-size:12pt;font-family:"times new roman""><span class="gmail-m_-2643208640856821907gmail-m_-2755478657613498364gmail-m1078163815136569527gmail-s1">       <cache id="1" host_id="0" type="l3" size="5632" unit="KiB"/></span><u></u><u></u></p><p class="gmail-m_-2643208640856821907gmail-m_-2755478657613498364gmail-m1078163815136569527gmail-p1" style="margin-right:0cm;margin-left:36pt;font-size:12pt;font-family:"times new roman""><span class="gmail-m_-2643208640856821907gmail-m_-2755478657613498364gmail-m1078163815136569527gmail-s1">       <cache id="2" host_id="1" type="l3" size="5632" unit="KiB"/></span> <u></u><u></u></p><p class="gmail-m_-2643208640856821907gmail-m_-2755478657613498364gmail-m1078163815136569527gmail-p1" style="margin-right:0cm;margin-left:36pt;font-size:12pt;font-family:"times new roman""><u></u> <u></u></p><p class="gmail-m_-2643208640856821907gmail-m_-2755478657613498364gmail-m1078163815136569527gmail-p1" style="margin-right:0cm;margin-left:36pt;font-size:12pt;font-family:"times new roman""><span class="gmail-m_-2643208640856821907gmail-m_-2755478657613498364gmail-m1078163815136569527gmail-s1">       <cpu_cache vcpus="0-3" id="1"/></span><u></u><u></u></p><p class="gmail-m_-2643208640856821907gmail-m_-2755478657613498364gmail-m1078163815136569527gmail-p1" style="margin-right:0cm;margin-left:36pt;font-size:12pt;font-family:"times new roman""><span class="gmail-m_-2643208640856821907gmail-m_-2755478657613498364gmail-m1078163815136569527gmail-s1">       <cpu_cache vcpus="4-7" id="2"/></span><u></u><u></u></p><p class="gmail-m_-2643208640856821907gmail-m_-2755478657613498364gmail-m1078163815136569527gmail-p1" style="margin-right:0cm;margin-left:36pt;font-size:12pt;font-family:"times new roman""><span class="gmail-m_-2643208640856821907gmail-m_-2755478657613498364gmail-m1078163815136569527gmail-s1">       <iothread_cache iothreads="0-1" id="1"/></span><u></u><u></u></p><p class="gmail-m_-2643208640856821907gmail-m_-2755478657613498364gmail-m1078163815136569527gmail-p1" style="margin-right:0cm;margin-left:36pt;font-size:12pt;font-family:"times new roman""><span class="gmail-m_-2643208640856821907gmail-m_-2755478657613498364gmail-m1078163815136569527gmail-s1">       <emulator_cache id="2"/></span><u></u><u></u></p><p class="gmail-m_-2643208640856821907gmail-m_-2755478657613498364gmail-m1078163815136569527gmail-p1" style="margin-right:0cm;margin-left:36pt;font-size:12pt;font-family:"times new roman""><span class="gmail-m_-2643208640856821907gmail-m_-2755478657613498364gmail-m1078163815136569527gmail-s1">   </cputune></span><u></u><u></u></p><p class="MsoNormal" style="margin-right:0cm;margin-left:36pt;font-size:12pt;font-family:"times new roman""><span style="font-size:10.5pt"><u></u> <u></u></span></p><p class="MsoNormal" style="margin-right:0cm;margin-left:36pt;font-size:12pt;font-family:"times new roman"">2. Extend cputune command ?<u></u><u></u></p><p class="MsoNormal" style="margin-right:0cm;margin-left:36pt;font-size:12pt;font-family:"times new roman""><u></u> <u></u></p><p class="MsoNormal" style="margin-right:0cm;margin-left:36pt;font-size:12pt;font-family:"times new roman""><u></u> <u></u></p><p class="MsoNormal" style="margin-right:0cm;margin-left:36pt;font-size:12pt;font-family:"times new roman"">Opens:<u></u><u></u></p><p class="MsoNormal" style="margin-right:0cm;margin-left:36pt;font-size:12pt;font-family:"times new roman""><u></u> <u></u></p><p class="MsoNormal" style="margin-right:0cm;margin-left:36pt;font-size:12pt;font-family:"times new roman"">1. Do we accept to extend existed API ? or using new API/virsh?<u></u><u></u></p><p class="MsoNormal" style="margin-right:0cm;margin-left:36pt;font-size:12pt;font-family:"times new roman""><span style="font-size:11pt">2. How to calculate cache size -> CBM bit? </span><span style="font-size:10.5pt"><u></u><u></u></span></p><p class="MsoNormal" style="margin-right:0cm;margin-left:36pt;font-size:12pt;font-family:"times new roman""><span style="font-size:10.5pt"><u></u> <u></u></span></p><p class="MsoNormal" style="margin-right:0cm;margin-left:36pt;font-size:12pt;font-family:"times new roman""><span style="font-size:11pt">eg: </span><span style="font-size:10.5pt"><u></u><u></u></span></p><p class="MsoNormal" style="margin-right:0cm;margin-left:36pt;font-size:12pt;font-family:"times new roman"">5632/ 2816 = 2 bits<span style="font-size:10.5pt"><u></u><u></u></span></p><p class="MsoNormal" style="margin-right:0cm;margin-left:36pt;font-size:12pt;font-family:"times new roman"">5733/ 2816 = 2 bits or 3 bits?<span style="font-size:10.5pt"><u></u><u></u></span></p><p class="MsoNormal" style="margin-right:0cm;margin-left:36pt;font-size:12pt;font-family:"times new roman""><span style="font-size:10.5pt"><u></u> <u></u></span></p><p class="MsoNormal" style="margin-right:0cm;margin-left:36pt;font-size:12pt;font-family:"times new roman""><span style="font-size:10.5pt"><u></u> <u></u></span></p><p class="MsoNormal" style="margin-right:0cm;margin-left:36pt;font-size:12pt;font-family:"times new roman""><span style="font-size:10.5pt"><u></u> <u></u></span></p><p class="MsoNormal" style="margin-right:0cm;margin-left:36pt;font-size:12pt;font-family:"times new roman""><span style="font-size:11pt">## Restriction for using cache tune on multiple sockets' host.</span><span style="font-size:10.5pt"><u></u><u></u></span></p><p class="MsoNormal" style="margin-right:0cm;margin-left:36pt;font-size:12pt;font-family:"times new roman""><span style="font-size:11pt"> </span><span style="font-size:10.5pt"><u></u><u></u></span></p><p class="MsoNormal" style="margin-right:0cm;margin-left:36pt;font-size:12pt;font-family:"times new roman""><span style="font-size:11pt">The l3 cache is per socket resource, kernel need to know about what's affinity looks like, so for a VM which running on a multiple socket's host, it should have NUMA setting or vcpuset pin setting. Or cache tune will fail.</span><span style="font-size:10.5pt"><u></u><u></u></span></p><p class="MsoNormal" style="margin-right:0cm;margin-left:36pt;font-size:12pt;font-family:"times new roman""><span style="font-size:11pt"> </span><span style="font-size:10.5pt"><u></u><u></u></span></p><p class="MsoNormal" style="margin-right:0cm;margin-left:36pt;font-size:12pt;font-family:"times new roman""><span style="font-size:11pt">[1] kernel support <a href="https://git.kernel.org/cgit/linux/kernel/git/tip/tip.git/tree/arch/x86/kernel/cpu/intel_rdt.c?h=x86/cache" target="_blank">https://git.kernel.org<wbr>/cgit/linux/kernel/git/tip/tip<wbr>.git/tree/arch/x86/kernel/cpu/<wbr>intel_rdt.c?h=x86/cache</a></span><span style="font-size:10.5pt"><u></u><u></u></span></p><p class="MsoNormal" style="margin-right:0cm;margin-left:36pt;font-size:12pt;font-family:"times new roman""><span style="font-size:11pt"> </span><span style="font-size:10.5pt"><u></u><u></u></span></p><p class="MsoNormal" style="margin-right:0cm;margin-left:36pt;font-size:12pt;font-family:"times new roman""><span style="font-size:11pt">[2] libvirt PoC(not finished yet) <a href="https://github.com/taget/libvirt/commits/cat_new" target="_blank">https://github.com/taget/<wbr>libvirt/commits/cat_new</a></span></p></div></div></div><div><br></div>-- <br><div class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div>Best regards </div><div>- Eli</div><div><br></div><div>天涯无处不重逢</div><div><span style="color:rgb(0,0,0);font-family:"microsoft yahei",verdana,arial,sans-serif">a leaf duckweed belongs to the sea , where not to meet in life </span><br></div></div></div></div></div>
</div>