From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 8CD40C52D7D for ; Thu, 15 Aug 2024 10:46:12 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 0A3446B00C7; Thu, 15 Aug 2024 06:46:12 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 02ABF6B00C8; Thu, 15 Aug 2024 06:46:11 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id DE6226B00C9; Thu, 15 Aug 2024 06:46:11 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id BEA256B00C7 for ; Thu, 15 Aug 2024 06:46:11 -0400 (EDT) Received: from smtpin23.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 47B85A13F4 for ; Thu, 15 Aug 2024 10:46:11 +0000 (UTC) X-FDA: 82454150142.23.587DD79 Received: from mail-wr1-f48.google.com (mail-wr1-f48.google.com [209.85.221.48]) by imf30.hostedemail.com (Postfix) with ESMTP id 734118002C for ; Thu, 15 Aug 2024 10:46:09 +0000 (UTC) Authentication-Results: imf30.hostedemail.com; dkim=pass header.d=linaro.org header.s=google header.b=tgV48NUE; spf=pass (imf30.hostedemail.com: domain of dan.carpenter@linaro.org designates 209.85.221.48 as permitted sender) smtp.mailfrom=dan.carpenter@linaro.org; dmarc=pass (policy=none) header.from=linaro.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1723718712; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding:in-reply-to: references:dkim-signature; bh=1DpWfD5vbgFYtcTZhYvBhujXM4aiBnh3QhDzjU2t8QA=; b=jamik8Ez8Y/cCbA4LZqBqT2sTpE8hu1GMP5IrIdHdJi7k8TAF48wLEej2iGtqfAuSQSIqt FHqujag7l730qmfjmRs89eg+p2H1vPVCHgz30NhnsHyUfx4YeMpF2AWn/Acqy8sQ20/PFf tpTqN5tsQ4UejyHI1PfeUJLiLfH+7+w= ARC-Authentication-Results: i=1; imf30.hostedemail.com; dkim=pass header.d=linaro.org header.s=google header.b=tgV48NUE; spf=pass (imf30.hostedemail.com: domain of dan.carpenter@linaro.org designates 209.85.221.48 as permitted sender) smtp.mailfrom=dan.carpenter@linaro.org; dmarc=pass (policy=none) header.from=linaro.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1723718712; a=rsa-sha256; cv=none; b=UOHONWxjaLV3uxP+NUhIIuT8R2VkizVutP/8MK08cNBNypJ7zxC2QkdYMlGspnLdYIeC4C CWHRErrJ1fohMWqkvYs5g5h1yWiOkmVVWAM46m4GRDaMCZx7WHXKbT9dUI1tBCIqPN6UaJ qSDmVN9d0WpIhH63S2opXcmczNQdQWM= Received: by mail-wr1-f48.google.com with SMTP id ffacd0b85a97d-3685a5e7d3cso433592f8f.1 for ; Thu, 15 Aug 2024 03:46:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1723718768; x=1724323568; darn=kvack.org; h=content-disposition:mime-version:message-id:subject:cc:to:from:date :from:to:cc:subject:date:message-id:reply-to; bh=1DpWfD5vbgFYtcTZhYvBhujXM4aiBnh3QhDzjU2t8QA=; b=tgV48NUEf2EU/X2u8OhtLLK/4bJka3O5zARahXWr2u7z/Y5F8f1Rb0r/GfydDlqMMA wHxP33nrZTnXTZDQKInzO/jsAW+/TWDvMP/IStEoSPwF7Br/mz5Aky4AVQidAwWLbtge nz+gwFoNxMQR3wQV4TXqLCfG/7nSwjCx6rFmQdcuE87ZektX+kojJBf2pYemN+NMffqn y4quhBzGairkZzMrxrx7jEqpmfJf7Hw77LDXAuBgkwjhKmRRGhbwTt0HsiQCxTuKx4Gn bqZiYGti0H2IWoT2Xd74Cm4n+lys5We+NhfXFCP910j1yIcpxJidsttuTWNN42qlzXZu CvKg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1723718768; x=1724323568; h=content-disposition:mime-version:message-id:subject:cc:to:from:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=1DpWfD5vbgFYtcTZhYvBhujXM4aiBnh3QhDzjU2t8QA=; b=gsrl8aylcFRnlyJ5YDfAml8xWUh6t+uilmFq7nUkqGgU45fyLQZKxzWz+Pvn0itSvi 24CjXFeshNKNPYKSOkBh+3GcEF0EroB7wpNMoJbtQ9/2nIgCaa1f5rl57jN9Jzwdk5FK gH1T5v/buEhfjDyZ73aqTMeL3XAZt4GVYadb2YKQHdRS8p9sYn9kVvOJj1XesqFrGwoD bE91ImOR1u69nJH2cAC+xlEaGsbbwiVPi8hPKNm2pKk7NrR6f8qoWmqiek32L10Id2Fr yighQ7BoXgAFBQ3PGn/uHEU+vnJ5pj9ieJTOoxQ5cxb1q/x8qOwvfcwFbDe2VrhZcIl4 Twlw== X-Gm-Message-State: AOJu0YxwQOwhuc+fXe02m9e8weAMVnCH17rG4B0FrTf8GQd1UcvJF6Ac XR/Ij8jw3eb6CDwJz5di5P5iOaS0uueJicYy8zZ4z30r8HQzcJqzRh4/VqETd8k= X-Google-Smtp-Source: AGHT+IHUnSMzcXXoAfuQdmIEqlatOjgWN1cF7W5KPbG8MlRQR05COnHgCwz4ynL9Rn0Vy6FDGfeAdA== X-Received: by 2002:a5d:4446:0:b0:367:9d2c:9602 with SMTP id ffacd0b85a97d-371777e4fa6mr4564486f8f.49.1723718767567; Thu, 15 Aug 2024 03:46:07 -0700 (PDT) Received: from localhost ([196.207.164.177]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3718985a7d3sm1180106f8f.61.2024.08.15.03.46.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 15 Aug 2024 03:46:07 -0700 (PDT) Date: Thu, 15 Aug 2024 13:46:03 +0300 From: Dan Carpenter To: Shakeel Butt Cc: linux-mm@kvack.org Subject: [bug report] memcg: replace memcg ID idr with xarray Message-ID: <8e8e1698-98e9-49ec-a863-2dc997e2c682@stanley.mountain> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline X-Stat-Signature: 1xe9s31jutafrwqz3spddrsqy5sm96qh X-Rspam-User: X-Rspamd-Queue-Id: 734118002C X-Rspamd-Server: rspam02 X-HE-Tag: 1723718769-948977 X-HE-Meta: U2FsdGVkX18qvcVJs7oxYjTrQYegZMTtUqb85uh3MN2xnIf9e0I1BSnCmykOrojzSGDuwHJhG0PtlfrIAjw0UIthGegAwZtIdge6yv6x+utfiHEDYv5uiSzT1pkeqgTNl0UfQJmi1KTyvMXQqr3dgeYg9BsMwB9VaKk9cS+G58Mul+2Aj4K4QNuJMzLQ4m5eLmRhiLaUe+98KACcKGhC+yiWqV41Tt2JTNRHQMvTebq0axyZK60IKi0Hxqowe9KQhfsv2vzdfvvuaj2Bx7tZbS5gGUQofz2QlpTHjrx9y7MVV2Cn8qPsmKEJNzBo/X7NvI9iC7n0JnZop46k5GgzHILmdU51IV6mr5eG4d/WPtpLZkhLaBfzVu2315i1eaOxr3hI0jD9w6mAEBYuuEYDXHgzpggsevLlqFjxFyKIo4XkXJXR0FIIe5V1ysr3R7OY7K5xuxqCpQSCkyc5f27acXt88jQtI5RvHJxHkEvG1jpJk779Cinfpim2BMf6EWEWRXH+v4PoD2j3rMLhDKsBNKGL10aTP3fAUB1ESmElFNPRTA+ObYOqIJDplEh+9NjyCfo1/dkMwghdPJVCM4dNbYY6mItzmr2IUszPtgOgaHt+nJ88QCWmXD9p+Wa1AYV132KIvKXQO8Evwtjqve1KiVLjOGNM17hM1EHc8zfiIp4qTGH74XKfpSkayKenEuWrcKWhhvtywDHd+siQkkRBdghR5zVgkYl2UM3ZvW+eZ3woQcTcV7SahMZLmXjztn2+4EQ3fVuh7A041waesy++PWCin1GirRg8iYtNQaLn5VOCdvoMQBewUdzksnObFCM6LUcsZ+18FpsswiVW+XeWg3O6nklTRT0tjbC8Cq9z4EPyAkmkPBvXFcb/x4Kvro8mgscAbvOw4sewGKMW4JVC3t1JE3gNlsJE8VIpXU2CMs5j/5E8/LwDekhAfUn1cPK9TPPcOt7K0/B5Smk8LC9 RqCG+CrY FTRKT9OwBOq7A4wfDrFZdqPmyE5osH4ZDE7d3r5Bj4MYEeamQJI3axNd+wUx1ApCZfAk/2L2xJ4pnq4I2cEu/rYuSLwpxZsSaazvEH4FDNGGCnT2B4u25dL/S0pADjgCRGqtjMItNAHtvZe9tFjloFFadmB4YSwnXGcsmexXwAvV5f+wih5J9cbgwVYBvYKFWKO4LSuFZNcQW8KQEf3iVFANbrmt5kJdPb41kA8G6d8D6q3xZW9WjR7NIOw== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000014, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: Hello Shakeel Butt, Commit ad80273d43b7 ("memcg: replace memcg ID idr with xarray") from Aug 9, 2024 (linux-next), leads to the following Smatch static checker warning: mm/memcontrol.c:3592 mem_cgroup_alloc() warn: passing zero to 'ERR_PTR' mm/memcontrol.c 3525 static struct mem_cgroup *mem_cgroup_alloc(struct mem_cgroup *parent) 3526 { 3527 struct memcg_vmstats_percpu *statc, *pstatc; 3528 struct mem_cgroup *memcg; 3529 int node, cpu; 3530 int __maybe_unused i; 3531 long error = -ENOMEM; 3532 3533 memcg = kzalloc(struct_size(memcg, nodeinfo, nr_node_ids), GFP_KERNEL); 3534 if (!memcg) 3535 return ERR_PTR(error); 3536 3537 error = xa_alloc(&mem_cgroup_ids, &memcg->id.id, NULL, 3538 XA_LIMIT(1, MEM_CGROUP_ID_MAX), GFP_KERNEL); 3539 if (error) 3540 goto fail; 3541 3542 memcg->vmstats = kzalloc(sizeof(struct memcg_vmstats), 3543 GFP_KERNEL_ACCOUNT); 3544 if (!memcg->vmstats) 3545 goto fail; These error paths should all return -ENOMEM. 3546 3547 memcg->vmstats_percpu = alloc_percpu_gfp(struct memcg_vmstats_percpu, 3548 GFP_KERNEL_ACCOUNT); 3549 if (!memcg->vmstats_percpu) 3550 goto fail; ^^^^^^^^^ 3551 3552 for_each_possible_cpu(cpu) { 3553 if (parent) 3554 pstatc = per_cpu_ptr(parent->vmstats_percpu, cpu); 3555 statc = per_cpu_ptr(memcg->vmstats_percpu, cpu); 3556 statc->parent = parent ? pstatc : NULL; 3557 statc->vmstats = memcg->vmstats; 3558 } 3559 3560 for_each_node(node) 3561 if (!alloc_mem_cgroup_per_node_info(memcg, node)) 3562 goto fail; ^^^^^^^^^^ 3563 3564 if (memcg_wb_domain_init(memcg, GFP_KERNEL)) 3565 goto fail; ^^^^^^^^^^ It might be nice to propogate the error code from memcg_wb_domain_init() 3566 3567 INIT_WORK(&memcg->high_work, high_work_func); 3568 vmpressure_init(&memcg->vmpressure); 3569 INIT_LIST_HEAD(&memcg->memory_peaks); 3570 INIT_LIST_HEAD(&memcg->swap_peaks); 3571 spin_lock_init(&memcg->peaks_lock); 3572 memcg->socket_pressure = jiffies; 3573 memcg1_memcg_init(memcg); 3574 memcg->kmemcg_id = -1; 3575 INIT_LIST_HEAD(&memcg->objcg_list); 3576 #ifdef CONFIG_CGROUP_WRITEBACK 3577 INIT_LIST_HEAD(&memcg->cgwb_list); 3578 for (i = 0; i < MEMCG_CGWB_FRN_CNT; i++) 3579 memcg->cgwb_frn[i].done = 3580 __WB_COMPLETION_INIT(&memcg_cgwb_frn_waitq); 3581 #endif 3582 #ifdef CONFIG_TRANSPARENT_HUGEPAGE 3583 spin_lock_init(&memcg->deferred_split_queue.split_queue_lock); 3584 INIT_LIST_HEAD(&memcg->deferred_split_queue.split_queue); 3585 memcg->deferred_split_queue.split_queue_len = 0; 3586 #endif 3587 lru_gen_init_memcg(memcg); 3588 return memcg; 3589 fail: 3590 mem_cgroup_id_remove(memcg); 3591 __mem_cgroup_free(memcg); --> 3592 return ERR_PTR(error); 3593 } regards, dan carpenter