Re: [PATCH -V8 13/16] hugetlb/cgroup: add hugetlb cgroup control files

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Michal Hocko <mhocko@xxxxxxx> writes:

> On Sat 09-06-12 14:29:58, Aneesh Kumar K.V wrote:
>> From: "Aneesh Kumar K.V" <aneesh.kumar@xxxxxxxxxxxxxxxxxx>
>> 
>> Add the control files for hugetlb controller
>> 
>> Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@xxxxxxxxxxxxxxxxxx>
>> ---
> [...]
>> +int __init hugetlb_cgroup_file_init(int idx)
>> +{
>> +	char buf[32];
>> +	struct cftype *cft;
>> +	struct hstate *h = &hstates[idx];
>> +
>> +	/* format the size */
>> +	mem_fmt(buf, 32, huge_page_size(h));
>> +
>> +	/* Add the limit file */
>> +	cft = &h->cgroup_files[0];
>> +	snprintf(cft->name, MAX_CFTYPE_NAME, "%s.limit_in_bytes", buf);
>> +	cft->private = MEMFILE_PRIVATE(idx, RES_LIMIT);
>> +	cft->read = hugetlb_cgroup_read;
>> +	cft->write_string = hugetlb_cgroup_write;
>> +
>> +	/* Add the usage file */
>> +	cft = &h->cgroup_files[1];
>> +	snprintf(cft->name, MAX_CFTYPE_NAME, "%s.usage_in_bytes", buf);
>> +	cft->private = MEMFILE_PRIVATE(idx, RES_USAGE);
>> +	cft->read = hugetlb_cgroup_read;
>> +
>> +	/* Add the MAX usage file */
>> +	cft = &h->cgroup_files[2];
>> +	snprintf(cft->name, MAX_CFTYPE_NAME, "%s.max_usage_in_bytes", buf);
>> +	cft->private = MEMFILE_PRIVATE(idx, RES_MAX_USAGE);
>> +	cft->trigger = hugetlb_cgroup_reset;
>> +	cft->read = hugetlb_cgroup_read;
>> +
>> +	/* Add the failcntfile */
>> +	cft = &h->cgroup_files[3];
>> +	snprintf(cft->name, MAX_CFTYPE_NAME, "%s.failcnt", buf);
>> +	cft->private  = MEMFILE_PRIVATE(idx, RES_FAILCNT);
>> +	cft->trigger  = hugetlb_cgroup_reset;
>> +	cft->read = hugetlb_cgroup_read;
>> +
>> +	/* NULL terminate the last cft */
>> +	cft = &h->cgroup_files[4];
>> +	memset(cft, 0, sizeof(*cft));
>> +
>> +	WARN_ON(cgroup_add_cftypes(&hugetlb_subsys, h->cgroup_files));
>> +
>> +	return 0;
>> +}
>> +
>
> I am not so familiar with the recent changes in the generic cgroup
> infrastructure but isn't this somehow automated?

yes for most of the cgroups. But in the hugetlb case we have variable number
of control files. We have the above set of control files for each
hugetlb size supported by the architecture.

-aneesh

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@xxxxxxxxx.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@xxxxxxxxx";> email@xxxxxxxxx </a>


[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]