Received: by 2002:a25:1985:0:0:0:0:0 with SMTP id 127csp1326002ybz; Thu, 16 Apr 2020 07:15:51 -0700 (PDT) X-Google-Smtp-Source: APiQypJI724ZKeZQrcbtsEY7hjQwhOftCLQVxrLiMzuDvpilYvV9TD6ta4Y2DMygLQTrzi+J+fNp X-Received: by 2002:a17:906:6d95:: with SMTP id h21mr9881331ejt.66.1587046551315; Thu, 16 Apr 2020 07:15:51 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1587046551; cv=none; d=google.com; s=arc-20160816; b=AH48aRhbHQCOT210q1qoksuGxPDfNg5Rx7D2OHNN0UA2SJkH6efwzi+jsnrnY0pGcV Ea3219hUHv633Z5p5tSoO5SOClTjJI0g07vmZlprsRFtX22M50j6YrzeN5tAlVdVTTUf M/Y3wAgErwCV2vwKHuIGjjZWd6+PX+4S1wP+vc1swcO8JcuIdJg8GHB42E/Zi0dSSgIS HPKH0yZukeCjpjnhXsum+llTiSjkPYlszfTVehaj4y3lYyQDv+S/ryuNmad8xluCTJZp b+r9kBtM/AUcwGNbqnNxWafOkKLxov8kKERV8XfktVxN/26/Femg5nlKjH5G/fGOCPoD LALQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=EBQFwOtY3ICyz4IRNsSPNiVdbjrH/SOML9JiDaXAQHg=; b=D5jJ7izYNQ0+SVUrlnX3A76CG3CQUSc4kVd/oLbwUFWbXzoyrUqguD4F1QQ3fihYlL 4riSqXDqaq8h2pZY70oy8N7SBft5l+uOzobxJL3MERyRAjB7R0pqIKji5VBBsrzUIyiX Kyd/Gz9NwoJ9QyxqbMd8tLBhvt67tAcEmy1WFE0znOlDCtbN2fcKfpyUhkNHvjly9h0n y+cZMlg/POKxjgNaCy22Z5Ae01+y868af0RbHEkR6HtORNW3Op8Sy6W+PnMBfzKZhzl3 4/xBd2O9FzeeJ7cBPUIQjU8bC0ZI+kkky6mT1mta/241ZNFqtxZ0gwEOrRgxixulUvDe oS+Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=ZhG1G+WQ; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id y71si13602776ede.301.2020.04.16.07.15.27; Thu, 16 Apr 2020 07:15:51 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=ZhG1G+WQ; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2441943AbgDPONW (ORCPT + 99 others); Thu, 16 Apr 2020 10:13:22 -0400 Received: from mail.kernel.org ([198.145.29.99]:34846 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2898761AbgDPNsy (ORCPT ); Thu, 16 Apr 2020 09:48:54 -0400 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 395D72222C; Thu, 16 Apr 2020 13:48:53 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1587044933; bh=Q4F0B30tAtjMB3UUkUoCTh9k7686nZ8kTOr7gh4cJ4s=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ZhG1G+WQXlyGQr2SyVfmnl6lk6iCNcYgiyo7XFFbZcvPsvlawu+GDcQ9ajqc5VOtX KfthE+LJZ26s2ez2Q9Uw9NY7az5H1x+g7mZQGOVeAX9jq7Bje4Lhjk3cAGJjPDFMSw DGzYTGH+523S3fOyPtuAzC6ioxCFp/RZ0QLQZm20= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Jakub Kicinski , Chris Down , Andrew Morton , Michal Hocko , Johannes Weiner , Linus Torvalds , Guenter Roeck Subject: [PATCH 5.4 160/232] mm, memcg: do not high throttle allocators based on wraparound Date: Thu, 16 Apr 2020 15:24:14 +0200 Message-Id: <20200416131335.015077692@linuxfoundation.org> X-Mailer: git-send-email 2.26.1 In-Reply-To: <20200416131316.640996080@linuxfoundation.org> References: <20200416131316.640996080@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Jakub Kicinski commit 9b8b17541f13809d06f6f873325305ddbb760e3e upstream. If a cgroup violates its memory.high constraints, we may end up unduly penalising it. For example, for the following hierarchy: A: max high, 20 usage A/B: 9 high, 10 usage A/C: max high, 10 usage We would end up doing the following calculation below when calculating high delay for A/B: A/B: 10 - 9 = 1... A: 20 - PAGE_COUNTER_MAX = 21, so set max_overage to 21. This gets worse with higher disparities in usage in the parent. I have no idea how this disappeared from the final version of the patch, but it is certainly Not Good(tm). This wasn't obvious in testing because, for a simple cgroup hierarchy with only one child, the result is usually roughly the same. It's only in more complex hierarchies that things go really awry (although still, the effects are limited to a maximum of 2 seconds in schedule_timeout_killable at a maximum). [chris@chrisdown.name: changelog] Fixes: e26733e0d0ec ("mm, memcg: throttle allocators based on ancestral memory.high") Signed-off-by: Jakub Kicinski Signed-off-by: Chris Down Signed-off-by: Andrew Morton Acked-by: Michal Hocko Cc: Johannes Weiner Cc: [5.4.x] Link: http://lkml.kernel.org/r/20200331152424.GA1019937@chrisdown.name Signed-off-by: Linus Torvalds Cc: Guenter Roeck Signed-off-by: Greg Kroah-Hartman --- mm/memcontrol.c | 3 +++ 1 file changed, 3 insertions(+) --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -2441,6 +2441,9 @@ static unsigned long calculate_high_dela usage = page_counter_read(&memcg->memory); high = READ_ONCE(memcg->high); + if (usage <= high) + continue; + /* * Prevent division by 0 in overage calculation by acting as if * it was a threshold of 1 page