<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 01:03:23 UTC 2024

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary append 'field=key&field=summary' to the URL of your request.
-->
<rss version="0.92" >
<channel>
    <title>Whamcloud Community JIRA</title>
    <link>https://jira.whamcloud.com</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>9.4.14</version>
        <build-number>940014</build-number>
        <build-date>05-12-2023</build-date>
    </build-info>


<item>
            <title>[LU-66] obdfilter-survey performance issue on NUMA system</title>
                <link>https://jira.whamcloud.com/browse/LU-66</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&lt;p&gt;this is just copy of bug 22980, but I think it&apos;s better to track &amp;amp; discuss it at here:&lt;/p&gt;

&lt;p&gt;Hello,&lt;/p&gt;

&lt;p&gt;Testing our new IO servers we have an issue with obdfilter-survey. Our OSSs are based on 4&lt;br/&gt;
Nehalem-EX processors, connected to a Boxboro chipset. Every socket has 6 cores. On every OST we&lt;br/&gt;
have several FC channels connected to our storage bay.&lt;/p&gt;

&lt;p&gt;When we perform raw tests with sgpdd-survey, over 24 luns we get ~4400 MB/s on write and more than&lt;br/&gt;
5500 MB/s on read.&lt;/p&gt;

&lt;p&gt;Then if we start a Lustre filesystem and we test these 24 osts with obdfilter-survey (size=24192&lt;br/&gt;
rszlo=1024 rszhi=1024 nobjlo=1 nobjhi=2 thrlo=1 thrhi=16 case=disk tests_str=&quot;write read&quot; sh&lt;br/&gt;
obdfilter-survey) we always have a performance limit on 1200 MB/s for write and read.&lt;/p&gt;

&lt;p&gt;If we perform IOzone tests from five clients (2 threads per client, connected to the server with&lt;br/&gt;
Infiniband) we get more than 2500 MB/s.&lt;/p&gt;

&lt;p&gt;Then we disconnected two sockets using command &quot;echo 0 &amp;gt; /sys/devices/system/cpu/cpu5/online&quot; on&lt;br/&gt;
every cpu belonging to these two sockets and we get expected results on obdfilter-survey (4600 MB/s&lt;br/&gt;
on write and 5500 MB/s on read). If we only disconnect one socket then obdfilter-survey gives us a&lt;br/&gt;
max of 1600 MB/s. Using only one socket results are slightly worse than with two sockets.&lt;/p&gt;

&lt;p&gt;We also made these tests with Lustre 1.6, with other storage bays and with similar platforms (4&lt;br/&gt;
sockets and 8 cpus per socket) having always the same kind of problem. If we activate the&lt;br/&gt;
hyper-threading functionality on every socket then performances are even worse. &lt;/p&gt;

&lt;p&gt;It&apos;s like if obdfilter-survey has any kind of saturation when there are many sockets. What do you&lt;br/&gt;
think? Thanks,&lt;/p&gt;</description>
                <environment></environment>
        <key id="10340">LU-66</key>
            <summary>obdfilter-survey performance issue on NUMA system</summary>
                <type id="4" iconUrl="https://jira.whamcloud.com/secure/viewavatar?size=xsmall&amp;avatarId=11310&amp;avatarType=issuetype">Improvement</type>
                                            <priority id="4" iconUrl="https://jira.whamcloud.com/images/icons/priorities/minor.svg">Minor</priority>
                        <status id="5" iconUrl="https://jira.whamcloud.com/images/icons/statuses/resolved.png" description="A resolution has been taken, and it is awaiting verification by reporter. From here issues are either reopened, or are closed.">Resolved</status>
                    <statusCategory id="3" key="done" colorName="success"/>
                                    <resolution id="1">Fixed</resolution>
                                        <assignee username="niu">Niu Yawei</assignee>
                                    <reporter username="liang">Liang Zhen</reporter>
                        <labels>
                    </labels>
                <created>Wed, 9 Feb 2011 06:44:03 +0000</created>
                <updated>Tue, 17 Dec 2013 02:16:38 +0000</updated>
                            <resolved>Tue, 17 Dec 2013 02:16:38 +0000</resolved>
                                    <version>Lustre 2.1.0</version>
                                    <fixVersion>Lustre 2.1.0</fixVersion>
                                        <due></due>
                            <votes>0</votes>
                                    <watches>8</watches>
                                                                            <comments>
                            <comment id="10581" author="liang" created="Wed, 9 Feb 2011 06:45:35 +0000"  >&lt;p&gt;initial data from Sebastien&lt;/p&gt;

&lt;p&gt;---------------------------------------&lt;/p&gt;

&lt;p&gt;Hi,&lt;/p&gt;

&lt;p&gt;I gave a try to attachment 32668 &lt;span class=&quot;error&quot;&gt;&amp;#91;details&amp;#93;&lt;/span&gt; on Lustre 2.0. I ran the tests on a MESCA server (OSS), running a&lt;br/&gt;
RHEL6 kernel (2.6.32).&lt;br/&gt;
With this kernel, HAVE_UNLOCKED_IOCTL is defined. But unfortunately, I could see no improvement in&lt;br/&gt;
the performance given by obdfilter-survey:&lt;/p&gt;


&lt;p&gt;Without attachment 32668 &lt;span class=&quot;error&quot;&gt;&amp;#91;details&amp;#93;&lt;/span&gt;, all sockets activated:&lt;/p&gt;


