diff --git a/arch/arm64/mm/init.c b/arch/arm64/mm/init.c index e43764db4c3a5fa129f37765c6a06f684f7cdafa..08cc25afd98575e147c0e1df31a9e56a3261c4cb 100644 --- a/arch/arm64/mm/init.c +++ b/arch/arm64/mm/init.c @@ -40,6 +40,7 @@ #include #include #include +#include #include #include @@ -766,6 +767,25 @@ static int __init keepinitrd_setup(char *__unused) __setup("keepinitrd", keepinitrd_setup); #endif +#ifdef CONFIG_ASCEND_FEATURES +static int __init ascend_enable_setup(char *__unused) +{ + if (IS_ENABLED(CONFIG_ASCEND_DVPP_MMAP)) + enable_map_dvpp = 1; + + if (IS_ENABLED(CONFIG_ASCEND_IOPF_HIPRI)) + enable_iopf_hipri = 1; + + if (IS_ENABLED(CONFIG_ASCEND_CHARGE_MIGRATE_HUGEPAGES)) + enable_charge_mighp = 1; + + return 1; +} + +__setup("ascend_enable_all", ascend_enable_setup); +#endif + + /* * Dump out memory limit information on panic. */ diff --git a/drivers/iommu/io-pgfault.c b/drivers/iommu/io-pgfault.c index 271400633dae8812cfcd5a529e9c6140253904c7..1029a22441bb0e70631fb75fc18f9a451c907e0e 100644 --- a/drivers/iommu/io-pgfault.c +++ b/drivers/iommu/io-pgfault.c @@ -48,7 +48,7 @@ struct iopf_group { struct work_struct work; }; -static int enable_iopf_hipri __read_mostly; +int enable_iopf_hipri __read_mostly; static int iopf_complete(struct device *dev, struct iommu_fault_event *evt, enum page_response_code status) diff --git a/include/linux/iommu.h b/include/linux/iommu.h index e6ffd426e267792405a93be7efc2e22741e99d7f..c5cc3c9e393c42342b51c364a6d2f89d702c491c 100644 --- a/include/linux/iommu.h +++ b/include/linux/iommu.h @@ -1125,4 +1125,6 @@ void iommu_debugfs_setup(void); static inline void iommu_debugfs_setup(void) {} #endif +extern int enable_iopf_hipri __read_mostly; + #endif /* __LINUX_IOMMU_H */ diff --git a/include/linux/mm.h b/include/linux/mm.h index 2749c4232d49acaf282c13585ec1427d369ab2ec..3e6acf829f5d6f87e3235d06f71e1defa60a133c 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -2856,5 +2856,7 @@ void __init setup_nr_node_ids(void); static inline void setup_nr_node_ids(void) {} #endif +extern int enable_charge_mighp __read_mostly; + #endif /* __KERNEL__ */ #endif /* _LINUX_MM_H */ diff --git a/mm/hugetlb.c b/mm/hugetlb.c index 41a1be919f84f23b05ccc4d1b5f22ed8ebe13e6b..0d0961a65d3e1387c5834a293d1e9c34c0ecbf3a 100644 --- a/mm/hugetlb.c +++ b/mm/hugetlb.c @@ -54,7 +54,7 @@ static struct hstate * __initdata parsed_hstate; static unsigned long __initdata default_hstate_max_huge_pages; static unsigned long __initdata default_hstate_size; static bool __initdata parsed_valid_hugepagesz = true; -static int enable_charge_mighp __read_mostly; +int enable_charge_mighp __read_mostly; /* * Protects updates to hugepage_freelists, hugepage_activelist, nr_huge_pages, diff --git a/mm/mmap.c b/mm/mmap.c index e1a4d3fa713ec2a3c499baeb83965c2604be794a..e8898a241a798c8e7c9b07d138c04f6ac57d2895 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -3747,7 +3747,7 @@ subsys_initcall(init_reserve_notifier); /* * Enable the MAP_32BIT (mmaps and hugetlb). */ -int enable_map_dvpp __read_mostly = 0; +int enable_map_dvpp __read_mostly; #ifdef CONFIG_ASCEND_DVPP_MMAP