Received: by 2002:a05:6a10:f347:0:0:0:0 with SMTP id d7csp393559pxu; Tue, 1 Dec 2020 14:05:47 -0800 (PST) X-Google-Smtp-Source: ABdhPJxjIoE5ZwEdcXY1YQspreZUnUHvObHXxmuOJ1mABGIsvSrqUN8iDbd9SjM1ZeuobHLOmXsz X-Received: by 2002:a05:6402:1d9a:: with SMTP id dk26mr5119576edb.283.1606860347733; Tue, 01 Dec 2020 14:05:47 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1606860347; cv=none; d=google.com; s=arc-20160816; b=pmcDW9vO216asZOVC/87kA1qSPfSDVxIYO9kEZJoShczFaJR9SE527d8L3mOp/WvdY pifDwoi3h2Nq/DHWuGsATQAN3D3e2JPpYOOtfe8na9r+Aon5O/9tDEzTRwjIklrrneb2 gzdlO6D86clJEAoomzqghSYtUQ/FV0pEAR4g1SWEqJcmNjddQ/ENR/YEMja1RllO9duF Lzp4DTBQBWBbVyzpqw64dZpt4iOVF4TXmisX0v3XvlUy9zmYeHyJtk4rvZFuxlCjbx0b yA1G1IL+uYDv+W1lZxPFPoQ6NoBL1byWyJ9GILNZa2+HvmFh9UZh5mFEwSnm1YUg/nrH MxZw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=VG7+IcjHBmOmdSdI4afBmj5EWUBcGxUmixNnIwTV1P4=; b=xYE2f11IxFvQGQsqQcyPBCfPoVDQb99qK1T+1mT92QuZ0l6Lf5Oe1SuL7lh9tA/XRI T6/ybRe59b6odfYfTA7FEe1LtNFgNxDUvW5T9PHysX0MrWK+QYFMKD2wIekET1Nkem8O ylhR+ujpj6IQO82HkLlUo2Tys5we/5CBg8WdidLSx0jDIAdEjX3ME2upyNg3Eu623M5Z vaScQDnl5AyCc/4fop2hzHqch68egYRjrv/tmtVGLxAQZOoQzjE/IUDs4+NVvKj2+oHg Z6PCtS3GO7Vs3yb7H9wBqYcJhzTphsJSYliu5b8IXcSEClRip8NsOKJyBIOZ52GMuaE0 TtUw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@fb.com header.s=facebook header.b=UL66ifZQ; 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=REJECT sp=REJECT dis=NONE) header.from=fb.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id rv17si775888ejb.729.2020.12.01.14.05.25; Tue, 01 Dec 2020 14:05:47 -0800 (PST) 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=@fb.com header.s=facebook header.b=UL66ifZQ; 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=REJECT sp=REJECT dis=NONE) header.from=fb.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2392359AbgLAWC7 (ORCPT + 99 others); Tue, 1 Dec 2020 17:02:59 -0500 Received: from mx0b-00082601.pphosted.com ([67.231.153.30]:36934 "EHLO mx0a-00082601.pphosted.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1730251AbgLAV7w (ORCPT ); Tue, 1 Dec 2020 16:59:52 -0500 Received: from pps.filterd (m0001303.ppops.net [127.0.0.1]) by m0001303.ppops.net (8.16.0.42/8.16.0.42) with SMTP id 0B1LrWbI006961 for ; Tue, 1 Dec 2020 13:59:11 -0800 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fb.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : mime-version : content-transfer-encoding : content-type; s=facebook; bh=VG7+IcjHBmOmdSdI4afBmj5EWUBcGxUmixNnIwTV1P4=; b=UL66ifZQgoC2lb0Oodt0w4ZQb4+vkROLD4XFmViP39UdRU5z51I3RqLI4brNJ73T+JUI cwhZBfkJeqAQrHcOAXLDjV9uxC4LgqDTIZfsy/FmDGsp0DEKwcwy/LPXmMrf5Ofw3Ce6 vAAFqkFSwE6mtLxonzOw4jljk6vYXPDMNEw= Received: from mail.thefacebook.com ([163.114.132.120]) by m0001303.ppops.net with ESMTP id 354g9unrp3-6 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 01 Dec 2020 13:59:11 -0800 Received: from intmgw001.06.prn3.facebook.com (2620:10d:c085:208::11) by mail.thefacebook.com (2620:10d:c085:21d::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1979.3; Tue, 1 Dec 2020 13:59:09 -0800 Received: by devvm3388.prn0.facebook.com (Postfix, from userid 111017) id 5D47D19702AC; Tue, 1 Dec 2020 13:59:06 -0800 (PST) From: Roman Gushchin To: CC: , , , , , , , Subject: [PATCH bpf-next v9 07/34] bpf: memcg-based memory accounting for bpf maps Date: Tue, 1 Dec 2020 13:58:33 -0800 Message-ID: <20201201215900.3569844-8-guro@fb.com> X-Mailer: git-send-email 2.24.1 In-Reply-To: <20201201215900.3569844-1-guro@fb.com> References: <20201201215900.3569844-1-guro@fb.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-FB-Internal: Safe Content-Type: text/plain X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.312,18.0.737 definitions=2020-12-01_11:2020-11-30,2020-12-01 signatures=0 X-Proofpoint-Spam-Details: rule=fb_default_notspam policy=fb_default score=0 lowpriorityscore=0 malwarescore=0 suspectscore=13 clxscore=1015 impostorscore=0 mlxlogscore=584 bulkscore=0 phishscore=0 spamscore=0 adultscore=0 mlxscore=0 priorityscore=1501 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2009150000 definitions=main-2012010131 X-FB-Internal: deliver Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This patch enables memcg-based memory accounting for memory allocated by __bpf_map_area_alloc(), which is used by many types of bpf maps for large initial memory allocations. Please note, that __bpf_map_area_alloc() should not be used outside of map creation paths without setting the active memory cgroup to the map's memory cgroup. Following patches in the series will refine the accounting for some of the map types. Signed-off-by: Roman Gushchin --- kernel/bpf/syscall.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/kernel/bpf/syscall.c b/kernel/bpf/syscall.c index dedbf6d4cd84..dff3a5f62d7a 100644 --- a/kernel/bpf/syscall.c +++ b/kernel/bpf/syscall.c @@ -268,6 +268,10 @@ static int bpf_map_copy_value(struct bpf_map *map, v= oid *key, void *value, return err; } =20 +/* Please, do not use this function outside from the map creation path + * (e.g. in map update path) without taking care of setting the active + * memory cgroup (see at bpf_map_kmalloc_node() for example). + */ static void *__bpf_map_area_alloc(u64 size, int numa_node, bool mmapable= ) { /* We really just want to fail instead of triggering OOM killer @@ -280,7 +284,7 @@ static void *__bpf_map_area_alloc(u64 size, int numa_= node, bool mmapable) * __GFP_RETRY_MAYFAIL to avoid such situations. */ =20 - const gfp_t gfp =3D __GFP_NOWARN | __GFP_ZERO; + const gfp_t gfp =3D __GFP_NOWARN | __GFP_ZERO | __GFP_ACCOUNT; unsigned int flags =3D 0; unsigned long align =3D 1; void *area; --=20 2.26.2