[Lustre-devel] [wc-discuss] Important changes to libcfs primitives usage.

Andreas Dilger adilger at whamcloud.com
Mon Dec 17 10:34:05 PST 2012

On 2012-12-17, at 10:09 AM, John Hammond wrote:
> On 12/05/2012 07:54 AM, Oleg Drokin wrote:
>>    I just landed first patch of the series to reduce usage of our libcfs_ wrappers for kernel primitives like libcfs_spin_lock/unlock...
>>    You can see actual change here: http://review.whamcloud.com/#change,2829
>>    It's highly likely that plenty of patches will be affected. To make our job easier, there is a
>>    build/libcfs_cleanup.sed script included, you can run it on all your .c and .h files to make necessary replacements:
>>    sed -i -f build/libcfs_cleanup.sed3  `find . -name "*.h" -or -name "*.c"`
>>    Please be also advised that there are more changes like this are coming (timeline is not very clear ATM, we might be able to wait with the rest until
>>    after feature freeze) and the sed script will be updated accordingly.
> I have been wondering about wrappers and typedefs not affected by this change, for example cfs_get_cpu(), cfs_atomic_read() and cfs_proc_dir_entry_t.  In new code and patches should we use the cfs names or their Linux equivalents, get_cpu(), atomic_read(), and struct proc_dir_entry?

Ideally, new patches would use the Linux primitives.  However, if they are in client-side code that is compiled for liblustre, then the liblustre builds would fail until the wrappers are renamed to their Linux equivalents (i.e. removing "cfs_" prefix).

For server-side code and/or llite it should be fine to use the native Linux functions.

Cheers, Andreas
Andreas Dilger                       Whamcloud, Inc.
Principal Lustre Engineer            http://www.whamcloud.com/

More information about the lustre-devel mailing list