am b33118ac
: am 2557cd21
: am 8b448629
: am 16092b7a
: Merge "fs_mgr: allow for zramsize to be specified as percentage of total memory" into lmp-mr1-dev
* commit 'b33118ac7603b459d690f524e0c64161f8ab5c0d': fs_mgr: allow for zramsize to be specified as percentage of total memory
This commit is contained in:
commit
355bd1fd98
1 changed files with 21 additions and 1 deletions
|
@ -15,10 +15,12 @@
|
|||
*/
|
||||
|
||||
#include <ctype.h>
|
||||
#include <errno.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <sys/mount.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#include "fs_mgr_priv.h"
|
||||
|
||||
|
@ -76,6 +78,19 @@ static struct flag_list fs_mgr_flags[] = {
|
|||
{ 0, 0 },
|
||||
};
|
||||
|
||||
static uint64_t calculate_zram_size(unsigned int percentage)
|
||||
{
|
||||
uint64_t total;
|
||||
|
||||
total = sysconf(_SC_PHYS_PAGES);
|
||||
total *= percentage;
|
||||
total /= 100;
|
||||
|
||||
total *= sysconf(_SC_PAGESIZE);
|
||||
|
||||
return total;
|
||||
}
|
||||
|
||||
static int parse_flags(char *flags, struct flag_list *fl,
|
||||
struct fs_mgr_flag_values *flag_vals,
|
||||
char *fs_options, int fs_options_len)
|
||||
|
@ -157,7 +172,12 @@ static int parse_flags(char *flags, struct flag_list *fl,
|
|||
} else if ((fl[i].flag == MF_SWAPPRIO) && flag_vals) {
|
||||
flag_vals->swap_prio = strtoll(strchr(p, '=') + 1, NULL, 0);
|
||||
} else if ((fl[i].flag == MF_ZRAMSIZE) && flag_vals) {
|
||||
flag_vals->zram_size = strtoll(strchr(p, '=') + 1, NULL, 0);
|
||||
int is_percent = !!strrchr(p, '%');
|
||||
unsigned int val = strtoll(strchr(p, '=') + 1, NULL, 0);
|
||||
if (is_percent)
|
||||
flag_vals->zram_size = calculate_zram_size(val);
|
||||
else
|
||||
flag_vals->zram_size = val;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue