Add an entry for charge_surplus_hugepages to sysfs. Signed-off-by: TSUKADA Koutaro <tsukada@xxxxxxxxxxxx> --- hugetlb.c | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/mm/hugetlb.c b/mm/hugetlb.c index 9a9549c..2f9bdbc 100644 --- a/mm/hugetlb.c +++ b/mm/hugetlb.c @@ -2662,6 +2662,30 @@ static ssize_t surplus_hugepages_show(struct kobject *kobj, } HSTATE_ATTR_RO(surplus_hugepages); +static ssize_t charge_surplus_hugepages_show(struct kobject *kobj, + struct kobj_attribute *attr, char *buf) +{ + struct hstate *h = kobj_to_hstate(kobj, NULL); + return sprintf(buf, "%d\n", h->charge_surplus_huge_pages); +} + +static ssize_t charge_surplus_hugepages_store(struct kobject *kobj, + struct kobj_attribute *attr, const char *buf, size_t len) +{ + int err; + unsigned long input; + struct hstate *h = kobj_to_hstate(kobj, NULL); + + err = kstrtoul(buf, 10, &input); + if (err) + return err; + + h->charge_surplus_huge_pages = input ? true : false; + + return len; +} +HSTATE_ATTR(charge_surplus_hugepages); + static struct attribute *hstate_attrs[] = { &nr_hugepages_attr.attr, &nr_overcommit_hugepages_attr.attr, @@ -2671,6 +2695,7 @@ static ssize_t surplus_hugepages_show(struct kobject *kobj, #ifdef CONFIG_NUMA &nr_hugepages_mempolicy_attr.attr, #endif + &charge_surplus_hugepages_attr.attr, NULL, }; -- Tsukada