<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=us-ascii"><meta name=Generator content="Microsoft Word 14 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";
        color:black;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p
        {mso-style-priority:99;
        mso-margin-top-alt:auto;
        margin-right:0in;
        margin-bottom:5.75pt;
        margin-left:0in;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";
        color:black;}
span.EmailStyle18
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
/* List Definitions */
@list l0
        {mso-list-id:428281509;
        mso-list-template-ids:335596382;}
@list l1
        {mso-list-id:791900621;
        mso-list-template-ids:797050688;}
@list l2
        {mso-list-id:1674801940;
        mso-list-template-ids:937335602;}
ol
        {margin-bottom:0in;}
ul
        {margin-bottom:0in;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body bgcolor=white lang=EN-US link=blue vlink=purple><div class=WordSection1><p class=MsoNormal style='margin-bottom:12.0pt'>Hi, <o:p></o:p></p><p class=MsoNormal style='margin-bottom:12.0pt'>I and Aayush were investigating more on point 3 in previous mail. What we understood that obdfilter was replaced with ofd module in Lustre 2.4.0. <span style='color:#1F497D'><o:p></o:p></span></p><p class=MsoNormal style='margin-bottom:12.0pt'>I found a patch which removes zero copy changes from lustre: <a href="https://github.com/rread/lustre/commit/0c69ea9f6d6d044b6463787d5a56b2384bb9663a#diff-622f0cb8b18627484c80ad225d1803de"><span style='color:black;text-decoration:none'>https://github.com/rread/lustre/commit/0c69ea9f6d6d044b6463787d5a56b2384bb9663a#diff-622f0cb8b18627484c80ad225d1803de</span></a><span style='color:#1F497D'><o:p></o:p></span></p><div><p class=MsoNormal>We are working on porting RAID driver zcp changes to kernel wrt Lustre 2.5.0. We are also planning to add and test these removed changes back in lustre 2.5.0 as part of zero copy changes porting in lustre.<br>Will it be right to do so? Any suggestion or precaution which I should take while porting these changes?<br><br>Thanks,<br>Mandar & Aayush.<br><br>-------- Original Message -------- <o:p></o:p></p><table class=MsoNormalTable border=0 cellspacing=0 cellpadding=0><tr><td nowrap valign=top style='padding:0in 0in 0in 0in'><p class=MsoNormal align=right style='text-align:right'><b>Subject: <o:p></o:p></b></p></td><td style='padding:0in 0in 0in 0in'><p class=MsoNormal>Re: Facing issues in applying zero copy patch on rhel6.<o:p></o:p></p></td></tr><tr><td nowrap valign=top style='padding:0in 0in 0in 0in'><p class=MsoNormal align=right style='text-align:right'><b>Date: <o:p></o:p></b></p></td><td style='padding:0in 0in 0in 0in'><p class=MsoNormal>Mon, 07 Apr 2014 17:46:03 +0530<o:p></o:p></p></td></tr><tr><td nowrap valign=top style='padding:0in 0in 0in 0in'><p class=MsoNormal align=right style='text-align:right'><b>From: <o:p></o:p></b></p></td><td style='padding:0in 0in 0in 0in'><p class=MsoNormal>aayush agrawal <a href="mailto:aayush.agrawal@calsoftinc.com"><aayush.agrawal@calsoftinc.com></a><o:p></o:p></p></td></tr><tr><td nowrap valign=top style='padding:0in 0in 0in 0in'><p class=MsoNormal align=right style='text-align:right'><b>To: <o:p></o:p></b></p></td><td style='padding:0in 0in 0in 0in'><p class=MsoNormal><a href="mailto:lustre-discuss@lists.lustre.org">lustre-discuss@lists.lustre.org</a><o:p></o:p></p></td></tr></table><p class=MsoNormal style='margin-bottom:12.0pt'><o:p> </o:p></p><div><p class=MsoNormal style='margin-bottom:12.0pt'>Hi,<br><br>Following are few questions which still remain unanswered:<o:p></o:p></p><ol start=1 type=1><li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level1 lfo1'>I am seeing that zero copy patch existed in lustre-2.1.2, In lustre/kernel-patches/patches directory for rhel5. But it has been removed in latest lustre 2.5.0. Is there any specific reason to remove it?<o:p></o:p></li><li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level1 lfo1'>If I am correct this code gets invoked from following location from obdfilter(correct me if I am wrong):<o:p></o:p></li></ol><ol start=2 type=1><ol start=1 type=1><li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level2 lfo1'>lustre/obdfilter/filter_io_26.c line no:367                                                                                                                                                                    ;& nbsp;                                                                                                                                                                    &n bsp;&nb sp;                                       <snip><o:p></o:p></li></ol></ol><p>                        /* I only set the page to be constant only if it<br>                         * is mapped to a contiguous underlying disk block(s).<br>                         * It will then make sure the corresponding device<br>                         * cache of raid5 will be overwritten by this page.<br>                         * - jay */<br>                        if ((rw == OBD_BRW_WRITE) &&<br>                            (nblocks == blocks_per_page) &&<br>                            mapping_cap_page_constant_write(inode->i_mapping))<br>                               SetPageConstant(page);<br>                    <br>                    </snip><br>       3. I want to use this zero copy patch in latest lustre 2.5.0(With kernel linux-2.6.32-358.18.1.el6). I could port patch to this latest kernel. But it looks like obdfilter module has been replaced in latest kernel which used to invoke zero copy changes as mentioned in point 2             I think its ofd module with which it got replaced(??). So latest lustre is not able to invoke zero copy changes(for eg: setting/clearing PG_constant etc.). Is there any different patch available for invoking these zero copy changes?<br>       4.  Can you also suggest which newly added module in lustre-2.5.0 would require these changes?<o:p></o:p></p><p class=MsoNormal><br>Thanks,<br>Aayush<br><br>On 4/7/2014 4:50 PM, aayush agrawal wrote:<o:p></o:p></p></div><blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'><div><p class=MsoNormal>Hi,<br><br>I got both the errors resolved. Looks like there was some issue with my lustre build process itself.<br>So I think along with raid5-zerocopy-rhel6.patch, raid5-stats-rhel6.patch was the only additional patch required.<br><br>Thanks,<br>Aayush<br><br>On 3/24/2014 8:40 PM, aayush agrawal wrote:<o:p></o:p></p></div><blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'><p class=MsoNormal style='margin-bottom:12.0pt'>Hi,<br><br>I wanted to apply zero copy patch on rhel6 so I followed below steps:<o:p></o:p></p><ol start=1 type=1><li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l2 level1 lfo3'>Downloaded lustre-2.1.2 and corresponding kernel rpm(linux-2.6.32-220.17.1.el6). The OS I am using is CentOS 6.4.<o:p></o:p></li><li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l2 level1 lfo3'>Applied kernel patches from lustre source code to kernel.<o:p></o:p></li><li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l2 level1 lfo3'>Downloaded a zero copy patch for rhel6 from: <a href="https://github.com/Xyratex/lustre-stable/blob/b_neo_1.4.0/lustre/kernel_patches/patches/raid5-zerocopy-rhel6.patch">https://github.com/Xyratex/lustre-stable/blob/b_neo_1.4.0/lustre/kernel_patches/patches/raid5-zerocopy-rhel6.patch</a><o:p></o:p></li><li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l2 level1 lfo3'>Applied this patch to above kernel.<o:p></o:p></li><li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l2 level1 lfo3'>Then I tried to compile this kernel  but it gives undefined symbol errors for writes_zcopy and PageConstant.<o:p></o:p></li></ol><ol start=5 type=1><ol start=1 type=1><li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l2 level2 lfo3'>For writes_zcopy I found another patch on the same git hub link: <a href="https://github.com/Xyratex/lustre-stable/blob/b_neo_1.4.0/lustre/kernel_patches/patches/raid5-stats-rhel6.patch">https://github.com/Xyratex/lustre-stable/blob/b_neo_1.4.0/lustre/kernel_patches/patches/raid5-stats-rhel6.patch</a>.<o:p></o:p></li><li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l2 level2 lfo3'>For PageConstant I couldn't find any patch to rectify this error. Even I do not see usage of PG_Constant/SetPageConstant etc. in raid5-zerocopy-rhel6.patch which I think is essential. <o:p></o:p></li></ol></ol><ol start=6 type=1><li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l2 level1 lfo3'>So my questions are:<o:p></o:p></li></ol><ol start=6 type=1><ol start=1 type=1><li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l2 level2 lfo3'>I think few patches are missing here. As mentioned above one of them would be raid5-stats-rhel6.patch please confirm.<o:p></o:p></li><li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l2 level2 lfo3'>if confirmed, still there has to be at least one patch missing (to include PageConstant use). Are there any other patches to be applied before I apply raid5-stats-rhel6.patch and raid5-zerocopy-rhel6.patch.<o:p></o:p></li><li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l2 level2 lfo3'>I am seeing that this zero copy patch existed in lustre-2.1.2, In lustre/kernel-patches/patches directory for rhel5. But it has been removed in latest lustre 2.5.0. Is there any specific reason to remove it.<o:p></o:p></li></ol></ol><p>Thanks,<br>Aayush<o:p></o:p></p><p class=MsoNormal><br><br><br><br><br>    <br> <o:p></o:p></p></blockquote><p class=MsoNormal><o:p> </o:p></p></blockquote><p class=MsoNormal style='margin-bottom:12.0pt'><o:p> </o:p></p></div><p class=MsoNormal><o:p> </o:p></p></div></body></html>