[GSOC] Bdbuf improvements

Joel Sherrill joel.sherrill at OARcorp.com
Fri Mar 30 14:34:17 UTC 2012


On 03/30/2012 05:01 AM, Sebastian Huber wrote:
> Hello Xiang Cui,
>
> it is good to hear that you are interested in this topic.  I think all RTEMS
> users with block devices will profit from changes in this area.
>
> On 03/29/2012 12:59 PM, Xiang Cui wrote:
> [...]
>> Last year I helped to add the file system POSIX compatibility test
>> suite to RTEMS.
> Thanks a lot, your tests were very helpful for my recent file system changes.
Agreed.  I only wish we had had more time to resolve the issues
you uncovered while you had time to be active.

Sebastian.. are there any issues outstanding with the
existing fstests? I haven't checked recently.
>> I have more free time than last summer, so I think
>> this project is OK for me. I just start to read the Block Device
>> Buffer Management source code. Any advice are welcomed. After
>> gathering the feedback, I will complete my proposal as soon as
>> possible.
> The most important part of the bdbuf documentation is the state machine here:
>
> http://www.rtems.org/onlinedocs/doxygen/cpukit/html/group__rtems__bdbuf.html#details
>
> This diagram is the specification.  If you need more states or change
> transitions, then do this first here.  With this diagram you can also show the
> correctness.
>
> There are several tests for the bdbuf:
>
> testsuites/libtests/block*
>
> The test testsuites/libtests/block05 tests the state machine.
>

This code is important and performance is important.

I don't know if it is listed in the project description but one of my
long time desires for RTEMS has been pluggable resource
scheduling algorithms. We now have pluggable CPU scheduling
algorithms. Having pluggable cache replacement algorithms
and disk access scheduling algorithms is in the same vein.

Just as preemptive priority based thread scheduling is the
right solution 90+% of the time, an algorithm like the
Adaptive Cache Replacement one is probably the right
solution most of the time. But these are embedded
systems with dedicated applications and usage patterns.
Perhaps in some applications, an algorithm with different
characteristics is a better choice.

So any work that makes the management algorithm
easily pluggable is desirable.

Disclaimer: My dissertation was on disk caching and disk
scheduling algorithms to avoid priority inversions. If you
want to avoid priority inversion, then your choice of
algorithm is different than if you solely focus on
minimizing cache misses.

-- 
Joel Sherrill, Ph.D.             Director of Research&   Development
joel.sherrill at OARcorp.com        On-Line Applications Research
Ask me about RTEMS: a free RTOS  Huntsville AL 35805
     Support Available             (256) 722-9985





More information about the users mailing list