From: Colin Plumb <colin@nyx.net>
To: blah@kvack.org
Cc: linux-mm@kvack.org
Subject: Re: Why don't shared anonymous mappings work?
Date: Thu, 14 Jan 1999 23:43:43 -0700 (MST) [thread overview]
Message-ID: <199901150643.XAA25203@nyx10.nyx.net> (raw)
>> Um, I think you fail to understand. I was talking about a linked list
>> *without* allocating extra space. The idea is that I don't know of a
>> processor that requires more than 2 bits (M68K) to mark a PTE as invalid;
>> the user gets the rest. Currently the user bits in the invalid PTE
>> encodings point to swap pages. You could steal one bit and point to
>> either a word in memory or a swap page.
> Ooops, brain fart (sometimes you read, but the meaning just isn't
> absorbed). I think assuming that you can get 30 bits out of a pte on a 32
> bit platform to use as a pointer is pushing things, though (and you do
> need all the bits: mremap allows users to move shared pages to different
> offset within a page table).
Not quite. You only need as many bits as are needed to address all of
physical memory minus the number of bits implied by PTE alignment.
So, for a 2 GB machine, you need 29 bits for a pointer to a 32-bit word.
Plus one for the type bit does equal 30, but many machines are smaller.
The bits available (looking at include/asm-*/pgtable.h) are:
alpha: 32 (plus more, I think - the code doesn't try too hard.)
arm/proc-armo: 31
arm/proc-armv: 30
i386: 30
m68k: 30 (old), 27 (new)
mips: 24
ppc: 31
sparc: 25
sparc64: 51
We seem to be doing okay, except for the MIPS and Sparc ports, and maybe
the code isn't as aggressive as it cound be there.
> Under the scheme I'm planning on
> implementing, this is a non issue: all pages are tied to an inode.
> Alternatively, we could pull i_mmap & co out of struct inode and make a
> vmstore (or whatever) object as I believe Eric suggested.
What's nice is the low over head of the current scheme; there's no space
allocated for bookkeeping except two bytes of swap map per swap page.
You need to maintain a more complex structure, I think.
--
-Colin
--
This is a majordomo managed list. To unsubscribe, send a message with
the body 'unsubscribe linux-mm me@address' to: majordomo@kvack.org
next reply other threads:[~1999-01-15 6:43 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
1999-01-15 6:43 Colin Plumb [this message]
-- strict thread matches above, loose matches on Subject: below --
1999-01-14 3:07 Colin Plumb
1999-01-15 6:07 ` Benjamin C.R. LaHaise
1999-01-13 21:31 Colin Plumb
1999-01-19 14:32 ` Stephen C. Tweedie
1999-01-19 15:23 ` Eric W. Biederman
[not found] <199901061523.IAA14788@nyx10.nyx.net>
1999-01-06 19:51 ` Eric W. Biederman
1999-01-07 5:55 ` Eric W. Biederman
1999-01-13 20:21 ` Stephen C. Tweedie
1999-01-05 12:51 Colin Plumb
1999-01-06 4:05 ` Eric W. Biederman
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=199901150643.XAA25203@nyx10.nyx.net \
--to=colin@nyx.net \
--cc=blah@kvack.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