[rtems commit] libblock: Fix read-ahead trigger and next update

Sebastian Huber sebh at rtems.org
Mon Jul 2 15:00:16 UTC 2012


Module:    rtems
Branch:    master
Commit:    71092f7c9465ec36d2243dc588ce8429cfdee294
Changeset: http://git.rtems.org/rtems/commit/?id=71092f7c9465ec36d2243dc588ce8429cfdee294

Author:    Sebastian Huber <sebastian.huber at embedded-brains.de>
Date:      Mon Jul  2 16:58:01 2012 +0200

libblock: Fix read-ahead trigger and next update

The previous version was sub-optimal for read-ahead transfer counts of
one.

---

 cpukit/libblock/src/bdbuf.c        |    2 +-
 testsuites/libtests/block13/init.c |   10 +++++-----
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/cpukit/libblock/src/bdbuf.c b/cpukit/libblock/src/bdbuf.c
index 77d8555..3415060 100644
--- a/cpukit/libblock/src/bdbuf.c
+++ b/cpukit/libblock/src/bdbuf.c
@@ -3027,7 +3027,7 @@ rtems_bdbuf_read_ahead_task (rtems_task_argument arg)
           if (transfer_count >= max_transfer_count)
           {
             transfer_count = max_transfer_count;
-            dd->read_ahead.trigger = block + (transfer_count + 1) / 2;
+            dd->read_ahead.trigger = block + transfer_count / 2;
             dd->read_ahead.next = block + transfer_count;
           }
           else
diff --git a/testsuites/libtests/block13/init.c b/testsuites/libtests/block13/init.c
index cd62e8b..267e4ec 100644
--- a/testsuites/libtests/block13/init.c
+++ b/testsuites/libtests/block13/init.c
@@ -42,7 +42,7 @@ static const int action_sequence [READ_COUNT] = {
   RESET_CACHE,
   7, 8,
   RESET_CACHE,
-  6, 7, 10
+  6, 7, 9
 };
 
 #define UNUSED_LINE { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
@@ -52,12 +52,12 @@ static const int expected_block_access_counts [READ_COUNT] [BLOCK_COUNT] = {
    { 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0 },
    { 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0 },
-   { 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0 },
    { 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0 },
    { 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0 },
    { 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0 },
    { 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
    { 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
+   { 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
    UNUSED_LINE,
    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 },
    UNUSED_LINE,
@@ -78,7 +78,7 @@ static const int expected_block_access_counts [READ_COUNT] [BLOCK_COUNT] = {
 #define TRIGGER_AFTER_RESET RTEMS_DISK_READ_AHEAD_NO_TRIGGER
 
 static const rtems_blkdev_bnum trigger [READ_COUNT] = {
-  1, 3, 6, 6, 6, 9, 9, 9, NO_TRIGGER, NO_TRIGGER,
+  1, 3, 5, 5, 8, 8, 8, NO_TRIGGER, NO_TRIGGER, NO_TRIGGER,
   TRIGGER_AFTER_RESET,
   11,
   TRIGGER_AFTER_RESET,
@@ -88,13 +88,13 @@ static const rtems_blkdev_bnum trigger [READ_COUNT] = {
   TRIGGER_AFTER_RESET,
   8, NO_TRIGGER,
   TRIGGER_AFTER_RESET,
-  7, 10, NO_TRIGGER
+  7, 9, NO_TRIGGER
 };
 
 #define NOT_CHANGED_BY_RESET(i) (i)
 
 static const rtems_blkdev_bnum next [READ_COUNT] = {
-  2, 4, 7, 7, 7, 10, 10, 10, 10, 10,
+  2, 4, 7, 7, 10, 10, 10, 10, 10, 10,
   NOT_CHANGED_BY_RESET(10),
   12,
   NOT_CHANGED_BY_RESET(12),




More information about the vc mailing list