Displaying 12 results from an estimated 12 matches for "lru_set_size".
2019 Jan 01
0
[PATCH nbdkit v2 3/4] cache: Implement LRU structure.
...ISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#ifndef NBDKIT_LRU_H
+#define NBDKIT_LRU_H
+
+#include <stdbool.h>
+
+/* Initialize LRU. */
+extern void lru_init (void);
+
+/* Free the LRU. */
+extern void lru_free (void);
+
+/* Notify LRU that the virtual size has changed. */
+extern int lru_set_size (uint64_t new_size);
+
+/* Mark a block as recently accessed in the LRU structure. */
+extern void lru_set_recently_accessed (uint64_t blknum);
+
+/* Check if a block has been recently accessed. */
+extern bool lru_has_been_recently_accessed (uint64_t blknum);
+
+#endif /* NBDKIT_LRU_H */
diff --gi...
2019 Jan 03
0
[PATCH nbdkit v4 1/2] cache: Implement LRU structure.
...ISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#ifndef NBDKIT_LRU_H
+#define NBDKIT_LRU_H
+
+#include <stdbool.h>
+
+/* Initialize LRU. */
+extern void lru_init (void);
+
+/* Free the LRU. */
+extern void lru_free (void);
+
+/* Notify LRU that the virtual size has changed. */
+extern int lru_set_size (uint64_t new_size);
+
+/* Mark a block as recently accessed in the LRU structure. */
+extern void lru_set_recently_accessed (uint64_t blknum);
+
+/* Check if a block has been recently accessed. */
+extern bool lru_has_been_recently_accessed (uint64_t blknum);
+
+#endif /* NBDKIT_LRU_H */
diff --gi...
[PATCH nbdkit v3 0/2] cache: Implement cache-max-size and method of reclaiming space from the cache.
2019 Jan 03
3
[PATCH nbdkit v3 0/2] cache: Implement cache-max-size and method of reclaiming space from the cache.
Patch 1 is the same as last time, except for a minor comment fix.
Patch 2 should address everything that Eric mentioned in his review,
and has been retested.
Rich.
2019 Jan 03
4
[PATCH nbdkit v4 0/2] cache: Implement cache-max-size and method of
v3 was broken by a bad rebase, so let's forget about that one.
Compared to v2:
- Patch 1 is the same except for a minor comment change.
- Patch 2 splits the reclaim code into a separate file
(filters/cache/reclaim.c)
- Addressed Eric's comments from his review of v2.
- Retested on Linux and FreeBSD.
2019 Jan 04
5
[PATCH nbdkit v5 3/3] cache: Implement cache-max-size and cache space reclaim.
v4:
https://www.redhat.com/archives/libguestfs/2019-January/msg00032.html
v5:
- Now we set the block size at run time.
I'd like to say that I was able to test this change, but
unfortunately I couldn't find any easy way to create a filesystem
on x86-64 with a block size > 4K. Ext4 doesn't support it at all,
and XFS doesn't support block size > page size (and I
2019 Jan 01
7
[PATCH nbdkit v2 0/4] cache: Implement cache-max-size etc.
These are essentially identical to what was previously posted as
patches 6/9 through 9/9 here:
https://www.redhat.com/archives/libguestfs/2018-December/msg00145.html
except that it has been rebased onto the current git master and
retested thoroughly.
Rich.
2018 Dec 28
12
[PATCH nbdkit 0/9] cache: Implement cache-max-size and method of reclaiming space from the cache.
This patch series enhances the cache filter in a few ways, primarily
adding a "cache-on-read" feature (similar to qemu's copyonread); and
adding the ability to limit the cache size and the antecedent of that
which is having a method to reclaim cache blocks.
As the cache is stored as a sparse temporary file, reclaiming cache
blocks simply means punching holes in the temporary file.
2018 Dec 28
0
[PATCH nbdkit 9/9] cache: Implement cache-max-size and method of reclaiming space from the cache.
...= cache_config_complete,
.open = cache_open,
.prepare = cache_prepare,
.get_size = cache_get_size,
diff --git a/filters/cache/lru.c b/filters/cache/lru.c
index 60cf379..8159040 100644
--- a/filters/cache/lru.c
+++ b/filters/cache/lru.c
@@ -109,8 +109,11 @@ lru_set_size (uint64_t new_size)
if (bitmap_resize (&bm[1], new_size) == -1)
return -1;
- /* XXX Choose this better. */
- N = MAX (new_size / BLKSIZE / 4, 100);
+ if (max_size != -1)
+ /* Make the threshold about 1/4 the maximum size of the cache. */
+ N = MAX (max_size / BLKSIZE / 4, 100...
[PATCH nbdkit v2 4/4] cache: Implement cache-max-size and method of reclaiming space from the cache.
2019 Jan 01
0
[PATCH nbdkit v2 4/4] cache: Implement cache-max-size and method of reclaiming space from the cache.
...= cache_config_complete,
.open = cache_open,
.prepare = cache_prepare,
.get_size = cache_get_size,
diff --git a/filters/cache/lru.c b/filters/cache/lru.c
index 60cf379..8159040 100644
--- a/filters/cache/lru.c
+++ b/filters/cache/lru.c
@@ -109,8 +109,11 @@ lru_set_size (uint64_t new_size)
if (bitmap_resize (&bm[1], new_size) == -1)
return -1;
- /* XXX Choose this better. */
- N = MAX (new_size / BLKSIZE / 4, 100);
+ if (max_size != -1)
+ /* Make the threshold about 1/4 the maximum size of the cache. */
+ N = MAX (max_size / BLKSIZE / 4, 100...
[PATCH nbdkit v3 2/2] cache: Implement cache-max-size and method of reclaiming space from the cache.
2019 Jan 03
0
[PATCH nbdkit v3 2/2] cache: Implement cache-max-size and method of reclaiming space from the cache.
...crement c0 (c0 counts the number of bits set in bm[0]). If
+ * c0 == N/2 then we swap the two bitmaps, clear bm[0], and reset c0
+ * to 0.
*
* To check if a block has been accessed within the previous N
* distinct accesses, we simply have to check both bitmaps. If it is
@@ -109,8 +110,11 @@ lru_set_size (uint64_t new_size)
if (bitmap_resize (&bm[1], new_size) == -1)
return -1;
- /* XXX Choose this better. */
- N = MAX (new_size / BLKSIZE / 4, 100);
+ if (max_size != -1)
+ /* Make the threshold about 1/4 the maximum size of the cache. */
+ N = MAX (max_size / BLKSIZE / 4, 100...
[PATCH nbdkit v4 2/2] cache: Implement cache-max-size and method of reclaiming space from the cache.
2019 Jan 03
0
[PATCH nbdkit v4 2/2] cache: Implement cache-max-size and method of reclaiming space from the cache.
...= cache_config_complete,
.open = cache_open,
.prepare = cache_prepare,
.get_size = cache_get_size,
diff --git a/filters/cache/lru.c b/filters/cache/lru.c
index c828968..2f379d1 100644
--- a/filters/cache/lru.c
+++ b/filters/cache/lru.c
@@ -110,8 +110,11 @@ lru_set_size (uint64_t new_size)
if (bitmap_resize (&bm[1], new_size) == -1)
return -1;
- /* XXX Choose this better. */
- N = MAX (new_size / BLKSIZE / 4, 100);
+ if (max_size != -1)
+ /* Make the threshold about 1/4 the maximum size of the cache. */
+ N = MAX (max_size / BLKSIZE / 4, 100...
2019 Jan 04
0
[PATCH nbdkit v5 3/3] cache: Implement cache-max-size and cache space reclaim.
...lru_init (void)
{
- bitmap_init (&bm[0], BLKSIZE, 1 /* bits per block */);
- bitmap_init (&bm[1], BLKSIZE, 1 /* bits per block */);
+ bitmap_init (&bm[0], blksize, 1 /* bits per block */);
+ bitmap_init (&bm[1], blksize, 1 /* bits per block */);
}
void
@@ -109,8 +109,11 @@ lru_set_size (uint64_t new_size)
if (bitmap_resize (&bm[1], new_size) == -1)
return -1;
- /* XXX Choose this better. */
- N = MAX (new_size / BLKSIZE / 4, 100);
+ if (max_size != -1)
+ /* Make the threshold about 1/4 the maximum size of the cache. */
+ N = MAX (max_size / blksize / 4, 100...