anolis: mm: hugetext: add macro definition for hugetext flags
ANBZ: #12923 This patch adds hugetext flags definition. There is no functionality change. Signed-off-by: Simon Guo <wei.guo.simon@linux.alibaba.com> Reviewed-by: Xunlei Pang <xlpang@linux.alibaba.com> Reviewed-by: Baolin Wang <baolin.wang@linux.alibaba.com> Link: https://gitee.com/anolis/cloud-kernel/pulls/4359
This commit is contained in:
parent
a888f36104
commit
eed008f0d7
|
@ -97,6 +97,18 @@ enum transparent_hugepage_flag {
|
|||
#endif
|
||||
};
|
||||
|
||||
#ifdef CONFIG_HUGETEXT
|
||||
#define BIT_SHIFT_THP_TEXT_FILE 0
|
||||
#define BIT_SHIFT_THP_TEXT_ANON 1
|
||||
#define BIT_SHIFT_THP_TEXT_FILE_DIRECT 2
|
||||
|
||||
#define BIT_MASK_THP_TEXT_FILE (1 << BIT_SHIFT_THP_TEXT_FILE)
|
||||
#define BIT_MASK_THP_TEXT_ANON (1 << BIT_SHIFT_THP_TEXT_ANON)
|
||||
#define BIT_MASK_THP_TEXT_FILE_DIRECT (1 << BIT_SHIFT_THP_TEXT_FILE_DIRECT)
|
||||
#define BIT_MASK_THP_TEXT_ALL (BIT_MASK_THP_TEXT_FILE | \
|
||||
BIT_MASK_THP_TEXT_ANON | BIT_MASK_THP_TEXT_FILE_DIRECT)
|
||||
#endif
|
||||
|
||||
struct kobject;
|
||||
struct kobj_attribute;
|
||||
|
||||
|
|
|
@ -342,11 +342,11 @@ static ssize_t hugetext_enabled_show(struct kobject *kobj,
|
|||
int val = 0;
|
||||
|
||||
if (test_bit(TRANSPARENT_HUGEPAGE_FILE_TEXT_ENABLED_FLAG, &transparent_hugepage_flags))
|
||||
val |= 0x01;
|
||||
val |= BIT_MASK_THP_TEXT_FILE;
|
||||
if (test_bit(TRANSPARENT_HUGEPAGE_ANON_TEXT_ENABLED_FLAG, &transparent_hugepage_flags))
|
||||
val |= 0x02;
|
||||
val |= BIT_MASK_THP_TEXT_ANON;
|
||||
if (test_bit(TRANSPARENT_HUGEPAGE_FILE_TEXT_DIRECT_FLAG, &transparent_hugepage_flags))
|
||||
val |= 0x04;
|
||||
val |= BIT_MASK_THP_TEXT_FILE_DIRECT;
|
||||
|
||||
return sprintf(buf, "%d\n", val);
|
||||
}
|
||||
|
@ -361,29 +361,29 @@ static ssize_t hugetext_enabled_store(struct kobject *kobj,
|
|||
return -EINVAL;
|
||||
|
||||
ret = kstrtoul(buf, 0, &val);
|
||||
if (ret < 0 || val > 7)
|
||||
if (ret < 0 || val > BIT_MASK_THP_TEXT_ALL)
|
||||
return -EINVAL;
|
||||
|
||||
/* FILE_TEXT_DIRECT depends on FILE_TEXT_ENABLED */
|
||||
if ((val & 0x4) && !(val & 0x1))
|
||||
if ((val & BIT_MASK_THP_TEXT_FILE_DIRECT) && !(val & BIT_MASK_THP_TEXT_FILE))
|
||||
return -EINVAL;
|
||||
|
||||
ret = count;
|
||||
if (val & 0x01)
|
||||
if (val & BIT_MASK_THP_TEXT_FILE)
|
||||
set_bit(TRANSPARENT_HUGEPAGE_FILE_TEXT_ENABLED_FLAG,
|
||||
&transparent_hugepage_flags);
|
||||
else
|
||||
clear_bit(TRANSPARENT_HUGEPAGE_FILE_TEXT_ENABLED_FLAG,
|
||||
&transparent_hugepage_flags);
|
||||
|
||||
if (val & 0x02)
|
||||
if (val & BIT_MASK_THP_TEXT_ANON)
|
||||
set_bit(TRANSPARENT_HUGEPAGE_ANON_TEXT_ENABLED_FLAG,
|
||||
&transparent_hugepage_flags);
|
||||
else
|
||||
clear_bit(TRANSPARENT_HUGEPAGE_ANON_TEXT_ENABLED_FLAG,
|
||||
&transparent_hugepage_flags);
|
||||
|
||||
if (val & 0x04)
|
||||
if (val & BIT_MASK_THP_TEXT_FILE_DIRECT)
|
||||
set_bit(TRANSPARENT_HUGEPAGE_FILE_TEXT_DIRECT_FLAG,
|
||||
&transparent_hugepage_flags);
|
||||
else
|
||||
|
@ -753,30 +753,30 @@ static int __init setup_hugetext(char *str)
|
|||
goto out;
|
||||
|
||||
err = kstrtoul(str, 0, &val);
|
||||
if (err < 0 || val > 7)
|
||||
if (err < 0 || val > BIT_MASK_THP_TEXT_ALL)
|
||||
goto out;
|
||||
|
||||
/* FILE_TEXT_DIRECT depends on FILE_TEXT_ENABLED */
|
||||
if ((val & 0x4) && !(val & 0x1)) {
|
||||
if ((val & BIT_MASK_THP_TEXT_FILE_DIRECT) && !(val & BIT_MASK_THP_TEXT_FILE)) {
|
||||
err = -EINVAL;
|
||||
goto out;
|
||||
}
|
||||
|
||||
if (val & 0x01)
|
||||
if (val & BIT_MASK_THP_TEXT_FILE)
|
||||
set_bit(TRANSPARENT_HUGEPAGE_FILE_TEXT_ENABLED_FLAG,
|
||||
&transparent_hugepage_flags);
|
||||
else
|
||||
clear_bit(TRANSPARENT_HUGEPAGE_FILE_TEXT_ENABLED_FLAG,
|
||||
&transparent_hugepage_flags);
|
||||
|
||||
if (val & 0x02)
|
||||
if (val & BIT_MASK_THP_TEXT_ANON)
|
||||
set_bit(TRANSPARENT_HUGEPAGE_ANON_TEXT_ENABLED_FLAG,
|
||||
&transparent_hugepage_flags);
|
||||
else
|
||||
clear_bit(TRANSPARENT_HUGEPAGE_ANON_TEXT_ENABLED_FLAG,
|
||||
&transparent_hugepage_flags);
|
||||
|
||||
if (val & 0x04)
|
||||
if (val & BIT_MASK_THP_TEXT_FILE_DIRECT)
|
||||
set_bit(TRANSPARENT_HUGEPAGE_FILE_TEXT_DIRECT_FLAG,
|
||||
&transparent_hugepage_flags);
|
||||
else
|
||||
|
|
Loading…
Reference in New Issue