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 67691C5478C for ; Thu, 22 Feb 2024 19:46:25 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 83C0B6B0072; Thu, 22 Feb 2024 14:46:24 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 7EBD06B0074; Thu, 22 Feb 2024 14:46:24 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 68D1A6B0075; Thu, 22 Feb 2024 14:46:24 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 5561C6B0072 for ; Thu, 22 Feb 2024 14:46:24 -0500 (EST) Received: from smtpin18.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 1F02280CBB for ; Thu, 22 Feb 2024 19:46:24 +0000 (UTC) X-FDA: 81820471488.18.1E1E8FF Received: from mail-qk1-f173.google.com (mail-qk1-f173.google.com [209.85.222.173]) by imf27.hostedemail.com (Postfix) with ESMTP id 696B94001D for ; Thu, 22 Feb 2024 19:46:22 +0000 (UTC) Authentication-Results: imf27.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b="NBvB/rpC"; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf27.hostedemail.com: domain of mcassell411@gmail.com designates 209.85.222.173 as permitted sender) smtp.mailfrom=mcassell411@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1708631182; 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-transfer-encoding:content-transfer-encoding: in-reply-to:references:dkim-signature; bh=avkomLKBJ3sytSufqOwSv0efxNpypNMAMWMqdPXHCPw=; b=OQUeAJV98AF+fjC+w7TAL6PA277Fl3JDPpniyQHyfFK/bNGf0x5QPlcVWDcWvU38rf/lIL C5+hRvvCGzPbseJwS+BTzb+GFOtg1JiS/FUx4X1w19tDfcafsSFNueqk8A2/10ztUnFUNK CABCJ6MjsQNtdbNAe3nuzXckwWE1Bwk= ARC-Authentication-Results: i=1; imf27.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b="NBvB/rpC"; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf27.hostedemail.com: domain of mcassell411@gmail.com designates 209.85.222.173 as permitted sender) smtp.mailfrom=mcassell411@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1708631182; a=rsa-sha256; cv=none; b=ikRG+fwfG4plEpNqefpvmYpjf78uHoCa+Q6qQnfQSsvrjTeuxbMZeR761QU84kLwJgwDCi KavNxHHvedUt7JLUh27X32BZ0MJR7Y/jyU6pEdPlctPG7Uzj1hRXlA9jzhjBWNDJRS+1I2 i5mu8F0jCdk1r3cMYpl/CarSZ73KWD4= Received: by mail-qk1-f173.google.com with SMTP id af79cd13be357-78731e444daso3360285a.2 for ; Thu, 22 Feb 2024 11:46:22 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1708631181; x=1709235981; darn=kvack.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=avkomLKBJ3sytSufqOwSv0efxNpypNMAMWMqdPXHCPw=; b=NBvB/rpCBPOcLjFBwe07Qa6XfW5dHe3Zs7DCwLjPs3Bq7oqZ10hynx2p7XWX77NAri mlF8q+BxIJ3j3KYXqeesQjW4je3XlAj9NWr0eWVQWdyvYA2vWzFkJJu/13B+GnFWJ2H5 bo4aayjelqEWOoEfOA6MBQC7scYPiiqMHd3aNy0yGkrlfqWqUvVhXXr89hdcaGHBXI9g 8iK+mpyW2krvqYEg/JxfJ6hnRmLN174XiOsuL20UWJWig8T0UYNsu7nBEUB+RY/vIQ86 ZjcgW0PFyz3e8Y4xkEQ15t5nAka5OjRcepvJkLTI3U0YoUYn74MA5VqUcyerUHt6lgtx S5ew== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1708631181; x=1709235981; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=avkomLKBJ3sytSufqOwSv0efxNpypNMAMWMqdPXHCPw=; b=kjEs3dLsKhAHmZV+ZKnk0dWLphNViHe9QCIpFIp6TeT6e3SBNzg+5a3d7Csf8ii53Z SEB5Od2tM5PCHgZ3Njgv/jZukZtVW4GTLuzvclSQxkEmN6k1v8U0/fV4sjRJW5zexgCr d8fEYb0SI/87ZeuiyRV4IFKwdDeYqWXsRgy1h5ekmJZTkxkubhR1lJwcxuOIWYhHDQ4K spMAZVWYx+SbiqgS8GjAhvxeBPCrp9g+JB4Z2YEUnn8Ium9vJ38Q9CJw/cAV3o67qiF5 EK01e/X18IGq+qIgcXoA39YVoy5bbOTM5B7JODqtMctjTL+vB13CRBaXFenWxMOGv8Yr QFqg== X-Gm-Message-State: AOJu0Yz72zqT8rvu9L9tiuqf6u8kD95pGGt+rQx/xeV1M9m3EB7BQL2/ Ubi5rpeaIeiVL8IqGX0SkYxMh/4nmNa3zyJ1kdqbomHPpbR6D7/iLTE0HmRz X-Google-Smtp-Source: AGHT+IH3rJkCUyjr2ZtstPMqdCnt+Zuya6HS6B6d6Gxf4zGuXtNp9qxAaWUtpdXD1+0sx87TRmNSrg== X-Received: by 2002:a05:620a:88c:b0:787:aa2e:22c5 with SMTP id b12-20020a05620a088c00b00787aa2e22c5mr10566qka.72.1708631181512; Thu, 22 Feb 2024 11:46:21 -0800 (PST) Received: from localhost.localdomain (024-171-058-032.res.spectrum.com. [24.171.58.32]) by smtp.gmail.com with ESMTPSA id dy4-20020a05620a60c400b007872ade6cf1sm5626389qkb.71.2024.02.22.11.46.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 22 Feb 2024 11:46:21 -0800 (PST) From: Matthew Cassell To: akpm@linux-foundation.org Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, david@redhat.com, mcassell411@gmail.com Subject: [PATCH v2] mm/util.c: Added byte count to __vm_enough_memory failure warning Date: Thu, 22 Feb 2024 19:46:17 +0000 Message-Id: <20240222194617.1255-1-mcassell411@gmail.com> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspamd-Server: rspam09 X-Rspamd-Queue-Id: 696B94001D X-Stat-Signature: 7ny3ue1gt44u4p3jbn8djq1s9ey4bdrz X-Rspam-User: X-HE-Tag: 1708631182-321287 X-HE-Meta: U2FsdGVkX1+1jVx16WswC28kRq7Bu2hwqM8GvTJqQmURwaWPak1rIGcUG5MZEmfjjrduDLp/QrZLLTZZy6Ix7vEm+kAOL2pwJk2auUj6PCzL6/VIf/7TGKdFokIsWydx9gGdQULKyjra13n2msKouB8rL7IGkKqu9lFqKjA9gEH/17touxJFxxeffaA3WnPciWLZhrw8Wrfn78A+6riFh6nBxs6Olf5MKHQZLT27F78OIlh9SmEhrQR5N2y6E95/VgDs6e05l/14Hi+cs/ppgAEUgAbS0bzmj0/e4MYVzBB7F21fDy2o2z/6WVEuyT4s4HrFa3UjcbAICSpIMK6+El7EoAcadcjUAmzcuv4KCAMDduqFUhRHE1O+kZGNrsRL76Lz6uPdKsULA7FhWlbxgoxT+uENW1Kh7CXJsTfa+6b7x7Gdjnv/6VTlfSdHkWIj/l/lACdjT3hpYY93rsHFS8qOeUwus5Sq1yw7rNX6EIJU8waRYvnzESZccaabRUsmaH1P00Wm3fDBlLa7WKq6EbP00zS+sr6SmLcXadPvkCTqEfQgt/4Jrm0ltX10dEOQGDP1/7uHJh5n/ynMP7z73S2eJhbjG54K28zWUFIg5zyv3iCRZ6pND3NCMXDGBKrFl56MeJcAGzOu8mPWpC7d2xFU2FK7JUKXoD1RRz3PweML7UYE3tax6fabbnEhZ+jvJYYVEHWsyRDVwjZl/L9GiYZvQDK+ng814HK6uomXqMfapPs26Pu+N9h0e6sycfRgJhXFnzKELjPu4NhjX+jXQ24+oHe4uQ+kjd3d5jQGY1xBhwC8vGi7lIVO0BdxxkUubCEz6xLf8PXQsNoPM7emxGhywne0qxWvDtNqsio4THuoI/pC7OT/QMz7TFKh81Xrfdcem0Ba0aYyyHM3qQ3DcnL6qawLy6H9zjvc6T+puBT1OPqiPQgOnMMKc7wRYijAEiJipNXhJ7IUAKHILj4 6Y5W61ve 6EdCj3s/K3cmbC5Qt1hB/QCXinevZMqC4wqrL1mvcAjdBlBUyOGHNV4Ym6Kkryd5bpmXOf79oTh2F9aM3jJBv9tmXSB29dcXcQT9gHrM+pXjhQOg2U3frKf/JTFlrX2yaIy3jqrYSYEwGhpRSWhzQS10GpBb9FwcXcPO8d1LQ9dFD+1GE3RJ+lB7hfD87SxaEB7WdK+6s0w2b/lEE46hyTTYPyRKRUd9NGyk6jqJGgKvAJTibc1u1r8hHEgm+4IyQP8mu+QbNZ9vM9vINZsT5NXK2T3IJvEtFEXshh21Y/rJGG7FMyNbGYMyAQQj1PDOrKYYtHJbGObDxY6jRzpBUpTUOLfQ6jqI5l/MgedIruFxLAwcsdcjT7fpI5h6N8xsEkx3go0P97eu/QXH7zXzvL9cPXoA9d3S21LS785jpyM1XG677I2Clhe9ozWd+Ttgkp3zcVOpdNifXlDFmuKgvLD5KUQKVXCY5VLiEnOjIc5OwJ40= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: Commit 44b414c8715c5dcf53288 ("mm/util.c: add warning if __vm_enough_memory fails") adds debug information which gives the process id and executable name should __vm_enough_memory() fail. Adding the number of pages to the failure message would benefit application developers and system administrators in debugging overambitious memory requests by providing a point of reference to the amount of memory causing __vm_enough_memory() to fail. 1. Set appropriate kernel tunable to reach code path for failure message: # echo 2 > /proc/sys/vm/overcommit_memory 2. Test program to generate failure - requests 1 gibibyte per iteration: #include #include int main(int argc, char **argv) { for(;;) { if(malloc(1<<30) == NULL) break; printf("allocated 1 GiB\n"); } return 0; } 3. Output: Before: __vm_enough_memory: pid: 1218, comm: a.out, not enough memory for the allocation After: __vm_enough_memory: pid: 1137, comm: a.out, bytes: 1073741824, not enough memory for the allocation Signed-off-by: Matthew Cassell --- Changed the debug output from the number of pages to the number of bytes. mm/util.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/mm/util.c b/mm/util.c index 5a6a9802583b..6710efaf1802 100644 --- a/mm/util.c +++ b/mm/util.c @@ -942,6 +942,7 @@ EXPORT_SYMBOL_GPL(vm_memory_committed); int __vm_enough_memory(struct mm_struct *mm, long pages, int cap_sys_admin) { long allowed; + unsigned long bytes_failed; vm_acct_memory(pages); @@ -976,8 +977,9 @@ int __vm_enough_memory(struct mm_struct *mm, long pages, int cap_sys_admin) if (percpu_counter_read_positive(&vm_committed_as) < allowed) return 0; error: - pr_warn_ratelimited("%s: pid: %d, comm: %s, not enough memory for the allocation\n", - __func__, current->pid, current->comm); + bytes_failed = pages << PAGE_SHIFT; + pr_warn_ratelimited("%s: pid: %d, comm: %s, bytes: %lu not enough memory for the allocation\n", + __func__, current->pid, current->comm, bytes_failed); vm_unacct_memory(pages); return -ENOMEM; -- 2.43.2