Contract SFS-DEV-004

Overview
The goal of the CLIO Simplification Implementation contract is the implementation in the Lustre source code of the CLIO Simplification Design that resulted from [[Media:CLIOSimplificationDesign_HighLevelDesign.pdf|Project 2]] of Contract SFS-DEV-003.

For the contract statement of work, see [[Media:SFS-DEV-004_SOW.pdf|SFS-DEV-004_SOW.pdf]]

OpenSFS

 * Galen Shipman - OpenSFS Contract Administrator
 * Christopher Morrone - OpenSFS Technical Representative

Project Approval Committee (PAC)

 * Christopher Morrone - PAC Chair
 * Colin Faber
 * Patrick Farrell
 * Jason Hill
 * James Simmons
 * Cory Spitz

Intel

 * Richard Henwood
 * Andreas Dilger - Consulting Architect
 * Jinshan Xiong - Lead Engineer

Important Dates
The official start date of work is agreed to be October 13, 2014.

The contract lists milestone target dates in weeks relative to the start date. With the start date agreed, here we can just list actual dates to keep things easy to understand.

Meeting Minutes

 * SFS-DEV-004 Minutes 2014-11-06
 * SFS-DEV-004 Minutes 2014-12-12

cl_lock re-factoring (simplified and cache-less) DONE
LU-3259 cl_lock re-factoring

1 of 1 patches landed
 * 10858 LU-3259 clio: cl_lock simplification

Removal of liblustre DONE
LU-2675 removal of non-linux interfaces and liblustre

7 of 7 patches landed
 * 10657 LU-2675 build: remove liblustre and libsysio
 * 11772 LU-2675 mgc: remove libmgc.c
 * 10172 LU-2675 llite: remove liblustre includes
 * 10195 LU-2675 lmv: remove liblustre includes
 * 10196 LU-2675 lov: remove liblustre includes
 * 11423 LU-2675 build: remove Darwin "support"
 * 11385 LU-2675 build: remove WinNT "support"

ioctl calls implementation STARTED
LU-5823 Replace some obsolete obd operations with CLIO ioctl interface 6 patches of 6? in review:
 * 12452 LU-5823 clio: add cl_object_ioctl interface
 * 12494 LU-5823 clio: add CL_IOC_FIND_CBDATA cl_object_ioctl ops
 * 12535 LU-5823 clio: add CL_IOC_FIEMAP cl_object_ioctl ops
 * 12638 LU-5823 clio: add CL_IOC_DATA_VERSION and CL_IOC_GETATTR ops
 * 12748 LU-5823 clio: get rid of ll_glimpse_ioctl
 * 12639 LU-5823 clio: get rid of lov_stripe_md reference in setting file stripe info

Remove lov_stripe_md (LSM) direct access beyond LOV layer STARTED
LU-5814 encapsulate lov_stripe_md (LSM) to LOV layer

5 of 20? patches landed.
 * 12442 LU-5814 lov: remove LL_IOC_RECREATE_{FID,OBJ}
 * 12446 LU-5814 echo: remove userspace LSM handling
 * 12445 LU-5814 lov: remove unused {get,set}_info handlers
 * 12447 LU-5418 echo: replace lov_stripe_md with lov_oinfo
 * 12618 LU-5814 llite: remove ll_objects_destroy

1 of 20? patches in review:
 * 12581 LU-5814 lov: flatten struct lov_stripe_md]

Additional tasks:
 * Attempt to remove lli_has_smd.
 * Attempt to remove struct lustre_md:lsm: lustre_md can hold a pointer to lmm that LOV converts to LSM.
 * Attempt to remove struct obd_info:oi_md.

Remove non-linux interfaces STARTED
Two parts

Remove some cfs_ prefixed functions. STARTED
3 of 5? patches landed


 * NON-INTEL: 9902 LU-3963 libcfs: remove the last of cfs_atomic
 * NON-INTEL: 6956 LU-1346 libcfs: cleanup libcfs primitive (linux-prim.h)
 * NON-INTEL: 11797 LU-3963 libcfs: remove last of cfs list wrappers

2 of 2? patches pending


 * complete removal of cfs_get_blocked_sigs
 * remove cfs_strncasecmp

NOTE:
 * cfs_snprintf does have uses, not equivilent to snprintf, will remain.
 * cfs_hlist* are needed for Linux kernel compatibility and will remain.

Remove ccc_ layer STARTED
https://jira.hpdd.intel.com/browse/LU-5971

1 of 20? patches started


 * 12592 LU-5971 llite: merge lclient.h into llite/vvp_internal.h

Cleanup obsolete OBD methods
0 of 20? patches started.

Tasks include
 * Replace the use of obd_setattr_async in the handler for FSFILT_IOC_SETFLAGS.
 * Remove lov_setattr_async.
 * Remove lov_packmd and lov_unpackmd.
 * Remove dead or unused lsm parameters from several functions (o_get_info, mgc_enqueue, osc_brw_prep_request,...).
 * Convert ll_getxattr to use ll_file_getstripe.

NOTE: o_create, o_destroy are still in use by the echo code. Their LSM parameters have been removed.

004-001 CLIO ioctl's should be functions
CHANGE REQUEST: 004-001 CLIO ioctl's should be functions.

BACKGROUND: Ioctl calls were included in the CLIO Simplification design to replace some obsolete ODB operations. Alternatively, individual functions can replace the ODB operations instead.

CHANGE: Do not implement ioctl calls. Implement functions.

ACTIONS REQUIRED:
 * Ensure none of the current patches are land.
 * Update the design document with the new design.
 * Update the ticket LU-5823 with new activity.
 * Execute work to complete LU-5823.