search for: zs_full

Displaying 13 results from an estimated 13 matches for "zs_full".

2016 Mar 30
0
[PATCH v3 06/16] zsmalloc: squeeze inuse into page->mapping
...TA (PAGE_SIZE >> 8) +#define ZS_SIZE_CLASS_DELTA (PAGE_SIZE >> CLASS_BITS) /* * We do not maintain any list for completely empty or full pages @@ -155,7 +161,7 @@ enum fullness_group { ZS_ALMOST_EMPTY, _ZS_NR_FULLNESS_GROUPS, - ZS_EMPTY, + ZS_EMPTY = _ZS_NR_FULLNESS_GROUPS, ZS_FULL }; @@ -263,14 +269,11 @@ struct zs_pool { #endif }; -/* - * A zspage's class index and fullness group - * are encoded in its (first)page->mapping - */ -#define CLASS_IDX_BITS 28 -#define FULLNESS_BITS 4 -#define CLASS_IDX_MASK ((1 << CLASS_IDX_BITS) - 1) -#define FULLNESS_MASK (...
2016 Mar 12
1
[PATCH v1 09/19] zsmalloc: keep max_object in size_class
...first_page); > > inuse = first_page->inuse; > - max_objects = first_page->objects; > + objs_per_zspage = class->objs_per_zspage; > > if (inuse == 0) > fg = ZS_EMPTY; > - else if (inuse == max_objects) > + else if (inuse == objs_per_zspage) > fg = ZS_FULL; > - else if (inuse <= 3 * max_objects / fullness_threshold_frac) > + else if (inuse <= 3 * objs_per_zspage / fullness_threshold_frac) > fg = ZS_ALMOST_EMPTY; > else > fg = ZS_ALMOST_FULL; > @@ -723,7 +723,7 @@ static enum fullness_group fix_fullness_group(struct...
2016 Mar 12
1
[PATCH v1 09/19] zsmalloc: keep max_object in size_class
...first_page); > > inuse = first_page->inuse; > - max_objects = first_page->objects; > + objs_per_zspage = class->objs_per_zspage; > > if (inuse == 0) > fg = ZS_EMPTY; > - else if (inuse == max_objects) > + else if (inuse == objs_per_zspage) > fg = ZS_FULL; > - else if (inuse <= 3 * max_objects / fullness_threshold_frac) > + else if (inuse <= 3 * objs_per_zspage / fullness_threshold_frac) > fg = ZS_ALMOST_EMPTY; > else > fg = ZS_ALMOST_FULL; > @@ -723,7 +723,7 @@ static enum fullness_group fix_fullness_group(struct...
2016 Mar 11
0
[PATCH v1 09/19] zsmalloc: keep max_object in size_class
...g; VM_BUG_ON_PAGE(!is_first_page(first_page), first_page); inuse = first_page->inuse; - max_objects = first_page->objects; + objs_per_zspage = class->objs_per_zspage; if (inuse == 0) fg = ZS_EMPTY; - else if (inuse == max_objects) + else if (inuse == objs_per_zspage) fg = ZS_FULL; - else if (inuse <= 3 * max_objects / fullness_threshold_frac) + else if (inuse <= 3 * objs_per_zspage / fullness_threshold_frac) fg = ZS_ALMOST_EMPTY; else fg = ZS_ALMOST_FULL; @@ -723,7 +723,7 @@ static enum fullness_group fix_fullness_group(struct size_class *class, enum fullnes...
2016 Mar 30
0
[PATCH v3 05/16] zsmalloc: keep max_object in size_class
...g; VM_BUG_ON_PAGE(!is_first_page(first_page), first_page); inuse = first_page->inuse; - max_objects = first_page->objects; + objs_per_zspage = class->objs_per_zspage; if (inuse == 0) fg = ZS_EMPTY; - else if (inuse == max_objects) + else if (inuse == objs_per_zspage) fg = ZS_FULL; - else if (inuse <= 3 * max_objects / fullness_threshold_frac) + else if (inuse <= 3 * objs_per_zspage / fullness_threshold_frac) fg = ZS_ALMOST_EMPTY; else fg = ZS_ALMOST_FULL; @@ -728,7 +728,7 @@ static enum fullness_group fix_fullness_group(struct size_class *class, enum fullnes...
2016 Mar 14
0
[PATCH v1 09/19] zsmalloc: keep max_object in size_class
...first_page->inuse; > >- max_objects = first_page->objects; > >+ objs_per_zspage = class->objs_per_zspage; > > > > if (inuse == 0) > > fg = ZS_EMPTY; > >- else if (inuse == max_objects) > >+ else if (inuse == objs_per_zspage) > > fg = ZS_FULL; > >- else if (inuse <= 3 * max_objects / fullness_threshold_frac) > >+ else if (inuse <= 3 * objs_per_zspage / fullness_threshold_frac) > > fg = ZS_ALMOST_EMPTY; > > else > > fg = ZS_ALMOST_FULL; > >@@ -723,7 +723,7 @@ static enum fullness_group fi...
2016 Mar 11
0
[PATCH v1 05/19] zsmalloc: use first_page rather than page
...nsert_zspage(struct page *page, struct size_class *class, head = &class->fullness_list[fullness]; if (!*head) { - *head = page; + *head = first_page; return; } @@ -670,21 +672,21 @@ static void insert_zspage(struct page *page, struct size_class *class, * We want to see more ZS_FULL pages and less almost * empty/full. Put pages with higher ->inuse first. */ - list_add_tail(&page->lru, &(*head)->lru); - if (page->inuse >= (*head)->inuse) - *head = page; + list_add_tail(&first_page->lru, &(*head)->lru); + if (first_page->inuse &g...
2016 Mar 11
31
[PATCH v1 00/19] Support non-lru page migration
Recently, I got many reports about perfermance degradation in embedded system(Android mobile phone, webOS TV and so on) and failed to fork easily. The problem was fragmentation caused by zram and GPU driver pages. Their pages cannot be migrated so compaction cannot work well, either so reclaimer ends up shrinking all of working set pages. It made system very slow and even to fail to fork easily.
2016 Mar 11
31
[PATCH v1 00/19] Support non-lru page migration
Recently, I got many reports about perfermance degradation in embedded system(Android mobile phone, webOS TV and so on) and failed to fork easily. The problem was fragmentation caused by zram and GPU driver pages. Their pages cannot be migrated so compaction cannot work well, either so reclaimer ends up shrinking all of working set pages. It made system very slow and even to fail to fork easily.
2016 Mar 21
22
[PATCH v2 00/18] Support non-lru page migration
Recently, I got many reports about perfermance degradation in embedded system(Android mobile phone, webOS TV and so on) and failed to fork easily. The problem was fragmentation caused by zram and GPU driver pages. Their pages cannot be migrated so compaction cannot work well, either so reclaimer ends up shrinking all of working set pages. It made system very slow and even to fail to fork easily.
2016 Mar 21
22
[PATCH v2 00/18] Support non-lru page migration
Recently, I got many reports about perfermance degradation in embedded system(Android mobile phone, webOS TV and so on) and failed to fork easily. The problem was fragmentation caused by zram and GPU driver pages. Their pages cannot be migrated so compaction cannot work well, either so reclaimer ends up shrinking all of working set pages. It made system very slow and even to fail to fork easily.
2016 Mar 30
33
[PATCH v3 00/16] Support non-lru page migration
Recently, I got many reports about perfermance degradation in embedded system(Android mobile phone, webOS TV and so on) and failed to fork easily. The problem was fragmentation caused by zram and GPU driver pages. Their pages cannot be migrated so compaction cannot work well, either so reclaimer ends up shrinking all of working set pages. It made system very slow and even to fail to fork easily.
2016 Mar 30
33
[PATCH v3 00/16] Support non-lru page migration
Recently, I got many reports about perfermance degradation in embedded system(Android mobile phone, webOS TV and so on) and failed to fork easily. The problem was fragmentation caused by zram and GPU driver pages. Their pages cannot be migrated so compaction cannot work well, either so reclaimer ends up shrinking all of working set pages. It made system very slow and even to fail to fork easily.