&lt;p&gt;&lt;span class=&quot;error&quot;&gt;&amp;#91;root@berlin7 ~&amp;#93;&lt;/span&gt;# numactl -H&lt;br/&gt;
available: 4 nodes (0-3)&lt;br/&gt;
node 0 cpus: 0 4 8 12 16 20 24 28&lt;br/&gt;
node 0 size: 16364 MB&lt;br/&gt;
node 0 free: 13521 MB&lt;br/&gt;
node 1 cpus: 1 5 9 13 17 21 25 29&lt;br/&gt;
node 1 size: 16384 MB&lt;br/&gt;
node 1 free: 15637 MB&lt;br/&gt;
node 2 cpus: 2 6 10 14 18 22 26 30&lt;br/&gt;
node 2 size: 16384 MB&lt;br/&gt;
node 2 free: 15584 MB&lt;br/&gt;
node 3 cpus: 3 7 11 15 19 23 27 31&lt;br/&gt;
node 3 size: 16382 MB&lt;br/&gt;
node 3 free: 15977 MB&lt;br/&gt;
node distances:&lt;br/&gt;
node   0   1   2   3&lt;br/&gt;
  0:  10  21  21  21&lt;br/&gt;
  1:  21  10  21  21&lt;br/&gt;
  2:  21  21  10  21&lt;br/&gt;
  3:  21  21  21  10&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;root@berlin7 ~&amp;#93;&lt;/span&gt;#&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;root@berlin7 ~&amp;#93;&lt;/span&gt;#&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;root@berlin7 ~&amp;#93;&lt;/span&gt;#&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;root@berlin7 ~&amp;#93;&lt;/span&gt;# targets=&quot;`lctl dl |grep obdfilter | awk &apos;&lt;/p&gt;
{print $4}&apos; | tr &apos;\n&apos; &apos; &apos;`&quot; size=4096&lt;br/&gt;
rszlo=1024 rszhi=1024 nobjlo=1 nobjhi=1 thrlo=1 thrhi=128 case=disk tests_str=&quot;write read&quot;&lt;br/&gt;
rslt_loc=/root/obdsurvey obdfilter-survey&lt;br/&gt;
Fri Jan 21 13:37:33 CET 2011 Obdfilter-survey for case=disk from berlin7&lt;br/&gt;
ost 15 sz 62914560K rsz 1024K obj   15 thr   15 write  611.92 [  19.00,  54.00] read 1058.04 [ &lt;br/&gt;
48.99, 101.00]&lt;br/&gt;
ost 15 sz 62914560K rsz 1024K obj   15 thr   30 write 1236.58 [  50.99, 106.98] read 1818.19 [ &lt;br/&gt;
31.98, 367.92]&lt;br/&gt;
ost 15 sz 62914560K rsz 1024K obj   15 thr   60 write 1447.42 [  10.00, 231.96] read 1928.87 [ &lt;br/&gt;
19.00, 432.96]&lt;br/&gt;
ost 15 sz 62914560K rsz 1024K obj   15 thr  120 write 1632.67 [   8.00, 341.30] read 1855.03 [  &lt;br/&gt;
0.00, 430.97]&lt;br/&gt;
ost 15 sz 62914560K rsz 1024K obj   15 thr  240 write 1572.07 [   0.00, 380.62] read 1846.84 [ &lt;br/&gt;
21.00, 385.99]&lt;br/&gt;
ost 15 sz 62914560K rsz 1024K obj   15 thr  480 write 1593.21 [  11.00, 372.99] read 1811.64 [ &lt;br/&gt;
19.00, 400.68]&lt;br/&gt;
ost 15 sz 62914560K rsz 1024K obj   15 thr  960 write 1508.13 [   5.00, 380.98] read 1705.11 [  &lt;br/&gt;
3.00, 318.97]&lt;br/&gt;
ost 15 sz 62914560K rsz 1024K obj   15 thr 1920 write 1362.63 [   1.00, 365.76] read 1595.17       &lt;br/&gt;
     SHORT&lt;br/&gt;
&lt;br/&gt;
&lt;br/&gt;
&lt;br/&gt;
Without attachment 32668 &lt;span class=&quot;error&quot;&gt;&amp;#91;details&amp;#93;&lt;/span&gt;, only one socket activated:&lt;br/&gt;
&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;root@berlin7 ~&amp;#93;&lt;/span&gt;# numactl -H&lt;br/&gt;
available: 4 nodes (0-3)&lt;br/&gt;
node 0 cpus: 0 4 8 12 16 20 24 28&lt;br/&gt;
node 0 size: 16364 MB&lt;br/&gt;
node 0 free: 13578 MB&lt;br/&gt;
node 1 cpus:&lt;br/&gt;
node 1 size: 16384 MB&lt;br/&gt;
node 1 free: 15862 MB&lt;br/&gt;
node 2 cpus:&lt;br/&gt;
node 2 size: 16384 MB&lt;br/&gt;
node 2 free: 15653 MB&lt;br/&gt;
node 3 cpus:&lt;br/&gt;
node 3 size: 16382 MB&lt;br/&gt;
node 3 free: 16041 MB&lt;br/&gt;
node distances:&lt;br/&gt;
node   0   1   2   3&lt;br/&gt;
  0:  10  21  21  21&lt;br/&gt;
  1:  21  10  21  21&lt;br/&gt;
  2:  21  21  10  21&lt;br/&gt;
  3:  21  21  21  10&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;root@berlin7 ~&amp;#93;&lt;/span&gt;#&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;root@berlin7 ~&amp;#93;&lt;/span&gt;# targets=&quot;`lctl dl |grep obdfilter | awk &apos;{print $4}
