Messages in this thread | | | Date | Thu, 19 Jun 2014 13:58:20 -0700 | From | Andrew Morton <> | Subject | Re: [PATCH 2/3] fork: reset mm->pinned_vm |
| |
On Thu, 19 Jun 2014 13:07:47 +0400 Vladimir Davydov <vdavydov@parallels.com> wrote:
> mm->pinned_vm counts pages of mm's address space that were permanently > pinned in memory by increasing their reference counter. The counter was > introduced by commit bc3e53f682d9 ("mm: distinguish between mlocked and > pinned pages"), while before it locked_vm had been used for such pages. > > Obviously, we should reset the counter on fork if !CLONE_VM, just like > we do with locked_vm, but currently we don't. Let's fix it. > > ... > > --- a/kernel/fork.c > +++ b/kernel/fork.c > @@ -534,6 +534,7 @@ static struct mm_struct *mm_init(struct mm_struct *mm, struct task_struct *p) > atomic_long_set(&mm->nr_ptes, 0); > mm->map_count = 0; > mm->locked_vm = 0; > + mm->pinned_vm = 0; > memset(&mm->rss_stat, 0, sizeof(mm->rss_stat)); > spin_lock_init(&mm->page_table_lock); > mm_init_cpumask(mm);
What are the runtime effects of this? I think it is only "/proc/pid/status:VmPin is screwed up", because we don't use vm_pinned in rlimit checks. Yes?
| |