[Lustre-discuss] Facing issues in applying zero copy patch on rhel6.

Mandar Joshi mandar.joshi at calsoftinc.com
Tue May 27 03:08:56 PDT 2014


Hi, 

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. 

I found a patch which removes zero copy changes from lustre:
<https://github.com/rread/lustre/commit/0c69ea9f6d6d044b6463787d5a56b2384bb9
663a#diff-622f0cb8b18627484c80ad225d1803de>
https://github.com/rread/lustre/commit/0c69ea9f6d6d044b6463787d5a56b2384bb96
63a#diff-622f0cb8b18627484c80ad225d1803de

As asked before in #1 in previous mail, we could not find on any mailing
list any specific reason/known problem for removing this support.

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. 
Will it be right to do so? Any suggestion or precaution which we should take
while porting these changes?

Thanks,
Mandar & Aayush.

-------- Original Message -------- 


Subject: 

Re: Facing issues in applying zero copy patch on rhel6.


Date: 

Mon, 07 Apr 2014 17:46:03 +0530


From: 

aayush agrawal  <mailto:aayush.agrawal at calsoftinc.com>
<aayush.agrawal at calsoftinc.com>


To: 

lustre-discuss at lists.lustre.org

 

Hi,

Following are few questions which still remain unanswered:

1.	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?
2.	If I am correct this code gets invoked from following location from
obdfilter(correct me if I am wrong):

1.	lustre/obdfilter/filter_io_26.c line no:367
;& nbsp;
&n bsp;&nb sp;                                       <snip>

                        /* I only set the page to be constant only if it
                         * is mapped to a contiguous underlying disk
block(s).
                         * It will then make sure the corresponding device
                         * cache of raid5 will be overwritten by this page.
                         * - jay */
                        if ((rw == OBD_BRW_WRITE) &&
                            (nblocks == blocks_per_page) &&
 
mapping_cap_page_constant_write(inode->i_mapping))
                               SetPageConstant(page);
                    
                    </snip>
       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?
       4.  Can you also suggest which newly added module in lustre-2.5.0
would require these changes?


Thanks,
Aayush

On 4/7/2014 4:50 PM, aayush agrawal wrote:

Hi,

I got both the errors resolved. Looks like there was some issue with my
lustre build process itself.
So I think along with raid5-zerocopy-rhel6.patch, raid5-stats-rhel6.patch
was the only additional patch required.

Thanks,
Aayush

On 3/24/2014 8:40 PM, aayush agrawal wrote:

Hi,

I wanted to apply zero copy patch on rhel6 so I followed below steps:

1.	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.
2.	Applied kernel patches from lustre source code to kernel.
3.	Downloaded a zero copy patch for rhel6 from:
https://github.com/Xyratex/lustre-stable/blob/b_neo_1.4.0/lustre/kernel_patc
hes/patches/raid5-zerocopy-rhel6.patch
4.	Applied this patch to above kernel.
5.	Then I tried to compile this kernel  but it gives undefined symbol
errors for writes_zcopy and PageConstant.

1.	For writes_zcopy I found another patch on the same git hub link:
https://github.com/Xyratex/lustre-stable/blob/b_neo_1.4.0/lustre/kernel_patc
hes/patches/raid5-stats-rhel6.patch.
2.	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. 

6.	So my questions are:

1.	I think few patches are missing here. As mentioned above one of them
would be raid5-stats-rhel6.patch please confirm.
2.	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.
3.	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.

Thanks,
Aayush






    
 

 

 

 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lustre.org/pipermail/lustre-discuss-lustre.org/attachments/20140527/0c0cd024/attachment.htm>


More information about the lustre-discuss mailing list