Merge pull request #11530 from keszybz/journal-cache-trimming

Journal cache trimming
This commit is contained in:
Lennart Poettering
2019-01-26 13:55:55 +01:00
committed by GitHub
10 changed files with 99 additions and 17 deletions
+3 -4
View File
@@ -259,15 +259,14 @@ int prioq_reshuffle(Prioq *q, void *data, unsigned *idx) {
return 1;
}
void *prioq_peek(Prioq *q) {
void *prioq_peek_by_index(Prioq *q, unsigned idx) {
if (!q)
return NULL;
if (q->n_items <= 0)
if (idx >= q->n_items)
return NULL;
return q->items[0].data;
return q->items[idx].data;
}
void *prioq_pop(Prioq *q) {
+7 -1
View File
@@ -19,8 +19,14 @@ int prioq_put(Prioq *q, void *data, unsigned *idx);
int prioq_remove(Prioq *q, void *data, unsigned *idx);
int prioq_reshuffle(Prioq *q, void *data, unsigned *idx);
void *prioq_peek(Prioq *q) _pure_;
void *prioq_peek_by_index(Prioq *q, unsigned idx) _pure_;
static inline void *prioq_peek(Prioq *q) {
return prioq_peek_by_index(q, 0);
}
void *prioq_pop(Prioq *q);
#define PRIOQ_FOREACH_ITEM(q, p) \
for (unsigned _i = 0; (p = prioq_peek_by_index(q, _i)); _i++)
unsigned prioq_size(Prioq *q) _pure_;
bool prioq_isempty(Prioq *q) _pure_;
+5 -4
View File
@@ -201,13 +201,11 @@ int procfs_cpu_get_usage(nsec_t *ret) {
return 0;
}
int procfs_memory_get_current(uint64_t *ret) {
int procfs_memory_get(uint64_t *ret_total, uint64_t *ret_used) {
uint64_t mem_total = UINT64_MAX, mem_free = UINT64_MAX;
_cleanup_fclose_ FILE *f = NULL;
int r;
assert(ret);
f = fopen("/proc/meminfo", "re");
if (!f)
return -errno;
@@ -262,6 +260,9 @@ int procfs_memory_get_current(uint64_t *ret) {
if (mem_free > mem_total)
return -EINVAL;
*ret = (mem_total - mem_free) * 1024U;
if (ret_total)
*ret_total = mem_total * 1024U;
if (ret_used)
*ret_used = (mem_total - mem_free) * 1024U;
return 0;
}
+4 -1
View File
@@ -11,4 +11,7 @@ int procfs_tasks_get_current(uint64_t *ret);
int procfs_cpu_get_usage(nsec_t *ret);
int procfs_memory_get_current(uint64_t *ret);
int procfs_memory_get(uint64_t *ret_total, uint64_t *ret_used);
static inline int procfs_memory_get_used(uint64_t *ret) {
return procfs_memory_get(NULL, ret);
}