From: Thomas Hellstrom <thomas@tungstengraphics.com>
To: Nick Piggin <npiggin@suse.de>
Cc: Linux Kernel <linux-kernel@vger.kernel.org>
Subject: Re: [patch 4/5] mm: add vm_insert_pfn helpler
Date: Wed, 11 Oct 2006 12:12:19 +0200 [thread overview]
Message-ID: <452CC383.4050401@tungstengraphics.com> (raw)
In-Reply-To: <20061010121357.19693.7339.sendpatchset@linux.site>
Nick Piggin wrote:
> Add a vm_insert_pfn helper, so that ->fault handlers can have nopfn
> functionality by installing their own pte and returning NULL.
>
> Signed-off-by: Nick Piggin <npiggin@suse.de>
>
> Index: linux-2.6/include/linux/mm.h
> ===================================================================
> --- linux-2.6.orig/include/linux/mm.h
> +++ linux-2.6/include/linux/mm.h
> @@ -1121,6 +1121,7 @@ unsigned long vmalloc_to_pfn(void *addr)
> int remap_pfn_range(struct vm_area_struct *, unsigned long addr,
> unsigned long pfn, unsigned long size, pgprot_t);
> int vm_insert_page(struct vm_area_struct *, unsigned long addr, struct page *);
> +int vm_insert_pfn(struct vm_area_struct *, unsigned long addr, unsigned long pfn);
>
> struct page *follow_page(struct vm_area_struct *, unsigned long address,
> unsigned int foll_flags);
> Index: linux-2.6/mm/memory.c
> ===================================================================
> --- linux-2.6.orig/mm/memory.c
> +++ linux-2.6/mm/memory.c
> @@ -1267,6 +1267,50 @@ int vm_insert_page(struct vm_area_struct
> }
> EXPORT_SYMBOL(vm_insert_page);
>
> +/**
> + * vm_insert_pfn - insert single pfn into user vma
> + * @vma: user vma to map to
> + * @addr: target user address of this page
> + * @pfn: source kernel pfn
> + *
> + * Similar to vm_inert_page, this allows drivers to insert individual pages
> + * they've allocated into a user vma. Same comments apply.
> + *
> + * This function should only be called from a vm_ops->fault handler, and
> + * in that case the handler should return NULL.
> + */
> +int vm_insert_pfn(struct vm_area_struct *vma, unsigned long addr, unsigned long pfn)
Nick, I just realized: would it be possible to have a pgprot_t argument
to this one, instead of it using vma->vm_pgprot?
The motivation for this (DRM again) is that some architectures (powerpc)
cannot map the AGP aperture through IO space, but needs to remap the
page from memory with a nocache attribute set. Others need special
pgprot settings for write-combined mappings.
Now, there's a possibility to change vma->vm_pgprot during the first
->fault(), but again, we only have the mmap_sem in read mode.
/Thomas
next prev parent reply other threads:[~2006-10-11 10:12 UTC|newest]
Thread overview: 77+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-10-10 14:21 [rfc] 2.6.19-rc1-git5: consolidation of file backed fault handlers Nick Piggin
2006-10-10 14:21 ` Nick Piggin
2006-10-10 14:21 ` [patch 1/5] mm: fault vs invalidate/truncate check Nick Piggin
2006-10-10 14:21 ` Nick Piggin
2006-10-10 14:21 ` [patch 2/5] mm: fault vs invalidate/truncate race fix Nick Piggin
2006-10-10 14:21 ` Nick Piggin
2006-10-11 4:38 ` Andrew Morton
2006-10-11 4:38 ` Andrew Morton
2006-10-11 5:39 ` Nick Piggin
2006-10-11 5:39 ` Nick Piggin
2006-10-11 6:00 ` Andrew Morton
2006-10-11 6:00 ` Andrew Morton
2006-10-11 9:21 ` Nick Piggin
2006-10-11 9:21 ` Nick Piggin
2006-10-11 16:21 ` Linus Torvalds
2006-10-11 16:21 ` Linus Torvalds
2006-10-11 16:57 ` SPAM: " Nick Piggin
2006-10-11 16:57 ` Nick Piggin
2006-10-11 17:11 ` Linus Torvalds
2006-10-11 17:11 ` Linus Torvalds
2006-10-11 17:21 ` SPAM: " Nick Piggin
2006-10-11 17:21 ` Nick Piggin
2006-10-11 17:38 ` Linus Torvalds
2006-10-11 17:38 ` Linus Torvalds
2006-10-12 3:33 ` Nick Piggin
2006-10-12 3:33 ` Nick Piggin
2006-10-12 15:37 ` Linus Torvalds
2006-10-12 15:37 ` Linus Torvalds
2006-10-12 15:40 ` Nick Piggin
2006-10-12 15:40 ` Nick Piggin
2006-10-11 5:13 ` Andrew Morton
2006-10-11 5:13 ` Andrew Morton
2006-10-11 5:50 ` Nick Piggin
2006-10-11 5:50 ` Nick Piggin
2006-10-11 6:10 ` Andrew Morton
2006-10-11 6:10 ` Andrew Morton
2006-10-11 6:17 ` [patch 1/6] revert "generic_file_buffered_write(): handle zero length iovec segments" Andrew Morton
2006-10-11 6:17 ` Andrew Morton, Andrew Morton
[not found] ` <20061010231150.fb9e30f5.akpm@osdl.org>
2006-10-11 6:17 ` [patch 2/6] revert "generic_file_buffered_write(): deadlock on vectored write" Andrew Morton
2006-10-11 6:17 ` Andrew Morton, Andrew Morton
[not found] ` <20061010231243.bc8b834c.akpm@osdl.org>
2006-10-11 6:17 ` [patch 3/6] generic_file_buffered_write() cleanup Andrew Morton
2006-10-11 6:17 ` Andrew Morton, Andrew Morton
[not found] ` <20061010231339.a79c1fae.akpm@osdl.org>
2006-10-11 6:18 ` [patch 4/6] generic_file_buffered_write(): fix page prefaulting Andrew Morton
2006-10-11 6:18 ` Andrew Morton, Andrew Morton
[not found] ` <20061010231424.db88931f.akpm@osdl.org>
2006-10-11 6:18 ` [patch 5/6] generic_file_buffered_write(): max_len cleanup Andrew Morton
2006-10-11 6:18 ` Andrew Morton, Andrew Morton
[not found] ` <20061010231514.c1da7355.akpm@osdl.org>
2006-10-11 6:18 ` [patch 6/6] fix pagecache write deadlocks Andrew Morton
2006-10-11 6:18 ` Andrew Morton, Andrew Morton
2006-10-21 1:53 ` [patch 2/5] mm: fault vs invalidate/truncate race fix Benjamin Herrenschmidt
2006-10-21 1:53 ` Benjamin Herrenschmidt
2006-10-10 14:22 ` [patch 3/5] mm: fault handler to replace nopage and populate Nick Piggin
2006-10-10 14:22 ` Nick Piggin
2006-10-10 14:22 ` [patch 4/5] mm: add vm_insert_pfn helpler Nick Piggin
2006-10-10 14:22 ` Nick Piggin
2006-10-11 10:12 ` Thomas Hellstrom [this message]
2006-10-11 11:24 ` Nick Piggin
2006-10-11 21:30 ` Thomas Hellström
2006-10-10 14:22 ` [patch 5/5] mm: merge nopfn with fault handler Nick Piggin
2006-10-10 14:22 ` Nick Piggin
2006-10-10 14:26 ` [rfc] 2.6.19-rc1-git5: consolidation of file backed fault handlers Nick Piggin
2006-10-10 14:26 ` Nick Piggin
2006-10-10 14:33 ` Christoph Hellwig
2006-10-10 14:33 ` Christoph Hellwig
2006-10-10 15:01 ` Nick Piggin
2006-10-10 15:01 ` Nick Piggin
2006-10-10 16:09 ` Arjan van de Ven
2006-10-10 16:09 ` Arjan van de Ven
2006-10-11 0:46 ` SPAM: " Nick Piggin
2006-10-11 0:46 ` Nick Piggin
2006-10-10 15:07 ` Arjan van de Ven
2006-10-10 15:07 ` Arjan van de Ven
-- strict thread matches above, loose matches on Subject: below --
2006-10-09 16:12 Nick Piggin
2006-10-09 16:12 ` [patch 4/5] mm: add vm_insert_pfn helpler Nick Piggin
2006-10-09 16:12 ` Nick Piggin
2006-10-09 21:03 ` Benjamin Herrenschmidt
2006-10-09 21:03 ` Benjamin Herrenschmidt
2006-10-10 0:42 ` Nick Piggin
2006-10-10 0:42 ` Nick Piggin
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=452CC383.4050401@tungstengraphics.com \
--to=thomas@tungstengraphics.com \
--cc=linux-kernel@vger.kernel.org \
--cc=npiggin@suse.de \
/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.