<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 01:06:37 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-398] NRS (Network Request Scheduler )</title>
                <link>https://jira.whamcloud.com/browse/LU-398</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&lt;h3&gt;&lt;a name=&quot;ArchitectureNetworkRequestScheduler&quot;&gt;&lt;/a&gt;Architecture - Network Request Scheduler&lt;/h3&gt;
&lt;p&gt;(NB: this is copy of &lt;a href=&quot;http://wiki.lustre.org/index.php/Architecture_-_Network_Request_Scheduler&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://wiki.lustre.org/index.php/Architecture_-_Network_Request_Scheduler&lt;/a&gt;)&lt;/p&gt;
&lt;h3&gt;&lt;a name=&quot;Definitions&quot;&gt;&lt;/a&gt;Definitions&lt;/h3&gt;
&lt;ul&gt;
	&lt;li&gt;NRS&lt;br/&gt;
    Network Request Scheduler. &lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;RPC Concurrency&lt;br/&gt;
    The number of RPC requests in-flight RPC between a given client and a server. &lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;Active fan-out&lt;br/&gt;
    The number of clients with in-flight requests to a given server at a given time. &lt;/li&gt;
	&lt;li&gt;Offset stream&lt;br/&gt;
    The sequence of file or disk offsets in a stream of I/O requests. &lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;&quot;Before&quot; relation (&#8804;)&lt;br/&gt;
    File system operations that require ordering for correctness are related by &quot;&#8804;&quot;. For 2 operations a and b, if a &#8804; b, then operation a must complete reading/writing file system state before operation b can start. &lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;POP&lt;br/&gt;
    Partial Order Preservation. A filesystem&apos;s POP capability describes how its servers handle any &quot;before&quot; relations required on RPC sent to them. Servers with no POP capability have no concept of any &quot;before&quot; relation on incoming RPCs so clients are completely responsible for preserving it. Servers with local POP capability preserve the &quot;before&quot; relation within a single server, but clients are responsible for preserving any required order on RPCs sent to different servers. A set of servers with global POP capability preserves the &quot;before&quot; relation on all RPCs. 
&lt;h3&gt;&lt;a name=&quot;Summary&quot;&gt;&lt;/a&gt;Summary&lt;/h3&gt;&lt;/li&gt;
	&lt;li&gt;The Network Request Scheduler manages incoming RPC requests on a server to provide improved and consistent performance. It does this primarily by ordering request execution to avoid client starvation and to present a workload to the backend filesystem that can be optimized more easily. It may also change RPC concurrency as active fan-out varies to reduce latency seen by the client and limit request buffering on the server.
&lt;h3&gt;&lt;a name=&quot;Requirements&quot;&gt;&lt;/a&gt;Requirements&lt;/h3&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;POP Capability&lt;br/&gt;
The NRS must implement any POP capability its clients require.
&lt;br class=&quot;atl-forced-newline&quot; /&gt; &lt;br class=&quot;atl-forced-newline&quot; /&gt;Current Lustre servers have no POP capability therefore clients may never issue RPCs concurrently that have a &quot;before&quot; relation - viz. metadata RPCs are synchronous and dirty data must have been written back before locks can start to be released. This leaves the NRS free to reorder all incoming RPCs.
&lt;br class=&quot;atl-forced-newline&quot; /&gt; &lt;br class=&quot;atl-forced-newline&quot; /&gt;Any POP capability should permit better RPC pipelining for improved throughput to single clients and better latency hiding when resolving lock conflicts.
&lt;br class=&quot;atl-forced-newline&quot; /&gt; &lt;br class=&quot;atl-forced-newline&quot; /&gt;The implementation may choose to implement a very simple POP capability that only works for the most important use cases, since it can revert to synchronous client behaviour in complex cases.
&lt;br class=&quot;atl-forced-newline&quot; /&gt; &lt;br class=&quot;atl-forced-newline&quot; /&gt;An implementation may create additional &quot;before&quot; relations between RPCs provided they do not conflict with any &quot;real&quot; ordering (i.e. no cycles in the global &quot;before&quot; graph). This may allow a more compact &quot;wire&quot; representation of the &quot;before&quot; relation and/or just a simpler overall implementation, at the expense of reducing the scope to optimize request order.
&lt;br class=&quot;atl-forced-newline&quot; /&gt; &lt;br class=&quot;atl-forced-newline&quot; /&gt;Consider RPC requests a &#8804; b. Implementations that could allow request b to reach a server before request a will have to log completed requests for the duration of a server epoch.
&lt;br class=&quot;atl-forced-newline&quot; /&gt; &lt;br class=&quot;atl-forced-newline&quot; /&gt;A global POP capability seems to require too much and too fine-grained inter-server communication which will make it hard to implement efficiently. It should probably not be considered unless a significant use-case arises.&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;Scalability&lt;br/&gt;
The number of RPC requests the server may buffer at any time is the product of RPC concurrency and active fan-out - i.e. potentially many thousands of requests. Request scheduling operations should have complexity of O(log&lt;img class=&quot;emoticon&quot; src=&quot;https://jira.whamcloud.com/images/icons/emoticons/thumbs_down.png&quot; height=&quot;16&quot; width=&quot;16&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;) at most.&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;Offset Stream Consistency&lt;br/&gt;
The backend filesystem allocator determines the disk offset stream when a given file is first written. It may even turn a random file offset stream into a substantially sequential disk offset stream. The disk offset stream is repeated when the file is read, provided the file offset stream hasn&apos;t changed. Request ordering should therefore be as reproducible as possible in the face of ordering &quot;noise&quot; caused by network unfairness or client races.
&lt;br class=&quot;atl-forced-newline&quot; /&gt; &lt;br class=&quot;atl-forced-newline&quot; /&gt;Clients should pass a &quot;hint&quot; in RPC requests to ensure related offset streams can be identified, reordered and merged consistently on a multi-user cluster. This &quot;hint&quot; should also be passed through to the backend file system and used by its allocator. The &quot;hint&quot; may also become the basis of a resource reservation system to guarantee share of server resource to concurrent jobs.&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;Request Priority&lt;br/&gt;
Request priorities enable important requests to be serviced with lower latency - e.g. writes required to clean a cache on a locking conflict. Note that high priority requests must not break any POP requirements.&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;RPC Concurrency&lt;br/&gt;
There are conflicting pressures on RPC concurrency. It should be high when maximum individual client performance is required - e.g. when active fan-out is low on the server and there is spare server bandwidth, or when a client must clean its cache on a lock conflict. It should be low at times of high active fan-out to reduce buffering required on the server and to limit the latency of individual client requests.&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;Extendability&lt;br/&gt;
The NRS must inter-operate with non-NRS-aware clients and peers, making &quot;best efforts&quot; scheduling descisions for them. This same policy must apply to successive client and server versions. &lt;/li&gt;
&lt;/ul&gt;
</description>
                <environment></environment>
        <key id="11119">LU-398</key>
            <summary>NRS (Network Request Scheduler )</summary>
                <type id="2" iconUrl="https://jira.whamcloud.com/secure/viewavatar?size=xsmall&amp;avatarId=11311&amp;avatarType=issuetype">New Feature</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="liang">Liang Zhen</reporter>
                        <labels>
                    </labels>
                <created>Tue, 7 Jun 2011 04:56:00 +0000</created>
                <updated>Fri, 7 Oct 2016 20:55:18 +0000</updated>
                            <resolved>Fri, 7 Oct 2016 20:55:18 +0000</resolved>
                                    <version>Lustre 2.4.0</version>
                                    <fixVersion>Lustre 2.4.0</fixVersion>
                                        <due></due>
                            <votes>0</votes>
                                    <watches>20</watches>
                                                                            <comments>
                            <comment id="17254" author="nrutman" created="Tue, 5 Jul 2011 14:36:33 +0000"  >&lt;p&gt;Note that Xyratex is also working on this issue (MRP-73).&lt;br/&gt;
I&apos;m going to attach current a DLD (pre-inspection) for community comment.&lt;/p&gt;
</comment>
                            <comment id="17255" author="nrutman" created="Tue, 5 Jul 2011 14:39:33 +0000"  >&lt;p&gt;Xyratex NRS HLD&lt;/p&gt;</comment>
                            <comment id="17449" author="liang" created="Fri, 8 Jul 2011 05:46:55 +0000"  >&lt;p&gt;Hi, here is my prototype and it has full implementation of binheap and client-round-robin based on binheap. It&apos;s &lt;em&gt;not&lt;/em&gt; a full tested patch.&lt;/p&gt;</comment>
                            <comment id="17458" author="liang" created="Fri, 8 Jul 2011 12:37:19 +0000"  >&lt;p&gt;I just tested the previous patch and found it has a bug, so I fixed it.&lt;/p&gt;</comment>
                            <comment id="17586" author="nangelinas" created="Mon, 11 Jul 2011 15:34:16 +0000"  >&lt;p&gt;Hi Liang,&lt;/p&gt;

&lt;p&gt;There&apos;s a minor typo in line 1242 in crr_req_compare(), the second req1 should be req2.&lt;/p&gt;</comment>
                            <comment id="17595" author="liang" created="Mon, 11 Jul 2011 21:01:37 +0000"  >&lt;p&gt;Nikitas, thanks! it will change the whole logic though it&apos;s just a typo! &lt;img class=&quot;emoticon&quot; src=&quot;https://jira.whamcloud.com/images/icons/emoticons/sad.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;

&lt;p&gt;I&apos;m doing some clean up now, after that will push it to a developing branch for your review(in one or two days), any comment and suggestion will be welcome. Also, I will review your DLD to see if I can merge ideas about framework into the prototype (I wouldn&apos;t be able to work on OBRR recently). &lt;br/&gt;
Would this be acceptable for you? I&apos;m fine if you think there is something essentially wrong and need to restart, then we can continue the discussion on openforum.&lt;/p&gt;

&lt;p&gt;Thanks again!&lt;/p&gt;</comment>
                            <comment id="17601" author="nangelinas" created="Tue, 12 Jul 2011 05:33:15 +0000"  >&lt;p&gt;Hi Liang,&lt;/p&gt;

&lt;p&gt;If you are willing to upload your code into a development repository, that sounds great. I have gone through some of the patch you posted, and I don&apos;t think there is anything essentially wrong with it; maybe some minor things that the patch could make use of, but as you said, it is meant to be a prototype. I will follow up with a more detailed discussion soon in the lustre-devel forum. I will get some time to factor in inspection comments for my dld, so should be able to upload a new version here soon. Thanks!&lt;/p&gt;</comment>
                            <comment id="17645" author="liang" created="Wed, 13 Jul 2011 14:31:06 +0000"  >&lt;p&gt;I&apos;ve uploaded the patch to git://git.whamcloud.com/fs/lustre-dev.git  branch name is liang/b_nrs&lt;br/&gt;
(did some cleanup and added real client round-robin)&lt;/p&gt;

&lt;p&gt;link to it:&lt;br/&gt;
&lt;a href=&quot;http://git.whamcloud.com/?p=fs%2Flustre-dev.git;a=shortlog;h=refs%2Fheads%2Fliang%2Fb_nrs&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://git.whamcloud.com/?p=fs%2Flustre-dev.git;a=shortlog;h=refs%2Fheads%2Fliang%2Fb_nrs&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="17667" author="nangelinas" created="Thu, 14 Jul 2011 06:23:58 +0000"  >&lt;p&gt;Slightly more up-to-date version of our dld; I&apos;ll follow this up with a proper version once I factor in all inspection comments.&lt;/p&gt;</comment>
                            <comment id="18090" author="liang" created="Fri, 22 Jul 2011 08:40:42 +0000"  >&lt;p&gt;I will update the developing branch to make it consistent with the slides.&lt;br/&gt;
Nikitas, could you please post your lastest DLD so I can review it and to see how we can merge our ideas?&lt;/p&gt;

&lt;p&gt;Thanks&lt;br/&gt;
Liang&lt;/p&gt;</comment>
                            <comment id="18104" author="nangelinas" created="Sat, 23 Jul 2011 09:48:56 +0000"  >&lt;p&gt;Liang, please use the latest patch file I uploaded; it is the most recent version of our DLD. I will upload a new version if we make any changes on that.&lt;/p&gt;

&lt;p&gt;Thanks&lt;/p&gt;</comment>
                            <comment id="18623" author="liang" created="Tue, 2 Aug 2011 03:34:34 +0000"  >&lt;p&gt;I&apos;m thinking that we probably can remove these whole bunch of things and put them all into NRS, we can make ptlrpc service to be cleaner and more readable by doing this, it&apos;s just a preliminary thinking and I just put a note at here so I wouldn&apos;t forget it in the future:&lt;/p&gt;

&lt;div class=&quot;code panel&quot; style=&quot;border-style: solid;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeHeader panelHeader&quot; style=&quot;border-bottom-width: 1px;border-bottom-style: solid;&quot;&gt;&lt;b&gt;include/lustre_net.h&lt;/b&gt;&lt;/div&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;        cfs_spinlock_t                  srv_rq_lock __cfs_cacheline_aligned;
        &lt;span class=&quot;code-comment&quot;&gt;/** # reqs in either of the queues below */&lt;/span&gt;
        &lt;span class=&quot;code-comment&quot;&gt;/** reqs waiting &lt;span class=&quot;code-keyword&quot;&gt;for&lt;/span&gt; service */&lt;/span&gt;
        cfs_list_t                      srv_request_queue;
        &lt;span class=&quot;code-comment&quot;&gt;/** high priority queue */&lt;/span&gt;
        cfs_list_t                      srv_request_hpq;
        &lt;span class=&quot;code-comment&quot;&gt;/** # incoming reqs */&lt;/span&gt;
        &lt;span class=&quot;code-object&quot;&gt;int&lt;/span&gt;                             srv_n_queued_reqs;
        &lt;span class=&quot;code-comment&quot;&gt;/** # reqs being served */&lt;/span&gt;
        &lt;span class=&quot;code-object&quot;&gt;int&lt;/span&gt;                             srv_n_active_reqs;
        &lt;span class=&quot;code-comment&quot;&gt;/** # HPreqs being served */&lt;/span&gt;
        &lt;span class=&quot;code-object&quot;&gt;int&lt;/span&gt;                             srv_n_active_hpreq;
        &lt;span class=&quot;code-comment&quot;&gt;/** # hp requests handled */&lt;/span&gt;
        &lt;span class=&quot;code-object&quot;&gt;int&lt;/span&gt;                             srv_hpreq_count;
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</comment>
                            <comment id="18624" author="liang" created="Tue, 2 Aug 2011 03:50:24 +0000"  >&lt;p&gt;Nikitas,&lt;br/&gt;
Do you think it&apos;s reasonable (my previous comment)?&lt;br/&gt;
I think if we can move those queues into NRS, then it doesn&apos;t make too much sense to leave those counters in the ptlrpc_service structure and protect NRS data by external lock (srv_rq_lock), we also can move some APIs into NRS and modularize &quot;scheduler&quot; logic in ptlrpc service.&lt;/p&gt;

&lt;p&gt;Liang&lt;/p&gt;</comment>
                            <comment id="18626" author="nangelinas" created="Tue, 2 Aug 2011 05:43:17 +0000"  >&lt;p&gt;Liang,&lt;/p&gt;

&lt;p&gt;That makes perfect sense to me. I suspect nrs heads may be the most appropriate place for replacements to those fields, although the spinlock may require a separate (common to hp and normal requests) structure, or perhaps to be left in ptlrpc_service? I suspect that some APIs could be moved into NRS; were there some you were thinking of in particular?&lt;/p&gt;

&lt;p&gt;Nikitas&lt;/p&gt;</comment>
                            <comment id="19164" author="nangelinas" created="Fri, 12 Aug 2011 08:28:02 +0000"  >&lt;p&gt;Hi Liang,&lt;/p&gt;

&lt;p&gt;I have gone through some of the updated code in the development repository. In general I am personally quite happy with what is there; I think the resource abstraction is more intuitive than the pair of target/object.&lt;/p&gt;

&lt;p&gt;I&apos;m attaching some small patches; obviously please review before applying. I will be away on holiday for the rest of the month, so unfortunately not able to do much more work on this at present, but will complete the review as soon as I come back, hope that is ok.&lt;/p&gt;

&lt;p&gt;Thanks,&lt;br/&gt;
Nikitas&lt;/p&gt;</comment>
                            <comment id="19223" author="liang" created="Mon, 15 Aug 2011 04:24:02 +0000"  >&lt;p&gt;Nikitas, thanks, I will review &amp;amp; push these patc hes into the developing branch, btw, Robert told me you should be able to push code to the developing branch now.&lt;/p&gt;

&lt;p&gt;As I mentioned previously, the next thing I&apos;m going to work on is replacing active RPC counters from ptlrpc/service.c with counters in RPC, which will made code cleaner.&lt;/p&gt;

&lt;p&gt;Liang &lt;/p&gt;</comment>
                            <comment id="19712" author="liang" created="Mon, 29 Aug 2011 11:12:30 +0000"  >&lt;p&gt;Nikitas, I&apos;ve pushed in most of your patches except those LASSERT_SPIN_LOCKED():&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;I think locking logic here is simple enough so we don&apos;t really need these assertions&lt;/li&gt;
	&lt;li&gt;service::srv_rq_lock is a high contention lock, overhead of LASSERT_SPIN_LOCKED() is not very cheap for this kind of lock.&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Thanks&lt;/p&gt;</comment>
                            <comment id="22394" author="nangelinas" created="Thu, 3 Nov 2011 10:30:46 +0000"  >&lt;p&gt;Hi Liang,&lt;/p&gt;


&lt;p&gt;I&apos;ve started working on an object-based policy; the plan is for it to act as a high-level elevator; I know Eric has said he is sceptical about this being the best approach for an object-based policy, and whilst of course I value his input, I think everyone is also in agreement that getting some performance data from such a policy (or any other policy) would be a good thing.&lt;/p&gt;

&lt;p&gt;I suspect the OSD-restructuring work will mean that at some point this policy will need some porting work (e.g. at least to transfer from objid to FID) but at the moment I am doing this against your b_nrs branch.&lt;/p&gt;

&lt;p&gt;Is there a branch or future release that is being targeted for landing the NRS code? In one of your last emails you mentioned there were some thoughts on landing the framework (I suspect with fifo policy only?) at around 2.2 or so; is this still the case? In general, how do you see landing of NRS happening? Will you make use of the current NRS development branch, or will you treat this as only a prototype in order to get performance data, and then rework the branch before considering landing? (sorry for all the questions)&lt;/p&gt;

&lt;p&gt;There are some things I wanted to have patched on the current branch, some of these are:&lt;/p&gt;
&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;improve statistics for policies (I noticed there is a FIXME on the current implementation being just temporary)&lt;/li&gt;
	&lt;li&gt;improve lprocfs interactions&lt;/li&gt;
	&lt;li&gt;optionally, to allow to not register all policies for every service, by having each service denote what policies it wants to support at service initialization time&lt;/li&gt;
	&lt;li&gt;have a method for selecting a startup policy for a given service (i.e. at present a newly inserted server would start with a fifo policy and have to rely on lprocfs interaction to change this, maybe doing this automatically at startup would be better-suited to a production version)&lt;/li&gt;
	&lt;li&gt;some code cleanups&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;I&apos;m more than happy to generate some patches for these features if you also agree they would be useful to have.&lt;/p&gt;


&lt;p&gt;Cheers,&lt;br/&gt;
Nikitas   &lt;/p&gt;</comment>
                            <comment id="22523" author="liang" created="Fri, 4 Nov 2011 12:07:47 +0000"  >&lt;p&gt;Nikitas, I just merged master into b_nrs and I will continue to use the developing branch for future work, we are still considering to land framework into 2.2 but it really depends on our review/testing resource, I will let you know if there is any update on this.&lt;/p&gt;

&lt;p&gt;I think your plan is good, thanks for let me know. I&apos;d like to know more details but I have to prepare for my trip tomorrow, probably I will ask you some detail questions about these plans when I get more time, &lt;img class=&quot;emoticon&quot; src=&quot;https://jira.whamcloud.com/images/icons/emoticons/smile.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;

&lt;p&gt;Liang&lt;/p&gt;</comment>
                            <comment id="30087" author="nangelinas" created="Thu, 1 Mar 2012 05:57:38 +0000"  >&lt;p&gt;I ran acceptance-small testing at some point against a version of the NRS code that was rebased against a recent commit in the lustre-rel repository; some failures can be seen in the first output file attached, but they are all either known failures which are being worked on (to the point that resources permit) by other people within Xyratex and will be submitted when resolved, or have passed in the second round of tests (second attached output file, perhaps they had something to do with the testing environment used).&lt;/p&gt;</comment>
                            <comment id="30088" author="nangelinas" created="Thu, 1 Mar 2012 06:19:18 +0000"  >&lt;p&gt;I have hit a bug while using mdtest to carry out a performance regression test of vanilla code vs NRS with mainly FIFO policy, and also CRR/CRR2; I can only reproduce this using the CRR policy on the MDS:&lt;/p&gt;

&lt;p&gt;LustreError: 1607:0:(ptlrpc_nrs.c:222:nrs_policy_put_locked()) ASSERTION(policy-&amp;gt;pol_ref &amp;gt; 0) failed&lt;br/&gt;
LustreError: 1607:0:(ptlrpc_nrs.c:222:nrs_policy_put_locked()) LBUG&lt;br/&gt;
Kernel panic - not syncing: LBUG &lt;/p&gt;

&lt;p&gt;I also hit another bug that may be related, but only once after reproducing the previous one many times, and can&apos;t reproduce this one.&lt;/p&gt;

&lt;p&gt;LustreError: 22518:0(ptlrpc_nrs.c:366:nrs_request_poll()) ASSERTION(nrs_request_policy(nrq) == policy) failed&lt;br/&gt;
LustreError: 22518:0(ptlrpc_nrs.c:366:nrs_request_poll()) LBUG&lt;br/&gt;
Kernel panic - not syncing: LBUG&lt;/p&gt;

&lt;p&gt;I&apos;ll see if I can fix these but I&apos;m more focused on getting some larger-scale testing under way and finishing an ORR DLD at the moment.&lt;/p&gt;</comment>
                            <comment id="30141" author="nangelinas" created="Thu, 1 Mar 2012 13:21:08 +0000"  >&lt;p&gt;Hi Liang,&lt;/p&gt;

&lt;p&gt;We are in the process of running some NRS performance tests in-house, and maybe more importantly, putting together a test plan that we can execute in one of our beta testing sites; they have a large number of clients available, and we could potentially make use of a good number of these; I think we will have a better chance of making use of more of their resources if we can come up with some solid test cases that would demonstrate the usefulness of different NRS policies. Our current thinking is along the following lines:&lt;/p&gt;

&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;CRR/CRR2 on the MDS: demonstrate client fairness, by showing that aggressive MD users can be prevented from slowing down the filesystem for other users. For this, we can saturate the MDS with a few clients doing e.g. unlink operations, and time &apos;ls -l&apos; from another client on a separate large directory; if successful, NRS with CRR/CRR2 should show an improvement over vanilla code.&lt;/li&gt;
&lt;/ul&gt;


&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;CRR/CRR2 on the OSS: some clients performing high rate I/O, to the point that the performance seen at another client is decreased e.g. a streaming video application&apos;s frame rate drops below acceptable levels; if successful, CRR/CRR2 should at least help with the standard deviation of the frame rate value, and maybe also its mean value.&lt;/li&gt;
&lt;/ul&gt;


&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;TBRR (not developed yet, but should be a simpler variation of ORR for which I am doing a DLD) on the OSS: TBRR should be able to help in cases where one client is performing I/O to one OST, and many clients are performing I/O to the rest of the OSTs handled by an OSS, to the point that the first OST remains idle for some periods of time during the test run.&lt;/li&gt;
&lt;/ul&gt;


&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;ORR (only applicable on OSS): a notable use case may be backwards read operations, although perhaps random and hopefully sequential reads from many clients may see an improvement with the ORR policy.&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;If yourself or anybody else can think of any notable use cases that would be useful in demonstrating the effectiveness of the various policies, please let us know so we can include these in the test plan. I have not developed the NRS framework any further, so testing out multiple (layered) policies that you had suggested is unfortunately not possible with current code, although adding this should not be too time consuming and is probably worth doing if there is a good use case for it; TBRR on the OSS with ORR in each OST that you had suggested sounds good, although maybe it can benefit from the SMP scaling code landing first, as you had mentioned.&lt;/p&gt;

&lt;p&gt;Cheers,&lt;br/&gt;
Nikitas&lt;/p&gt;</comment>
                            <comment id="30373" author="liang" created="Fri, 2 Mar 2012 23:27:48 +0000"  >&lt;p&gt;Ni Nikitas, did you make any progress on those LBUGs? I didn&apos;t test this for a while, could be bug after merging with master? &lt;br/&gt;
I think you only need to run one CRR/CRR2, because CRR is round-robin over each logic client (OSC or MDC), CRR2 is over NID, so I think they will get same result because most likely you will have only one MDC instance on your clients.&lt;/p&gt;</comment>
                            <comment id="30807" author="nangelinas" created="Mon, 12 Mar 2012 07:52:19 +0000"  >&lt;p&gt;Hi Liang, I have not made any progress on the bugs, as i am focused on getting test results and working on ORR; i hope to find some time to hunt them down, as ideally i wouldn&apos;t want testing to hit upon them; if i remember correctly, i could also replicate the first assertion with the latest liang/b_nrs branch (i can&apos;t replicate the second assertion with any branch), but i have not tried to replicate it with older snapshots, so i guess it may have been introduced by a merge with master as you mention, possibly the latest one (btw, i think lustre-dev has not synced with rel for a while).&lt;/p&gt;

&lt;p&gt;I am attaching a patch that adds ORR with logical offset ordering, i will work on the physical offset ordering using fiemap calls hopefully within the next few days; if you can have a look at it that would be great. I have only ran a smoke test on the patch on a virtual machine, but will test it on a real setup today or tomorrow if nothing comes up; there is a minor issue of slab object deallocation for backend-fs object data that i haven&apos;t taken care of (currently they will just stay allocated until the cache is destroyed, easy way to do it is to stop the policy temporarily and then re-start it for another test run); i may add an LRU or something similar for this shortly.&lt;/p&gt;</comment>
                            <comment id="33446" author="nangelinas" created="Wed, 4 Apr 2012 09:03:38 +0000"  >&lt;p&gt;I am attaching v2 of the ORR patch which includes support for request ordering via their physical offsets on-disk, obtained via fiemap calls, and will also reorder write RPCs based on their logical offsets (I may add an lprocfs tunable to turn support for writes on and off). I&apos;ll try and find a case where this policy helps performance, although knowing the physical offsets, it may make sense to tweak the code slightly to produce a Target-based (OST-based) RR version, since it may be better to be able to mix read requests for different objects, based only on their physical offsets; i.e. requests belonging to the same objects may still be fairly distant.&lt;/p&gt;</comment>
                            <comment id="34730" author="nangelinas" created="Fri, 13 Apr 2012 11:39:08 +0000"  >&lt;p&gt;Hi, I am attaching a patch that also adds a TRR (Target-Based RR, i.e. RR over OSTs) policy that also performs logical or physical offset request ordering. It has been developed as an after-thought on top of the ORR policy, so plain TRR (without offset-based request ordering) will be able to be simplified, when used on a multi-policy NRS environment, e.g. combined TRR on the OSS + and ORR on each OST that Liang had proposed. The patch also adds tunable read/write support, and optimized physical offset calculations for the one extent per RPC case that is currently used. I am seeing positive results in some cases from these policies, and also CRR2, but will expand on this at LUG in about a week&apos;s time. &lt;/p&gt;</comment>
                            <comment id="35905" author="adilger" created="Mon, 30 Apr 2012 17:08:08 +0000"  >&lt;p&gt;Hi Nikitas,&lt;br/&gt;
rather than attaching patches here to the Jira ticket, it would be better to submit them to Gerrit, so that it follows the normal patch inspection and testing process, and it makes it much easier to review and track changes.  If you don&apos;t want the patches considered for upstream submission yet, you can put a comment to that effect in the Git commit description.&lt;/p&gt;

&lt;p&gt;I&apos;d also be happy if you could attach a copy of your LUG presentation here, so that the information about NRS is available in a more central location.  This will also include the performance metrics, which is important to see when reviewing a major feature patch for landing.&lt;/p&gt;</comment>
                            <comment id="35930" author="nangelinas" created="Tue, 1 May 2012 18:46:40 +0000"  >&lt;p&gt;Hi Andreas,&lt;/p&gt;

&lt;p&gt;Ok, I&apos;ll do this soon; as you have guessed correctly, I haven&apos;t been uploading the patches to Gerrit as I was not clear on the landing plan for NRS. Since the framework was originally considered (and is in some respects imo) a prototype, we&apos;ll have to decide with Liang what updates we would have to make in order to submit the code for landing. But as you point out, it may be best for us to also submit the current code that we have to Gerrit. I&apos;ll post my presentation here and details on the testing, although I&apos;m more looking forward to also test the policies we currently have at scale; I&apos;ll check the availability of our collaborator site that performed the previous tests, to schedule another round of testing. &lt;/p&gt;

&lt;p&gt;Liang, I&apos;ll come up with some suggestions on enhancing the framework soon; I think two things that are definitely required are the layered policies that you had mentioned (i.e. multiple policies operating in the same time), and an lprocfs rework.&lt;/p&gt;

&lt;p&gt;A much wanted feature that users seem to want from NRS is QoS. I&apos;m currently looking at &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-694&quot; title=&quot;Job Stats&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-694&quot;&gt;&lt;del&gt;LU-694&lt;/del&gt;&lt;/a&gt; &quot;Job Stats&quot; since it seems like it will provide us with the information necessary to do at least job-based QoS, although the intent of that patch is to export the gathered statistics via lprocfs at the servers, but it does not include an API for internal users, i.e. Lustre subsystems; of course this isn&apos;t too much of a problem, it just means that NRS will need to implement that functionality instead. Btw, maybe it would be good to have an open discussion in order to gather requirements for QoS first, in order to try and address the needs of more users; I&apos;ll do that soon.&lt;/p&gt;

&lt;p&gt;Cheers,&lt;br/&gt;
Nikitas&lt;/p&gt;</comment>
                            <comment id="38402" author="nangelinas" created="Wed, 9 May 2012 11:35:19 +0000"  >&lt;p&gt;I am attaching a copy of the NRS LUG 2012 presentation and a tarball containing output from the test runs contained in the presentation.&lt;/p&gt;

&lt;p&gt;The presentation depicts results from the following tests:&lt;/p&gt;

&lt;p&gt;1. Performance regression test using the NRS FIFO policy vs a vanilla Lustre deployment; this includes IOR FPP and SSF testing, and mdtest file and directory operations testing, with 128 and 64 physical clients (and also 12 clients for mdtest); all tests were performed using a 1 process per client configuration. One thing to note is that the unexpectedly low mdtest performance in the create and unlink operations with 128 and 64 clients seems to be due to suboptimal RAID configurations on the systems used for the tests; hence it may be useful to repeat the mdtest runs on a sane configuration. These tests showed no noticeable performance regressions between vanilla code and NRS with the FIFO Policy. &lt;/p&gt;

&lt;p&gt;2. A range of tests aiming to explore the effect that the CRR-N policy has on throughput. In these tests, groups of dd-processes are used to generate read and write loads between the Lustre filesystem and /dev/zero and /dev/null respectively. 10 filesystem clients take part in this test. These are either used to run 10 dd processes, or 9 of them are used to run 11 dd processes, while the remaining one client is used to run only one dd process; the read and write cases are handled separately, for both these two &apos;#clients/#dd processes&apos; configurations. In each test run, the throughput from each client and overall standard deviation is measured, in order to compare the behaviour of vanilla code vs NRS with the CRR-N policy. One thing to note is that these tests were not performed using widely striped files, so a repeat may be useful. These tests showed an evening-out effect and large standard deviation reduction of the write performance between clients when using the CRR-N policy, but these results were not witnessed on the read performance tests; this may be due to the synchronous nature of reads, although we probably need to examine the behaviour of CRR-N further before we can make a definite comment.&lt;/p&gt;

&lt;p&gt;3. A range of tests, mostly using IOR, but also IOzone, for determining the effectiveness of the ORR and TRR policies in increasing read throughput. These tests have been performed on a small scale, using only 14 physical clients, and with a reduced number of ost_io threads (128 on each of two OSS nodes), since read operations generated very few RPCs, and we wanted to at least emulate a saturated server scenario, since the ORR and TRR policies were expected to show a benefit in cases where a number of the requests are &apos;pending&apos;, such that performance is improved by using these improved sorting algorithms (although this may not be strictly necessary). These test results showed that the TRR policy when used with physical offset ordering, seems to be the most promising configuration, since it provided a noticeable improvement in performance for IOR FPP tests using 1 process per client, and also for the IOzone test (again, 1 process per client); the ORR policy also provided an improvement in the performance of IOR FPP when used in an 8 processes per client configuration. However the worrying thing is that in all other cases, the test results showed a drop in performance when using these policies. I think further, and also larger scale testing of these policies is required at this point; this may give us a better indication of how widely applicable these policies could be, although for definite results it seems like it would be useful to obtain feedback from using them on real-world job runs. Their usefulness may even vary depending on the particular job/application. I&apos;ll see if we can run some tests using real jobs on our beta-testing collaborator site with these policies.&lt;/p&gt;

&lt;p&gt;Apart from test results, the presentation also includes some annotated debug prints from the OSS nodes, as proof that the aforementioned policies actually implement the sorting behaviour that they claim to.&lt;/p&gt;

&lt;p&gt;All tests have been performed using a single Xyratex CS3000 SSU; this includes 2 OSS nodes in HA mode (quad core Intel Xeon C5518 @ 1.73 GHz, 16GB DDR3, HT enabled), and 1 MDS (dual hex core Intel Xeon X5670 @ 2.93 GHz, 32GB DDR3, HT enabled), with servers and clients connected via an Infiniband QDR network. &lt;/p&gt;</comment>
                            <comment id="39873" author="nangelinas" created="Sun, 3 Jun 2012 14:32:10 +0000"  >&lt;p&gt;patch for master at &lt;a href=&quot;http://review.whamcloud.com/3015&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/3015&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I made some changes mostly to the framework and added the patch to Gerrit. It still needs a few things, so I will be updating the patch in the following days, but it is in a position for reviews and builds to start. I was hoping that this feature could be considered for landing in 2.3, although the feature freeze date is meant to be quite close.&lt;/p&gt;

&lt;p&gt;Liang and Eric, this patch also adds your work on NRS and libcfs_heap; please let me know if you want to submit these separately.&lt;/p&gt;</comment>
                            <comment id="40170" author="liang" created="Wed, 6 Jun 2012 22:37:00 +0000"  >&lt;p&gt;Hi Nikitas,thanks for posting the patch for review, I definitely will review your patch, the problem is 2.3 code freeze is not far away and we still have a bunch of things pending on landing list, and there are some changes definitely conflict with this patch, so it&apos;s very likely that we can&apos;t land it to 2.3, but again, it&apos;s very helpful to submit this patch on Gerrit, because it will be much easier to discuss based on this.&lt;/p&gt;

&lt;p&gt;I will let you know my feedback soon.&lt;/p&gt;

&lt;p&gt;Thanks&lt;/p&gt;</comment>
                            <comment id="40180" author="nangelinas" created="Thu, 7 Jun 2012 06:25:38 +0000"  >&lt;p&gt;Hi Liang, please take your time and plan landings and reviews as you see best, no issue with me. I guess you may be referring to project Apus, since I guess the ptlrpc changes there will cause a conflict; I&apos;m sure that&apos;s a good thing as i think the locking in ptlrpc could do with a rework with the NRS patch applied anyway. Thanks for letting me know of your status with 2.3.&lt;/p&gt;</comment>
                            <comment id="46787" author="adilger" created="Fri, 19 Oct 2012 13:12:13 +0000"  >&lt;p&gt;Nikitas, any status on your refactoring of the NRS patch into smaller components for inspection and landing?&lt;/p&gt;</comment>
                            <comment id="46789" author="nangelinas" created="Fri, 19 Oct 2012 13:45:06 +0000"  >&lt;p&gt;Sorry, i was away for a few days; I&apos;ve been adding the flexible policy registration ability, and will upload most of the code broken into smaller patches around the start of next week.&lt;/p&gt;</comment>
                            <comment id="47081" author="nangelinas" created="Tue, 30 Oct 2012 10:44:22 +0000"  >&lt;p&gt;Abandoning previous Gerrit change and breaking down patch into smaller patches, each with its own change; first change is at &lt;a href=&quot;http://review.whamcloud.com/#change,4411&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/#change,4411&lt;/a&gt; &lt;/p&gt;</comment>
                            <comment id="47092" author="nangelinas" created="Tue, 30 Oct 2012 12:31:37 +0000"  >&lt;p&gt;libcfs heap Gerrit for master is at &lt;a href=&quot;http://review.whamcloud.com/#change,4412&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/#change,4412&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="48090" author="nrutman" created="Tue, 20 Nov 2012 13:18:58 +0000"  >&lt;p&gt;Xyratex &lt;a href=&quot;http://jira-nss.xy01.xyratex.com:8080/browse/MRP-73&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;MRP-73&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="48826" author="nangelinas" created="Wed, 5 Dec 2012 16:34:27 +0000"  >&lt;p&gt;attaching LAD &apos;12 presentation slides&lt;/p&gt;</comment>
                            <comment id="49784" author="nangelinas" created="Sat, 29 Dec 2012 12:30:00 +0000"  >&lt;p&gt;additional Gerrit changes for master are, &lt;a href=&quot;http://review.whamcloud.com/#change,4937&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/#change,4937&lt;/a&gt; for the CRR-N policy and &lt;a href=&quot;http://review.whamcloud.com/#change,4938&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/#change,4938&lt;/a&gt; for the ORR and TRR policies&lt;/p&gt;</comment>
                            <comment id="51002" author="nangelinas" created="Tue, 22 Jan 2013 20:25:46 +0000"  >&lt;p&gt;I am attaching a first take on the NRS test plan, marked v1.0. I am uploading it in both a pdf format for easier reading and doc in case someone wants to make any changes. Please let me know of anything.&lt;/p&gt;</comment>
                            <comment id="51035" author="nangelinas" created="Wed, 23 Jan 2013 12:28:32 +0000"  >&lt;p&gt;I had put together a Conceptual Design document for NRS, but that really needs to be updated in order to be of much use. I will try to do this as soon as code update tasks are finished (so hoping to have it ready by the end of the weekend at the latest), and will then attach the document to this ticket. &lt;/p&gt;</comment>
                            <comment id="51231" author="nangelinas" created="Fri, 25 Jan 2013 13:27:33 +0000"  >&lt;p&gt;I am uploading an updated version of the test plan document, to account for changes in the lprocfs interface that were included in a refresh of the patches that took place today; I have deleted the old version to avoid any confusion.&lt;/p&gt;</comment>
                            <comment id="51342" author="nangelinas" created="Mon, 28 Jan 2013 12:35:07 +0000"  >&lt;p&gt;As requested by Isaac, I am attaching a Conceptual Design document, that reviewers of the patches may find useful. It is rather short and informal, but should include enough information to assist in getting familiar with the design concepts used. I will try to update this if people think it is too short, although the plan is to eventually embed the information into comment blocks in the code.&lt;/p&gt;</comment>
                            <comment id="51386" author="nangelinas" created="Tue, 29 Jan 2013 07:41:19 +0000"  >&lt;p&gt;I am attaching a new version of the test plan to reflect a minor lprocfs change (both regular and hp request handling is now enabled by default); I will remove the older version of the test plan to avoid confusion, please let me know if someone needs that for some reason.&lt;/p&gt;</comment>
                            <comment id="51610" author="adilger" created="Fri, 1 Feb 2013 05:11:18 +0000"  >&lt;p&gt;Nikitas, just to clarify - can you please submit a follow-up patch to address the issues with Isaac&apos;s comments on the &lt;a href=&quot;http://review.whamcloud.com/4411&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/4411&lt;/a&gt; patch.&lt;/p&gt;</comment>
                            <comment id="51611" author="nangelinas" created="Fri, 1 Feb 2013 05:32:53 +0000"  >&lt;p&gt;Yes Andreas, I will submit that patch asap.&lt;/p&gt;</comment>
                            <comment id="51639" author="adilger" created="Fri, 1 Feb 2013 14:09:24 +0000"  >&lt;p&gt;Also, I now see that there is no test that is enabling NRS policies to verify that they currently work, and continue to work in the future.  This is something that the patch inspectors should have caught. &lt;/p&gt;

&lt;p&gt;Please submit a sanityn.sh test that enables each of the available policies in turn, and then runs some kind of test load on the multiple mount points (e.g. iozone and racer and fsx for 60s or 600s depending on SLOW=no or SLOW=yes) so that there will be sufficient loads to give NRS a workout. &lt;/p&gt;</comment>
                            <comment id="53740" author="green" created="Mon, 11 Mar 2013 20:20:40 +0000"  >&lt;p&gt;Just to recapture discussions that are happening in the &lt;a href=&quot;http://review.whamcloud.com/#change,5274&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/#change,5274&lt;/a&gt; patch:&lt;/p&gt;

&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;new api needs to be introduced to fetch a next request from a queue if there&apos;s any ready for being served according to a policy function. This will also remove the request from the queue right away and should be suitable for use in ptlrpc_request_Get or even as a drop-in replacement of it. ptlrpc_request_get should not require any locking when called.&lt;br/&gt;
(the current poll/remove API still remains for use in other place, currently that&apos;s health_check function where we just assess time next ready request spent waiting in the queue, but we don&apos;t want the request removed (ALSO need to ensure request has some sort of a reference to avoid a race where we fetch a request and then it&apos;s processed and freed before we have a chance to look inside, when using such an API).&lt;/li&gt;
&lt;/ul&gt;


&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;the HP-request logic needs to be totally removed from ptlrpc request API (with the exception of still providing a function to determine if a request is HP or not), all this logic must be implemented inside of the policy functions as being best positioned to determine request order. The multi-queue fetch/get functions in nrs should be gone as a result and the only fetching calls remaining would be &quot;get next request so I can serve it&quot; and &quot;get pointer to next request for inspection, don&apos;t remove from queue&quot;. All hp tracking including how many of what sort of requests are already running probably should be inside of a policy function too, though we might need a way for a policy function to determine number of idle thread/running normal requests or some such.&lt;/li&gt;
&lt;/ul&gt;
</comment>
                            <comment id="57824" author="alexxy" created="Tue, 7 May 2013 15:20:43 +0000"  >&lt;p&gt;After merging &lt;a href=&quot;http://review.whamcloud.com/4938&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/4938&lt;/a&gt; server want build with new compilers (tested gcc-4.7 and gcc-4.8)&lt;/p&gt;

&lt;p&gt;/var/tmp/portage/sys-cluster/lustre-9999/work/lustre-9999/lustre/ptlrpc/nrs_orr.c: In function &#8216;nrs_orr_ctl&#8217;:                                                &lt;br/&gt;
/var/tmp/portage/sys-cluster/lustre-9999/work/lustre-9999/lustre/ptlrpc/nrs_orr.c:773:2: error: case value &#8216;33&#8217; not in enumerated type &#8216;enum ptlrpc_nrs_ctl&#8217; &lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;-Werror=switch&amp;#93;&lt;/span&gt;                                                                                                                                             &lt;br/&gt;
/var/tmp/portage/sys-cluster/lustre-9999/work/lustre-9999/lustre/ptlrpc/nrs_orr.c:781:2: error: case value &#8216;34&#8217; not in enumerated type &#8216;enum ptlrpc_nrs_ctl&#8217; &lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;-Werror=switch&amp;#93;&lt;/span&gt;                                                                                                                                             &lt;br/&gt;
/var/tmp/portage/sys-cluster/lustre-9999/work/lustre-9999/lustre/ptlrpc/nrs_orr.c:788:2: error: case value &#8216;35&#8217; not in enumerated type &#8216;enum ptlrpc_nrs_ctl&#8217; &lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;-Werror=switch&amp;#93;&lt;/span&gt;                                                                                                                                             &lt;br/&gt;
/var/tmp/portage/sys-cluster/lustre-9999/work/lustre-9999/lustre/ptlrpc/nrs_orr.c:795:2: error: case value &#8216;36&#8217; not in enumerated type &#8216;enum ptlrpc_nrs_ctl&#8217; &lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;-Werror=switch&amp;#93;&lt;/span&gt;                                                                                                                                             &lt;br/&gt;
/var/tmp/portage/sys-cluster/lustre-9999/work/lustre-9999/lustre/ptlrpc/nrs_orr.c:802:2: error: case value &#8216;37&#8217; not in enumerated type &#8216;enum ptlrpc_nrs_ctl&#8217; &lt;br/&gt;
  LD      /var/tmp/portage/sys-cluster/lustre-9999/work/lustre-9999/lustre/fid/built-in.o&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;-Werror=switch&amp;#93;&lt;/span&gt;&lt;/p&gt;</comment>
                            <comment id="57832" author="nangelinas" created="Tue, 7 May 2013 16:41:01 +0000"  >&lt;p&gt;It seems like the compilers are catching a type check on the enum; I can upload a one/few-liner patch to fix this; it seems like the -Werror=switch is catching errors that might be meant to be caught by -Wswitch-enum. Or I might be reading a documentation for a previous version or something similar, please let me double-check.&lt;/p&gt;</comment>
                            <comment id="57843" author="alexxy" created="Tue, 7 May 2013 17:51:28 +0000"  >&lt;p&gt;Seems &lt;a href=&quot;http://review.whamcloud.com/6141&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/6141&lt;/a&gt; should fix this error from &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-3179&quot; title=&quot;gcc 4.7.2 produces the errors since LU-2684 landing&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-3179&quot;&gt;&lt;del&gt;LU-3179&lt;/del&gt;&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="57844" author="nangelinas" created="Tue, 7 May 2013 18:04:46 +0000"  >&lt;p&gt;Great, thanks for finding that.&lt;/p&gt;</comment>
                            <comment id="66467" author="liang" created="Thu, 12 Sep 2013 07:55:55 +0000"  >&lt;p&gt;hmm, sorry I was trying to close it because I didn&apos;t realise there are sub tickets for this...&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10120">
                    <name>Blocker</name>
                                                                <inwardlinks description="is blocked by">
                                        <issuelink>
            <issuekey id="18606">LU-3239</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10011">
                    <name>Related</name>
                                            <outwardlinks description="is related to ">
                                        <issuelink>
            <issuekey id="17829">LU-2947</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="17811">LU-2936</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="17988">LU-2981</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="18605">LU-3238</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="22755">LU-4493</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="18688">LU-3265</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="28846">LU-6283</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="28988">LU-6336</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="15917">LUDOC-79</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="12130">LU-765</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <attachments>
                            <attachment id="10346" name="0001-Fix-for-minor-typo-in-nrs_crr_res_get.patch" size="988" author="nangelinas" created="Fri, 12 Aug 2011 08:28:02 +0000"/>
                            <attachment id="10347" name="0002-Add-assertions-where-svc-srv_rq_lock-is-meant-to-be-.patch" size="4547" author="nangelinas" created="Fri, 12 Aug 2011 08:28:02 +0000"/>
                            <attachment id="10348" name="0003-Rework-movement-of-policies-in-nrs_policy_queued-lis.patch" size="2170" author="nangelinas" created="Fri, 12 Aug 2011 08:28:02 +0000"/>
                            <attachment id="10349" name="0004-Make-some-functions-static.patch" size="3762" author="nangelinas" created="Fri, 12 Aug 2011 08:28:02 +0000"/>
                            <attachment id="10297" name="HLD_of_Lustre_NRS.pdf" size="276401" author="nrutman" created="Tue, 5 Jul 2011 14:39:33 +0000"/>
                            <attachment id="11323" name="LUG_2012_NRS_tests_output.tar.bz2" size="33045" author="nangelinas" created="Wed, 9 May 2012 11:35:19 +0000"/>
                            <attachment id="12210" name="NRS Conceptual Design__v1.0.doc" size="102912" author="nangelinas" created="Mon, 28 Jan 2013 12:35:07 +0000"/>
                            <attachment id="12209" name="NRS Conceptual Design__v1.0.pdf" size="141915" author="nangelinas" created="Mon, 28 Jan 2013 12:35:07 +0000"/>
                            <attachment id="12214" name="NRS Test Plan for Lustre 2.4__v1.2.doc" size="112128" author="nangelinas" created="Tue, 29 Jan 2013 07:41:19 +0000"/>
                            <attachment id="12213" name="NRS Test Plan for Lustre 2.4__v1.2.pdf" size="186103" author="nangelinas" created="Tue, 29 Jan 2013 07:41:19 +0000"/>
                            <attachment id="12078" name="NRS_Bandwidth_Policies_LAD_2012.pdf" size="173687" author="nangelinas" created="Wed, 5 Dec 2012 16:34:27 +0000"/>
                            <attachment id="12079" name="NRS_LAD_12.pdf" size="597033" author="nangelinas" created="Wed, 5 Dec 2012 16:34:27 +0000"/>
                            <attachment id="11322" name="NRS_Scale_Testing_Results_LUG_2012_Nikitas_Angelinas_Xyratex.pdf" size="1481233" author="nangelinas" created="Wed, 9 May 2012 11:35:19 +0000"/>
                            <attachment id="10911" name="acc_sm_summary" size="19082" author="nangelinas" created="Thu, 1 Mar 2012 05:57:38 +0000"/>
                            <attachment id="10912" name="acc_sm_summary_2" size="824" author="nangelinas" created="Thu, 1 Mar 2012 05:57:38 +0000"/>
                            <attachment id="10298" name="nrs.patch" size="55163" author="liang" created="Fri, 8 Jul 2011 05:46:55 +0000"/>
                            <attachment id="10296" name="nrs_dld_insp_6.patch" size="74669" author="nrutman" created="Tue, 5 Jul 2011 14:37:01 +0000"/>
                            <attachment id="10303" name="nrs_generic_framework_dld_7.patch" size="75565" author="nangelinas" created="Thu, 14 Jul 2011 06:23:58 +0000"/>
                            <attachment id="10300" name="nrs_liang_v2.patch" size="55173" author="liang" created="Fri, 8 Jul 2011 12:37:19 +0000"/>
                            <attachment id="11054" name="nrs_orr_log_phys_offs_v1.patch" size="48326" author="nangelinas" created="Wed, 4 Apr 2012 09:03:38 +0000"/>
                            <attachment id="11150" name="nrs_orr_trr_v2.patch" size="58259" author="nangelinas" created="Fri, 13 Apr 2012 11:39:08 +0000"/>
                            <attachment id="10944" name="orr_log_offs_v1.patch" size="47096" author="nangelinas" created="Mon, 12 Mar 2012 07:52:19 +0000"/>
                    </attachments>
                <subtasks>
                            <subtask id="15866">LU-1879</subtask>
                            <subtask id="17265">LU-2667</subtask>
                            <subtask id="18689">LU-3266</subtask>
                    </subtasks>
                <customfields>
                                                                                                                                    <customfield id="customfield_10020" key="com.atlassian.jira.plugin.system.customfieldtypes:float">
                        <customfieldname>Bugzilla ID</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>13634.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|hzvnen:</customfieldvalue>

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