All of lore.kernel.org
 help / color / mirror / Atom feed
From: Wang Sheng-Hui <shhuiw@gmail.com>
To: Seth Jennings <sjennings@variantweb.net>
Cc: linux-mm@kvack.org
Subject: Re: [PATCH] mm: reposition zbud page in lru list if not freed in zbud_free
Date: Wed, 03 Sep 2014 08:06:15 +0800	[thread overview]
Message-ID: <54065B77.5030507@gmail.com> (raw)
In-Reply-To: <20140902143936.GA11096@cerebellum.variantweb.net>



On 2014a1'09ae??02ae?JPY 22:39, Seth Jennings wrote:
> On Sun, Aug 31, 2014 at 09:29:29PM +0800, Wang Sheng-Hui wrote:
>> Reposition zbud page in the lru list of the pool if the zbud page
>> is not freed in zbud_free.
> 
> This doesn't mention what is wrong with the current code.  Afaict, the
> code is doing the right thing by not changing the position of the zpage
> in the LRU.  Why would we want to move a zpage to the front of the LRU
> just because one of the allocations it contains is freed?  The "age" of
> the other allocation is unchanged and its containing zpage should
> maintain its position in the LRU, right?
> 

Seth,

I have one question.

In zbud_reclaim_page, if one page contains handles not freed, then the page
is repositioned, in current code.

540                 } else if (zhdr->first_chunks == 0 ||
541                                 zhdr->last_chunks == 0) {
542                         /* add to unbuddied list */
543                         freechunks = num_free_chunks(zhdr);
544                         list_add(&zhdr->buddy, &pool->unbuddied[freechunks]);
545                 } else {
546                         /* add to buddied list */
547                         list_add(&zhdr->buddy, &pool->buddied);
548                 }
549
550                 /* add to beginning of LRU */
551                 list_add(&zhdr->lru, &pool->lru);

I want to why it is different for zbud_free?

Regards,
Sheng-Hui
> Thanks,
> Seth
> 
>>
>> Signed-off-by: Wang Sheng-Hui <shhuiw@gmail.com>
>> ---
>>  mm/zbud.c | 3 ++-
>>  1 file changed, 2 insertions(+), 1 deletion(-)
>>
>> diff --git a/mm/zbud.c b/mm/zbud.c
>> index f26e7fc..b1d7777 100644
>> --- a/mm/zbud.c
>> +++ b/mm/zbud.c
>> @@ -432,15 +432,16 @@ void zbud_free(struct zbud_pool *pool, unsigned long handle)
>>  	/* Remove from existing buddy list */
>>  	list_del(&zhdr->buddy);
>>  
>> +	list_del(&zhdr->lru);
>>  	if (zhdr->first_chunks == 0 && zhdr->last_chunks == 0) {
>>  		/* zbud page is empty, free */
>> -		list_del(&zhdr->lru);
>>  		free_zbud_page(zhdr);
>>  		pool->pages_nr--;
>>  	} else {
>>  		/* Add to unbuddied list */
>>  		freechunks = num_free_chunks(zhdr);
>>  		list_add(&zhdr->buddy, &pool->unbuddied[freechunks]);
>> +		list_add(&zhdr->lru, &pool->lru);
>>  	}
>>  
>>  	spin_unlock(&pool->lock);
>> -- 
>> 1.8.3.2
>>

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

      parent reply	other threads:[~2014-09-03 12:28 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-08-31 13:29 [PATCH] mm: reposition zbud page in lru list if not freed in zbud_free Wang Sheng-Hui
     [not found] ` <20140902143936.GA11096@cerebellum.variantweb.net>
2014-09-02 23:59   ` Wang Sheng-Hui
2014-09-03  0:06   ` Wang Sheng-Hui [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=54065B77.5030507@gmail.com \
    --to=shhuiw@gmail.com \
    --cc=linux-mm@kvack.org \
    --cc=sjennings@variantweb.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.