<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 01:32:01 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-3221] calling set_fs(KERNEL_DS) may break copy_from_user() on SPARC</title>
                <link>https://jira.whamcloud.com/browse/LU-3221</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&lt;p&gt;I looks like our use of set_fs() may cause SPARC kernels to oops during userspace access.&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;[root@t2000-08 lustre]# lfs setstripe -c2 f2
Killed

Kernel unaligned access at TPC[5c38fc] copy_user_page+0x5c/0x6c
Unable to handle kernel paging request in mna handler
 at virtual address 0000000000003fff
current-&amp;gt;{active_,}mm-&amp;gt;context = 0000000000001542
current-&amp;gt;{active_,}mm-&amp;gt;pgd = fffff803eaa24000
              \|/ ____ \|/
              &quot;@&apos;/ .. \`@&quot;
              /_| \__/ |_\
                 \__U_/
lfs(16862): Oops [#1]
TSTATE: 0000000080001601 TPC: 00000000005c38fc TNPC: 00000000005c3900 Y: fffffffe    Not t
ainted
TPC: &amp;lt;copy_user_page+0x5c/0x6c&amp;gt;
g0: fffff8031018ef31 g1: 0000000000000080 g2: fffff8031018c008 g3: 0000000000003fff
g4: fffff803f6c1f7e0 g5: fffff8000888c000 g6: fffff8031018c000 g7: 0000000000004000
o0: fffff8031018f838 o1: 000007feffdd1164 o2: 000000000000001f o3: ffffffffffddf97c
o4: 000007feffdd1164 o5: 00000000101a8000 sp: fffff8031018ef81 ret_pc: 0000000010d46040
RPC: &amp;lt;lov_getstripe+0x80/0xbc0 [lov]&amp;gt;
l0: fffff8031018f838 l1: 0000000000000011 l2: fffff8031018f880 l3: 00000000101a8000
l4: 00000000101a8000 l5: fffff803ec74d400 l6: fffff8031018c000 l7: 000007feffdd1164
i0: fffff803ec74d400 i1: fffff803e9ef9800 i2: 000007feffdd1164 i3: 0000000002000004
i4: fffff803f586aed8 i5: fffff8031018fa10 i6: fffff8031018f081 i7: 0000000010d3d148
I7: &amp;lt;lov_iocontrol+0x2e8/0x35e0 [lov]&amp;gt;
Disabling lock debugging due to kernel taint
Caller[0000000010d3d148]: lov_iocontrol+0x2e8/0x35e0 [lov]
Caller[0000000010dffb04]: ll_lov_setstripe+0x224/0x8a0 [lustre]
Caller[0000000010e0bcc8]: ll_file_ioctl+0x14e8/0x44a0 [lustre]
Caller[0000000000503a04]: vfs_ioctl+0x20/0x8c
Caller[000000000050403c]: do_vfs_ioctl+0x528/0x570
Caller[00000000005040cc]: SyS_ioctl+0x48/0x74
Caller[0000000000406254]: linux_sparc_syscall+0x34/0x44
Caller[0000000000124b0c]: 0x124b0c
Instruction DUMP: d0f0cb00  c2f00b80  8143e040 &amp;lt;d2f0cb00&amp;gt; c4f00b80  8143e040  8d92a000  10680053  01000000 
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;If the call to set_fs() is removed from lov_getstripe() then there is no oops here.  It seems that with address limit set to KERNEL_DS strict alignment restrictions are in effect during copy_to_user(), but I have not confirmed that.&lt;/p&gt;

&lt;p&gt;The good news is that there is no reason the change the address limits in lov_getstripe() since the relevant pointer only comes from userspace, and thus that the call to set_fs() can be removed.&lt;/p&gt;</description>
                <environment>64-bit SPARC T2000&lt;br/&gt;
lustre: 2.3.64 (vanilla + epsilon)&lt;br/&gt;
kernel: patchless_client&lt;br/&gt;
build:  --PRISTINE-2.6.32.27.8dc3820 (client only)&lt;br/&gt;
</environment>
        <key id="18523">LU-3221</key>
            <summary>calling set_fs(KERNEL_DS) may break copy_from_user() on SPARC</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="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="jhammond">John Hammond</assignee>
                                    <reporter username="jhammond">John Hammond</reporter>
                        <labels>
                            <label>lov</label>
                            <label>sparc</label>
                    </labels>
                <created>Wed, 24 Apr 2013 19:31:55 +0000</created>
                <updated>Tue, 11 Jun 2013 16:14:09 +0000</updated>
                            <resolved>Tue, 11 Jun 2013 16:14:09 +0000</resolved>
                                    <version>Lustre 2.5.0</version>
                                    <fixVersion>Lustre 2.5.0</fixVersion>
                                        <due></due>
                            <votes>0</votes>
                                    <watches>4</watches>
                                                                            <comments>
                            <comment id="56985" author="jhammond" created="Wed, 24 Apr 2013 21:42:38 +0000"  >&lt;p&gt;Please see &lt;a href=&quot;http://review.whamcloud.com/6150&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/6150&lt;/a&gt;.&lt;/p&gt;</comment>
                            <comment id="57005" author="adilger" created="Thu, 25 Apr 2013 02:21:59 +0000"  >&lt;blockquote&gt;
&lt;p&gt;The good news is that there is no reason the change the address limits in lov_getstripe() since the relevant pointer only comes from userspace, and thus that the call to set_fs() can be removed.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;This was not the case in earlier versions of Lustre, since the LOV code was shared between the MDS and client.&lt;/p&gt;</comment>
                            <comment id="60366" author="jhammond" created="Tue, 11 Jun 2013 16:14:09 +0000"  >&lt;p&gt;Patch landed.&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|hzvox3:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10090" key="com.pyxis.greenhopper.jira:gh-global-rank">
                        <customfieldname>Rank (Obsolete)</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>7864</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>