Joe Thornber
e801cc607b
[block_manager] Hard code block size to 4k.
...
We're never going to use anything other than 4k, and by hard coding it we
avoid making block_manager a template.
2020-04-30 14:30:01 +01:00
Ming-Hung Tsai
955e11bc28
[block-cache] fix potential file descriptor leak
...
Encapsulate file descriptor into an object, to ensure that an fd will be
closed properly while exception raised, e.g., the block_cache throws
exception during the block_manager's construction.
2020-02-23 15:41:16 +08:00
Joe Thornber
666a32da9c
[block-cache] remove spurious FIXME
2017-08-14 14:12:05 +01:00
Joe Thornber
da3f9ca476
[block-cache] tidy hit/miss tracking
2017-08-14 14:11:53 +01:00
Joe Thornber
0a47ad5a85
[block-cache] remove BF_PREVIOUSLY_DIRTY and improve nr_dirty_ accounting.
2017-08-14 13:44:21 +01:00
Joe Thornber
a45ffd896a
[block-cache] writeback could get stuck in a loop
...
If a block had a non zero ref count.
2017-08-14 10:40:41 +01:00
Joe Thornber
dfd066e59e
[block-cache] remove unused var
2017-08-14 10:34:59 +01:00
Joe Thornber
4489a9bae6
[block-cache] reverse earlier patch which took out manual counts for
...
nr_dirty etc.
The block list type doesn't have a constant time size() method.
2017-08-14 10:13:32 +01:00
Joe Thornber
0a06e4b21b
[block-cache] Remove nr_dirty_ and nr_io_pending_.
...
Better to use the size of the relevant list.
2017-07-24 16:08:49 +01:00
Joe Thornber
2c6278ed4b
[block_cache] Be better about flushing dirty blocks on demand.
...
Dirty blocks could prevent a clean lock being given. Patch from mingus.
2017-07-24 15:35:10 +01:00
Joe Thornber
803b2f3a40
Merge branch 'v0.7-devel'
...
Conflicts:
VERSION
2017-03-08 11:05:50 -05:00
Ming-Hung Tsai
6c1be8d6fa
[block-cache] Fix error handling in reading libaio events
...
io_event::res is a signed int64 in kernel, but libaio defines it
as unsigned long. We should cast it to a signed value.
2016-10-06 23:42:27 +08:00
Joe Thornber
e5f969817e
[block cache] improve exception message
2016-06-14 14:27:22 +01:00
Joe Thornber
286f70ceac
Merge remote-tracking branch 'remotes/github-m-h-tsai/v0.6.2-repairtool' into 2016-02-29-mingus-merge
...
Conflicts:
Makefile.in
VERSION
thin-provisioning/commands.cc
thin-provisioning/commands.h
thin-provisioning/thin_delta.cc
2016-02-29 10:29:28 +00:00
Ming-Hung Tsai
11cd796652
Show the block address if block_cache::get() failed
2016-02-27 15:04:08 +08:00
Joe Thornber
a5a53648c9
Merge branch '2015-08-19-thin-show-duplicates' into merge-thin-ls
...
Conflicts:
Makefile.in
block-cache/block_cache.h
main.cc
thin-provisioning/commands.h
2016-02-24 14:31:51 +00:00
Joe Thornber
767c39cf71
[build] switch to c++11
...
Conflicts:
Makefile.in
chunker/cache_stream.cc
chunker/cache_stream.h
thin-provisioning/thin_archive.cc
thin-provisioning/thin_show_duplicates.cc
unit-tests/Makefile.in
2016-02-16 16:45:44 +00:00
Joe Thornber
639af9c3bf
[block-cache] convert to use boost::intrusive rather than kernel style lists.
...
Major change, do not release until a lot of testing has been done.
Conflicts:
block-cache/block_cache.h
2016-02-16 16:18:13 +00:00
Joe Thornber
b493a30b65
[block-cache] tweak when validators are swapped
...
Makes it more consitent in the face of exceptions
2014-08-21 14:23:14 +01:00
Joe Thornber
6f760ccd87
[block-cache] When changing validators the new validator check fn was only being called if the block was dirty.
2014-08-21 14:22:14 +01:00
Joe Thornber
b5a9cd6043
[block-cache] Create just one noop_validator
...
No need to create a separate one for each block.
2014-08-21 14:20:36 +01:00
Joe Thornber
4799becb01
[block-cache] fix leaking validators
...
The memory for the blocks is explicitly managed, and the destructors
for the blocks wasn't being called.
2014-08-21 14:19:36 +01:00
Joe Thornber
0d3942cae8
[block-manager] ensure the superblock cannot be taken concurrently with any other lock.
2014-08-21 12:18:05 +01:00
Joe Thornber
ad38cfe9c9
[block cache] Comment out the statistics output for now
2014-08-12 10:15:14 +01:00
Joe Thornber
48c6dc0762
Flush the block cache stats when they're complete
2014-08-05 14:53:03 +01:00
Joe Thornber
f534664f96
Add stats to block cache and remove the info fn
2014-07-31 12:18:01 +01:00
Joe Thornber
eee9004354
whitespace
2014-07-30 12:27:33 +01:00
Joe Thornber
a99d6896a8
Fix a bug in the block cache read path.
2014-07-29 13:41:45 +01:00
Joe Thornber
f06a2673c5
wip
2014-07-29 11:34:26 +01:00
Joe Thornber
d482a76bda
Use placement new to initialise the blocks
2014-07-28 14:32:33 +01:00
Joe Thornber
840be1b6c9
wip
2014-07-28 14:13:28 +01:00
Joe Thornber
11469a2fda
Beginning to work
2014-07-25 16:14:24 +01:00
Joe Thornber
7e870ea5a6
start removing block_manager<>::block
2014-07-25 14:46:51 +01:00
Joe Thornber
b32908d5c2
work in progress
2014-07-25 10:35:04 +01:00
Joe Thornber
d9040949fc
forgot block_cache itself
2014-07-22 16:43:44 +01:00