&lt;p&gt;&apos; | tr &apos;\n&apos; &apos; &apos;`&quot; size=4096&lt;br/&gt;
rszlo=1024 rszhi=1024 nobjlo=1 nobjhi=1 thrlo=1 thrhi=128 case=disk tests_str=&quot;write read&quot;&lt;br/&gt;
rslt_loc=/root/obdsurvey obdfilter-survey       Fri Jan 21 14:10:51 CET 2011 Obdfilter-survey for&lt;br/&gt;
case=disk from berlin7&lt;br/&gt;
ost 15 sz 62914560K rsz 1024K obj   15 thr   15 write  618.98 [  25.00,  54.99] read 2725.46 [&lt;br/&gt;
121.00, 370.30]&lt;br/&gt;
ost 15 sz 62914560K rsz 1024K obj   15 thr   30 write 1328.17 [  62.99, 118.98] read 3139.51 [&lt;br/&gt;
106.98, 453.98]&lt;br/&gt;
ost 15 sz 62914560K rsz 1024K obj   15 thr   60 write 1895.78 [  63.00, 240.98] read 3193.16 [ &lt;br/&gt;
78.93, 434.98]&lt;br/&gt;
ost 15 sz 62914560K rsz 1024K obj   15 thr  120 write 2579.81 [  36.00, 374.94] read 2845.06 [ &lt;br/&gt;
76.00, 509.88]&lt;br/&gt;
ost 15 sz 62914560K rsz 1024K obj   15 thr  240 write 2177.08 [  54.00, 386.80] read 2924.08 [ &lt;br/&gt;
44.00, 438.97]&lt;br/&gt;
ost 15 sz 62914560K rsz 1024K obj   15 thr  480 write 1939.15 [   6.00, 360.85] read 2506.11 [ &lt;br/&gt;
17.98, 363.98]&lt;br/&gt;
ost 15 sz 62914560K rsz 1024K obj   15 thr  960 write 2106.54 [   2.00, 332.44] read 2378.08 [ &lt;br/&gt;
65.00, 417.72]&lt;br/&gt;
ost 15 sz 62914560K rsz 1024K obj   15 thr 1920 write 1545.92 [   1.00, 386.49] read 2059.07       &lt;br/&gt;
     SHORT&lt;/p&gt;




&lt;p&gt;With attachment 32668 &lt;span class=&quot;error&quot;&gt;&amp;#91;details&amp;#93;&lt;/span&gt;, all sockets activated:&lt;/p&gt;

&lt;p&gt;&lt;span class=&quot;error&quot;&gt;&amp;#91;root@berlin7 ~&amp;#93;&lt;/span&gt;# numactl -H&lt;br/&gt;
available: 4 nodes (0-3)&lt;br/&gt;
node 0 cpus: 0 4 8 12 16 20 24 28&lt;br/&gt;
node 0 size: 16364 MB&lt;br/&gt;
node 0 free: 13507 MB&lt;br/&gt;
node 1 cpus: 1 5 9 13 17 21 25 29&lt;br/&gt;
node 1 size: 16384 MB&lt;br/&gt;
node 1 free: 15534 MB&lt;br/&gt;
node 2 cpus: 2 6 10 14 18 22 26 30&lt;br/&gt;
node 2 size: 16384 MB&lt;br/&gt;
node 2 free: 15558 MB&lt;br/&gt;
node 3 cpus: 3 7 11 15 19 23 27 31&lt;br/&gt;
node 3 size: 16382 MB&lt;br/&gt;
node 3 free: 15911 MB&lt;br/&gt;
node distances:&lt;br/&gt;
node   0   1   2   3&lt;br/&gt;
  0:  10  21  21  21&lt;br/&gt;
  1:  21  10  21  21&lt;br/&gt;
  2:  21  21  10  21&lt;br/&gt;
  3:  21  21  21  10&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;root@berlin7 ~&amp;#93;&lt;/span&gt;#&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;root@berlin7 ~&amp;#93;&lt;/span&gt;#&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;root@berlin7 ~&amp;#93;&lt;/span&gt;# targets=&quot;`lctl dl |grep obdfilter | awk &apos;&lt;/p&gt;
{print $4}
&lt;p&gt;&apos; | tr &apos;\n&apos; &apos; &apos;`&quot; size=4096&lt;br/&gt;
rszlo=1024 rszhi=1024 nobjlo=1 nobjhi=1 thrlo=1 thrhi=128 case=disk tests_str=&quot;write read&quot;&lt;br/&gt;
rslt_loc=/root/obdsurvey obdfilter-survey&lt;br/&gt;
Fri Jan 21 14:39:14 CET 2011 Obdfilter-survey for case=disk from berlin7&lt;br/&gt;
ost 15 sz 62914560K rsz 1024K obj   15 thr   15 write  651.19 [  27.99,  52.99] read 2622.92 [ &lt;br/&gt;
61.99,1419.80]&lt;br/&gt;
ost 15 sz 62914560K rsz 1024K obj   15 thr   30 write 1249.90 [  51.99, 112.97] read 2185.82 [ &lt;br/&gt;
37.98, 766.90]&lt;br/&gt;
ost 15 sz 62914560K rsz 1024K obj   15 thr   60 write 1569.65 [  55.98, 204.97] read 2069.03 [ &lt;br/&gt;
16.97, 610.65]&lt;br/&gt;
ost 15 sz 62914560K rsz 1024K obj   15 thr  120 write 1648.17 [  28.90, 345.93] read 2011.21 [ &lt;br/&gt;
43.30, 788.25]&lt;br/&gt;
ost 15 sz 62914560K rsz 1024K obj   15 thr  240 write 1551.18 [  14.73, 395.89] read 1987.69 [ &lt;br/&gt;
60.77, 520.36]&lt;br/&gt;
ost 15 sz 62914560K rsz 1024K obj   15 thr  480 write 1582.04 [   9.29, 338.90] read 1943.12 [ &lt;br/&gt;
58.36, 570.59] &lt;br/&gt;
ost 15 sz 62914560K rsz 1024K obj   15 thr  960 write 1480.17 [   6.00, 292.76] read 1899.71 [ &lt;br/&gt;
60.11, 444.05] &lt;br/&gt;
ost 15 sz 62914560K rsz 1024K obj   15 thr 1920 write 1277.28 [   2.98, 312.91] read 1844.78 [ &lt;br/&gt;
50.56, 432.15] &lt;/p&gt;



&lt;p&gt;So it seems this lock contention is not the most limiting factor here.&lt;/p&gt;

&lt;p&gt;HTH,&lt;br/&gt;
Sebastien.&lt;/p&gt;</comment>
                            <comment id="10588" author="adilger" created="Wed, 9 Feb 2011 11:20:13 +0000"  >&lt;p&gt;This is already being discussed in bug &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-29&quot; title=&quot;obdfilter-survey doesn&amp;#39;t work well if cpu_cores (/w hyperT) &amp;gt; 16&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-29&quot;&gt;&lt;del&gt;LU-29&lt;/del&gt;&lt;/a&gt;, so I don&apos;t think we need this bug.&lt;/p&gt;</comment>
                            <comment id="10596" author="liang" created="Wed, 9 Feb 2011 19:24:49 +0000"  >&lt;p&gt;Andreas, this ticket is created for tracking efforts for Bull, also, this one is about NUMA performance and &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-29&quot; title=&quot;obdfilter-survey doesn&amp;#39;t work well if cpu_cores (/w hyperT) &amp;gt; 16&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-29&quot;&gt;&lt;del&gt;LU-29&lt;/del&gt;&lt;/a&gt; is more about SMP scalability (BKL).&lt;/p&gt;</comment>
                            <comment id="10597" author="niu" created="Wed, 9 Feb 2011 19:29:05 +0000"  >&lt;p&gt;Yes, and &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-29&quot; title=&quot;obdfilter-survey doesn&amp;#39;t work well if cpu_cores (/w hyperT) &amp;gt; 16&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-29&quot;&gt;&lt;del&gt;LU-29&lt;/del&gt;&lt;/a&gt; is 1.8.6 blocker, and Peter Jones said NUMA support isn&apos;t 1.8.6 goal, so we&apos;d better open another ticket for it.&lt;/p&gt;</comment>
                            <comment id="10598" author="niu" created="Wed, 9 Feb 2011 19:30:08 +0000"  >&lt;p&gt;Copy form b22980:&lt;/p&gt;

&lt;p&gt;Thank you for your review, Andreas. As we discussed in the Jira system, I think this issue might be&lt;br/&gt;
NUMA dependent, because the &apos;unlocked_ioctl&apos; patch works for another customer who runs test over&lt;br/&gt;
SMP (though he just compared 24 cores).&lt;/p&gt;

&lt;p&gt;So next setp, I want Sebanstien to run some tests:&lt;/p&gt;

&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;We just compared 32 cores with patch applied, I think we&apos;d better get the numbers for 1,2,3,4&lt;br/&gt;
sockets enabled (8,16,24,32 cores) with/without patch applied(unlocked_ioctl patch).&lt;/li&gt;
	&lt;li&gt;To verify if it&apos;s NUMA dependent issue, we also want the numbers for 8,16,24,32 cores enabled,&lt;br/&gt;
but this time the enabled cores are distributed on different sockets evenly. (enable 2,4,6,8 cores&lt;br/&gt;
on each socket)&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;At the same time, we want collect some oprofile data during above tests.&lt;/p&gt;

&lt;p&gt;BTW: I&apos;m wondering how Iozne get the 2500M/s (mentioned in comment #1), how many objects in the&lt;br/&gt;
Iozne test? and how the number is measured?&lt;/p&gt;
</comment>
                            <comment id="10604" author="sebastien.buisson" created="Thu, 10 Feb 2011 02:36:27 +0000"  >&lt;p&gt;Hi,&lt;/p&gt;

&lt;p&gt;Concerning IOZone, comment #1 in bug 22980 dates back from June 2010, so I do not have the full details about this.&lt;br/&gt;
In this case, we ran IOzone with approximately the following command lines, in parallel on 5 clients:&lt;/p&gt;

&lt;p&gt;Write: iozone -s 4g -r 1024 -+n -c -e -i 0 -t 2 -F /lustre/dir&amp;lt;X&amp;gt;/file1 /lustre/dir&amp;lt;X&amp;gt;/file2&lt;br/&gt;
Read: iozone -s 4g -r 1024 -+n -c -e -i 1 -t 2 -F /lustre/dir&amp;lt;X&amp;gt;/file1 /lustre/dir&amp;lt;X&amp;gt;/file2&lt;/p&gt;

&lt;p&gt;I do not remember the stripe count, probably 2 or 4.&lt;br/&gt;
The IOZone figures we gave are the ones directly returned by IOZone (&apos;Children see throughput&apos;).&lt;/p&gt;


&lt;p&gt;I will be able to run the obdfilter-survey tests you are asking for, but I would really appreciate if you could you specify the exact and precise oprofile command lines for the stats you want.&lt;/p&gt;


&lt;p&gt;TIA,&lt;br/&gt;
Sebastien.&lt;/p&gt;</comment>
                            <comment id="10606" author="niu" created="Thu, 10 Feb 2011 04:46:40 +0000"  >&lt;p&gt;Hi, Sebastien&lt;/p&gt;

&lt;p&gt;I see, I was just wondering if the object count of iozone test is same with obdfilter-survey test, and how the aggreated throughtput is calculated. Anyway, let&apos;s focus on obdfilter-survey test at this moment.&lt;/p&gt;

&lt;p&gt;For the oprofile command, I think just general usage is fine:&lt;/p&gt;
&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;opcontrol --vmlinux=/patch/to/vmlinux&lt;/li&gt;
	&lt;li&gt;opcontrol --start&lt;/li&gt;
	&lt;li&gt;run test&lt;/li&gt;
	&lt;li&gt;opcontrol --dump&lt;/li&gt;
	&lt;li&gt;opreport -l (the output is what we want)&lt;/li&gt;
	&lt;li&gt;opcontrol --reset&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;I&apos;m not oprofile expert, if you meet any trouble with running oprofile, you can ask Liang for help, I believe he played oprofile a lot when he was working on SMP performance.&lt;/p&gt;
</comment>
                            <comment id="10627" author="liang" created="Fri, 11 Feb 2011 22:47:50 +0000"  >&lt;p&gt;Sebastien,&lt;/p&gt;

&lt;p&gt;Could you also collect numastat at begin/end of each test (or you know any better way to collect stats for NUMA behavor)? so we can understand better about whether it&apos;s just about cross-node data-traffic or not&lt;/p&gt;

&lt;p&gt;Thanks&lt;br/&gt;
Liang&lt;/p&gt;</comment>
                            <comment id="10633" author="sebastien.buisson" created="Mon, 14 Feb 2011 04:11:39 +0000"  >&lt;p&gt;obdfilter-survey results, without oprofile and numastat.&lt;/p&gt;</comment>
                            <comment id="10638" author="liang" created="Mon, 14 Feb 2011 08:00:22 +0000"  >&lt;p&gt;Sebastien,&lt;br/&gt;
thanks for you data.&lt;br/&gt;
I have a couple of questions about your server (learnt from your presentation on LUG...):&lt;/p&gt;
&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;I assume you have 2 IOH on the server right?&lt;/li&gt;
	&lt;li&gt;if you have IOHs &amp;gt; 1, how OSTs are distributed on IOHs? 1,3,5,7... on IOH1, and 0,2,4,6... on IOH2?&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Thanks&lt;br/&gt;
Liang&lt;/p&gt;</comment>
                            <comment id="10640" author="sebastien.buisson" created="Mon, 14 Feb 2011 08:24:32 +0000"  >&lt;p&gt;Hi,&lt;/p&gt;

&lt;p&gt;Yes you are right, we have 2 IOHs on the OSS. Half of the OSSes are directly connected to the first IOH, and the other half is directly connected to the second IOH.&lt;/p&gt;

&lt;p&gt;Sebastien.&lt;/p&gt;</comment>
                            <comment id="10644" author="liang" created="Tue, 15 Feb 2011 00:26:07 +0000"  >&lt;p&gt;Sebastien, so I think each NUMIOA node contains 2 sockets (or numa nodes) right? could you give us detail information about how CPU nodes are distributed on NUMIOA node? i.e:&lt;br/&gt;
numioa node0 == socket0 + socket1 + IOH0,  numioa node1 == socket2 + socket3 + IOH1 or&lt;br/&gt;
numioa node0 == socket0 + socket2 + IOH0,  numioa node1 == socket1 + socket3 + IOH1 or&lt;br/&gt;
something like that?&lt;/p&gt;

&lt;p&gt;We are working on two directions right now:&lt;/p&gt;
&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;try to find out whether there are more hight contention locks like BKL, oprofile can help this&lt;/li&gt;
	&lt;li&gt;make lctl processes to be numioa node affinity, Niu is working on a prototype patch&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Thanks&lt;br/&gt;
Liang&lt;/p&gt;</comment>
                            <comment id="10645" author="sebastien.buisson" created="Tue, 15 Feb 2011 01:17:00 +0000"  >&lt;p&gt;Yes, our MESCA machine is made of 2 NUMIOA nodes:&lt;br/&gt;
numioa node 0 == socket0 + socket1 + IOH0&lt;br/&gt;
numioa node 1 == socket2 + socket3 + IOH1&lt;/p&gt;

&lt;p&gt;Cheers,&lt;br/&gt;
Sebastien.&lt;/p&gt;</comment>
                            <comment id="10646" author="niu" created="Tue, 15 Feb 2011 02:13:25 +0000"  >&lt;p&gt;patch to set cpu affinity for lctl test_brw processes and an example config file. &lt;/p&gt;</comment>
                            <comment id="10647" author="niu" created="Tue, 15 Feb 2011 02:16:14 +0000"  >&lt;p&gt;Hi, Sebastien&lt;/p&gt;

&lt;p&gt;Thanks for your test result, looks the patch improves write performance little when there are limited cores (1,2 sockets, 8,16 cores), for 24,32 cores, I don&apos;t see improvements. What surprised me is that the read performance has a big improvment when cores are distributed on different sockets, I don&apos;t know the reason so far.&lt;/p&gt;

&lt;p&gt;To testify if the issue is NUMIOA dependent (degradation caused by accessing remote memory/IOH), I made a patch to set cpu affinity for lctl brw_test threads, we want use this patch to collect more data for further analysis. (the patch and the example config file are attached, the config file pathname should be &quot;/tmp/affinity_map&quot;) &lt;/p&gt;

&lt;p&gt;Not sure if we can access your machine now (I think Liang has provided a static address 99.96.190.234), if it&apos;s already acceesable for us, pelease send us a guide on how to run tests on your machine as well, then we can run tests by ourselves from now on. Thank you.&lt;/p&gt;

&lt;p&gt;BTW: could you also provide your sgpdd_survey command which mentioned in the first comment?&lt;/p&gt;</comment>
                            <comment id="10648" author="sebastien.buisson" created="Tue, 15 Feb 2011 03:42:59 +0000"  >&lt;p&gt;Full obdfilter-survey results. In the tarball please find:&lt;/p&gt;
&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;summary.txt: array that sums up test results&lt;/li&gt;
	&lt;li&gt;result_*.txt: results for a specific test, with also &apos;numastat&apos; output&lt;/li&gt;
	&lt;li&gt;opreport_*.txt: associated oprofile data&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;As you can see, I was not able to run the tests in the &apos;2 sockets&apos; configuration while collecting data with oprofile. Node was crashing in the middle of obdfilter-survey, and I do not know who to blame here...&lt;/p&gt;</comment>
                            <comment id="10649" author="niu" created="Tue, 15 Feb 2011 05:05:49 +0000"  >&lt;p&gt;Thanks a lot, Sebastien. What&apos;s the kernel version did you run the test on?&lt;/p&gt;</comment>
                            <comment id="10651" author="sebastien.buisson" created="Tue, 15 Feb 2011 07:39:35 +0000"  >&lt;p&gt;We use a custom kernel, based on RHEL6 GA (2.6.32-71.el6.x86_64).&lt;/p&gt;</comment>
                            <comment id="10652" author="sebastien.buisson" created="Tue, 15 Feb 2011 07:57:02 +0000"  >&lt;p&gt;The test system we are dedicating to you is not ready yet, so I will have to run the tests by myself.&lt;/p&gt;

&lt;p&gt;I will try lctl_setaffinity.patch, but could you please tell me what kind of tests do you need? Only in &apos;thread&apos; mode right? Still with oprofile and numastat? How many cores/sockets activated? With or without &apos;unlocked_ioctl&apos; patch?&lt;/p&gt;

&lt;p&gt;TIA,&lt;br/&gt;
Sebastien.&lt;/p&gt;</comment>
                            <comment id="10659" author="niu" created="Tue, 15 Feb 2011 17:31:52 +0000"  >&lt;p&gt;Hi, Sebastien&lt;/p&gt;

&lt;p&gt;I&apos;d like you to run two tests, one in &apos;thread&apos; mode, and another in &apos;objid&apos; mode:&lt;/p&gt;

&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;with &apos;unlocked_ioctl&apos; patch;&lt;/li&gt;
	&lt;li&gt;24 cores actived; (cores distributed on 4 sockets);&lt;/li&gt;
	&lt;li&gt;with oprofile and numastats;&lt;/li&gt;
	&lt;li&gt;provide the /tmp/obdfilter_survey_xxxx.detail as well, where the thread/object cpu mapping is logged.&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;In the &apos;objid&apos; mode, you have to provide objid to cpu core map in the config file, so you should know the object ids and try to mapp them to appropriate cpus (to make cpu always access the local IOH) before the test. Thanks.&lt;/p&gt;</comment>
                            <comment id="10660" author="niu" created="Tue, 15 Feb 2011 18:50:18 +0000"  >&lt;p&gt;change vmalloc() to kamlloc() in the iocl path.&lt;/p&gt;</comment>
                            <comment id="10661" author="niu" created="Tue, 15 Feb 2011 18:51:56 +0000"  >&lt;p&gt;Hi, Sebastien&lt;/p&gt;

&lt;p&gt;The oprfile data provided by you is very helpful, in the unpatched tests, we can see thread_return() has extremly high rank, I think it&apos;s caused by the contention on BKL; in the patched (with unlocked_ioctl) tests, we can see alloc_vmap_area() and find_vmap_area() have very high rank, I think it&apos;s caused by the contention on the vmap_area_lock.&lt;/p&gt;

&lt;p&gt;I made a patch (remove_vmalloc.patch) which change the vmalloc() to kmalloc() in ioctl path, which could eliminate the contention on vmap_area_lock. Before you run the tests which I suggested in my last comment, I really like you to run this patch (togehter with the unlock_ioctl patch) first to see what&apos;ll happen. (of course, please enable oprofile while running tests). Thank you.&lt;/p&gt;</comment>
                            <comment id="10662" author="niu" created="Tue, 15 Feb 2011 19:14:16 +0000"  >&lt;p&gt;Change the vmalloc to kmalloc in ioctl path. (the previous one isn&apos;t correct, updated with this one)&lt;/p&gt;</comment>
                            <comment id="10679" author="sebastien.buisson" created="Wed, 16 Feb 2011 23:54:18 +0000"  >&lt;p&gt;Full obdfilter-survey results with unlocked_ioctl and remove_vmalloc patches. In the tarball please find:&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;summary.txt: array that sums up test results&lt;/li&gt;
	&lt;li&gt;result_*.txt: results for a specific test, with also &apos;numastat&apos; output&lt;/li&gt;
	&lt;li&gt;opreport_*.txt: associated oprofile data&lt;/li&gt;
&lt;/ul&gt;
</comment>
                            <comment id="10681" author="niu" created="Thu, 17 Feb 2011 02:16:00 +0000"  >&lt;p&gt;Thanks for your testing, Sebastien.&lt;/p&gt;

&lt;p&gt;The result shows both read and write performance got huge improvement, and the oprofile data looks normal this time. So I think the degradation is caused by the contention on BKL and vmap_area_lock. What I don&apos;t see is why the read throughput is extreme high in some cases (more than 10000 MB/s), what&apos;s the raw bandwith of each OST?&lt;/p&gt;</comment>
                            <comment id="10682" author="sebastien.buisson" created="Thu, 17 Feb 2011 03:59:35 +0000"  >&lt;p&gt;You&apos;re welcome.&lt;/p&gt;

&lt;p&gt;The storage array we are attached to should not give us more than 5 GB/s (read and write). So I think the figures given by obdfilter-survey are inaccurate because the test is not longer enough. Maybe I should increase size.&lt;/p&gt;

&lt;p&gt;Do you still need me to run affinity tests?&lt;/p&gt;

&lt;p&gt;Cheers,&lt;br/&gt;
Sebastien.&lt;/p&gt;</comment>
                            <comment id="10683" author="niu" created="Thu, 17 Feb 2011 06:51:37 +0000"  >&lt;p&gt;I don&apos;t think we need run the affinity tests, thank you.&lt;/p&gt;</comment>
                            <comment id="10686" author="liang" created="Thu, 17 Feb 2011 18:53:53 +0000"  >&lt;p&gt;I agree that we don&apos;t need to run affinity tests because numastat shows that foreign memory access is not a big issue (&amp;lt; 5%). However, I do think that we should increase size (probably 5X) so we can get better vision.&lt;br/&gt;
Sebastien, could you please help us to run:&lt;/p&gt;
&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;increase size (5X)&lt;/li&gt;
	&lt;li&gt;only run with patches (kmalloc patch and remove BKL patch)&lt;/li&gt;
	&lt;li&gt;only run with 1,2,3,4 sockets (don&apos;t need to iterate over 8,16,24 cores)&lt;/li&gt;
	&lt;li&gt;if it&apos;s possible, could you give us sgp-dd results on the same hardware, so we can see whether there is anything else we can improve.&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Thanks&lt;br/&gt;
Liang&lt;/p&gt;</comment>
                            <comment id="10699" author="sebastien.buisson" created="Mon, 21 Feb 2011 01:21:45 +0000"  >&lt;p&gt;New results with unlocked_ioctl and remove_vmalloc patches. In the tarball please find:&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;result_*.txt: results for a specific obdfilter-survey test, with also &apos;numastat&apos; output&lt;/li&gt;
	&lt;li&gt;opreport_*.txt: associated oprofile data&lt;/li&gt;
	&lt;li&gt;sgpdd_res.txt : sgpdd_survey results&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;I am sorry, I was not able to get results for 3, 2 and 1 socket. I launched the tests several times, and each time the server crashed. I seems the system does not appreciate to run oprofile with not all sockets...&lt;/p&gt;

&lt;p&gt;sgpdd_survey results clearly show a limit around 3 GB/s. This limitation is due to the available bandwidth to the storage, because we use only 4 FC links.&lt;/p&gt;</comment>
                            <comment id="10705" author="niu" created="Mon, 21 Feb 2011 18:52:12 +0000"  >&lt;p&gt;Hi, Sebastien&lt;/p&gt;

&lt;p&gt;The results looks really good, I think it&apos;s basically what we expected, thank you.&lt;/p&gt;

&lt;p&gt;One thing unknown is that the write performance dropped a lot in 960 threads. To measure how the cpu affinity affect test result, could you help us to do more tests? I think it&apos;ll be useful for our further performance tuning work.&lt;/p&gt;

&lt;p&gt;What I want to test is:&lt;/p&gt;
&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;apply &quot;remove BKL&quot; + &quot;kmalloc&quot; + &quot;lctl_setaffinity&quot; patches;&lt;/li&gt;
	&lt;li&gt;run test in &quot;objid&quot; mode, 4 sockets enabled, and without oprofile enabled.&lt;/li&gt;
	&lt;li&gt;provide the result, numstat and the /tmp/obdfilter_survey_xxxx.detail (where the thread/object cpu mapping is logged)&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;In the &quot;objid&quot; mode, each lctl thread will be mapped to a specified cpu, so you should know all the objids before run tests and set the objid-cpu mapping in the /tmp/affinity_map (please refer to the affinity_map example), of course, the objid should be on the local IOH of it&apos;s mapped cpu.&lt;/p&gt;</comment>
                            <comment id="10714" author="sebastien.buisson" created="Wed, 23 Feb 2011 02:32:49 +0000"  >&lt;p&gt;If I understand correctly, in order to know in advance the objids I should have a look at the obdfilter_survey_xxxx.detail file and consider the next run will do &apos;+1&apos; on the ids.&lt;br/&gt;
The problem is the obdfilter_survey_xxxx.detail contains the following:&lt;/p&gt;

&lt;p&gt;=======================&amp;gt; ost 15 sz 314572800K rsz 1024K obj   15 thr   15&lt;br/&gt;
=============&amp;gt; Create 1 on localhost:quartcel-OST0005_ecc&lt;br/&gt;
create: 1 objects&lt;br/&gt;
create: #1 is object id 0x29&lt;br/&gt;
=============&amp;gt; Create 1 on localhost:quartcel-OST0008_ecc&lt;br/&gt;
create: 1 objects&lt;br/&gt;
create: #1 is object id 0x29&lt;br/&gt;
=============&amp;gt; Create 1 on localhost:quartcel-OST0007_ecc&lt;br/&gt;
create: 1 objects&lt;br/&gt;
create: #1 is object id 0x29&lt;br/&gt;
=============&amp;gt; Create 1 on localhost:quartcel-OST000c_ecc&lt;br/&gt;
create: 1 objects&lt;br/&gt;
create: #1 is object id 0x29&lt;br/&gt;
=============&amp;gt; Create 1 on localhost:quartcel-OST0000_ecc&lt;br/&gt;
create: 1 objects&lt;br/&gt;
create: #1 is object id 0x29&lt;br/&gt;
=============&amp;gt; Create 1 on localhost:quartcel-OST000d_ecc&lt;br/&gt;
create: 1 objects&lt;br/&gt;
create: #1 is object id 0x29&lt;br/&gt;
=============&amp;gt; Create 1 on localhost:quartcel-OST0004_ecc&lt;br/&gt;
create: 1 objects&lt;br/&gt;
create: #1 is object id 0x29&lt;br/&gt;
=============&amp;gt; Create 1 on localhost:quartcel-OST0006_ecc&lt;br/&gt;
create: 1 objects&lt;br/&gt;
create: #1 is object id 0x29&lt;br/&gt;
=============&amp;gt; Create 1 on localhost:quartcel-OST0002_ecc&lt;br/&gt;
create: 1 objects&lt;br/&gt;
create: #1 is object id 0x29&lt;br/&gt;
=============&amp;gt; Create 1 on localhost:quartcel-OST000a_ecc&lt;br/&gt;
create: 1 objects&lt;br/&gt;
create: #1 is object id 0x29&lt;br/&gt;
=============&amp;gt; Create 1 on localhost:quartcel-OST0009_ecc&lt;br/&gt;
create: 1 objects&lt;br/&gt;
create: #1 is object id 0x29&lt;br/&gt;
=============&amp;gt; Create 1 on localhost:quartcel-OST000b_ecc&lt;br/&gt;
create: 1 objects&lt;br/&gt;
create: #1 is object id 0x29&lt;br/&gt;
=============&amp;gt; Create 1 on localhost:quartcel-OST000e_ecc&lt;br/&gt;
create: 1 objects&lt;br/&gt;
create: #1 is object id 0x29&lt;br/&gt;
=============&amp;gt; Create 1 on localhost:quartcel-OST0001_ecc&lt;br/&gt;
create: 1 objects&lt;br/&gt;
create: #1 is object id 0x29&lt;br/&gt;
=============&amp;gt; Create 1 on localhost:quartcel-OST0003_ecc&lt;br/&gt;
create: 1 objects&lt;br/&gt;
create: #1 is object id 0x29&lt;/p&gt;


&lt;p&gt;So, as you can see, all objects have the same ids on the OSTs... In that case, I am afraid the &apos;objid to core&apos; mapping is useless.&lt;br/&gt;
Unless I manually create new objects on OSTs so that objids are different everywhere?&lt;/p&gt;

&lt;p&gt;Sebastien.&lt;/p&gt;</comment>
                            <comment id="10715" author="niu" created="Wed, 23 Feb 2011 03:34:29 +0000"  >&lt;p&gt;Hi, Sebastien&lt;/p&gt;

&lt;p&gt;Ah, right. Binding object id to cpu doesn&apos;t make sense for this test, I&apos;ve changed the patch to bind devno to cpu (lctl_setaffinity_v2.patch), and I also updated the example affinity_map. Please use the new patch to run the test that I meantioned in my previous comment. Thanks for your effort!&lt;/p&gt;</comment>
                            <comment id="10731" author="sebastien.buisson" created="Thu, 24 Feb 2011 01:20:00 +0000"  >&lt;p&gt;Results with unlocked_ioctl and remove_vmalloc patches, plus affinity patch for obdfilter-survey. In the tarball please find:&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;summary.txt: array that sums up test results&lt;/li&gt;
	&lt;li&gt;result_*.txt: results for a specific obdfilter-survey test, with also &apos;numastat&apos; output&lt;/li&gt;
	&lt;li&gt;obdfilter_survey*.detail: associated obdfilter-survey detailed data&lt;/li&gt;
	&lt;li&gt;affinity_map.*: associated affinity mapping&lt;/li&gt;
	&lt;li&gt;sgpdd_res_new.txt : sgpdd_survey results&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;I am sorry to post these results today, but Jira was not accessible yesterday afternoon (French time). I took the opportunity of running some more tests, with on-purpose bad affinities.&lt;br/&gt;
I also ran sgpdd-survey tests, because the hardware on which these tests were launched is not the same as before. Due to software reconfiguration, we now have access to 16 LUNs (instead of 15) through 8 FC links (instead of 4). So raw performance is better than before, as we are not more limited by FC bandwidth.&lt;/p&gt;

&lt;p&gt;In the results, several points are surprising:&lt;/p&gt;
&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;obdfilter-survey results are better than sgpdd-survey results in write;&lt;/li&gt;
	&lt;li&gt;affinity mapping has little impact on performance, good mapping is better than bad mapping only with a high number of threads.&lt;/li&gt;
&lt;/ul&gt;
</comment>
                            <comment id="10732" author="niu" created="Thu, 24 Feb 2011 02:43:41 +0000"  >&lt;p&gt;Hi, Sebastien&lt;/p&gt;

&lt;p&gt;I agree with your conclusion that NUMIOA affinity doesn&apos;t affect test result much, to double confirm it, I think we should run the obdfilter-survey (without affinity patch) once more on the new system to see if there is any difference.&lt;/p&gt;

&lt;p&gt;For the issue of sgpdd-survey write worse than obdfilter-survey, I think one possible reason is that sgpdd-survey used few threads, however, the result shows 128 threads number is very close to 64 threads&apos;, maybe there is some bottleneck in the sgpdd-survey test tool, I will look into the code to get more details. At the same time, I think two quick tests could be helpful for this investigation:&lt;/p&gt;

&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;run sgpdd-survey on only one device, try to get the raw bandwith of each single device;&lt;/li&gt;
	&lt;li&gt;collect oprofile data while running sgpdd-survey over 16 devices to see if there is any contention;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;I&apos;ve got the access to the test system today, but it&apos;ll take me some time to learn how to run these tests on it, could you help me to run above three tests this time? Thanks a lot.&lt;/p&gt;
</comment>
                            <comment id="10843" author="niu" created="Wed, 2 Mar 2011 23:46:31 +0000"  >&lt;p&gt;I ran bunch of sgpdd-survey tests on berlin6, and the oprofile result shows more than 50% copy_user_generic_string() samples. Since sgpdd-survey calls read/write syscall to perform I/O against block device, there should be lots of copy_from/to_user() for transfering data between userspace and kernel, and that consumes lots of CPU time. However, I don&apos;t think the copy_from_user() is the major bottoleneck of sgpdd-survey write, because when I ran sgpdd-survey read only, the copy_user_generic_string() samples is still very high (more than 60%), but sgpdd-survey read performance is comparable with obdfilter-survey&apos;s.&lt;/p&gt;

&lt;p&gt;The sgp_dd calls it&apos;s own sg_write()/sg_read(), and sg_read/write() just simply generate io request for underlying device, then unlug the device (that explains why iostat doesn&apos;t work for sgp_dd tests, because it bypass kernel io statistic code). I think tbe bottleneck should be in sg_write() (maybe it doesn&apos;t work well in multi-cores/mult-threads condition), though the exact root cause is unkown yet.&lt;/p&gt;</comment>
                            <comment id="10975" author="liang" created="Tue, 8 Mar 2011 22:41:45 +0000"  >&lt;p&gt;performance charts for obdfilter-survey &amp;amp; sgpdd-survey&lt;br/&gt;
btw, non-patched data is not here because it&apos;s too difficult for us to reinstalled unpatched rpms remotely, so we don&apos;t have data for unpatched results on the same machine.&lt;/p&gt;</comment>
                            <comment id="10976" author="liang" created="Tue, 8 Mar 2011 23:17:23 +0000"  >&lt;p&gt;sorry, some data in previous file is wrong&lt;/p&gt;</comment>
                            <comment id="11257" author="liang" created="Sun, 20 Mar 2011 22:36:43 +0000"  >&lt;p&gt;performance graphs (adding data for non-patched version)&lt;/p&gt;</comment>
                            <comment id="11258" author="liang" created="Mon, 21 Mar 2011 01:01:46 +0000"  >&lt;p&gt;latest testing results graphs&lt;/p&gt;</comment>
                            <comment id="73644" author="niu" created="Tue, 17 Dec 2013 02:16:38 +0000"  >&lt;p&gt;I think this can be closed now.&lt;/p&gt;</comment>
                    </comments>
                    <attachments>
                            <attachment id="10128" name="affinity_map" size="174" author="niu" created="Wed, 23 Feb 2011 03:30:02 +0000"/>
                            <attachment id="10130" name="affinity_results.tgz" size="476082" author="sebastien.buisson" created="Thu, 24 Feb 2011 01:20:00 +0000"/>
                            <attachment id="10142" name="bull_obdfilter_survey_chart_110309.pdf" size="66189" author="liang" created="Tue, 8 Mar 2011 23:17:23 +0000"/>
                            <attachment id="10150" name="bull_obdfilter_survey_chart_110319.pdf" size="67811" author="liang" created="Mon, 21 Mar 2011 01:01:46 +0000"/>
                            <attachment id="10117" name="full_results.tgz" size="744054" author="sebastien.buisson" created="Tue, 15 Feb 2011 03:42:59 +0000"/>
                            <attachment id="10120" name="full_results_kmalloc.tgz" size="354484" author="sebastien.buisson" created="Wed, 16 Feb 2011 23:54:18 +0000"/>
                            <attachment id="10127" name="lctl_setaffinity_v2.patch" size="4081" author="niu" created="Wed, 23 Feb 2011 03:29:45 +0000"/>
                            <attachment id="10123" name="new_results_kmalloc.tgz" size="79383" author="sebastien.buisson" created="Mon, 21 Feb 2011 01:21:45 +0000"/>
                            <attachment id="10114" name="obdfilter-survey_results.txt" size="17374" author="sebastien.buisson" created="Mon, 14 Feb 2011 04:11:39 +0000"/>
                            <attachment id="10119" name="remove_vmalloc.patch" size="3204" author="niu" created="Tue, 15 Feb 2011 19:14:16 +0000"/>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                                                                                    <customfield id="customfield_10020" key="com.atlassian.jira.plugin.system.customfieldtypes:float">
                        <customfieldname>Bugzilla ID</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>22980.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_10890" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_10390" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hzvsmf:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10090" key="com.pyxis.greenhopper.jira:gh-global-rank">
                        <customfieldname>Rank (Obsolete)</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>8541</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                </customfields>
    </item>
</channel>
</rss>