lkml.org 
[lkml]   [2015]   [Mar]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: Re: mm/zsmalloc.c: count in handle's size when calculating pages_per_zspage
> Hello,
>
> sorry, I've a question.
>
> On (03/19/15 11:39), Yinghao Xie wrote:
> > @@ -1426,11 +1430,6 @@ unsigned long zs_malloc(struct zs_pool *pool,
> size_t size)
> > /* extra space in chunk to keep the handle */
> > size += ZS_HANDLE_SIZE;
> > class = pool->size_class[get_size_class_index(size)];
> > - /* In huge class size, we store the handle into first_page->private */
> > - if (class->huge) {
> > - size -= ZS_HANDLE_SIZE;
> > - class = pool->size_class[get_size_class_index(size)];
> > - }
>
> if huge class uses page->private to store a handle, shouldn't we pass "size -=
> ZS_HANDLE_SIZE" to get_size_class_index() ?
>
> -ss
>
yes, you're right.it's my misunderstanding, thanks.

> > spin_lock(&class->lock);
> > first_page = find_get_zspage(class); @@ -1856,9 +1855,7 @@ struct
> > zs_pool *zs_create_pool(char *name, gfp_t flags)
> > struct size_class *class;
> >
> > size = ZS_MIN_ALLOC_SIZE + i * ZS_SIZE_CLASS_DELTA;
> > - if (size > ZS_MAX_ALLOC_SIZE)
> > - size = ZS_MAX_ALLOC_SIZE;
> > - pages_per_zspage = get_pages_per_zspage(size);
> > + pages_per_zspage = get_pages_per_zspage(size +
> ZS_HANDLE_SIZE);
> >
> > /*
> > * size_class is used for normal zsmalloc operation such

\
 
 \ /
  Last update: 2015-03-20 08:21    [W:0.115 / U:0.036 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site