<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 02:39:28 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-10934] integrate statx() API with Lustre</title>
                <link>https://jira.whamcloud.com/browse/LU-10934</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&lt;p&gt;Kernels 4.10 and later (since commit &lt;a href=&quot;https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=a528d35e8bfcc521d7cb70aaf03e1bd296c8493f&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;a528d35e8b&lt;/a&gt;) have an enhanced &lt;tt&gt;statx()&lt;/tt&gt; interface that can specify a bitmask to fetch specific attributes from a file (e.g. &lt;tt&gt;st_uid&lt;/tt&gt;, &lt;tt&gt;st_gid&lt;/tt&gt;, &lt;tt&gt;st_mode&lt;/tt&gt;, and &lt;tt&gt;st_btime&lt;/tt&gt; == file creation time), rather than fetching all of the normal &lt;tt&gt;stat()&lt;/tt&gt; attributes (such as &lt;tt&gt;st_size&lt;/tt&gt; and &lt;tt&gt;st_blocks&lt;/tt&gt;).  It also has a &lt;tt&gt;AT_STATX_DONT_SYNC&lt;/tt&gt; mode which allows the kernel to return &quot;lazy&quot; stats without flushing all of the client data and fetching an accurate result from the server.&lt;/p&gt;

&lt;p&gt;This matches (not coincidentally) very well with the Lustre attribute mechanism, and could be advantageous for fetching attributes from &lt;tt&gt;ls --color&lt;/tt&gt; (needs &lt;tt&gt;st_mode&lt;/tt&gt;) without having to do a glimpse to fetch the size (which is just discarded anyway).&lt;/p&gt;

&lt;p&gt;The Lustre patch &lt;a href=&quot;https://review.whamcloud.com/27715&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/27715&lt;/a&gt; &quot;&lt;tt&gt;&lt;a href=&quot;https://jira.whamcloud.com/browse/LU-9558&quot; title=&quot;Support linux kernel version 4.12&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-9558&quot;&gt;&lt;del&gt;LU-9558&lt;/del&gt;&lt;/a&gt; llite: user enhanced getattr functionality in newer kernels&lt;/tt&gt;&quot; added very basic support for this interface, but it only went so far as to handle the kernel API changes, but doesn&apos;t actually handle the different attribute flags appropriately (it currently fetches and returns all normal attributes - &lt;tt&gt;STATX_BASIC_STATS&lt;/tt&gt;).  This interface should be wired up properly so that we can take advantage of the efficiencies available.&lt;/p&gt;
&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;only fetch MDS attributes if &lt;tt&gt;STATX_SIZE&lt;/tt&gt; and &lt;tt&gt;STATX_BLOCKS&lt;/tt&gt; are not requested, and avoid OSS glimpse RPCs completely&lt;/li&gt;
	&lt;li&gt;hook this into statahead to avoid async glimpse locks (AGL) if OST information not needed&lt;/li&gt;
	&lt;li&gt;enhance the MDS RPC interface to return the file creation time stored in both ldiskfs and ZFS already, and enable &lt;tt&gt;STATX_BTIME&lt;/tt&gt;&lt;/li&gt;
	&lt;li&gt;in conjunction with Lazy Size-on-MDT (LSOM, &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-9538&quot; title=&quot;Size on MDT with guarantee of eventual consistency &quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-9538&quot;&gt;&lt;del&gt;LU-9538&lt;/del&gt;&lt;/a&gt;) return the LSOM size if &lt;tt&gt;AT_STATX_DONT_SYNC&lt;/tt&gt; is used&lt;/li&gt;
