[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <5245F222.1000603@intel.com>
Date: Fri, 27 Sep 2013 14:01:22 -0700
From: Dave Hansen <dave.hansen@...el.com>
To: Cody P Schafer <cody@...ux.vnet.ibm.com>,
"Kirill A. Shutemov" <kirill.shutemov@...ux.intel.com>,
Alex Thorlton <athorlton@....com>,
Ingo Molnar <mingo@...hat.com>,
Andrew Morton <akpm@...ux-foundation.org>,
Naoya Horiguchi <n-horiguchi@...jp.nec.com>
CC: "Eric W . Biederman" <ebiederm@...ssion.com>,
"Paul E . McKenney" <paulmck@...ux.vnet.ibm.com>,
Al Viro <viro@...iv.linux.org.uk>,
Andi Kleen <ak@...ux.intel.com>,
Andrea Arcangeli <aarcange@...hat.com>,
Dave Jones <davej@...hat.com>,
David Howells <dhowells@...hat.com>,
Frederic Weisbecker <fweisbec@...il.com>,
Johannes Weiner <hannes@...xchg.org>,
Kees Cook <keescook@...omium.org>,
Mel Gorman <mgorman@...e.de>,
Michael Kerrisk <mtk.manpages@...il.com>,
Oleg Nesterov <oleg@...hat.com>,
Peter Zijlstra <peterz@...radead.org>,
Rik van Riel <riel@...hat.com>,
Robin Holt <robinmholt@...il.com>,
Sedat Dilek <sedat.dilek@...il.com>,
Srikar Dronamraju <srikar@...ux.vnet.ibm.com>,
Thomas Gleixner <tglx@...utronix.de>,
linux-kernel@...r.kernel.org, linux-mm@...ck.org
Subject: Re: [PATCHv4 02/10] mm: convert mm->nr_ptes to atomic_t
On 09/27/2013 01:46 PM, Cody P Schafer wrote:
> On 09/27/2013 06:16 AM, Kirill A. Shutemov wrote:
>> @@ -339,6 +339,7 @@ struct mm_struct {
>> pgd_t * pgd;
>> atomic_t mm_users; /* How many users with user space? */
>> atomic_t mm_count; /* How many references to "struct
>> mm_struct" (users count as 1) */
>> + atomic_t nr_ptes; /* Page table pages */
>> int map_count; /* number of VMAs */
...
>
> Will 32bits always be enough here? Should atomic_long_t be used instead?
There are 48 bits of virtual address space on x86 today. 12 bits of
that is the address inside the page, so we've at *most* 2^36 pages. 2^9
(512) pages are mapped by a pte page, so that means the page tables only
hold 2^27 pte pages in a single process.
We've got 31 bits of usable space in the atomic_t, so that definitely
works _today_. If the virtual address space ever gets bigger, we might
have problems, though.
In practice, though, we steal a big chunk of that virtual address space
for the kernel, and that doesn't get accounted in mm->nr_ptes, so we've
got a _bit_ more wiggle room than just 4 bits. Also, anybody that's
mapping >4 petabytes of memory with 4k ptes is just off their rocker.
I'm also not sure what the virtual address limits are for the more
obscure architectures, so I guess it's also possible they'll hit this.
I guess it wouldn't hurt to stick an overflow check in there for VM
debugging purposes.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists