<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 01:03:17 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-56] Finish SMP scalability work</title>
                <link>https://jira.whamcloud.com/browse/LU-56</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&lt;p&gt;Please post the SMP patches to bugzilla and then push the changes to a branch on review.whamcloud.com/lustre. Keep the branch current as changes are made to the patches during the inspection/landing process, because we&apos;ll also be testing this branch at LLNL and possibly other places.&lt;/p&gt;</description>
                <environment></environment>
        <key id="10041">LU-56</key>
            <summary>Finish SMP scalability work</summary>
                <type id="3" iconUrl="https://jira.whamcloud.com/secure/viewavatar?size=xsmall&amp;avatarId=11318&amp;avatarType=issuetype">Task</type>
                                            <priority id="3" iconUrl="https://jira.whamcloud.com/images/icons/priorities/major.svg">Major</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="liang">Liang Zhen</assignee>
                                    <reporter username="rread">Robert Read</reporter>
                        <labels>
                    </labels>
                <created>Fri, 24 Sep 2010 13:51:22 +0000</created>
                <updated>Thu, 13 May 2021 18:56:06 +0000</updated>
                            <resolved>Fri, 28 Sep 2012 11:41:42 +0000</resolved>
                                    <version>Lustre 2.3.0</version>
                                    <fixVersion>Lustre 2.3.0</fixVersion>
                                        <due></due>
                            <votes>0</votes>
                                    <watches>17</watches>
                                                                            <comments>
                            <comment id="10054" author="liang" created="Sat, 9 Oct 2010 09:28:39 +0000"  >&lt;p&gt;I&apos;ve merged NUMA code into SMP patches of LNet and ptlrpc service in last week, will start to post patches soon.&lt;/p&gt;</comment>
                            <comment id="10139" author="liang" created="Wed, 3 Nov 2010 01:14:15 +0000"  >&lt;p&gt;I&apos;m pushing changes into liang/b_hd_smp, those patches can be landed in weeks will not be pushed in.&lt;br/&gt;
Also, I&apos;m working on another three issues:&lt;/p&gt;

&lt;ol&gt;
	&lt;li&gt;move lprocfs_counter to libcfs
	&lt;ul&gt;
		&lt;li&gt;current lprocfs_counter is not very efficient and has a small defect&lt;/li&gt;
		&lt;li&gt;we want to use percpu counter inside libcfs and LNet&lt;/li&gt;
	&lt;/ul&gt;
	&lt;/li&gt;
	&lt;li&gt;general purpose threads pool APIs
	&lt;ul&gt;
		&lt;li&gt;several modules of Lustre have their own implementation to create/destroy thread pool, if we have a general purpose thread pool implementation, we can get ride of some code redundance.&lt;/li&gt;
	&lt;/ul&gt;
	&lt;/li&gt;
	&lt;li&gt;MDD threads pool for create/link/unlink
	&lt;ul&gt;
		&lt;li&gt;As we know, on large scale SMP system, SMP scalability of diskfs will be bottleneck of these operations under shared directory, there is no easy solution of this.&lt;/li&gt;
		&lt;li&gt;I had a discussion with Oleg last week, we got agreement about design MDD threads pool like this way:
		&lt;ul&gt;
			&lt;li&gt;MDD has a threads pool, all threads are CPU affinity&lt;/li&gt;
			&lt;li&gt;MDD also has two levels caches
			&lt;ul&gt;
				&lt;li&gt;percpu fid cache&lt;br/&gt;
         parent fid of create/unlink/link will be added to top local CPU cache, if it&apos;s already in this cache, it just pop it up and increase refcount on the parent_fid, the fid can be discarded because cache has limited size (i.e: 8)&lt;/li&gt;
				&lt;li&gt;global fid cache&lt;br/&gt;
         if refcount on the fid is larger than a value (i.e: 128), we also enqueue the fid into a global cache, if we found the fid is already in the global cache, we just increase refcount on the global cached fid. When refcount on global cached fid is larger than a specified value N(i.e: N=4), which means, there are &quot;N&quot; cores are create/link/unlink a lot of files under the same directory,  we allocate 1 or 2 cores for this parent fid, all FS operations like create/link/unlink will be dispatched to MDD thread on these 1 or 2 cores.&lt;/li&gt;
			&lt;/ul&gt;
			&lt;/li&gt;
			&lt;li&gt;if the parent fid is not in global cache, or global refcount is lower than specified value, we still process FS operations on thread context of caller&lt;/li&gt;
			&lt;li&gt;we can easily enable/disable the caches for one or all operations.&lt;/li&gt;
			&lt;li&gt;cache size is also configurable&lt;/li&gt;
		&lt;/ul&gt;
		&lt;/li&gt;
	&lt;/ul&gt;
	&lt;/li&gt;
&lt;/ol&gt;


&lt;p&gt;Liang&lt;/p&gt;</comment>
                            <comment id="10142" author="rread" created="Wed, 3 Nov 2010 09:57:40 +0000"  >&lt;p&gt;Liang, I don&apos;t quite understand what you mean about &quot;patches can be landed in weeks will not be pushed in.&quot;   We need a local branch with all the SMP patches in it so we can start testing this at LLNL.  Can we use liang/b_hd_smp for this?&lt;/p&gt;</comment>
                            <comment id="10145" author="liang" created="Wed, 3 Nov 2010 18:37:15 +0000"  >&lt;p&gt;Robert, Yujian &amp;amp; Vitaly are in progress of testing &amp;amp; landing some patches, I think they can be done in weeks, so I think probably we don&apos;t have to push them into b_hd_smp because they will be in main branch very soon. &lt;/p&gt;</comment>
                            <comment id="10251" author="liang" created="Fri, 26 Nov 2010 20:09:59 +0000"  >&lt;p&gt;All patches are already in branch liang/b_hd_smp, prototype of mdd thread pool + dir cache are already in the branch.&lt;br/&gt;
