Mandar Joshi
2014-May-27 10:08 UTC
Re: Facing issues in applying zero copy patch on rhel6.
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-d+bK1eGgz2KBUy7/sJONFg@public.gmane.org> <aayush.agrawal-d+bK1eGgz2KBUy7/sJONFg@public.gmane.org> To: lustre-discuss-aLEFhgZF4x6X6Mz3xDxJMA@public.gmane.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 _______________________________________________ Lustre-discuss mailing list Lustre-discuss-aLEFhgZF4x6X6Mz3xDxJMA@public.gmane.org http://lists.lustre.org/mailman/listinfo/lustre-discuss