From: Nick Piggin <npiggin@suse.de>
To: carsteno@de.ibm.com
Cc: Jared Hulbert <jaredeh@gmail.com>,
Linux Memory Management List <linux-mm@kvack.org>,
Martin Schwidefsky <schwidefsky@de.ibm.com>,
Heiko Carstens <heiko.carstens@de.ibm.com>
Subject: Re: [rfc][patch 1/4] include: add callbacks to toggle reference counting for VM_MIXEDMAP pages
Date: Sun, 13 Jan 2008 03:44:10 +0100 [thread overview]
Message-ID: <20080113024410.GA22285@wotan.suse.de> (raw)
In-Reply-To: <47872CA7.40802@de.ibm.com>
On Fri, Jan 11, 2008 at 09:45:27AM +0100, Carsten Otte wrote:
> Jared Hulbert wrote:
> >>I think you're looking for
> >>pfn_has_struct_page_entry_for_it(), and that's different from the
> >>original meaning described above.
> >
> >Yes. That's what I'm looking for.
> >
> >Carsten,
> >
> >I think I get the problem now. You've been saying over and over, I
> >just didn't hear it. We are not using the same assumptions for what
> >VM_MIXEDMAP means.
> >
> >Look's like today most architectures just use pfn_valid() to see if a
> >pfn is in a valid RAM segment. The assumption used in
> >vm_normal_page() is that valid_RAM == has_page_struct. That's fine by
> >me for VM_MIXEDMAP because I'm only assuming 2 states a page can be
> >in: (1) page struct RAM (2) pfn only Flash memory ioremap()'ed in.
> >You are wanting to add a third: (3) valid RAM, pfn only mapping with
> >the ability to add a page struct when needed.
> >
> >Is this right?
> About right. There are a few differences between "valid ram" and our
> DCSS segments, but yes. Our segments are not present at system
> startup, and can be "loaded" afterwards by hypercall. Thus, they're
> not detected and initialized as regular memory.
> We have the option to add struct page entries for them. In case of
> using the segment for xip, we don't want struct page entries and
> rather prefer VM_MIXEDMAP, but with regular memory (with struct page)
> being used after cow.
You know that pfn_valid() can be changed at runtime depending on what
your intentions are for that page. It can remain false if you don't
want struct pages for it, then you can switch a flag...
> >>Jared, did you try this on arm?
> >
> >No. I'm not sure where we stand. Shall I bother or do I wait for the
> >next patch?
> I guess we should wait for Nick's patch. He has already decided not to
> go down this path.
I've just been looking at putting everything together (including the
pte_special patch). I still hit one problem with your required modification
to the filemap_xip patch.
You need to unconditionally do a vm_insert_pfn in xip_file_fault, and rely
on the pte bit to tell the rest of the VM that the page has not been
refcounted. For architectures without such a bit, this breaks VM_MIXEDMAP,
because it relies on testing pfn_valid() rather than a pte bit here.
We can go 2 ways here: either s390 can make pfn_valid() work like we'd
like; or we can have a vm_insert_mixedmap_pfn(), which has
#ifdef __HAVE_ARCH_PTE_SPECIAL
in order to do the right thing (ie. those architectures which do have pte
special can just do vm_insert_pfn, and those that don't will either do a
vm_insert_pfn or vm_insert_page depending on the result of pfn_valid).
The latter I guess is more efficient for those that do implement pte_special,
however if anything I would rather investigate that as an incremental patch
after the basics are working. It would also break the dependency of the
xip stuff on the pte_special patch, and basically make everything much
more likely to get merged IMO.
--
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>
next prev parent reply other threads:[~2008-01-13 2:44 UTC|newest]
Thread overview: 95+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-12-14 13:38 [rfc][patch 1/2] mm: introduce VM_MIXEDMAP mappings Nick Piggin
2007-12-14 13:41 ` [rfc][patch 2/2] xip: support non-struct page memory Nick Piggin
2007-12-14 13:46 ` Carsten Otte
2007-12-15 1:07 ` Jared Hulbert
2007-12-15 1:17 ` Nick Piggin
2007-12-15 6:47 ` Jared Hulbert
2007-12-19 14:04 ` Carsten Otte
2007-12-20 9:23 ` Jared Hulbert
2007-12-21 0:40 ` Nick Piggin
2007-12-20 13:53 ` Carsten Otte
2007-12-20 14:33 ` Carsten Otte
2007-12-20 14:50 ` Carsten Otte
2007-12-20 17:24 ` Jared Hulbert
2007-12-21 0:12 ` Jared Hulbert
2007-12-21 0:56 ` Nick Piggin
2007-12-21 9:56 ` Carsten Otte
2007-12-21 9:49 ` Carsten Otte
2007-12-21 0:50 ` Nick Piggin
2007-12-21 10:02 ` Carsten Otte
2007-12-21 10:14 ` Nick Piggin
2007-12-21 10:17 ` Carsten Otte
2007-12-21 10:23 ` Nick Piggin
2007-12-21 10:31 ` Carsten Otte
2007-12-21 0:45 ` Nick Piggin
2007-12-21 10:05 ` Carsten Otte
2007-12-21 10:20 ` Nick Piggin
2007-12-21 10:35 ` Carsten Otte
2007-12-21 10:47 ` Nick Piggin
2007-12-21 19:29 ` Martin Schwidefsky
2008-01-07 4:43 ` [rfc][patch] mm: use a pte bit to flag normal pages Nick Piggin
2008-01-07 4:43 ` Nick Piggin
2008-01-07 10:30 ` Russell King
2008-01-07 10:30 ` Russell King
2008-01-07 11:14 ` Nick Piggin
2008-01-07 11:14 ` Nick Piggin
2008-01-07 18:49 ` Jared Hulbert
2008-01-07 18:49 ` Jared Hulbert
2008-01-07 19:45 ` Russell King
2008-01-07 19:45 ` Russell King
2008-01-07 22:52 ` Jared Hulbert
2008-01-07 22:52 ` Jared Hulbert
2008-01-08 2:37 ` Andi Kleen
2008-01-08 2:37 ` Andi Kleen
2008-01-08 2:49 ` Nick Piggin
2008-01-08 2:49 ` Nick Piggin
2008-01-08 3:31 ` Andi Kleen
2008-01-08 3:31 ` Andi Kleen
2008-01-08 3:52 ` Nick Piggin
2008-01-08 3:52 ` Nick Piggin
2008-01-08 10:11 ` Catalin Marinas
2008-01-08 10:11 ` Catalin Marinas
2008-01-08 10:52 ` Russell King
2008-01-08 10:52 ` Russell King
2008-01-08 13:54 ` Catalin Marinas
2008-01-08 13:54 ` Catalin Marinas
2008-01-08 14:08 ` Russell King
2008-01-08 14:08 ` Russell King
2008-01-10 13:33 ` Carsten Otte
2008-01-10 13:33 ` Carsten Otte
2008-01-10 23:18 ` Nick Piggin
2008-01-10 23:18 ` Nick Piggin
2008-01-08 9:35 ` [rfc][patch 0/4] VM_MIXEDMAP patchset with s390 backend Carsten Otte
2008-01-08 10:08 ` Nick Piggin
2008-01-08 11:34 ` Carsten Otte
2008-01-08 11:55 ` Nick Piggin
2008-01-08 12:03 ` Carsten Otte
2008-01-08 13:56 ` Jörn Engel
2008-01-08 14:51 ` Carsten Otte
2008-01-08 18:09 ` Jared Hulbert
2008-01-08 22:12 ` Nick Piggin
2008-01-09 15:14 ` [rfc][patch 0/4] VM_MIXEDMAP patchset with s390 backend v2 Carsten Otte
[not found] ` <1199891032.28689.9.camel@cotte.boeblingen.de.ibm.com>
2008-01-09 15:14 ` [rfc][patch 1/4] include: add callbacks to toggle reference counting for VM_MIXEDMAP pages Carsten Otte, Carsten Otte
2008-01-09 17:31 ` Martin Schwidefsky
2008-01-09 18:17 ` Jared Hulbert
2008-01-10 7:59 ` Carsten Otte
2008-01-10 20:01 ` Jared Hulbert
2008-01-11 8:45 ` Carsten Otte
2008-01-13 2:44 ` Nick Piggin [this message]
2008-01-14 11:36 ` Carsten Otte
2008-01-16 4:04 ` Nick Piggin
2008-01-15 13:05 ` Carsten Otte
2008-01-16 4:22 ` Nick Piggin
2008-01-16 14:29 ` [rft] updated xip patch rollup Nick Piggin
2008-01-17 10:24 ` Carsten Otte
2008-01-10 20:23 ` [rfc][patch 1/4] include: add callbacks to toggle reference counting for VM_MIXEDMAP pages Jared Hulbert
2008-01-11 8:32 ` Carsten Otte
2008-01-10 0:20 ` Nick Piggin
2008-01-10 8:06 ` Carsten Otte
2008-01-09 15:14 ` [rfc][patch 2/4] mm: introduce VM_MIXEDMAP Carsten Otte, Jared Hulbert, Carsten Otte
2008-01-09 15:14 ` [rfc][patch 3/4] Convert XIP to support non-struct page backed memory Carsten Otte, Nick Piggin
2008-01-09 15:14 ` [rfc][patch 4/4] s390: remove struct page entries for DCSS memory segments Carsten Otte, Carsten Otte
[not found] ` <1199784196.25114.11.camel@cotte.boeblingen.de.ibm.com>
2008-01-08 9:35 ` [rfc][patch 1/4] mm: introduce VM_MIXEDMAP Carsten Otte, Jared Hulbert, Carsten Otte
2008-01-08 9:35 ` [rfc][patch 2/4] xip: support non-struct page memory Carsten Otte, Nick Piggin, Carsten Otte
2008-01-08 9:36 ` [rfc][patch 3/4] s390: remove sturct page entries for z/VM DCSS memory segments Carsten Otte
2008-01-08 9:36 ` [rfc][patch 4/4] s390: mixedmap_refcount_pfn implementation using list walk Carsten Otte
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=20080113024410.GA22285@wotan.suse.de \
--to=npiggin@suse.de \
--cc=carsteno@de.ibm.com \
--cc=heiko.carstens@de.ibm.com \
--cc=jaredeh@gmail.com \
--cc=linux-mm@kvack.org \
--cc=schwidefsky@de.ibm.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.