linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH -V6 00/14] memcg: Add memcg extension to control HugeTLB allocation
@ 2012-04-16 10:44 Aneesh Kumar K.V
  2012-04-16 10:44 ` [PATCH -V6 01/14] hugetlb: rename max_hstate to hugetlb_max_hstate Aneesh Kumar K.V
                   ` (13 more replies)
  0 siblings, 14 replies; 44+ messages in thread
From: Aneesh Kumar K.V @ 2012-04-16 10:44 UTC (permalink / raw)
  To: linux-mm, mgorman, kamezawa.hiroyu, dhillf, aarcange, mhocko,
	akpm, hannes
  Cc: linux-kernel, cgroups

Hi,

This patchset implements a memory controller extension to control
HugeTLB allocations. The extension allows to limit the HugeTLB
usage per control group and enforces the controller limit during
page fault. Since HugeTLB doesn't support page reclaim, enforcing
the limit at page fault time implies that, the application will get
SIGBUS signal if it tries to access HugeTLB pages beyond its limit.
This requires the application to know beforehand how much HugeTLB
pages it would require for its use.

The goal is to control how many HugeTLB pages a group of task can
allocate. It can be looked at as an extension of the existing quota
interface which limits the number of HugeTLB pages per hugetlbfs
superblock. HPC job scheduler requires jobs to specify their resource
requirements in the job file. Once their requirements can be met,
job schedulers like (SLURM) will schedule the job. We need to make sure
that the jobs won't consume more resources than requested. If they do
we should either error out or kill the application.

Patches are on top of

git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup.git for-3.5

Changes from V5:
 * Address review feedback.

Changes from V4:
 * Add support for charge/uncharge during page migration
 * Drop the usage of page->lru in unmap_hugepage_range.

Changes from v3:
 * Address review feedback.
 * Fix a bug in cgroup removal related parent charging with use_hierarchy set

Changes from V2:
* Changed the implementation to limit the HugeTLB usage during page
  fault time. This simplifies the extension and keep it closer to
  memcg design. This also allows to support cgroup removal with less
  complexity. Only caveat is the application should ensure its HugeTLB
  usage doesn't cross the cgroup limit.

Changes from V1:
* Changed the implementation as a memcg extension. We still use
  the same logic to track the cgroup and range.

Changes from RFC post:
* Added support for HugeTLB cgroup hierarchy
* Added support for task migration
* Added documentation patch
* Other bug fixes

-aneesh



^ permalink raw reply	[flat|nested] 44+ messages in thread

end of thread, other threads:[~2012-06-16 20:26 UTC | newest]

Thread overview: 44+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-04-16 10:44 [PATCH -V6 00/14] memcg: Add memcg extension to control HugeTLB allocation Aneesh Kumar K.V
2012-04-16 10:44 ` [PATCH -V6 01/14] hugetlb: rename max_hstate to hugetlb_max_hstate Aneesh Kumar K.V
2012-05-24 21:11   ` David Rientjes
2012-04-16 10:44 ` [PATCH -V6 02/14] hugetlbfs: don't use ERR_PTR with VM_FAULT* values Aneesh Kumar K.V
2012-05-24 21:17   ` David Rientjes
2012-04-16 10:44 ` [PATCH -V6 03/14] hugetlbfs: Add an inline helper for finding hstate index Aneesh Kumar K.V
2012-05-24 21:22   ` David Rientjes
2012-05-27 20:07     ` Aneesh Kumar K.V
2012-04-16 10:44 ` [PATCH -V6 04/14] hugetlb: Use mmu_gather instead of a temporary linked list for accumulating pages Aneesh Kumar K.V
2012-04-23 23:44   ` Andrew Morton
2012-04-16 10:44 ` [PATCH -V6 05/14] hugetlb: Avoid taking i_mmap_mutex in unmap_single_vma for hugetlb Aneesh Kumar K.V
2012-04-16 10:44 ` [PATCH -V6 06/14] hugetlb: Simplify migrate_huge_page Aneesh Kumar K.V
2012-05-24 21:35   ` David Rientjes
2012-05-27 20:13     ` Aneesh Kumar K.V
2012-04-16 10:44 ` [PATCH -V6 07/14] memcg: Add HugeTLB extension Aneesh Kumar K.V
2012-05-02  0:20   ` Paul Gortmaker
2012-05-03  4:37     ` Aneesh Kumar K.V
2012-05-24 21:52   ` David Rientjes
2012-05-24 22:57     ` Andrew Morton
2012-05-24 23:20       ` David Rientjes
2012-05-27 20:28     ` Aneesh Kumar K.V
2012-05-30 14:43       ` Aneesh Kumar K.V
2012-06-08 23:06         ` Andrew Morton
2012-06-09 14:16           ` Aneesh Kumar K.V
2012-06-10  1:55             ` David Rientjes
2012-06-10 15:04               ` Aneesh Kumar K.V
2012-06-11  3:55           ` Kamezawa Hiroyuki
2012-06-11  9:23             ` David Rientjes
2012-06-15 22:31               ` Aditya Kali
2012-06-16 20:26                 ` David Rientjes
2012-06-11  9:32           ` Michal Hocko
2012-04-16 10:44 ` [PATCH -V6 08/14] hugetlb: add charge/uncharge calls for HugeTLB alloc/free Aneesh Kumar K.V
2012-04-16 10:44 ` [PATCH -V6 09/14] memcg: track resource index in cftype private Aneesh Kumar K.V
2012-04-16 10:44 ` [PATCH -V6 10/14] hugetlbfs: Add memcg control files for hugetlbfs Aneesh Kumar K.V
2012-04-16 23:13   ` Andrew Morton
2012-04-18  6:15     ` [PATCH] memcg: Use scnprintf instead of sprintf Aneesh Kumar K.V
2012-04-18 22:36       ` Andrew Morton
2012-04-19  8:26         ` Andreas Schwab
2012-04-18  6:16     ` [PATCH -V6 10/14] hugetlbfs: Add memcg control files for hugetlbfs Aneesh Kumar K.V
2012-04-16 10:44 ` [PATCH -V6 11/14] hugetlbfs: Add a list for tracking in-use HugeTLB pages Aneesh Kumar K.V
2012-04-16 10:44 ` [PATCH -V6 12/14] memcg: move HugeTLB resource count to parent cgroup on memcg removal Aneesh Kumar K.V
2012-04-23 22:45   ` Andrew Morton
2012-04-16 10:44 ` [PATCH -V6 13/14] hugetlb: migrate memcg info from oldpage to new page during migration Aneesh Kumar K.V
2012-04-16 10:44 ` [PATCH -V6 14/14] memcg: Add memory controller documentation for hugetlb management Aneesh Kumar K.V

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).