Received: by 2002:a05:6a10:1287:0:0:0:0 with SMTP id d7csp4130453pxv; Mon, 26 Jul 2021 22:39:04 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyubcajD6tx2U+f9hpk8JREvFNdWCwlW6XyiUgf/eUKh0dLLSmbfpUgEdkKq/aQOz2q3zyZ X-Received: by 2002:a17:907:d1b:: with SMTP id gn27mr20323606ejc.301.1627364344070; Mon, 26 Jul 2021 22:39:04 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1627364344; cv=none; d=google.com; s=arc-20160816; b=1DypSpO18jH1CU4W3TGxhozf9BC0e7lK2vQufdZTLex/m6eQLBFMuMPT7Z2tDv19Q8 m7wrwmYPEy+7xXitXnDDhi5QpgzwAFqmESN/G51fIPQi/iKIizW2rFJKPGzrqmPbAsSq g+XJ8ONlLr9R3hpjJmqCdj0a61whu06g3f4BY8IKTQnQzAN1N+Udac9fWXdI6tIBIaOS M7lE9jPSXQdkFky9vm5aldJQtF+dducb8kDQt0FNPiHEfaebty7HK6v5Y7Dt4U6M5SuD lrZvOr7sSRKPtfnDr+NjSCP0SmDZu31ZVUz6d2Mr1vtxsnjt5Kjh0taSWLchbuLuvfH6 qVVw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:content-language :in-reply-to:mime-version:user-agent:date:message-id:references:cc :to:subject:from:dkim-signature; bh=bJzD/4dookOedoazAyDMd9sbQFHTEV2nMBxfajFsEmQ=; b=DuXzHMZZOCK1fyeZok3WsO0eBySs3YifXwhllnuGuYRtXVhy6ZPYjrjdiQPq5qNP6k WNUXg6oQiTco6ZSMbHt6ZZ7VFVJJM/ZGlqXkSmy3dybnfjNVmC6uEXXFkXKVvYNHnrdn 5BOD67OPwun8mbTU2Zkp4A0Pk3W0BIbMsWMWjZGlWLaboe1wM8TtxCfWOD4alOGAMu3/ XuihEM5e69j7LqOObiLLzahLJ0WR1wh8KU1WUdgjgLyVOxCnNL96zwdH/n3EtVsO00xw t3yXxp434iS0BYwQAc6eWfB1bxrmlN3XauDGr2zdL8rz4J3cG793zho4yHxIYee5FYKf MKmg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@virtuozzo.com header.s=relay header.b="F8u/2HH6"; 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; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=virtuozzo.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id bu1si1301245ejb.482.2021.07.26.22.38.40; Mon, 26 Jul 2021 22:39:04 -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=@virtuozzo.com header.s=relay header.b="F8u/2HH6"; 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; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=virtuozzo.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235421AbhG0Fej (ORCPT + 99 others); Tue, 27 Jul 2021 01:34:39 -0400 Received: from relay.sw.ru ([185.231.240.75]:40322 "EHLO relay.sw.ru" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235307AbhG0FeJ (ORCPT ); Tue, 27 Jul 2021 01:34:09 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=virtuozzo.com; s=relay; h=Content-Type:MIME-Version:Date:Message-ID:Subject :From; bh=bJzD/4dookOedoazAyDMd9sbQFHTEV2nMBxfajFsEmQ=; b=F8u/2HH6GVK7BiAMTh4 UI0q9Oib8B+Uz/X45qHzhevS+2/memaWtcUC0mj35gZZKWLjzPoRuB3a35oHfiXAwDBEbJm5xB7n1 cATa8GkK6DM+OCyDP17uLbgBNrb0e14qMtnEFih4ZIEPspyMuu+a9O2ZCp/FVbk2VRKJJiSF3iE=; Received: from [10.93.0.56] by relay.sw.ru with esmtp (Exim 4.94.2) (envelope-from ) id 1m8FjE-005LYs-6G; Tue, 27 Jul 2021 08:34:08 +0300 From: Vasily Averin Subject: [PATCH v7 08/10] memcg: enable accounting for posix_timers_cache slab To: Andrew Morton Cc: cgroups@vger.kernel.org, Michal Hocko , Shakeel Butt , Johannes Weiner , Vladimir Davydov , Roman Gushchin , Thomas Gleixner , linux-kernel@vger.kernel.org References: <6f21a0e0-bd36-b6be-1ffa-0dc86c06c470@virtuozzo.com> Message-ID: <57795560-025c-267c-6b1a-dea852d95530@virtuozzo.com> Date: Tue, 27 Jul 2021 08:34:07 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.11.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org A program may create multiple interval timers using timer_create(). For each timer the kernel preallocates a "queued real-time signal", Consequently, the number of timers is limited by the RLIMIT_SIGPENDING resource limit. The allocated object is quite small, ~250 bytes, but even the default signal limits allow to consume up to 100 megabytes per user. It makes sense to account for them to limit the host's memory consumption from inside the memcg-limited container. Signed-off-by: Vasily Averin Reviewed-by: Thomas Gleixner --- kernel/time/posix-timers.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/kernel/time/posix-timers.c b/kernel/time/posix-timers.c index dd5697d..7363f81 100644 --- a/kernel/time/posix-timers.c +++ b/kernel/time/posix-timers.c @@ -273,8 +273,8 @@ static int posix_get_hrtimer_res(clockid_t which_clock, struct timespec64 *tp) static __init int init_posix_timers(void) { posix_timers_cache = kmem_cache_create("posix_timers_cache", - sizeof (struct k_itimer), 0, SLAB_PANIC, - NULL); + sizeof(struct k_itimer), 0, + SLAB_PANIC | SLAB_ACCOUNT, NULL); return 0; } __initcall(init_posix_timers); -- 1.8.3.1