Re: [PATCH] mm: get page_cache_get_speculative() work on tail pages

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

 



On Wed, Apr 01, 2015 at 04:21:30PM -0700, Hugh Dickins wrote:
> On Thu, 2 Apr 2015, Kirill A. Shutemov wrote:
> 
> > Generic RCU fast GUP rely on page_cache_get_speculative() to obtain pin
> > on pte-mapped page.  As pointed by Aneesh during review of my compound
> > pages refcounting rework, page_cache_get_speculative() would fail on
> > pte-mapped tail page, since tail pages always have page->_count == 0.
> > 
> > That means we would never be able to successfully obtain pin on
> > pte-mapped tail page via generic RCU fast GUP.
> > 
> > But the problem is not exclusive to my patchset. In current kernel some
> > drivers (sound, for instance) already map compound pages with PTEs.
> 
> Hah, you were sending this as I was replying to the original thread.
> 
> Do we care if fast gup fails on some hardware driver's compound pages?
> I don't think we do, and it would be better not to complicate the
> low-level page_cache_get_speculative for them.

Fair enough :-/

I'll check tomorrow if it will look more reasonable on gup_pte_range()
level, rather than page_cache_get_speculative().

-- 
 Kirill A. Shutemov

--
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]