summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2012-07-02 16:58:01 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2012-07-02 17:03:28 +0200
commit71092f7c9465ec36d2243dc588ce8429cfdee294 (patch)
tree4292817d48f0ea2db081b4c7dd116aeabe9c693f
parentlibcsupport: C++ compatibility (diff)
downloadrtems-71092f7c9465ec36d2243dc588ce8429cfdee294.tar.bz2
libblock: Fix read-ahead trigger and next update
The previous version was sub-optimal for read-ahead transfer counts of one.
-rw-r--r--cpukit/libblock/src/bdbuf.c2
-rw-r--r--testsuites/libtests/block13/init.c10
2 files changed, 6 insertions, 6 deletions
diff --git a/cpukit/libblock/src/bdbuf.c b/cpukit/libblock/src/bdbuf.c
index 77d8555c05..34150600bc 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 cd62e8b36e..267e4ec34f 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),