<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 02:54:06 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-12609] Limit maximum number of journal credits for an RPC</title>
                <link>https://jira.whamcloud.com/browse/LU-12609</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&lt;p&gt;It is important to limit the total number of fragments allowed in an RPC to avoid issues with the on disk file system which can occur with too many fragments.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;
&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt;May 27 03:21:02 oss2c104 kernel: Lustre: 5711:0:(osd_handler.c:1155:osd_trans_dump_creds())   create: 0/0/0, destroy: 0/0/0
May 27 03:21:02 oss2c104 kernel: Lustre: 5711:0:(osd_handler.c:1155:osd_trans_dump_creds()) Skipped 4 previous similar messages
May 27 03:21:02 oss2c104 kernel: Lustre: 5711:0:(osd_handler.c:1162:osd_trans_dump_creds())   attr_set: 1/1/0, xattr_set: 1/1/0
May 27 03:21:02 oss2c104 kernel: Lustre: 5711:0:(osd_handler.c:1162:osd_trans_dump_creds()) Skipped 4 previous similar messages
May 27 03:21:02 oss2c104 kernel: Lustre: 5711:0:(osd_handler.c:1172:osd_trans_dump_creds())   write: 2/17434/0, punch: 0/0/0, quota 5/5/0
May 27 03:21:02 oss2c104 kernel: Lustre: 5711:0:(osd_handler.c:1172:osd_trans_dump_creds()) Skipped 4 previous similar messages
May 27 03:21:02 oss2c104 kernel: Lustre: 5711:0:(osd_handler.c:1179:osd_trans_dump_creds())   insert: 0/0/0, delete: 0/0/0
May 27 03:21:02 oss2c104 kernel: Lustre: 5711:0:(osd_handler.c:1179:osd_trans_dump_creds()) Skipped 4 previous similar messages
May 27 03:21:02 oss2c104 kernel: Lustre: 5711:0:(osd_handler.c:1186:osd_trans_dump_creds())   ref_add: 0/0/0, ref_del: 0/0/0
May 27 03:21:02 oss2c104 kernel: Lustre: 5711:0:(osd_handler.c:1186:osd_trans_dump_creds()) Skipped 4 previous similar messages
May 27 03:21:02 oss2c104 kernel: LustreError: 5711:0:(osd_internal.h:1117:osd_trans_exec_op()) share1-OST004c-osd: op = 7, rb = 7
May 27 03:21:02 oss2c104 kernel: LustreError: 5711:0:(osd_internal.h:1117:osd_trans_exec_op()) Skipped 3 previous similar messages
May 27 03:21:02 oss2c104 kernel: Pid: 5856, comm: ll_ost_io01_044
May 27 03:21:02 oss2c104 kernel: \x0aCall Trace:
May 27 03:21:02 oss2c104 kernel:  [&amp;lt;ffffffffc074680e&amp;gt;] libcfs_call_trace+0x4e/0x60 [libcfs]
May 27 03:21:02 oss2c104 kernel:  [&amp;lt;ffffffffc0746846&amp;gt;] libcfs_debug_dumpstack+0x26/0x30 [libcfs]
May 27 03:21:02 oss2c104 kernel:  [&amp;lt;ffffffffc0e3fcfd&amp;gt;] osd_trans_start+0x36d/0x390 [osd_ldiskfs]
May 27 03:21:02 oss2c104 kernel:  [&amp;lt;ffffffffc0f964fe&amp;gt;] ofd_trans_start+0x6e/0xf0 [ofd]
May 27 03:21:02 oss2c104 kernel:  [&amp;lt;ffffffffc0f9cc63&amp;gt;] ofd_commitrw_write+0x943/0x1d90 [ofd]
May 27 03:21:02 oss2c104 kernel:  [&amp;lt;ffffffffc0fa100b&amp;gt;] ofd_commitrw+0x54b/0xb70 [ofd]
May 27 03:21:02 oss2c104 kernel:  [&amp;lt;ffffffffc0bd39d6&amp;gt;] obd_commitrw.constprop.39+0x2fe/0x341 [ptlrpc]
May 27 03:21:02 oss2c104 kernel:  [&amp;lt;ffffffffc0bc02e0&amp;gt;] tgt_brw_write+0xd60/0x16d0 [ptlrpc]
May 27 03:21:02 oss2c104 kernel:  [&amp;lt;ffffffff810d11c4&amp;gt;] ? update_curr+0x104/0x190
May 27 03:21:02 oss2c104 kernel:  [&amp;lt;ffffffff810cdbce&amp;gt;] ? account_entity_dequeue+0xae/0xd0
May 27 03:21:02 oss2c104 kernel:  [&amp;lt;ffffffffc0b0a650&amp;gt;] ? target_bulk_timeout+0x0/0xb0 [ptlrpc]
May 27 03:21:02 oss2c104 kernel:  [&amp;lt;ffffffffc0bbc460&amp;gt;] tgt_request_handle+0x900/0x11f0 [ptlrpc]
May 27 03:21:02 oss2c104 kernel:  [&amp;lt;ffffffffc0b5edc0&amp;gt;] ptlrpc_server_handle_request+0x220/0xa90 [ptlrpc]
May 27 03:21:02 oss2c104 kernel:  [&amp;lt;ffffffffc0758818&amp;gt;] ? lc_watchdog_touch+0x68/0x180 [libcfs]
May 27 03:21:02 oss2c104 kernel:  [&amp;lt;ffffffffc0b5b938&amp;gt;] ? ptlrpc_wait_event+0x98/0x330 [ptlrpc]
May 27 03:21:02 oss2c104 kernel:  [&amp;lt;ffffffff810bdc4b&amp;gt;] ? __wake_up_common+0x5b/0x90
May 27 03:21:02 oss2c104 kernel:  [&amp;lt;ffffffffc0b6278f&amp;gt;] ptlrpc_main+0xc3f/0x1fa0 [ptlrpc]
May 27 03:21:02 oss2c104 kernel:  [&amp;lt;ffffffffc0b61b50&amp;gt;] ? ptlrpc_main+0x0/0x1fa0 [ptlrpc]
May 27 03:21:02 oss2c104 kernel:  [&amp;lt;ffffffff810b4031&amp;gt;] kthread+0xd1/0xe0
May 27 03:21:02 oss2c104 kernel:  [&amp;lt;ffffffff810b3f60&amp;gt;] ? kthread+0x0/0xe0
May 27 03:21:02 oss2c104 kernel:  [&amp;lt;ffffffff816c1577&amp;gt;] ret_from_fork+0x77/0xb0
May 27 03:21:02 oss2c104 kernel:  [&amp;lt;ffffffff810b3f60&amp;gt;] ? kthread+0x0/0xe0 &lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</description>
                <environment></environment>
        <key id="56520">LU-12609</key>
            <summary>Limit maximum number of journal credits for an RPC</summary>
                <type id="1" iconUrl="https://jira.whamcloud.com/secure/viewavatar?size=xsmall&amp;avatarId=11303&amp;avatarType=issuetype">Bug</type>
                                            <priority id="4" iconUrl="https://jira.whamcloud.com/images/icons/priorities/minor.svg">Minor</priority>
                        <status id="1" iconUrl="https://jira.whamcloud.com/images/icons/statuses/open.png" description="The issue is open and ready for the assignee to start work on it.">Open</status>
                    <statusCategory id="2" key="new" colorName="default"/>
                                    <resolution id="-1">Unresolved</resolution>
                                        <assignee username="bzzz">Alex Zhuravlev</assignee>
                                    <reporter username="pfarrell">Patrick Farrell</reporter>
                        <labels>
                    </labels>
                <created>Mon, 29 Jul 2019 18:33:31 +0000</created>
                <updated>Tue, 29 Oct 2019 22:11:31 +0000</updated>
                                                                                <due></due>
                            <votes>0</votes>
                                    <watches>3</watches>
                                                                            <comments>
                            <comment id="252191" author="pfarrell" created="Mon, 29 Jul 2019 18:33:51 +0000"  >&lt;p&gt;&lt;a href=&quot;https://review.whamcloud.com/#/c/35609/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/#/c/35609/&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="252924" author="adilger" created="Sat, 10 Aug 2019 22:55:30 +0000"  >&lt;p&gt;Patrick, based on your recent comments in the patch, you indicate that the number of fragments per RPC is already being limited?  Do you have some empirical evidence to suggest this is the case (eg. logs with 4MB RPCs showing random writes sending &amp;lt;= 256 niobufs?&lt;/p&gt;

