| From: Hyeonggon Yoo <42.hyeyoo@gmail.com> |
| Subject: mm/zsmalloc: convert obj_malloc() to use zpdesc |
| Date: Tue, 17 Dec 2024 00:04:36 +0900 |
| |
| Use get_first_zpdesc/get_next_zpdesc to replace |
| get_first_page/get_next_page. no functional change. |
| |
| Link: https://lkml.kernel.org/r/20241216150450.1228021-6-42.hyeyoo@gmail.com |
| Signed-off-by: Hyeonggon Yoo <42.hyeyoo@gmail.com> |
| Signed-off-by: Alex Shi <alexs@kernel.org> |
| Acked-by: Sergey Senozhatsky <senozhatsky@chromium.org> |
| Tested-by: Sergey Senozhatsky <senozhatsky@chromium.org> |
| Cc: Matthew Wilcox (Oracle) <willy@infradead.org> |
| Cc: Minchan Kim <minchan@kernel.org> |
| Cc: Vishal Moola (Oracle) <vishal.moola@gmail.com> |
| Signed-off-by: Andrew Morton <akpm@linux-foundation.org> |
| --- |
| |
| mm/zsmalloc.c | 16 ++++++++-------- |
| 1 file changed, 8 insertions(+), 8 deletions(-) |
| |
| --- a/mm/zsmalloc.c~mm-zsmalloc-convert-obj_malloc-to-use-zpdesc |
| +++ a/mm/zsmalloc.c |
| @@ -1295,12 +1295,12 @@ EXPORT_SYMBOL_GPL(zs_huge_class_size); |
| static unsigned long obj_malloc(struct zs_pool *pool, |
| struct zspage *zspage, unsigned long handle) |
| { |
| - int i, nr_page, offset; |
| + int i, nr_zpdesc, offset; |
| unsigned long obj; |
| struct link_free *link; |
| struct size_class *class; |
| |
| - struct page *m_page; |
| + struct zpdesc *m_zpdesc; |
| unsigned long m_offset; |
| void *vaddr; |
| |
| @@ -1308,14 +1308,14 @@ static unsigned long obj_malloc(struct z |
| obj = get_freeobj(zspage); |
| |
| offset = obj * class->size; |
| - nr_page = offset >> PAGE_SHIFT; |
| + nr_zpdesc = offset >> PAGE_SHIFT; |
| m_offset = offset_in_page(offset); |
| - m_page = get_first_page(zspage); |
| + m_zpdesc = get_first_zpdesc(zspage); |
| |
| - for (i = 0; i < nr_page; i++) |
| - m_page = get_next_page(m_page); |
| + for (i = 0; i < nr_zpdesc; i++) |
| + m_zpdesc = get_next_zpdesc(m_zpdesc); |
| |
| - vaddr = kmap_local_page(m_page); |
| + vaddr = kmap_local_zpdesc(m_zpdesc); |
| link = (struct link_free *)vaddr + m_offset / sizeof(*link); |
| set_freeobj(zspage, link->next >> OBJ_TAG_BITS); |
| if (likely(!ZsHugePage(zspage))) |
| @@ -1327,7 +1327,7 @@ static unsigned long obj_malloc(struct z |
| kunmap_local(vaddr); |
| mod_zspage_inuse(zspage, 1); |
| |
| - obj = location_to_obj(m_page, obj); |
| + obj = location_to_obj(zpdesc_page(m_zpdesc), obj); |
| record_obj(handle, obj); |
| |
| return obj; |
| _ |