linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Avi Kivity <avi@redhat.com>
To: Dave Hansen <dave@linux.vnet.ibm.com>
Cc: balbir@linux.vnet.ibm.com, kvm <kvm@vger.kernel.org>,
	linux-mm@kvack.org, linux-kernel@vger.kernel.org
Subject: Re: [RFC/T/D][PATCH 2/2] Linux/Guest cooperative unmapped page cache control
Date: Mon, 14 Jun 2010 18:34:58 +0300	[thread overview]
Message-ID: <4C164C22.1050503@redhat.com> (raw)
In-Reply-To: <1276528376.6437.7176.camel@nimitz>

On 06/14/2010 06:12 PM, Dave Hansen wrote:
> On Mon, 2010-06-14 at 14:18 +0530, Balbir Singh wrote:
>    
>> 1. A slab page will not be freed until the entire page is free (all
>> slabs have been kfree'd so to speak). Normal reclaim will definitely
>> free this page, but a lot of it depends on how frequently we are
>> scanning the LRU list and when this page got added.
>>      
> You don't have to be freeing entire slab pages for the reclaim to have
> been useful.  You could just be making space so that _future_
> allocations fill in the slab holes you just created.  You may not be
> freeing pages, but you're reducing future system pressure.
>    

Depends.  If you've evicted something that will be referenced soon, 
you're increasing system pressure.

> If unmapped page cache is the easiest thing to evict, then it should be
> the first thing that goes when a balloon request comes in, which is the
> case this patch is trying to handle.  If it isn't the easiest thing to
> evict, then we _shouldn't_ evict it.
>    

Easy to evict is just one measure.  There's benefit (size of data 
evicted), cost to refill (seeks, cpu), and likelihood that the cost to 
refill will be incurred (recency).

It's all very complicated.  We need better information to make these 
decisions.  For one thing, I'd like to see age information tied to 
objects.  We may have two pages that were referenced in wildly different 
times be next to each other in LRU order.  We have many LRUs, but no 
idea of the relative recency of the tails of those LRUs.

If each page or object had an age, we could scale those ages by the 
benefit from reclaim and cost to refill and make a better decision as to 
what to evict first.  But of course page->age means increasing sizeof 
struct page, and we can only approximate its value by scanning the 
accessed bit, not determine it accurately (unlike the other objects 
managed by the cache).

-- 
error compiling committee.c: too many arguments to function

--
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>

  reply	other threads:[~2010-06-14 15:35 UTC|newest]

Thread overview: 48+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-06-08 15:51 [RFC/T/D][PATCH 0/2] KVM page cache optimization (v2) Balbir Singh
2010-06-08 15:51 ` [RFC][PATCH 1/2] Linux/Guest unmapped page cache control Balbir Singh
2010-06-13 18:31   ` Balbir Singh
2010-06-14  0:28     ` KAMEZAWA Hiroyuki
2010-06-14  6:49       ` Balbir Singh
2010-06-14  7:00         ` KAMEZAWA Hiroyuki
2010-06-14  7:36           ` Balbir Singh
2010-06-14  7:49             ` KAMEZAWA Hiroyuki
2010-06-08 15:51 ` [RFC/T/D][PATCH 2/2] Linux/Guest cooperative " Balbir Singh
2010-06-10  9:43   ` Avi Kivity
2010-06-10 14:25     ` Balbir Singh
2010-06-11  0:07       ` Dave Hansen
2010-06-11  1:54         ` KAMEZAWA Hiroyuki
2010-06-11  4:46           ` Balbir Singh
2010-06-11  5:05             ` KAMEZAWA Hiroyuki
2010-06-11  5:08               ` KAMEZAWA Hiroyuki
2010-06-11  6:14               ` Balbir Singh
2010-06-11  4:56         ` Balbir Singh
2010-06-14  8:09           ` Avi Kivity
2010-06-14  8:48             ` Balbir Singh
2010-06-14 12:40               ` Avi Kivity
2010-06-14 12:50                 ` Balbir Singh
2010-06-14 13:01                   ` Avi Kivity
2010-06-14 15:33                     ` Dave Hansen
2010-06-14 15:44                       ` Avi Kivity
2010-06-14 15:55                         ` Dave Hansen
2010-06-14 16:34                           ` Avi Kivity
2010-06-14 17:45                             ` Balbir Singh
2010-06-15  6:58                               ` Avi Kivity
2010-06-15  7:49                                 ` Balbir Singh
2010-06-15  9:44                                   ` Avi Kivity
2010-06-15 10:18                                     ` Balbir Singh
2010-06-14 17:58                             ` Dave Hansen
2010-06-15  7:07                               ` Avi Kivity
2010-06-15 14:47                                 ` Dave Hansen
2010-06-16 11:39                                   ` Avi Kivity
2010-06-17  6:04                                     ` Balbir Singh
2010-06-14 15:12               ` Dave Hansen
2010-06-14 15:34                 ` Avi Kivity [this message]
2010-06-14 17:40                   ` Balbir Singh
2010-06-15  7:11                     ` Avi Kivity
2010-06-14 16:58                 ` Balbir Singh
2010-06-14 17:09                   ` Dave Hansen
2010-06-14 17:16                     ` Balbir Singh
2010-06-15  7:12                       ` Avi Kivity
2010-06-15  7:52                         ` Balbir Singh
2010-06-15  9:54                           ` Avi Kivity
2010-06-15 12:49                             ` Balbir Singh

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=4C164C22.1050503@redhat.com \
    --to=avi@redhat.com \
    --cc=balbir@linux.vnet.ibm.com \
    --cc=dave@linux.vnet.ibm.com \
    --cc=kvm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).