| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
In case the read-ahead task is not configured we must not send a wake-up
event. This would send the wake-up event to the executing task.
We must send the wake-up event only in case the request list changes
from empty to non-empty. Since otherwise we may send a false transfer
event.
|
|
|
|
|
|
| |
In case the read-ahead task has a higher priority than the reading task,
this ensures that the read-ahead request is issued after the read miss
is serviced.
|
|
|
|
|
| |
The previous version was sub-optimal for read-ahead transfer counts of
one.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
This allows addtion of per disk statistics for example.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Read-ahead requests were previously executed in the context of the
reading task. This blocks the reading task until the complete read
with read-ahead transfer is finished. A read-ahead task is introduced
to off-load the read-ahead transfer. This allows the reading task to
work with the requested block more quickly. The read-ahead is triggered
after two misses of ascending consecutive blocks or a read hit of a
block read by the most-recent read-ahead transfer. The read-ahead
feature is configurable and can be disabled.
|
| |
|
|
|
|
| |
Move rtems_bdbuf_get_media_block() call inside the bdbuf lock.
|
|
|
|
|
| |
Add block_count and media_blocks_per_block to rtems_disk_device. Add
and use rtems_disk_init_phys() and rtems_disk_init_log().
|
| |
|
|
|
|
| |
This allows addtion of per disk statistics for example.
|
|
|
|
|
|
| |
The task stack size for the swap-out and worker tasks is now
configurable. The bdbuf task resources are now included in the work
space size estimate.
|
| |
|
| |
|
|
|
|
|
|
|
| |
It is now the responsibility of the read() and write() handler to update
the offset field of the IO descriptor (rtems_libio_t). This change
makes it possible to protect the IO descriptor from concurrent access by
per file locks.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Script does what is expected and tries to do it as
smartly as possible.
+ remove occurrences of two blank comment lines
next to each other after Id string line removed.
+ remove entire comment blocks which only exited to
contain CVS Ids
+ If the processing left a blank line at the top of
a file, it was removed.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
According to POSIX the lseek() function shall not, by itself, extend the
size of a file.
Remove the size field of rtems_libio_t. A file has only one size but
may have multiple open file descriptors. Thus a file size field in the
file descriptor may lead to inconsistencies.
New default handlers rtems_filesystem_default_lseek_file() and
rtems_filesystem_default_lseek_directory().
|
|
|
|
|
| |
See http://www.rtems.org/pipermail/rtems-devel/2012-May/001006.html
for details.
|
| |
|
|
|
|
|
| |
Check the availablity of a recycle destination segment only when it is
necessary to avoid missing resycle source segment erasures.
|
|
|
|
|
|
| |
Do not use the unavailable block count as the erased blocks starvation
threshold. Use instead the block count of the largest segment. This
improves the starvation resolution gain of available blocks.
|
|
|
|
|
|
|
|
| |
The new function rtems_bdbuf_set_block_size() must be used to set the
block size of a disk device. It will check if the block size is valid
and set the new fields block_to_media_block_shift and bds_per_group of
the rtems_disk_device structure. This helps to avoid complex arithmetic
operations in the block device buffer get and read path.
|
|
|
|
|
| |
Calling the bdbuf API functions in the not configured state is now a
fatal error.
|
|
|
|
| |
The transfer chain is accessed by at most one thread at a time.
|
|
|
|
| |
The chains are protected by the bdbuf cache lock.
|
|
|
|
|
| |
Change the ioctl_return type of rtems_libio_ioctl_args_t to match the
ioctl() return value type.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
The compaction process needs erased blocks. It is only possible to
erase an entire segment. Thus in order to make a progress we always
need enough erased blocks to empty a used or available segment which can
be erased in turn. A (possibly the worst case) lower bound of erased
blocks is the block count of the largest segment. The number of
unavailable blocks specified by the configuration will be used to
determine the erase blocks starvation situation. The number of
unavailable blocks must be greater than or equal to the number of blocks
in the largest segment.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
New functions
o rtems_blkdev_create(), and
o rtems_blkdev_create_partition().
New test libtests/block11.
|
| |
|
|
|
|
|
|
|
| |
Add
o rtems_disk_get_block_size(),
o rtems_disk_get_block_begin(), and
o rtems_disk_get_block_count().
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The functions
o rtems_bdbuf_get(),
o rtems_bdbuf_read(),
o rtems_bdbuf_syncdev(), and
o rtems_bdbuf_purge_dev(),
use now the disk device instead of the device identifier. This makes
bdbuf independent of rtems_disk_obtain() and rtems_disk_release(). It
is the responsiblity of the file system to obtain the disk device. This
also reduces the overhead to get a buffer.
The key for the AVL tree uses now the disk device instead of the device
identifier. The pointer is interpreted as an unsigned integer. This
reduces the memory overhead and makes the comparison operation a bit
faster.
Removed function rtems_bdbuf_purge_major(). This function was too
destructive and could have unpredictable side effects.
|
| |
|
|
|
|
| |
All these variables are protected by the bdbuf cache mutex.
|
|
|
|
|
| |
Discard the extended partitions after evaluation. This prevents logical
disks that contain other logical disks.
|
| |
|
| |
|