Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1759657AbcDFBZR (ORCPT ); Tue, 5 Apr 2016 21:25:17 -0400 Received: from mail-pa0-f44.google.com ([209.85.220.44]:34554 "EHLO mail-pa0-f44.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752950AbcDFBZP (ORCPT ); Tue, 5 Apr 2016 21:25:15 -0400 Date: Tue, 5 Apr 2016 18:25:13 -0700 (PDT) From: David Rientjes X-X-Sender: rientjes@chino.kir.corp.google.com To: Andrew Morton cc: Michal Hocko , Johannes Weiner , "Kirill A. Shutemov" , linux-kernel@vger.kernel.org, linux-mm@kvack.org Subject: [patch] mm, hugetlb_cgroup: round limit_in_bytes down to hugepage size Message-ID: User-Agent: Alpine 2.10 (DEB 1266 2009-07-14) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 795 Lines: 22 The page_counter rounds limits down to page size values. This makes sense, except in the case of hugetlb_cgroup where it's not possible to charge partial hugepages. Round the hugetlb_cgroup limit down to hugepage size. Signed-off-by: David Rientjes --- mm/hugetlb_cgroup.c | 1 + 1 file changed, 1 insertion(+) diff --git a/mm/hugetlb_cgroup.c b/mm/hugetlb_cgroup.c --- a/mm/hugetlb_cgroup.c +++ b/mm/hugetlb_cgroup.c @@ -288,6 +288,7 @@ static ssize_t hugetlb_cgroup_write(struct kernfs_open_file *of, switch (MEMFILE_ATTR(of_cft(of)->private)) { case RES_LIMIT: + nr_pages &= ~((1 << huge_page_order(&hstates[idx])) - 1); mutex_lock(&hugetlb_limit_mutex); ret = page_counter_limit(&h_cg->hugepage[idx], nr_pages); mutex_unlock(&hugetlb_limit_mutex);