&lt;/ul&gt;
</description>
                <environment></environment>
        <key id="51920">LU-10934</key>
            <summary>integrate statx() API with Lustre</summary>
                <type id="4" iconUrl="https://jira.whamcloud.com/secure/viewavatar?size=xsmall&amp;avatarId=11310&amp;avatarType=issuetype">Improvement</type>
                                            <priority id="4" iconUrl="https://jira.whamcloud.com/images/icons/priorities/minor.svg">Minor</priority>
                        <status id="5" iconUrl="https://jira.whamcloud.com/images/icons/statuses/resolved.png" description="A resolution has been taken, and it is awaiting verification by reporter. From here issues are either reopened, or are closed.">Resolved</status>
                    <statusCategory id="3" key="done" colorName="success"/>
                                    <resolution id="1">Fixed</resolution>
                                        <assignee username="qian_wc">Qian Yingjin</assignee>
                                    <reporter username="adilger">Andreas Dilger</reporter>
                        <labels>
                            <label>medium</label>
                    </labels>
                <created>Thu, 19 Apr 2018 21:46:18 +0000</created>
                <updated>Thu, 14 Apr 2022 06:14:21 +0000</updated>
                            <resolved>Wed, 27 May 2020 14:55:13 +0000</resolved>
                                                    <fixVersion>Lustre 2.14.0</fixVersion>
                                        <due></due>
                            <votes>0</votes>
                                    <watches>16</watches>
                                                                            <comments>
                            <comment id="244312" author="adilger" created="Wed, 20 Mar 2019 15:14:51 +0000"  >&lt;p&gt;The other question is whether &lt;tt&gt;ls&lt;/tt&gt; uses &lt;tt&gt;statx()&lt;/tt&gt; yet or not.  Until that happens, there won&apos;t be any visible improvement to &quot;&lt;tt&gt;ls --color&lt;/tt&gt;&quot; performance seen. &lt;/p&gt;</comment>
                            <comment id="244316" author="degremoa" created="Wed, 20 Mar 2019 15:32:14 +0000"  >&lt;ul&gt;
	&lt;li&gt;statx() is added to Linux (Linux 4.11+)&lt;/li&gt;
	&lt;li&gt;glibc supports statx() (glibc 2.28+ -&amp;gt; RHEL 8, Ubuntu 18.10+)&lt;/li&gt;
	&lt;li&gt;statx() takes benefit from LSOM (&lt;a href=&quot;https://jira.whamcloud.com/browse/LU-10934&quot; class=&quot;external-link&quot; rel=&quot;nofollow&quot;&gt;https://jira.whamcloud.com/browse/LU-10934&lt;/a&gt;)&lt;/li&gt;
	&lt;li&gt;ls supports statx() (TBD)&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;As far as I&apos;ve seen, ls guys are not really eager to support statx &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;</comment>
                            <comment id="244326" author="adilger" created="Wed, 20 Mar 2019 16:53:26 +0000"  >&lt;p&gt;I found that the &lt;tt&gt;stat&lt;/tt&gt; command was patched to call &lt;tt&gt;statx()&lt;/tt&gt; to fetch file creation time in coreutils 0.28, but unfortunately this is implemented by calling &lt;tt&gt;statx()&lt;/tt&gt; again on the file, rather than calling &lt;tt&gt;statx()&lt;/tt&gt; in the first place to fetch all of the required/available attributes.  This means both &lt;tt&gt;stat()&lt;/tt&gt; and &lt;tt&gt;statx()&lt;/tt&gt; will be called on the file, increasing overhead rather than decreasing it &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;.  I didn&apos;t see other uses of &lt;tt&gt;statx()&lt;/tt&gt; in the current coreutils.&lt;/p&gt;</comment>
                            <comment id="244405" author="degremoa" created="Thu, 21 Mar 2019 09:47:01 +0000"  >&lt;p&gt;For Lustre the second call will likely just read data from cache. The performance impact should be low.&lt;/p&gt;

&lt;p&gt;But this is not good news. Maybe we should push coreutils in the right direction.&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;Having a proper full statx implementation in Lustre is still useful. Robinhood can clearly benefit from it.&lt;/p&gt;</comment>
                            <comment id="254493" author="adilger" created="Wed, 11 Sep 2019 03:01:34 +0000"  >&lt;p&gt;There is a very preliminary patch to add &lt;tt&gt;statx()&lt;/tt&gt; support to &lt;tt&gt;ls&lt;/tt&gt; at: &lt;a href=&quot;https://github.com/jtlayton/coreutils/commits/statx&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/jtlayton/coreutils/commits/statx&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="256266" author="adilger" created="Fri, 11 Oct 2019 21:58:36 +0000"  >&lt;p&gt;The support for &lt;tt&gt;stat(1)&lt;/tt&gt; and &lt;tt&gt;ls(1)&lt;/tt&gt; to use &lt;tt&gt;statx(3)&lt;/tt&gt; to fetch only the required attributes has landed to the upstream GNU &lt;tt&gt;coreutils&lt;/tt&gt; package.&lt;/p&gt;</comment>
                            <comment id="257175" author="degremoa" created="Mon, 28 Oct 2019 10:18:32 +0000"  >&lt;p&gt;Nice Andreas!&lt;/p&gt;

&lt;p&gt;Do you have a pointer for this change? Does this mean this is optimized and only statx() is used when possible?&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;</comment>
                            <comment id="257308" author="adilger" created="Wed, 30 Oct 2019 05:03:41 +0000"  >&lt;p&gt;The coreutils commit is at:&lt;br/&gt;
&lt;a href=&quot;https://github.com/coreutils/coreutils/commit/a99ab266110795ed94a9cb4d2765ddad9c4310da&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/coreutils/coreutils/commit/a99ab266110795ed94a9cb4d2765ddad9c4310da&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="257717" author="gerrit" created="Tue, 5 Nov 2019 09:57:50 +0000"  >&lt;p&gt;Yingjin Qian (qian@ddn.com) uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/36674&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/36674&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-10934&quot; title=&quot;integrate statx() API with Lustre&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-10934&quot;&gt;&lt;del&gt;LU-10934&lt;/del&gt;&lt;/a&gt; llite: integrate statx() API with Lustre&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: 3bb2844b25767676ab56946a00aff16f02a82db9&lt;/p&gt;</comment>
                            <comment id="271237" author="gerrit" created="Wed, 27 May 2020 05:04:27 +0000"  >&lt;p&gt;Oleg Drokin (green@whamcloud.com) merged in patch &lt;a href=&quot;https://review.whamcloud.com/36674/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/36674/&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-10934&quot; title=&quot;integrate statx() API with Lustre&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-10934&quot;&gt;&lt;del&gt;LU-10934&lt;/del&gt;&lt;/a&gt; llite: integrate statx() API with Lustre&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: &lt;br/&gt;
Commit: 3f7853b31ef6f5a6c2837403910083057728a842&lt;/p&gt;</comment>
                            <comment id="271292" author="pjones" created="Wed, 27 May 2020 14:55:13 +0000"  >&lt;p&gt;Landed for 2.14&lt;/p&gt;</comment>
                            <comment id="271934" author="bzzz" created="Thu, 4 Jun 2020 07:46:21 +0000"  >&lt;p&gt;tests sanityn/106* seem to be broken - even recent debugfs doesn&apos;t dump &quot;btime&quot;.&lt;br/&gt;
probably crtime was meant?&lt;/p&gt;</comment>
                            <comment id="271937" author="qian_wc" created="Thu, 4 Jun 2020 08:08:19 +0000"  >&lt;p&gt;Thanks for your report, Alex.&lt;/p&gt;

&lt;p&gt;I will investigate it.&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;Regards,&lt;/p&gt;

&lt;p&gt;Qian&lt;/p&gt;</comment>
                            <comment id="272964" author="gerrit" created="Tue, 16 Jun 2020 07:01:38 +0000"  >&lt;p&gt;Andreas Dilger (adilger@whamcloud.com) uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/38947&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/38947&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-10934&quot; title=&quot;integrate statx() API with Lustre&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-10934&quot;&gt;&lt;del&gt;LU-10934&lt;/del&gt;&lt;/a&gt; tests: increase timeout for sanityn test_51b&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: a00f3f63fa7e8d3ba9a32dcf4da3de83b6dcdcb3&lt;/p&gt;</comment>
                            <comment id="273163" author="gerrit" created="Wed, 17 Jun 2020 23:48:25 +0000"  >&lt;p&gt;Neil Brown (neilb@suse.de) uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/38973&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/38973&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-10934&quot; title=&quot;integrate statx() API with Lustre&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-10934&quot;&gt;&lt;del&gt;LU-10934&lt;/del&gt;&lt;/a&gt; tests: fix compilation without SELINUX&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: 6cdbb0e9730076cb24888dbae828ef52cc100082&lt;/p&gt;</comment>
                            <comment id="273553" author="gerrit" created="Tue, 23 Jun 2020 08:12:30 +0000"  >&lt;p&gt;Oleg Drokin (green@whamcloud.com) merged in patch &lt;a href=&quot;https://review.whamcloud.com/38973/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/38973/&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-10934&quot; title=&quot;integrate statx() API with Lustre&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-10934&quot;&gt;&lt;del&gt;LU-10934&lt;/del&gt;&lt;/a&gt; tests: fix compilation without SELINUX&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: &lt;br/&gt;
Commit: 3aa5f8ecf31c29625057c19628d8bfbb3c0c26dc&lt;/p&gt;</comment>
                            <comment id="278021" author="gerrit" created="Tue, 25 Aug 2020 07:40:00 +0000"  >&lt;p&gt;Oleg Drokin (green@whamcloud.com) merged in patch &lt;a href=&quot;https://review.whamcloud.com/38947/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/38947/&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-10934&quot; title=&quot;integrate statx() API with Lustre&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-10934&quot;&gt;&lt;del&gt;LU-10934&lt;/del&gt;&lt;/a&gt; tests: increase timeout for sanityn test_51b&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: &lt;br/&gt;
Commit: 9edec7ab92fb24f0a46e019c65a21481f9314d07&lt;/p&gt;</comment>
                            <comment id="284286" author="adilger" created="Wed, 4 Nov 2020 23:05:04 +0000"  >&lt;p&gt;Support for&#160;&lt;tt&gt;ls&lt;/tt&gt; with &lt;tt&gt;statx()&lt;/tt&gt; is in &lt;tt&gt;&lt;a href=&quot;http://rpmfind.net/linux/fedora/linux/releases/33/Everything/x86_64/os/Packages/c/coreutils-8.32-12.fc33.x86_64.rpm&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;coreutils-8.32-3.fc33&lt;/a&gt;&lt;/tt&gt; and later. It is disabled in &lt;tt&gt;coreutils-8.32-3.fc32&lt;/tt&gt; and earlier Fedora releases because of a &lt;a href=&quot;https://bugzilla.redhat.com/show_bug.cgi?id=1760300&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;bug in &lt;tt&gt;libseccomp2&lt;/tt&gt;&lt;/a&gt; (presumably explained and resolved in a &lt;a href=&quot;https://bugzilla.redhat.com/show_bug.cgi?id=1762578&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;private RH bug I don&apos;t have access to&lt;/a&gt;) that affects its use inside VMs running on RHEL7 and other hosts that do not have &lt;tt&gt;statx()&lt;/tt&gt; system call).&#160; Using this statx-enabled-ls should avoid the need for the client to get any OST attributes for the majority of files (i.e. those that have LSOM enabled and store the size on the MDT inode).&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Related</name>
                                            <outwardlinks description="is related to ">
                                        <issuelink>
            <issuekey id="46203">LU-9538</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="13394">LU-1158</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="54946">LU-11987</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="59429">LU-13628</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="60168">LU-13826</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="50385">LU-10560</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="51289">LU-10805</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="54756">LU-11916</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="57822">LU-13148</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="59852">LU-13753</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="56210">LU-12480</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="46300">LU-9558</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="53684">LU-11554</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="54892">LU-11971</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="55729">LU-12332</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <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|hzzw4f:</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>
                                                                                                                                                                                                                                                                                                                                                                                                                </customfields>
    </item>
</channel>
</rss>