Re: [PATCHv3 1/2] mm: introduce vm_ops->map_pages()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, 27 Feb 2014 21:53:46 +0200 "Kirill A. Shutemov" <kirill.shutemov@xxxxxxxxxxxxxxx> wrote:

> The patch introduces new vm_ops callback ->map_pages() and uses it for
> mapping easy accessible pages around fault address.
> 
> On read page fault, if filesystem provides ->map_pages(), we try to map
> up to FAULT_AROUND_PAGES pages around page fault address in hope to
> reduce number of minor page faults.
> 
> We call ->map_pages first and use ->fault() as fallback if page by the
> offset is not ready to be mapped (cold page cache or something).
>
> ...
>
> --- a/include/linux/mm.h
> +++ b/include/linux/mm.h
>
> ...
>
> @@ -571,6 +576,9 @@ static inline pte_t maybe_mkwrite(pte_t pte, struct vm_area_struct *vma)
>  		pte = pte_mkwrite(pte);
>  	return pte;
>  }
> +
> +void do_set_pte(struct vm_area_struct *vma, unsigned long address,
> +		struct page *page, pte_t *pte, bool write, bool anon);
>  #endif
>  
>  /*

lguest made a dubious naming decision:

drivers/lguest/page_tables.c:890: error: conflicting types for 'do_set_pte'
include/linux/mm.h:593: note: previous declaration of 'do_set_pte' was here

I'll rename lguest's do_set_pte() to do_guest_set_pte() as a
preparatory patch.


btw, do_set_pte() could really do with some documentation.  It's not a
trivial function and it does a lot of stuff.  It's exported to other
compilation units and we should explain the what, the why and
particularly the locking preconditions.

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@xxxxxxxxx.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@xxxxxxxxx";> email@xxxxxxxxx </a>




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]