| Date | Fri, 05 Apr 2013 11:45:21 +0800 | From | Ric Mason <> | Subject | Re: [PATCHv2, RFC 07/30] thp, mm: introduce mapping_can_have_hugepages() predicate |
| |
Hi Kirill, On 03/15/2013 01:50 AM, Kirill A. Shutemov wrote: > From: "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com> > > Returns true if mapping can have huge pages. Just check for __GFP_COMP > in gfp mask of the mapping for now. > > Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com> > --- > include/linux/pagemap.h | 10 ++++++++++ > 1 file changed, 10 insertions(+) > > diff --git a/include/linux/pagemap.h b/include/linux/pagemap.h > index e3dea75..3521b0d 100644 > --- a/include/linux/pagemap.h > +++ b/include/linux/pagemap.h > @@ -84,6 +84,16 @@ static inline void mapping_set_gfp_mask(struct address_space *m, gfp_t mask) > (__force unsigned long)mask; > } > > +static inline bool mapping_can_have_hugepages(struct address_space *m) > +{ > + if (IS_ENABLED(CONFIG_TRANSPARENT_HUGEPAGE)) { > + gfp_t gfp_mask = mapping_gfp_mask(m); > + return !!(gfp_mask & __GFP_COMP);
I always see !! in kernel, but why check directly instead of have !! prefix?
> + } > + > + return false; > +} > + > /* > * The page cache can done in larger chunks than > * one page, because it allows for more efficient
|