lkml.org 
[lkml]   [2010]   [Jun]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [RFC][PATCH 8/9] reduce kvm_lock hold times in mmu_skrink()
On 06/15/2010 04:55 PM, Dave Hansen wrote:
> mmu_shrink() is effectively single-threaded since the global
> kvm_lock is held over the entire function.
>
> I beleive its only use here is for synchronization of the
> vm_list. Instead of using the kvm_lock to ensure
> consistency of the list, we instead obtain a kvm_get_kvm()
> reference. This keeps the kvm object on the vm_list while
> we shrink it.
>
> Since we don't need the lock to maintain the list any more,
> we can drop it. We'll reacquire it if we need to get another
> object off.
>
> This leads to a larger number of atomic ops, but reduces
> lock hold times: the typical latency vs. throughput debate.
>
>

<snip content>

> diff -puN kernel/profile.c~optimize_shrinker-3 kernel/profile.c
> --- linux-2.6.git/kernel/profile.c~optimize_shrinker-3 2010-06-11 09:09:43.000000000 -0700
> +++ linux-2.6.git-dave/kernel/profile.c 2010-06-11 09:12:24.000000000 -0700
> @@ -314,6 +314,8 @@ void profile_hits(int type, void *__pc,
> if (prof_on != type || !prof_buffer)
> return;
> pc = min((pc - (unsigned long)_stext)>> prof_shift, prof_len - 1);
> + if ((pc == prof_len - 1)&& printk_ratelimit())
> + printk("profile_hits(%d, %p, %d)\n", type, __pc, nr_hits);
> i = primary = (pc& (NR_PROFILE_GRP - 1))<< PROFILE_GRPSHIFT;
> secondary = (~(pc<< 1)& (NR_PROFILE_GRP - 1))<< PROFILE_GRPSHIFT;
> cpu = get_cpu();
> _
>

Unrelated gunk...

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



\
 
 \ /
  Last update: 2010-06-16 10:57    [W:0.156 / U:0.040 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site