Difference between revisions of "Contract SFS-DEV-004"

From OpenSFS Wiki
Jump to navigation Jump to search
Line 102: Line 102:
! Planning !! Review !! Landed
! Planning !! Review !! Landed
|  || [http://review.whamcloud.com/12452 12452] LU-5823 clio: add cl_object_ioctl() interface ||
|| || [http://review.whamcloud.com/12452 12452] LU-5823 clio: add cl_object_ioctl() interface
Line 117: Line 117:
|  || ||  
|  || ||  
=== Remove lov_stripe_md (LSM) direct access beyond LOV layer STARTED ===
=== Remove lov_stripe_md (LSM) direct access beyond LOV layer STARTED ===

Revision as of 10:42, 6 January 2015


The goal of the CLIO Simplification Implementation contract is the implementation in the Lustre source code of the CLIO Simplification Design that resulted from Project 2 of Contract SFS-DEV-003.

For the contract statement of work, see SFS-DEV-004_SOW.pdf

Key People


  • 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


  • 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.

Milestone task Target Completion Actual Completion
Implementation Jan 26th 2015
Test and fix Apr 6th 2015
Demonstration May 4th 2015
Landing Jun 1st 2015

Meeting Minutes

Contract Products

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

LU-3259 cl_lock re-factoring The cl_lock is necessary because it communicates the DLM lock for a specific IO. The current implementation is highly complex. This work will write a simplified cl_lock. The new lock will be cache-less and replace the current implementation.

Planning Review Landed
10858 LU-3259 clio: cl_lock simplification

Removal of liblustre DONE

LU-2675 removal of liblustre

Planning Review 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"

function calls implementation STARTED

LU-5823 Replace some obsolete obd operations with CLIO ioctl interface OBD API operations for read, write, setattr, getattr, etc. became obsolete after MDT, OFD and client reconstructing were completed. This work removes these redundant operations.

Planning Review Landed
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 The current CLIO implementation has a good interface to file layout operations. Legacy code still exists that does not use this interface. The code that does not use the file layout interface will be reviewed and targeted for removal or re-design to use the file layout interface.

Planning Review Landed
Attempt to remove lli_has_smd. 12581 LU-5814 lov: flatten struct lov_stripe_md] 12442 LU-5814 lov: remove LL_IOC_RECREATE_{FID,OBJ}
Attempt to remove struct lustre_md:lsm: lustre_md can hold a pointer to lmm that LOV converts to LSM. 12446 LU-5814 echo: remove userspace LSM handling
Attempt to remove struct obd_info:oi_md. 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()

Remove non-linux interfaces STARTED

Two parts

Remove some cfs_ prefixed functions. STARTED

Planning Review Landed
complete removal of cfs_get_blocked_sigs() NON-INTEL: 6956 LU-1346 libcfs: cleanup libcfs primitive (linux-prim.h)
remove cfs_strncasecmp NON-INTEL: 11797 LU-3963 libcfs: remove last of cfs list wrappers
NON-INTEL: 11797 LU-3963 libcfs: remove last of cfs list wrappers


  • 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

LU-5971 removal of ccc_ layer With the removal of liblustre, the ccc_ layer is redundant and complex. The remaining useful functions will be merged into vfs vm posix layer and the ccc_ layer will be removed.

Planning Review Landed
12592 LU-5971 llite: merge lclient.h into llite/vvp_internal.h
13075 LU-5971 llite: rename ccc_device to vvp_device
13077 LU-5971 llite: rename ccc_object to vvp_object
13086 LU-5971 llite: rename ccc_page to vvp_page
13088 LU-5971 llite: rename ccc_lock to vvp_lock

Cleanup obsolete OBD methods

OBD API operations for read, write, setattr, getattr, etc because obsolete after MDT, OFD and client restructuring were completed. Redundant code remains in CLIO and interfaces that are not referenced by any module will be targeted for removal.

Planning Review Landed
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.


Planning Review Landed
audit comments in cl_object.h Move definition of LDLM_GID_ANY to lustre_dlm.h

Change requests

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.


  • 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.