Today I made the first RedirFS performance test. It was just the Linux Vanila Kernel 2.6.19 compilation but I think that it is enough for the first sight on the RedirFS overhead. Following operations were used in the dummyflt. As you can see both pre and post callbacks are used.
static struct rfs_op_info op_info[] = {
{RFS_REG_IOP_PERMISSION, dummyflt_fun, dummyflt_fun},
{RFS_DIR_IOP_PERMISSION, dummyflt_fun, dummyflt_fun},
{RFS_REG_FOP_OPEN, dummyflt_fun, dummyflt_fun},
{RFS_DIR_FOP_OPEN, dummyflt_fun, dummyflt_fun},
{RFS_REG_FOP_RELEASE, dummyflt_fun, dummyflt_fun},
{RFS_DIR_FOP_RELEASE, dummyflt_fun, dummyflt_fun},
{RFS_DIR_IOP_MKDIR, dummyflt_fun, dummyflt_fun},
{RFS_DIR_IOP_LOOKUP, dummyflt_fun, dummyflt_fun},
{RFS_DIR_IOP_CREATE, dummyflt_fun, dummyflt_fun},
{RFS_REG_DOP_D_IPUT, dummyflt_fun, dummyflt_fun},
{RFS_DIR_DOP_D_IPUT, dummyflt_fun, dummyflt_fun},
{RFS_OP_END, NULL, NULL}
};
The dummyflt_fun does nothing just returns RFS_CONTINUE.
Tested on Linux debian 2.6.19 #1 SMP PREEMPT i686 GNU/Linux, Intel(R) Pentium(R) 4 CPU 3.00GHz HT, 512MB RAM
Run
- make mrproper
- make menuconfig (default configuration)
- time make
| | | with RedirFS | | | without RedirFS | |
|
| runs | 1st run | 2nd run | 3rd run | 1st run | 2nd run | 3rd run |
|
| real | 13m43.858s | 13m35.704s | 13m35.896s | 13m36.456s | 13m27.403s | 13m28.546s
|
| user | 13m2.105s | 13m2.017s | 13m2.969s | 13m0.449s | 13m0.653s | 13m0.857s
|
| sys | 1m15.525s | 1m16.441s | 1m15.533s | 1m9.248s | 1m9.772s | 1m9.872s |