search for: init_zspage

Displaying 20 results from an estimated 27 matches for "init_zspage".

2016 Mar 12
1
[PATCH v1 13/19] zsmalloc: factor page chain functionality out
...++++++++++++++++++++++++++++++++------------------------- > 1 file changed, 45 insertions(+), 33 deletions(-) > > diff --git a/mm/zsmalloc.c b/mm/zsmalloc.c > index bfc6a048afac..f86f8aaeb902 100644 > --- a/mm/zsmalloc.c > +++ b/mm/zsmalloc.c > @@ -977,7 +977,9 @@ static void init_zspage(struct size_class *class, struct page *first_page) > unsigned long off = 0; > struct page *page = first_page; > > - VM_BUG_ON_PAGE(!is_first_page(first_page), first_page); > + first_page->freelist = NULL; > + INIT_LIST_HEAD(&first_page->lru); > + set_zspage_inus...
2016 Mar 12
1
[PATCH v1 13/19] zsmalloc: factor page chain functionality out
...++++++++++++++++++++++++++++++++------------------------- > 1 file changed, 45 insertions(+), 33 deletions(-) > > diff --git a/mm/zsmalloc.c b/mm/zsmalloc.c > index bfc6a048afac..f86f8aaeb902 100644 > --- a/mm/zsmalloc.c > +++ b/mm/zsmalloc.c > @@ -977,7 +977,9 @@ static void init_zspage(struct size_class *class, struct page *first_page) > unsigned long off = 0; > struct page *page = first_page; > > - VM_BUG_ON_PAGE(!is_first_page(first_page), first_page); > + first_page->freelist = NULL; > + INIT_LIST_HEAD(&first_page->lru); > + set_zspage_inus...
2016 Mar 11
0
[PATCH v1 07/19] zsmalloc: reordering function parameter
...t_page, class, newfg); + remove_zspage(class, currfg, first_page); + insert_zspage(class, newfg, first_page); set_zspage_mapping(first_page, class_idx, newfg); out: @@ -910,7 +912,7 @@ static void free_zspage(struct page *first_page) } /* Initialize a newly allocated zspage */ -static void init_zspage(struct page *first_page, struct size_class *class) +static void init_zspage(struct size_class *class, struct page *first_page) { unsigned long off = 0; struct page *page = first_page; @@ -998,7 +1000,7 @@ static struct page *alloc_zspage(struct size_class *class, gfp_t flags) prev_page = pa...
2016 Mar 11
0
[PATCH v1 13/19] zsmalloc: factor page chain functionality out
....org> --- mm/zsmalloc.c | 78 ++++++++++++++++++++++++++++++++++------------------------- 1 file changed, 45 insertions(+), 33 deletions(-) diff --git a/mm/zsmalloc.c b/mm/zsmalloc.c index bfc6a048afac..f86f8aaeb902 100644 --- a/mm/zsmalloc.c +++ b/mm/zsmalloc.c @@ -977,7 +977,9 @@ static void init_zspage(struct size_class *class, struct page *first_page) unsigned long off = 0; struct page *page = first_page; - VM_BUG_ON_PAGE(!is_first_page(first_page), first_page); + first_page->freelist = NULL; + INIT_LIST_HEAD(&first_page->lru); + set_zspage_inuse(first_page, 0); while (page)...
2016 Mar 30
0
[PATCH v3 10/16] zsmalloc: factor page chain functionality out
....org> --- mm/zsmalloc.c | 80 ++++++++++++++++++++++++++++++++++------------------------- 1 file changed, 46 insertions(+), 34 deletions(-) diff --git a/mm/zsmalloc.c b/mm/zsmalloc.c index d4d33a819832..14bcc741eead 100644 --- a/mm/zsmalloc.c +++ b/mm/zsmalloc.c @@ -981,7 +981,9 @@ static void init_zspage(struct size_class *class, struct page *first_page) unsigned long off = 0; struct page *page = first_page; - VM_BUG_ON_PAGE(!is_first_page(first_page), first_page); + first_page->freelist = NULL; + INIT_LIST_HEAD(&first_page->lru); + set_zspage_inuse(first_page, 0); while (page)...
2016 Mar 30
0
[PATCH v3 08/16] zsmalloc: squeeze freelist into page->mapping
...)) - off = page->index; - - return off + obj_idx * class_size; -} - static inline int trypin_tag(unsigned long handle) { unsigned long *ptr = (unsigned long *)handle; @@ -952,6 +978,7 @@ static void free_zspage(struct page *first_page) /* Initialize a newly allocated zspage */ static void init_zspage(struct size_class *class, struct page *first_page) { + int freeobj = 1; unsigned long off = 0; struct page *page = first_page; @@ -960,14 +987,11 @@ static void init_zspage(struct size_class *class, struct page *first_page) while (page) { struct page *next_page; struct link_free *lin...
2016 Mar 11
0
[PATCH v1 11/19] zsmalloc: squeeze freelist into page->mapping
...e *page) clear_bit(PG_private_2, &page->flags); set_page_private(page, 0); page->mapping = NULL; - page->freelist = NULL; page_mapcount_reset(page); } @@ -948,6 +973,7 @@ static void free_zspage(struct page *first_page) /* Initialize a newly allocated zspage */ static void init_zspage(struct size_class *class, struct page *first_page) { + int freeobj = 1; unsigned long off = 0; struct page *page = first_page; @@ -956,14 +982,11 @@ static void init_zspage(struct size_class *class, struct page *first_page) while (page) { struct page *next_page; struct link_free *lin...
2016 Mar 14
0
[PATCH v1 13/19] zsmalloc: factor page chain functionality out
...+++------------------------- > > 1 file changed, 45 insertions(+), 33 deletions(-) > > > >diff --git a/mm/zsmalloc.c b/mm/zsmalloc.c > >index bfc6a048afac..f86f8aaeb902 100644 > >--- a/mm/zsmalloc.c > >+++ b/mm/zsmalloc.c > >@@ -977,7 +977,9 @@ static void init_zspage(struct size_class *class, struct page *first_page) > > unsigned long off = 0; > > struct page *page = first_page; > > > >- VM_BUG_ON_PAGE(!is_first_page(first_page), first_page); > >+ first_page->freelist = NULL; > >+ INIT_LIST_HEAD(&first_page->lru...
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 12
1
[PATCH v1 09/19] zsmalloc: keep max_object in size_class
...st_page, &class_idx, &currfg); > - newfg = get_fullness_group(first_page); > + newfg = get_fullness_group(class, first_page); > if (newfg == currfg) > goto out; > > @@ -1003,9 +1003,6 @@ static struct page *alloc_zspage(struct size_class *class, gfp_t flags) > init_zspage(class, first_page); > > first_page->freelist = location_to_obj(first_page, 0); > - /* Maximum number of objects we can store in this zspage */ > - first_page->objects = class->pages_per_zspage * PAGE_SIZE / class->size; > - > error = 0; /* Success */ > >...
2016 Mar 12
1
[PATCH v1 09/19] zsmalloc: keep max_object in size_class
...st_page, &class_idx, &currfg); > - newfg = get_fullness_group(first_page); > + newfg = get_fullness_group(class, first_page); > if (newfg == currfg) > goto out; > > @@ -1003,9 +1003,6 @@ static struct page *alloc_zspage(struct size_class *class, gfp_t flags) > init_zspage(class, first_page); > > first_page->freelist = location_to_obj(first_page, 0); > - /* Maximum number of objects we can store in this zspage */ > - first_page->objects = class->pages_per_zspage * PAGE_SIZE / class->size; > - > error = 0; /* Success */ > >...
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 11
0
[PATCH v1 09/19] zsmalloc: keep max_object in size_class
...g, newfg; get_zspage_mapping(first_page, &class_idx, &currfg); - newfg = get_fullness_group(first_page); + newfg = get_fullness_group(class, first_page); if (newfg == currfg) goto out; @@ -1003,9 +1003,6 @@ static struct page *alloc_zspage(struct size_class *class, gfp_t flags) init_zspage(class, first_page); first_page->freelist = location_to_obj(first_page, 0); - /* Maximum number of objects we can store in this zspage */ - first_page->objects = class->pages_per_zspage * PAGE_SIZE / class->size; - error = 0; /* Success */ cleanup: @@ -1235,11 +1232,11 @@ static...
2016 Mar 30
0
[PATCH v3 05/16] zsmalloc: keep max_object in size_class
...g, newfg; get_zspage_mapping(first_page, &class_idx, &currfg); - newfg = get_fullness_group(first_page); + newfg = get_fullness_group(class, first_page); if (newfg == currfg) goto out; @@ -1008,9 +1008,6 @@ static struct page *alloc_zspage(struct size_class *class, gfp_t flags) init_zspage(class, first_page); first_page->freelist = location_to_obj(first_page, 0); - /* Maximum number of objects we can store in this zspage */ - first_page->objects = class->pages_per_zspage * PAGE_SIZE / class->size; - error = 0; /* Success */ cleanup: @@ -1238,11 +1235,11 @@ static...
2016 Mar 14
0
[PATCH v1 09/19] zsmalloc: keep max_object in size_class
...;currfg); > >- newfg = get_fullness_group(first_page); > >+ newfg = get_fullness_group(class, first_page); > > if (newfg == currfg) > > goto out; > > > >@@ -1003,9 +1003,6 @@ static struct page *alloc_zspage(struct size_class *class, gfp_t flags) > > init_zspage(class, first_page); > > > > first_page->freelist = location_to_obj(first_page, 0); > >- /* Maximum number of objects we can store in this zspage */ > >- first_page->objects = class->pages_per_zspage * PAGE_SIZE / class->size; > >- > > error = 0; /...
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.
2016 Mar 11
0
[PATCH v1 06/19] zsmalloc: clean up many BUG_ON
...nextp, *tmp, *head_extra; - BUG_ON(!is_first_page(first_page)); - BUG_ON(first_page->inuse); + VM_BUG_ON_PAGE(!is_first_page(first_page), first_page); + VM_BUG_ON_PAGE(first_page->inuse, first_page); head_extra = (struct page *)page_private(first_page); @@ -916,7 +915,8 @@ static void init_zspage(struct page *first_page, struct size_class *class) unsigned long off = 0; struct page *page = first_page; - BUG_ON(!is_first_page(first_page)); + VM_BUG_ON_PAGE(!is_first_page(first_page), first_page); + while (page) { struct page *next_page; struct link_free *link; @@ -1235,7 +1235,7...