mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs.git
synced 2026-10-28 21:02:43 +01:00
mm: allow THP orders for PFNMAPs
This enables PFNMAPs to be mapped at either pmd/pud layers. Generalize the dax case into vma_is_special_huge() so as to cover both. Meanwhile, rename the macro to THP_ORDERS_ALL_SPECIAL. Link: https://lkml.kernel.org/r/[email protected] Signed-off-by: Peter Xu <[email protected]> Reviewed-by: Jason Gunthorpe <[email protected]> Acked-by: David Hildenbrand <[email protected]> Cc: Matthew Wilcox <[email protected]> Cc: Gavin Shan <[email protected]> Cc: Ryan Roberts <[email protected]> Cc: Zi Yan <[email protected]> Cc: Alexander Gordeev <[email protected]> Cc: Alex Williamson <[email protected]> Cc: Aneesh Kumar K.V <[email protected]> Cc: Borislav Petkov <[email protected]> Cc: Catalin Marinas <[email protected]> Cc: Christian Borntraeger <[email protected]> Cc: Dave Hansen <[email protected]> Cc: Gerald Schaefer <[email protected]> Cc: Heiko Carstens <[email protected]> Cc: Ingo Molnar <[email protected]> Cc: Niklas Schnelle <[email protected]> Cc: Paolo Bonzini <[email protected]> Cc: Sean Christopherson <[email protected]> Cc: Sven Schnelle <[email protected]> Cc: Thomas Gleixner <[email protected]> Cc: Vasily Gorbik <[email protected]> Cc: Will Deacon <[email protected]> Signed-off-by: Andrew Morton <[email protected]>
This commit is contained in:
1 parent
3c8e44c9b3
commit
5dd40721f1
2 files changed
+5
-5
No files matched your search
@@ -76,9 +76,9 @@ extern struct kobj_attribute thpsize_shmem_enabled_attr;
|
||||
/*
|
||||
* Mask of all large folio orders supported for file THP. Folios in a DAX
|
||||
* file is never split and the MAX_PAGECACHE_ORDER limit does not apply to
|
||||
* it.
|
||||
* it. Same to PFNMAPs where there's neither page* nor pagecache.
|
||||
*/
|
||||
#define THP_ORDERS_ALL_FILE_DAX \
|
||||
#define THP_ORDERS_ALL_SPECIAL \
|
||||
(BIT(PMD_ORDER) | BIT(PUD_ORDER))
|
||||
#define THP_ORDERS_ALL_FILE_DEFAULT \
|
||||
((BIT(MAX_PAGECACHE_ORDER + 1) - 1) & ~BIT(0))
|
||||
@@ -87,7 +87,7 @@ extern struct kobj_attribute thpsize_shmem_enabled_attr;
|
||||
* Mask of all large folio orders supported for THP.
|
||||
*/
|
||||
#define THP_ORDERS_ALL \
|
||||
(THP_ORDERS_ALL_ANON | THP_ORDERS_ALL_FILE_DAX | THP_ORDERS_ALL_FILE_DEFAULT)
|
||||
(THP_ORDERS_ALL_ANON | THP_ORDERS_ALL_SPECIAL | THP_ORDERS_ALL_FILE_DEFAULT)
|
||||
|
||||
#define TVA_SMAPS (1 << 0) /* Will be used for procfs */
|
||||
#define TVA_IN_PF (1 << 1) /* Page fault handler */
|
||||
|
||||
+2
-2
@@ -97,8 +97,8 @@ unsigned long __thp_vma_allowable_orders(struct vm_area_struct *vma,
|
||||
/* Check the intersection of requested and supported orders. */
|
||||
if (vma_is_anonymous(vma))
|
||||
supported_orders = THP_ORDERS_ALL_ANON;
|
||||
else if (vma_is_dax(vma))
|
||||
supported_orders = THP_ORDERS_ALL_FILE_DAX;
|
||||
else if (vma_is_special_huge(vma))
|
||||
supported_orders = THP_ORDERS_ALL_SPECIAL;
|
||||
else
|
||||
supported_orders = THP_ORDERS_ALL_FILE_DEFAULT;
|
||||
|
||||
|
||||
Reference in new issue
Block a user