Since everyone's busy cutting CKRM down to size, might as well join the fun !
Here's a set of patches that implements rcfs using configfs. It reduces the
rcfs codebase by over 1200 lines (62%). Equally important, the new code is much
easier to maintain.
Before (ckrm-e19):
$ wc -l fs/rcfs/* include/linux/rcfs.h | tail -1
1953 total
After:
$ wc -l fs/rcfs/* include/linux/rcfs.h | tail -1
750 total
Notes (can skip and go to series directly)
1. The new code does not work with the classification engines so please don't
configure them while testing. Since rbce is on its way out of CKRM kernel code,
there was no point trying to make them work together.
2. This set of patches is NOT against the f0 development tree where classtypes
have been removed. I'll post another set of patches for that tree later. This
set's just for one to play with. Also, I didn't want all the work involved in
making socketclasses work to go to waste entirely - it exploits configfs
functionality in ways different from taskclasses and is hence, a supplement to
Documentation/configfs/configfs_example.c . If you're rather not wrap
your head around configfs, you can wait for the f0 patches.
3. The RCFS namespace in the code is largely retained for familiarity reasons.
The root of rcfs which used to be the mountpoint and hardcoded to "/rcfs",
is now called "rescontrol" and appears under the mount point of configfs i.e.
<configfs_mount_point>/rescontrol/taskclass
replaces
/rcfs/taskclass
Rest of the directory structure under "rescontrol" remains the same in this
set of patches (it might change for f0).
4. There may be some changes in functionality e.g chown cannot be done on the
virtual files. I'm yet to identify if this is a configfs bug or feature. But
all the regular usage of rcfs works for me.
As always, comments welcome.
--Shailabh
Series (please note that first three patches in the series will not be posted)
====
# from
http://prdownloads.sourceforge.net/ckrm/ckrm-e19-2613-single.patch?download
ckrm-e19-2613-single.patch
# from
http://oss.oracle.com/projects/ocfs2/dist/files/patches/2.6.13-rc7/2005-08-26/00_configfs.patch
00_configfs.patch
# Following patch, which won't be posted due to length, is the effect of doing
# rm fs/rcfs/* include/linux/rcfs.h
# in the source tree. Note that fs/Makefile, init/Kconfig of the older rcfs
# code is NOT removed.
#
rcfs-nuke.patch
# Here's the good stuff - building a configfs-based rcfs from scratch.
rconfigfs-init.patch
rconfigfs-class-attrs.patch
rconfigfs-virtual-files.patch
rconfigfs-taskclass.patch
rconfigfs-socketclass.patch
# Following patches are necessary but represent changes to "core" CKRM
# outside fs/rcfs/
rconfigfs-ckrm-replace-seq-file.patch
# Each controller needs to change, though very trivially. Add one such patch
# for each controller included.
rconfigfs-numtasks-replace-seq-file.patch
-------------------------------------------------------
SF.Net email is sponsored by:
Tame your development challenges with Apache's Geronimo App Server. Download
it for free - -and be entered to win a 42" plasma tv or your very own
Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php
_______________________________________________
ckrm-tech mailing list
https://lists.sourceforge.net/lists/listinfo/ckrm-tech