Jim is going to test with it.&lt;/p&gt;</comment>
                            <comment id="10316" author="liang" created="Thu, 16 Dec 2010 20:56:39 +0000"  >&lt;p&gt;made some improvements to mdd dir cache + transaction threads pool, I will post the whole idea at here later.&lt;/p&gt;</comment>
                            <comment id="10354" author="liang" created="Tue, 28 Dec 2010 06:43:32 +0000"  >&lt;p&gt;I&apos;ve created another ticket to track improvements on la_get (&lt;a href=&quot;https://jira.whamcloud.com/browse/LU-36&quot; title=&quot;mdd_la_get is called too many times in MDD&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-36&quot;&gt;&lt;del&gt;LU-36&lt;/del&gt;&lt;/a&gt;)&lt;/p&gt;</comment>
                            <comment id="10461" author="liang" created="Sun, 23 Jan 2011 22:10:13 +0000"  >&lt;p&gt;Description of MDD dirops cache &amp;amp; transaction schedulers&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;each CPU has a local fid cache (it&apos;s a 8 buckets hash-table, each bucket is a 8 items LRU, so we can cache 64 fids by default, of course we can increase number of buckets)&lt;/li&gt;
	&lt;li&gt;transaction schedulers are percpu threads pool in MDD layer&lt;/li&gt;
	&lt;li&gt;each time we create/remove file from a directory, we push the fid into the local CPU fid cache(LRU)&lt;/li&gt;
	&lt;li&gt;if the fid is already in the cache, then just increase a refcount(# of hits) on the fid and move the fid to top of LRU&lt;/li&gt;
	&lt;li&gt;when we push a new fid into local cache, the fid at bottom of LRU will be popped out&lt;/li&gt;
	&lt;li&gt;if refcount(# of hits) of fid in local CPU cache &amp;gt;= N (default is 32), we try to lookup the fid in global fid cache, which is a hash-table as well (do nothing if it already has reference to fid in global cache).
	&lt;ul&gt;
		&lt;li&gt;if the fid is not in the global cache, we just add it to global cache and set refcount to 1 (1 CPU is using it)&lt;/li&gt;
		&lt;li&gt;if the fid is already in global cache, we increase refcount of fid in global cache&lt;/li&gt;
	&lt;/ul&gt;
	&lt;/li&gt;
	&lt;li&gt;if refcount of fid in global cache &amp;lt; M, we just return -1 and continue to run transaction in context of current thread (mdt service thread)&lt;/li&gt;
	&lt;li&gt;if refcount of fid in global cache is &amp;gt;= M (M is number of CPUs, which can be 2, 4... as many as we can get good performance of shared directory with ldiskfs/ext4, it&apos;s tunable), we specify M CPUs for the fid and return one CPU id within those M CPUs, if caller get a CPU id different with current CPU id, it will launch a MDD level &quot;transaction request&quot;, and wakeup one MDD transaction thread to handle the &quot;transaction request&quot;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;By this way, we only have very low overhead for common code (almost no contention), almost nothing changed for uniq directory operations. At the same time, we decreased contention on pdirops because changes on shared directory are localized on a few CPUs.&lt;/p&gt;

&lt;p&gt;Also, we probably can sort unlink requests inside MDD schedulers to decrease disk seek somehow, but I&apos;m not sure how much it can help &lt;/p&gt;</comment>
                            <comment id="10481" author="liang" created="Tue, 25 Jan 2011 00:38:11 +0000"  >&lt;p&gt;I need to make some changes to libcfs_cpu.c because we can&apos;t always support numa correctly because current implementation is based on assumption that all cores of a numa-node have contiguous core-id, which is not true:&lt;/p&gt;

&lt;p&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;/p&gt;

&lt;p&gt;this machine has 4 numa nodes and 32 cores,  i.e: if we want to configure it as 16 libcfs cpu-nodes, then we will bind (0,1), (2,3), .... (30,31), but I would expect the pattern like: (0, 4), (8, 12), ....(27, 31)&lt;/p&gt;</comment>
                            <comment id="11285" author="sebastien.buisson" created="Tue, 22 Mar 2011 09:05:02 +0000"  >&lt;p&gt;Hi,&lt;/p&gt;

&lt;p&gt;Indeed, on our MESCA nodes this is the same code-id distribution. So, I am afraid we will systematically get wrong cpu binding if we test liang/b_smp.&lt;/p&gt;

&lt;p&gt;I gave a look at the code, it seems to me that the cpu-nodes binding is done in function cfs_cpumap_setup_numa(). But unfortunately I cannot see how to change current implementation in order to take into account our code-id distribution.&lt;br/&gt;
Could you give some guidance on what you think should be the best way to address this?&lt;/p&gt;

&lt;p&gt;TIA,&lt;br/&gt;
Sebastien.&lt;/p&gt;</comment>
                            <comment id="11295" author="liang" created="Wed, 23 Mar 2011 00:55:11 +0000"  >&lt;p&gt;Sebastien,&lt;/p&gt;

&lt;p&gt;if you want to use the branch on OSS or client, please use these modparams:&lt;br/&gt;
libcfs cpu_mode=0  // &quot;0&quot; is for NUMA &lt;br/&gt;
lnet network=&quot;o2ib0(ib0:0),o2ib(ib1:1)...&quot; // number after colon is NUMA ID, probably I should move it after the bracket in the future..., by this way, the interface is bound on the NUMA node and all traffic should be localized on the NUMA node.&lt;/p&gt;

&lt;p&gt;Regards&lt;br/&gt;
Liang&lt;/p&gt;</comment>
                            <comment id="11296" author="sebastien.buisson" created="Wed, 23 Mar 2011 00:59:16 +0000"  >&lt;p&gt;Hi Liang,&lt;/p&gt;

&lt;p&gt;Thanks for the information.&lt;br/&gt;
By NUMA ID, do you mean the same number as the node number given by &apos;numactl -H&apos; command?&lt;/p&gt;

&lt;p&gt;TIA,&lt;br/&gt;
Sebastien.&lt;/p&gt;</comment>
                            <comment id="11297" author="liang" created="Wed, 23 Mar 2011 02:21:49 +0000"  >&lt;p&gt;it&apos;s &quot;logic&quot; ID, I don&apos;t know if it&apos;s possible to have non-contiguous physical numa ID, but even it&apos;s possible we still use 0, 1, 2, ... as &quot;logic&quot; ID, which has same order as physical numa ID. &lt;/p&gt;</comment>
                            <comment id="11304" author="liang" created="Wed, 23 Mar 2011 09:40:18 +0000"  >&lt;p&gt;I&apos;ve made a little change to the way of binding CPU on NI, now it&apos;s like&lt;br/&gt;
lnet networks=&quot;o2ib0:0(ib0), o2ib1:1(ib1)...&quot;&lt;/p&gt;

&lt;p&gt;Regards&lt;br/&gt;
Liang&lt;/p&gt;</comment>
                            <comment id="11314" author="liang" created="Wed, 23 Mar 2011 21:48:08 +0000"  >&lt;p&gt;Just add a comment to introduce the way of tuning b_smp:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;concept: cpu_node can present any number of physical cores (or hyper-threading), or a NUMA node&lt;/li&gt;
	&lt;li&gt;lustre will have thread pool and message queue for each cpu_node, instead of current all globals, to get better concurrency and reduce migration data/thread between CPUs.&lt;/li&gt;
	&lt;li&gt;there are three &quot;cpu_mode&quot; for libcfs
	&lt;ul&gt;
		&lt;li&gt;cpu_mode=0: (NUMA) I&apos;ve changed it to be default mode, by this mode, a libcfs cpu_node is presented by one physical NUMA node, OSS and client should use this mode&lt;/li&gt;
		&lt;li&gt;cpu_mode=1: (UMA) it&apos;s just for debug, with this mode, user can specify number of cpu nodes by &quot;libcfs cpu_node_num=NUMBER&quot;, NUMBER can be (1 - N), N is total number of physical cores, or total number of hyper-threadings if hyper-threading is enabled. This mode is really reserved for debug or testing&lt;/li&gt;
		&lt;li&gt;cpu_mode=2: (FAT) this mode is for MDS, it will estimate proper number of cpu nodes automatically, which is based on total cores and RAM size, however, the estimating is not perfect because modern CPUs can have different number of cores, i.e: 2-cores, 4-cores, 6-cores, 8-cores..., so before I have a better solution, I would suggest to configure it manually (sorry I know it&apos;s stupid...), here is suggested configuration cpu_node number on MDS:
		&lt;ul&gt;
			&lt;li&gt;4-6 cores: cpu_node_num=2&lt;/li&gt;
			&lt;li&gt;8-24 cores: cpu_node_num=4&lt;/li&gt;
			&lt;li&gt;more cores: cpu_node_num=8&lt;/li&gt;
		&lt;/ul&gt;
		&lt;/li&gt;
	&lt;/ul&gt;
	&lt;/li&gt;
&lt;/ul&gt;




</comment>
                            <comment id="11608" author="liang" created="Thu, 31 Mar 2011 02:19:56 +0000"  >&lt;p&gt;Testing results show pdirops patch works very good (&lt;a href=&quot;https://jira.whamcloud.com/browse/LU-50&quot; title=&quot;pdirops patch for ldiskfs&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-50&quot;&gt;&lt;del&gt;LU-50&lt;/del&gt;&lt;/a&gt;), so I will remove &quot;MDD dirops cache &amp;amp; transaction schedulers&quot; from my branch very soon.&lt;/p&gt;</comment>
                            <comment id="12033" author="sebastien.buisson" created="Mon, 4 Apr 2011 06:44:50 +0000"  >&lt;p&gt;Hi Liang,&lt;/p&gt;

&lt;p&gt;I am currently trying to test your liang/b_smp branch on 2.6.32, on one of our MESCA servers.&lt;br/&gt;
The problem is my server crashes when I try to &apos;modprobe ptlrpc&apos;, with the following output on the console:&lt;/p&gt;

&lt;p&gt;&lt;span class=&quot;error&quot;&gt;&amp;#91;root@berlin7 ~&amp;#93;&lt;/span&gt;# modprobe ptlrpc&lt;br/&gt;
BUG: unable to handle kernel paging request at 000000000000ea6c&lt;br/&gt;
IP: &lt;span class=&quot;error&quot;&gt;&amp;#91;&amp;lt;ffffffffa04418df&amp;gt;&amp;#93;&lt;/span&gt; cfs_cpu_hwnode+0x2f/0x70 &lt;span class=&quot;error&quot;&gt;&amp;#91;libcfs&amp;#93;&lt;/span&gt;&lt;br/&gt;
PGD c6d23a067 PUD c5202e067 PMD 0&lt;br/&gt;
Oops: 0000 &lt;a href=&quot;#1&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;1&lt;/a&gt; SMP&lt;br/&gt;
last sysfs file: /sys/devices/system/cpu/cpu31/cache/index2/shared_cpu_map&lt;br/&gt;
CPU 6&lt;br/&gt;
Modules linked in: libcfs&lt;img class=&quot;emoticon&quot; src=&quot;https://jira.whamcloud.com/images/icons/emoticons/add.png&quot; height=&quot;16&quot; width=&quot;16&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;(U) ipmi_devintf ipmi_si ipmi_msghandler nfs lockd fscache nfs_acl auth_rpcgss sunrpc rdma_ucm(U) ib_sdp(U) rdma_cm(U) iw_cm(U) ib_addr(U) ib_ipoib(U) ib_cm(U) ib_sa(U) ipv6 ib_uverbs(U) ib_umad(U) mlx4_ib(U) ib_mad(U) ib_core(U) mlx4_en(U) mlx4_core(U) dm_round_robin dm_multipath sg i2c_i801 i2c_core iTCO_wdt iTCO_vendor_support ioatdma lpfc scsi_transport_fc scsi_tgt igb dca ext3 jbd sd_mod crc_t10dif usbhid hid ahci ehci_hcd uhci_hcd dm_mod &lt;span class=&quot;error&quot;&gt;&amp;#91;last unloaded: microcode&amp;#93;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;Modules linked in: libcfs&lt;img class=&quot;emoticon&quot; src=&quot;https://jira.whamcloud.com/images/icons/emoticons/add.png&quot; height=&quot;16&quot; width=&quot;16&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;(U) ipmi_devintf ipmi_si ipmi_msghandler nfs lockd fscache nfs_acl auth_rpcgss sunrpc rdma_ucm(U) ib_sdp(U) rdma_cm(U) iw_cm(U) ib_addr(U) ib_ipoib(U) ib_cm(U) ib_sa(U) ipv6 ib_uverbs(U) ib_umad(U) mlx4_ib(U) ib_mad(U) ib_core(U) mlx4_en(U) mlx4_core(U) dm_round_robin dm_multipath sg i2c_i801 i2c_core iTCO_wdt iTCO_vendor_support ioatdma lpfc scsi_transport_fc scsi_tgt igb dca ext3 jbd sd_mod crc_t10dif usbhid hid ahci ehci_hcd uhci_hcd dm_mod &lt;span class=&quot;error&quot;&gt;&amp;#91;last unloaded: microcode&amp;#93;&lt;/span&gt;&lt;br/&gt;
Pid: 38400, comm: modprobe Not tainted 2.6.32-71.14.1.el6.Bull.18.x86_64 #1 bullx super-node&lt;br/&gt;
RIP: 0010:&lt;span class=&quot;error&quot;&gt;&amp;#91;&amp;lt;ffffffffa04418df&amp;gt;&amp;#93;&lt;/span&gt;  &lt;span class=&quot;error&quot;&gt;&amp;#91;&amp;lt;ffffffffa04418df&amp;gt;&amp;#93;&lt;/span&gt; cfs_cpu_hwnode+0x2f/0x70 &lt;span class=&quot;error&quot;&gt;&amp;#91;libcfs&amp;#93;&lt;/span&gt;&lt;br/&gt;
RSP: 0018:ffff880434711d18  EFLAGS: 00010246&lt;br/&gt;
RAX: 0000000000000000 RBX: 0000000000000080 RCX: 0000000000000014&lt;br/&gt;
RDX: 000000000000ea6c RSI: 00000000ffffffff RDI: 0000000000000000&lt;br/&gt;
RBP: ffff880434711d18 R08: ffff880434711e98 R09: 0000000000000000&lt;br/&gt;
R10: 0000000000000004 R11: 0000000000000000 R12: 0000000000000000&lt;br/&gt;
R13: 0000000000000014 R14: 0000000000000050 R15: 00000000ffffffff&lt;br/&gt;
FS:  00007f6db66a0700(0000) GS:ffff88088e440000(0000) knlGS:0000000000000000&lt;br/&gt;
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033&lt;br/&gt;
CR2: 000000000000ea6c CR3: 0000000c6cf16000 CR4: 00000000000006e0&lt;br/&gt;
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000&lt;br/&gt;
DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400&lt;br/&gt;
Process modprobe (pid: 38400, threadinfo ffff880434710000, task ffff88046cee4f60)&lt;br/&gt;
Stack:&lt;br/&gt;
 ffff880434711d58 ffffffffa0441ab2 ffff880434711d98 ffffffff8171dfe0&lt;br/&gt;
&amp;lt;0&amp;gt; 0000000000000004 0000000000000004 0000000000000004 0000000000000000&lt;br/&gt;
&amp;lt;0&amp;gt; ffff880434711d68 ffffffffa0441b10 ffff880434711dd8 ffffffffa0455ad0&lt;br/&gt;
Call Trace:&lt;br/&gt;
 &lt;span class=&quot;error&quot;&gt;&amp;#91;&amp;lt;ffffffffa0441ab2&amp;gt;&amp;#93;&lt;/span&gt; __cfs_node_alloc+0x42/0x80 &lt;span class=&quot;error&quot;&gt;&amp;#91;libcfs&amp;#93;&lt;/span&gt;&lt;br/&gt;
 &lt;span class=&quot;error&quot;&gt;&amp;#91;&amp;lt;ffffffffa0441b10&amp;gt;&amp;#93;&lt;/span&gt; __cfs_node_alloc_aligned+0x20/0x30 &lt;span class=&quot;error&quot;&gt;&amp;#91;libcfs&amp;#93;&lt;/span&gt;&lt;br/&gt;
 &lt;span class=&quot;error&quot;&gt;&amp;#91;&amp;lt;ffffffffa0455ad0&amp;gt;&amp;#93;&lt;/span&gt; cfs_cpumap_alloc+0x50/0x590 &lt;span class=&quot;error&quot;&gt;&amp;#91;libcfs&amp;#93;&lt;/span&gt;&lt;br/&gt;
 &lt;span class=&quot;error&quot;&gt;&amp;#91;&amp;lt;ffffffff8125c240&amp;gt;&amp;#93;&lt;/span&gt; ? __bitmap_weight+0x50/0xb0&lt;br/&gt;
 &lt;span class=&quot;error&quot;&gt;&amp;#91;&amp;lt;ffffffffa04563ec&amp;gt;&amp;#93;&lt;/span&gt; cfs_cpumap_create_numa+0x12c/0x2e0 &lt;span class=&quot;error&quot;&gt;&amp;#91;libcfs&amp;#93;&lt;/span&gt;&lt;br/&gt;
 &lt;span class=&quot;error&quot;&gt;&amp;#91;&amp;lt;ffffffffa0448f20&amp;gt;&amp;#93;&lt;/span&gt; ? init_libcfs_module+0x0/0x270 &lt;span class=&quot;error&quot;&gt;&amp;#91;libcfs&amp;#93;&lt;/span&gt;&lt;br/&gt;
 &lt;span class=&quot;error&quot;&gt;&amp;#91;&amp;lt;ffffffffa0456623&amp;gt;&amp;#93;&lt;/span&gt; cfs_cpu_init+0x83/0x290 &lt;span class=&quot;error&quot;&gt;&amp;#91;libcfs&amp;#93;&lt;/span&gt;&lt;br/&gt;
 &lt;span class=&quot;error&quot;&gt;&amp;#91;&amp;lt;ffffffffa044cd89&amp;gt;&amp;#93;&lt;/span&gt; ? cfs_tracefile_init+0xd9/0x130 &lt;span class=&quot;error&quot;&gt;&amp;#91;libcfs&amp;#93;&lt;/span&gt;&lt;br/&gt;
 &lt;span class=&quot;error&quot;&gt;&amp;#91;&amp;lt;ffffffff81084a85&amp;gt;&amp;#93;&lt;/span&gt; ? atomic_notifier_chain_register+0x55/0x60&lt;br/&gt;
 &lt;span class=&quot;error&quot;&gt;&amp;#91;&amp;lt;ffffffffa044074c&amp;gt;&amp;#93;&lt;/span&gt; ? libcfs_register_panic_notifier+0x1c/0x20 &lt;span class=&quot;error&quot;&gt;&amp;#91;libcfs&amp;#93;&lt;/span&gt;&lt;br/&gt;
 &lt;span class=&quot;error&quot;&gt;&amp;#91;&amp;lt;ffffffffa0445e90&amp;gt;&amp;#93;&lt;/span&gt; ? libcfs_debug_init+0x90/0x100 &lt;span class=&quot;error&quot;&gt;&amp;#91;libcfs&amp;#93;&lt;/span&gt;&lt;br/&gt;
 &lt;span class=&quot;error&quot;&gt;&amp;#91;&amp;lt;ffffffffa0448f20&amp;gt;&amp;#93;&lt;/span&gt; ? init_libcfs_module+0x0/0x270 &lt;span class=&quot;error&quot;&gt;&amp;#91;libcfs&amp;#93;&lt;/span&gt;&lt;br/&gt;
 &lt;span class=&quot;error&quot;&gt;&amp;#91;&amp;lt;ffffffffa0448fc5&amp;gt;&amp;#93;&lt;/span&gt; init_libcfs_module+0xa5/0x270 &lt;span class=&quot;error&quot;&gt;&amp;#91;libcfs&amp;#93;&lt;/span&gt;&lt;br/&gt;
 &lt;span class=&quot;error&quot;&gt;&amp;#91;&amp;lt;ffffffff81084805&amp;gt;&amp;#93;&lt;/span&gt; ? __blocking_notifier_call_chain+0x65/0x80&lt;br/&gt;
 &lt;span class=&quot;error&quot;&gt;&amp;#91;&amp;lt;ffffffff8100904c&amp;gt;&amp;#93;&lt;/span&gt; do_one_initcall+0x3c/0x1d0&lt;br/&gt;
 &lt;span class=&quot;error&quot;&gt;&amp;#91;&amp;lt;ffffffff8109d3af&amp;gt;&amp;#93;&lt;/span&gt; sys_init_module+0xdf/0x250&lt;br/&gt;
 &lt;span class=&quot;error&quot;&gt;&amp;#91;&amp;lt;ffffffff8100c172&amp;gt;&amp;#93;&lt;/span&gt; system_call_fastpath+0x16/0x1b&lt;br/&gt;
Code: 0f 1f 44 00 00 48 85 ff 89 f0 74 0e 85 f6 78 05 3b 77 40 72 37 b8 ff ff ff ff 48 98 48 c7 c2 6c ea 00 00 48 8b 04 c5 40 d4 71 81 &amp;lt;8b&amp;gt; 04 10 0f a3 05 7f e9 2d e1 19 d2 85 d2 ba ff ff ff ff 0f 44&lt;br/&gt;
RIP  &lt;span class=&quot;error&quot;&gt;&amp;#91;&amp;lt;ffffffffa04418df&amp;gt;&amp;#93;&lt;/span&gt; cfs_cpu_hwnode+0x2f/0x70 &lt;span class=&quot;error&quot;&gt;&amp;#91;libcfs&amp;#93;&lt;/span&gt;&lt;br/&gt;
 RSP &amp;lt;ffff880434711d18&amp;gt;&lt;/p&gt;


&lt;p&gt;For your information, I have not set manually the &apos;cpu_mode&apos; option of libcfs module (so it should be 0).&lt;/p&gt;

&lt;p&gt;Have you already seen this?&lt;br/&gt;
Any idea to fix it?&lt;/p&gt;

&lt;p&gt;TIA,&lt;br/&gt;
Sebastien.&lt;/p&gt;</comment>
                            <comment id="12034" author="liang" created="Mon, 4 Apr 2011 06:53:01 +0000"  >&lt;p&gt;Sebastien, sorry I&apos;ve never seen this and actually I never tried my branch on 2.6.32, but I will look into this issue very soon, btw, are you able to apply the new kernel patch to 2.6.32? (ext4_pdirop.patch)&lt;/p&gt;</comment>
                            <comment id="12037" author="sebastien.buisson" created="Mon, 4 Apr 2011 07:03:41 +0000"  >&lt;p&gt;Yes, after small adjustments in patch, I see that ext4_pdirop.patch is applied at compile time in order to build ldiskfs.&lt;/p&gt;

&lt;p&gt;I hoped we could run some obdfilter-survey tests at least, in order to have nice figures to present at the LUG &lt;img class=&quot;emoticon&quot; src=&quot;https://jira.whamcloud.com/images/icons/emoticons/wink.png&quot; height=&quot;16&quot; width=&quot;16&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;&lt;/p&gt;</comment>
                            <comment id="12040" author="sebastien.buisson" created="Mon, 4 Apr 2011 07:16:00 +0000"  >&lt;p&gt;For information, the problem occurs on the first instruction of cfs_cpumap_alloc() function, i.e.&lt;br/&gt;
LIBCFS_ALLOC_ALIGNED(cpumap, sizeof(cfs_cpumap_t));&lt;/p&gt;</comment>
                            <comment id="12044" author="liang" created="Mon, 4 Apr 2011 07:54:11 +0000"  >&lt;p&gt;Hi, it should be fixed, it&apos;s a typo which will make my code access cpu_to_node&lt;span class=&quot;error&quot;&gt;&amp;#91;-1&amp;#93;&lt;/span&gt;...it&apos;s been there for months but I never hit it on many different hardwares... please pull from git for the fix. &lt;br/&gt;
btw: I&apos;ve changed default value of cpu_mode to 2 for my testing, so please use cpu_mode=0 to modprobe.conf on OSS or clients. &lt;/p&gt;</comment>
                            <comment id="12046" author="liang" created="Mon, 4 Apr 2011 08:01:21 +0000"  >&lt;p&gt;Also, binding LNet on CPU are changed as well... now it should be like &quot;o2ib0:0(ib0), o2ib1:1(ib1)&quot;&lt;/p&gt;</comment>
                            <comment id="12181" author="sebastien.buisson" created="Tue, 5 Apr 2011 04:41:59 +0000"  >&lt;p&gt;Hi Liang,&lt;/p&gt;

&lt;p&gt;Thanks for the quick fix, now I can &apos;modprobe ptlrpc&apos; without any issue.&lt;/p&gt;

&lt;p&gt;But unfortunately I am hitting another problem: when I try to mount the MDT, I get the following error:&lt;/p&gt;

&lt;p&gt;&lt;span class=&quot;error&quot;&gt;&amp;#91;root@berlin27 lustre&amp;#93;&lt;/span&gt;# mount -t lustre -o acl,user_xattr /dev/sda9 /mnt/t100full/mdt/0&lt;br/&gt;
mount.lustre: mount /dev/sda9 at /mnt/t100full/mdt/0 failed: Invalid argument&lt;br/&gt;
This may have multiple causes.&lt;br/&gt;
Are the mount options correct?&lt;br/&gt;
Check the syslog for more info.&lt;/p&gt;

&lt;p&gt;&lt;span class=&quot;error&quot;&gt;&amp;#91;root@berlin27 lustre&amp;#93;&lt;/span&gt;# dmesg -c&lt;br/&gt;
LDISKFS-fs warning (device sda9): ldiskfs_fill_super: extents feature not enabled on this filesystem, use tune2fs.&lt;br/&gt;
LDISKFS-fs (sda9): mounted filesystem with ordered data mode&lt;br/&gt;
LDISKFS-fs warning (device sda9): ldiskfs_fill_super: extents feature not enabled on this filesystem, use tune2fs.&lt;br/&gt;
LDISKFS-fs (sda9): Unrecognized mount option &quot;64bithash&quot; or missing value&lt;br/&gt;
LustreError: 16785:0:(obd_mount.c:1399:server_kernel_mount()) ll_kern_mount failed: rc = -22&lt;br/&gt;
LustreError: 16785:0:(obd_mount.c:1680:server_fill_super()) Unable to mount device /dev/sda9: -22&lt;br/&gt;
LustreError: 16785:0:(obd_mount.c:2154:lustre_fill_super()) Unable to mount  (-22)&lt;/p&gt;


&lt;p&gt;Did I miss something? Like a specific e2fsprogs version (we are currently using 1.41.10.sun2)?&lt;/p&gt;

&lt;p&gt;I must say that we do not have this error if we start the same MDT with our Lustre 2.0.0.1 rpms installed.&lt;/p&gt;

&lt;p&gt;TIA,&lt;br/&gt;
Sebastien.&lt;/p&gt;</comment>
                            <comment id="12198" author="liang" created="Tue, 5 Apr 2011 05:58:25 +0000"  >&lt;p&gt;Hi, I think you need this patch: &lt;a href=&quot;http://git.whamcloud.com/?p=fs/lustre-release.git;a=commit;h=6bdb62e3d7ed206bcaef0cd3499f9cb56dc1fb92&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://git.whamcloud.com/?p=fs/lustre-release.git;a=commit;h=6bdb62e3d7ed206bcaef0cd3499f9cb56dc1fb92&lt;/a&gt;&lt;br/&gt;
I&apos;ve synced my branch with master, so you just need to pull it from my branch. &lt;/p&gt;</comment>
                            <comment id="14107" author="liang" created="Tue, 10 May 2011 08:49:00 +0000"  >&lt;ul&gt;
	&lt;li&gt;Background of the project
	&lt;ul&gt;
		&lt;li&gt;already landed tens of standalone patches when I was in Oracle, all following descriptions are about patches not landed yet&lt;/li&gt;
		&lt;li&gt;A fat server is divided into several processing partitions (or cpu-partitions, CP as abbreviation), each partition contains: some cpu cores(or NUMA nodes) + memory pool + message queue + threads pool), it&apos;s a little like concept of virtual machine, although it&apos;s much simpler. It&apos;s not new thing, I just bring in this as a concept to replace what I used to call cpu_node + cpu-affinity, which is confusing because &quot;node&quot; is already used to present NUMA in linux kernel.&lt;/li&gt;
		&lt;li&gt;Although we still have one single namespace on MDS, but we can have several virtual processing partitions, lifetime of request should be localized on the processing partition as possible as we can, to reduce data/thread migration between CPUs, also reduce lock contentions and cacheline conflicts.
		&lt;ul&gt;
			&lt;li&gt;LND has message queue and threads-pool for each partition&lt;/li&gt;
			&lt;li&gt;LNet has EQ callback for each partition&lt;/li&gt;
			&lt;li&gt;Ptlrpc service has message queue and threads pool for each partition&lt;/li&gt;
		&lt;/ul&gt;
		&lt;/li&gt;
		&lt;li&gt;number of CPU partitions is configurable (by new parameter &quot;cpu_npartitions&quot; of libcfs), libcfs will also automatically estimate &quot;cpu_npartitions&quot; based on number of CPUs. If we have cpu_node_num=N (N &amp;gt; 1), Lustre stack can have N standalone processing flows (unless they are contenting on the same resource), if we configured the system with cpu_npartitions=1, we have only one partition and lustre should act as current &quot;master&quot;.&lt;/li&gt;
		&lt;li&gt;user can provide string pattern for cpu-partitions as well, i.e: &quot;0[0, 2, 4, 6] 1[1, 3, 5, 7]&quot;,  by this way, lustre will have two cpu-partitions, the first one contains core[0, 2, 4, 6], the second one presents core[1, 3, 5, 7], NB: those numbers inside bracket can be NUMA id as well.&lt;/li&gt;
		&lt;li&gt;number of cpu partitions &amp;lt; number of cores (or hyper-threadings), because modern computer can have hundreds or more cores, there are some major downsides if we have per-core schedulers(threads) pool: a) bad load balance especially on small/middle size cluster, b) too many threads overall;
		&lt;ul&gt;
			&lt;li&gt;on client/OSS/router, cpu_npartitions == NUMA node, dataflow of request/reply is localized on NUMA node&lt;/li&gt;
			&lt;li&gt;on MDS, a cpu partition will present a few cores(or hyper-threading), i.e: on system with 4 NUMA nodes and 64-cores, we have 8 cpu-partitions&lt;/li&gt;
			&lt;li&gt;we might hash different objects(by fid) to different cpu-partition in the future, it&apos;s an advanced feature which we don&apos;t have now&lt;/li&gt;
			&lt;li&gt;we can bind LNet NI on specified cpu partition for NUMIOA performance&lt;/li&gt;
		&lt;/ul&gt;
		&lt;/li&gt;
		&lt;li&gt;these things helped a lot on performance of many target directories tests, but they can help nothing on shared directory performance at all, I never saw 20K+ file/sec in shared directory creatinon/removal tests (non-zero stripe), with 1.8, the number is &amp;lt; 7K files/sec&lt;/li&gt;
		&lt;li&gt;new pdirops patch works fine(&lt;a href=&quot;https://jira.whamcloud.com/browse/LU-50&quot; title=&quot;pdirops patch for ldiskfs&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-50&quot;&gt;&lt;del&gt;LU-50&lt;/del&gt;&lt;/a&gt;), Andreas has already reviewed the prototype, now I have posted an the second version for review. The pdirops patch is different with the old one (we had 5 or 6 years ago?)
		&lt;ul&gt;
			&lt;li&gt;the old version is dynlock based, it has too many inline changes for ext4, and we probably need to change more to support N-level htree (large directory), we probably  have to change  ext4/namei.c and make it quite like our IAM.&lt;/li&gt;
			&lt;li&gt;the new version is htree_lock based, although implementation of the htree_lock is big &amp;amp; complex, but it just requires a few inline changes for ext4. htree_lock is more like a embedded component, it can be enabled/disabled easily, and need very few logic change to current ext4. The patch is big (about 2K lines), but only has about 200 LOC inline changes (including changes for N-level htree), and half of those inline changes are adding a new parameter to some functions.&lt;/li&gt;
			&lt;li&gt;htree_lock based pdirops patch have same performance as IAM dir, but without any interop issue&lt;/li&gt;
			&lt;li&gt;with pdirops patch on my branch, we can get 65K+ files/sec opencreate+close (narrow stripping file, aggregation performance on server) in my latest test on toro&lt;/li&gt;
		&lt;/ul&gt;
		&lt;/li&gt;
		&lt;li&gt;MDD transaction scheduler will be totally dropped, If you still remember it, I mentioned previously that I wanted to add a relatively small threads pool in MDD to take over backend filesystem transactions, this thread pool size should be moderate and just enough for driving full throughput of metadata operations, this idea is majorly for share directory performance. However, pdirops patch works very good, so I will totally drop it (there is more detail in my mail to lustre-devel a few weeks ago)&lt;/li&gt;
	&lt;/ul&gt;
	&lt;/li&gt;
	&lt;li&gt;key component for landing
	&lt;ul&gt;
		&lt;li&gt;Tens of standalone patches
		&lt;ul&gt;
			&lt;li&gt;no dependency on each other,  size of them are from a few LOC to a few hundreds LOC&lt;/li&gt;
			&lt;li&gt;some of them will be landed on 2.1, all of them will be landed on 2.2&lt;/li&gt;
		&lt;/ul&gt;
		&lt;/li&gt;
		&lt;li&gt;pdirop patch + BH LRU size kernel patch
		&lt;ul&gt;
			&lt;li&gt;pdirop patch is big, but easy to maintain (at least it&apos;s easy to port it to rhel6)&lt;/li&gt;
			&lt;li&gt;I&apos;ve sent another mail to Andreas and bzzz to explain why we need to increase size of BH LRU size, it will be a small patch&lt;/li&gt;
			&lt;li&gt;we would like to land them on 2.2 if we got enough resource or got funding on this&lt;/li&gt;
		&lt;/ul&gt;
		&lt;/li&gt;
		&lt;li&gt;cpu-partition patches
		&lt;ul&gt;
			&lt;li&gt;it&apos;s the biggest chunk, includes several large patches spread over stack layers (libcfs, LNet, LND, ptlrpc server side, and some small changes to other modules like mdt, ost )&lt;/li&gt;
			&lt;li&gt;patches have dependencies.&lt;/li&gt;
			&lt;li&gt;The biggest challenge is inspection LNet + LNDs, isaac might give us some help to review, Lai Siyao will be the other inspector&lt;/li&gt;
			&lt;li&gt;if we got funding on this, we tend to land them on 2.2, otherwise it&apos;s more realistic for us to land them on 2.3&lt;/li&gt;
		&lt;/ul&gt;
		&lt;/li&gt;
	&lt;/ul&gt;
	&lt;/li&gt;
&lt;/ul&gt;
</comment>
                            <comment id="34540" author="simmonsja" created="Wed, 11 Apr 2012 12:33:44 +0000"  >&lt;p&gt;Can you post links to your patches here. Thank you.&lt;/p&gt;</comment>
                            <comment id="34541" author="ian" created="Wed, 11 Apr 2012 12:38:21 +0000"  >&lt;p&gt;&lt;a href=&quot;http://review.whamcloud.com/#change,2346&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/#change,2346&lt;/a&gt;&lt;br/&gt;
&lt;a href=&quot;http://review.whamcloud.com/#change,2461&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/#change,2461&lt;/a&gt;&lt;br/&gt;
&lt;a href=&quot;http://review.whamcloud.com/#change,2523&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/#change,2523&lt;/a&gt;&lt;br/&gt;
&lt;a href=&quot;http://review.whamcloud.com/#change,2558&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/#change,2558&lt;/a&gt;	&lt;br/&gt;
&lt;a href=&quot;http://review.whamcloud.com/#change,2638&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/#change,2638&lt;/a&gt;&lt;br/&gt;
&lt;a href=&quot;http://review.whamcloud.com/#change,2718&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/#change,2718&lt;/a&gt;&lt;br/&gt;
&lt;a href=&quot;http://review.whamcloud.com/#change,2725&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/#change,2725&lt;/a&gt;&lt;br/&gt;
&lt;a href=&quot;http://review.whamcloud.com/#change,2729&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/#change,2729&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;FYI - They&apos;re still in review.&lt;/p&gt;</comment>
                            <comment id="43210" author="spitzcor" created="Tue, 14 Aug 2012 14:38:30 +0000"  >&lt;p&gt;Re: the last two comments.  Patches have landed.  I&apos;ll copy an update of the patch list from Richard Henwood here:&lt;/p&gt;

&lt;p&gt;c3e985e7e98f41ebf5ecb78887dcd2554601f7ef &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-56&quot; title=&quot;Finish SMP scalability work&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-56&quot;&gt;&lt;del&gt;LU-56&lt;/del&gt;&lt;/a&gt; ptlrpc: post rqbd with flag LNET_INS_LOCAL&lt;br/&gt;
8bbd62a7c0d2fc48d8f11e78d92bb42809968bba &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-56&quot; title=&quot;Finish SMP scalability work&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-56&quot;&gt;&lt;del&gt;LU-56&lt;/del&gt;&lt;/a&gt; ptlrpc: CPT affinity ptlrpc RS handlers&lt;br/&gt;
d800fc41a1abdaf7aaf6c0e3e7ddcdec489985a8 &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-56&quot; title=&quot;Finish SMP scalability work&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-56&quot;&gt;&lt;del&gt;LU-56&lt;/del&gt;&lt;/a&gt; ptlrpc: partitioned ptlrpc service&lt;br/&gt;
b43a6b1800265608cfa18159d4d0d006a1c23015 &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-56&quot; title=&quot;Finish SMP scalability work&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-56&quot;&gt;&lt;del&gt;LU-56&lt;/del&gt;&lt;/a&gt; o2iblnd: CPT affinity o2iblnd&lt;br/&gt;
82e02a17c0c645a8d156e51b8d8da5eaa68b8f5b &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-56&quot; title=&quot;Finish SMP scalability work&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-56&quot;&gt;&lt;del&gt;LU-56&lt;/del&gt;&lt;/a&gt; lnet: re-finalize failed ACK or routed message&lt;br/&gt;
1a73553d15b459208cbf7279ea6e5e5a110c632b &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-56&quot; title=&quot;Finish SMP scalability work&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-56&quot;&gt;&lt;del&gt;LU-56&lt;/del&gt;&lt;/a&gt; ksocklnd: CPT affinity socklnd&lt;br/&gt;
6b4b780895dfdeaca316862fbf1696983608f96d &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-56&quot; title=&quot;Finish SMP scalability work&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-56&quot;&gt;&lt;del&gt;LU-56&lt;/del&gt;&lt;/a&gt; lnet: wrong assertion for optimized GET&lt;br/&gt;
913c8e22cfc4fc5f52c4f0d6d3f0b4b86a7ac58c &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-56&quot; title=&quot;Finish SMP scalability work&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-56&quot;&gt;&lt;del&gt;LU-56&lt;/del&gt;&lt;/a&gt; lnet: tuning wildcard portals rotor&lt;br/&gt;
c03783fce46ae0b40db0680388df6e2d6fca5008 &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-56&quot; title=&quot;Finish SMP scalability work&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-56&quot;&gt;&lt;del&gt;LU-56&lt;/del&gt;&lt;/a&gt; lnet: SMP improvements for LNet selftest&lt;br/&gt;
7b2ab9beae02080797ff2da5105eaddadd67c151 &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-56&quot; title=&quot;Finish SMP scalability work&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-56&quot;&gt;&lt;del&gt;LU-56&lt;/del&gt;&lt;/a&gt; ldlm: SMP improvement for ldlm_lock_cancel&lt;br/&gt;
07b8db220e48782369f48d86213c5d404a628ded &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-56&quot; title=&quot;Finish SMP scalability work&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-56&quot;&gt;&lt;del&gt;LU-56&lt;/del&gt;&lt;/a&gt; ptlrpc: Reduce at_lock dance&lt;br/&gt;
c48a869557fe7663f4f3370b130d4c248958180e &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-56&quot; title=&quot;Finish SMP scalability work&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-56&quot;&gt;&lt;del&gt;LU-56&lt;/del&gt;&lt;/a&gt; libcfs: CPT affinity workitem scheduler&lt;br/&gt;
8a5b8dbda960b155f669c13602504f1233a84c7e &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-56&quot; title=&quot;Finish SMP scalability work&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-56&quot;&gt;&lt;del&gt;LU-56&lt;/del&gt;&lt;/a&gt; obdclass: SMP improvement for lu_key&lt;br/&gt;
e531dc437c56a08a65de9074a511faa55184712b &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-56&quot; title=&quot;Finish SMP scalability work&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-56&quot;&gt;&lt;del&gt;LU-56&lt;/del&gt;&lt;/a&gt; lnet: multiple cleanups for inspection&lt;br/&gt;
e069296630240947f1815e505067fd48033909f7 &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-56&quot; title=&quot;Finish SMP scalability work&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-56&quot;&gt;&lt;del&gt;LU-56&lt;/del&gt;&lt;/a&gt; lnet: allow user to bind NI on CPTs&lt;br/&gt;
a07e9d350b3e500c7be877f6dcf54380b86a9cbe &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-56&quot; title=&quot;Finish SMP scalability work&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-56&quot;&gt;&lt;del&gt;LU-56&lt;/del&gt;&lt;/a&gt; lnet: Partitioned LNet networks&lt;br/&gt;
5e1957841df3e771f3d72d8ea59180213430bbb9 &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-56&quot; title=&quot;Finish SMP scalability work&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-56&quot;&gt;&lt;del&gt;LU-56&lt;/del&gt;&lt;/a&gt; lnet: cleanup for rtrpool and LNet counter&lt;br/&gt;
279bbc81e03dc74d273ec12b4d9e703ca94404c4 &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-56&quot; title=&quot;Finish SMP scalability work&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-56&quot;&gt;&lt;del&gt;LU-56&lt;/del&gt;&lt;/a&gt; lnet: Partitioned LNet resources (ME/MD/EQ)&lt;br/&gt;
582c110231cf06bcd7e5e0b3bdf4f2058e18ebe4 &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-56&quot; title=&quot;Finish SMP scalability work&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-56&quot;&gt;&lt;del&gt;LU-56&lt;/del&gt;&lt;/a&gt; ptlrpc: cleanup of ptlrpc_unregister_service&lt;br/&gt;
ff0c89a73e141ce019ee2a94e5d01a8a37dd830a &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-56&quot; title=&quot;Finish SMP scalability work&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-56&quot;&gt;&lt;del&gt;LU-56&lt;/del&gt;&lt;/a&gt; ptlrpc: svc thread starting/stopping cleanup&lt;br/&gt;
25766da50b627648b04549ff3fb55af12acbcb4b &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-56&quot; title=&quot;Finish SMP scalability work&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-56&quot;&gt;&lt;del&gt;LU-56&lt;/del&gt;&lt;/a&gt; lnet: reduce stack usage of &quot;match&quot; functions&lt;br/&gt;
c7bff5640caff778d4cfca229672a2cc67b350d6 &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-56&quot; title=&quot;Finish SMP scalability work&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-56&quot;&gt;&lt;del&gt;LU-56&lt;/del&gt;&lt;/a&gt; lnet: Granulate LNet lock&lt;br/&gt;
24564b398f53009521aeda5d653e57fe8b525775 &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-56&quot; title=&quot;Finish SMP scalability work&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-56&quot;&gt;&lt;del&gt;LU-56&lt;/del&gt;&lt;/a&gt; ptlrpc: partition data for ptlrpc service&lt;br/&gt;
698d3088622b4610a84bd508f2b707a7a2dd1e3e &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-56&quot; title=&quot;Finish SMP scalability work&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-56&quot;&gt;&lt;del&gt;LU-56&lt;/del&gt;&lt;/a&gt; lnet: code cleanup for lib-move.c&lt;br/&gt;
38fcdd3966da09517ca176b962230b7dae43514c &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-56&quot; title=&quot;Finish SMP scalability work&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-56&quot;&gt;&lt;del&gt;LU-56&lt;/del&gt;&lt;/a&gt; lnet: match-table for Portals&lt;br/&gt;
f0aa1eef72e7438c2bd4b3eee821fefbc50d1f8e &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-56&quot; title=&quot;Finish SMP scalability work&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-56&quot;&gt;&lt;del&gt;LU-56&lt;/del&gt;&lt;/a&gt; lnet: code cleanup for lib-md.c&lt;br/&gt;
75a8f4b4aa9ad6bf697aedece539e62111e9029a &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-56&quot; title=&quot;Finish SMP scalability work&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-56&quot;&gt;&lt;del&gt;LU-56&lt;/del&gt;&lt;/a&gt; lnet: split lnet_commit_md and cleanup&lt;br/&gt;
06093c1f24da938418a0243259b5307c9fc338d5 &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-56&quot; title=&quot;Finish SMP scalability work&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-56&quot;&gt;&lt;del&gt;LU-56&lt;/del&gt;&lt;/a&gt; lnet: LNet message event cleanup&lt;br/&gt;
2118a8b92cec2df85d1bdbe2e58b389d83fe06b2 &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-56&quot; title=&quot;Finish SMP scalability work&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-56&quot;&gt;&lt;del&gt;LU-56&lt;/del&gt;&lt;/a&gt; lnet: eliminate a few locking dance in LNet&lt;br/&gt;
51a5b4df5bbbf5fd12c73d2722b230e93fe93327 &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-56&quot; title=&quot;Finish SMP scalability work&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-56&quot;&gt;&lt;del&gt;LU-56&lt;/del&gt;&lt;/a&gt; lnet: parse RC ping in event callback&lt;br/&gt;
b9bad9bd7d1c3271df916ee62091106e3f3c98b7 &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-56&quot; title=&quot;Finish SMP scalability work&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-56&quot;&gt;&lt;del&gt;LU-56&lt;/del&gt;&lt;/a&gt; lnet: router-checker (RC) cleanup&lt;br/&gt;
4fcc56be68c8c1667fbd91721d084874a2f05c3e &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-56&quot; title=&quot;Finish SMP scalability work&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-56&quot;&gt;&lt;del&gt;LU-56&lt;/del&gt;&lt;/a&gt; ptlrpc: common code to validate nthreads&lt;br/&gt;
ed22093b2d569fd0e93f35504580171114bf212d &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-56&quot; title=&quot;Finish SMP scalability work&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-56&quot;&gt;&lt;del&gt;LU-56&lt;/del&gt;&lt;/a&gt; lnet: move &quot;match&quot; functions to lib-ptl.c&lt;br/&gt;
a096d858b671f28fd4c5e6197b51643cd0780a50 &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-56&quot; title=&quot;Finish SMP scalability work&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-56&quot;&gt;&lt;del&gt;LU-56&lt;/del&gt;&lt;/a&gt; lnet: allow to create EQ with zero eq_size&lt;br/&gt;
c1366da8f43ecfb98ef3bdcf629eec8a2fc9cd4c &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-56&quot; title=&quot;Finish SMP scalability work&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-56&quot;&gt;&lt;del&gt;LU-56&lt;/del&gt;&lt;/a&gt; lnet: cleanup for LNet Event Queue&lt;br/&gt;
3211f6862cbbe96642db540e6593f3c614f9528c &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-56&quot; title=&quot;Finish SMP scalability work&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-56&quot;&gt;&lt;del&gt;LU-56&lt;/del&gt;&lt;/a&gt; lnet: new internal object lnet_peer_table&lt;br/&gt;
7a51ad347960ef2b9d1dfad14644c0bca35b80b6 &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-56&quot; title=&quot;Finish SMP scalability work&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-56&quot;&gt;&lt;del&gt;LU-56&lt;/del&gt;&lt;/a&gt; ptlrpc: clean up ptlrpc svc initializing APIs&lt;br/&gt;
facf5086667874c405c9ef6ce7f8f737868ffefd &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-56&quot; title=&quot;Finish SMP scalability work&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-56&quot;&gt;&lt;del&gt;LU-56&lt;/del&gt;&lt;/a&gt; lnet: container for LNet message&lt;br/&gt;
c3a57ec36441c75df03cfbec8f718e053aaad12a &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-56&quot; title=&quot;Finish SMP scalability work&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-56&quot;&gt;&lt;del&gt;LU-56&lt;/del&gt;&lt;/a&gt; lnet: abstract container for EQ/ME/MD&lt;br/&gt;
4bd9bf53728260d38efc74cac981318fe31280cd &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-56&quot; title=&quot;Finish SMP scalability work&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-56&quot;&gt;&lt;del&gt;LU-56&lt;/del&gt;&lt;/a&gt; lnet: add lnet_*_free_locked for LNet&lt;br/&gt;
c8da7bfbe0505175869973b25281b152940774b0 &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-56&quot; title=&quot;Finish SMP scalability work&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-56&quot;&gt;&lt;del&gt;LU-56&lt;/del&gt;&lt;/a&gt; libcfs: more common APIs in libcfs&lt;br/&gt;
b76f327de7836a854f204d28e61de52bc03011b1 &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-56&quot; title=&quot;Finish SMP scalability work&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-56&quot;&gt;&lt;del&gt;LU-56&lt;/del&gt;&lt;/a&gt; libcfs: export a few symbols from libcfs&lt;br/&gt;
3a92c850b094019e556577ec6cab5907538dcbf5 &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-56&quot; title=&quot;Finish SMP scalability work&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-56&quot;&gt;&lt;del&gt;LU-56&lt;/del&gt;&lt;/a&gt; libcfs: NUMA allocator and code cleanup&lt;br/&gt;
617e8e1229637908d4cce6725878dd5668960420 &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-56&quot; title=&quot;Finish SMP scalability work&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-56&quot;&gt;&lt;del&gt;LU-56&lt;/del&gt;&lt;/a&gt; libcfs: implementation of cpu partition&lt;br/&gt;
19ec037c0a9427250b87a69c53beb153d533ab1c &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-56&quot; title=&quot;Finish SMP scalability work&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-56&quot;&gt;&lt;del&gt;LU-56&lt;/del&gt;&lt;/a&gt; libcfs: move range expression parser to libcfs&lt;/p&gt;</comment>
                            <comment id="43211" author="spitzcor" created="Tue, 14 Aug 2012 14:38:59 +0000"  >&lt;p&gt;Cray has been testing (a little) for functionality only.  No significant issues to report so far.&lt;/p&gt;</comment>
                            <comment id="43881" author="liang" created="Tue, 28 Aug 2012 11:57:50 +0000"  >&lt;p&gt;SMP node affinity presentation for Lustre team Tech-call&lt;/p&gt;</comment>
                            <comment id="43882" author="liang" created="Tue, 28 Aug 2012 11:58:41 +0000"  >&lt;p&gt;SMP node affinity OpenSFS demonstration&lt;/p&gt;</comment>
                            <comment id="45730" author="jlevi" created="Fri, 28 Sep 2012 11:41:42 +0000"  >&lt;p&gt;Please let me know if more work is needed for this and I will reopen ticket.&lt;/p&gt;</comment>
                            <comment id="47007" author="liang" created="Mon, 29 Oct 2012 09:05:22 +0000"  >&lt;p&gt;patched mdtest which parses expression for multi-mount&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Related</name>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="64088">LU-14676</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="16404">LUDOC-97</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <attachments>
                            <attachment id="11995" name="mdtest_lustre_1.8.3.tgz" size="58695" author="liang" created="Mon, 29 Oct 2012 09:05:22 +0000"/>
                            <attachment id="11805" name="opensfs_smp_demonstration.pdf" size="356405" author="liang" created="Tue, 28 Aug 2012 11:58:41 +0000"/>
                            <attachment id="11804" name="opensfs_smp_node_aff.pdf" size="1068075" author="liang" created="Tue, 28 Aug 2012 11:57:50 +0000"/>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                                                                                                                                            <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|hzv6cv:</customfieldvalue>

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