&lt;p&gt;Another area of investigation is to see whether the journal credits can be &quot;slimmed down&quot; in such cases. It is entirely possible that we are over-allocating buffer credits for such cases (eg. superblock, inode, higher-level index blocks, etc x256) when they cannot possibly be needed, even if each block was allocated to a separate group. &lt;/p&gt;</comment>
                            <comment id="253208" author="pfarrell" created="Fri, 16 Aug 2019 19:35:36 +0000"  >&lt;p&gt;Well, I noticed when writing my code I was successfully limiting the number of fragments/niobufs, but then I realized what I had done was identical to the existing &quot;limit number of extents&quot; code, basically.&#160; Since every extent is one fragment, guaranteed.&#160; (I did do some poking to check this.)&lt;/p&gt;

&lt;p&gt;I could do some more testing if you&apos;d like, but I&apos;m pretty sure.&#160; (I didn&apos;t do random i/o, I just did strided unaligned i/o from one process with big gaps.&#160; So each write generated an extent.)&lt;/p&gt;

&lt;p&gt;re: Credits, unfortunately, I am totally out of my depth in that area.&lt;/p&gt;</comment>
                            <comment id="257293" author="adilger" created="Tue, 29 Oct 2019 22:11:31 +0000"  >&lt;p&gt;Alex, it may be that this is avoided by the writeback cache patch, but allocating too many credits for random IO is possibly still a performance overhead that isn&apos;t needed?  Not a huge priority, but maybe worth a few minutes if there is something obvious to fix. &lt;/p&gt;</comment>
                    </comments>
                    <attachments>
                    </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|i00kcv:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10090" key="com.pyxis.greenhopper.jira:gh-global-rank">
                        <customfieldname>Rank (Obsolete)</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>9223372036854775807</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_10060" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Severity</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10022"><![CDATA[3]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                        </customfields>
    </item>
</channel>
</rss>