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 mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 99BBAC433F5 for ; Wed, 20 Oct 2021 05:57:19 +0000 (UTC) Received: from picard.linux.it (picard.linux.it [213.254.12.146]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 1D9A460EE9 for ; Wed, 20 Oct 2021 05:57:15 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 1D9A460EE9 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=chinatelecom.cn Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=lists.linux.it Received: from picard.linux.it (localhost [IPv6:::1]) by picard.linux.it (Postfix) with ESMTP id BC3B53C4DD4 for ; Wed, 20 Oct 2021 07:57:13 +0200 (CEST) Received: from in-5.smtp.seeweb.it (in-5.smtp.seeweb.it [IPv6:2001:4b78:1:20::5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by picard.linux.it (Postfix) with ESMTPS id DE3BF3C4D41 for ; Wed, 20 Oct 2021 07:57:03 +0200 (CEST) Received: from chinatelecom.cn (prt-mail.chinatelecom.cn [42.123.76.222]) by in-5.smtp.seeweb.it (Postfix) with ESMTP id E9E1A60076B for ; Wed, 20 Oct 2021 07:57:00 +0200 (CEST) HMM_SOURCE_IP: 172.18.0.48:34644.578139612 HMM_ATTACHE_NUM: 0000 HMM_SOURCE_TYPE: SMTP Received: from clientip-10.133.11.243 (unknown [172.18.0.48]) by chinatelecom.cn (HERMES) with SMTP id 402A928008B; Wed, 20 Oct 2021 13:56:45 +0800 (CST) X-189-SAVE-TO-SEND: liuxp11@chinatelecom.cn Received: from ([172.18.0.48]) by app0024 with ESMTP id 0657492927bc4f29a1bdc13280513ae4 for krzysztof.kozlowski@canonical.com; Wed, 20 Oct 2021 13:56:49 CST X-Transaction-ID: 0657492927bc4f29a1bdc13280513ae4 X-Real-From: liuxp11@chinatelecom.cn X-Receive-IP: 172.18.0.48 Date: Wed, 20 Oct 2021 13:56:48 +0800 From: "liuxp11@chinatelecom.cn" To: "Krzysztof Kozlowski" , ltp References: <20211019150206.90335-1-krzysztof.kozlowski@canonical.com> X-Priority: 3 X-GUID: 8EF5B085-1C73-45CA-997D-A2FAB0BF2992 X-Has-Attach: no X-Mailer: Foxmail 7.2.20.258[cn] Mime-Version: 1.0 Message-ID: <202110201356480826324@chinatelecom.cn> X-Virus-Scanned: clamav-milter 0.102.4 at in-5.smtp.seeweb.it X-Virus-Status: Clean Subject: Re: [LTP] [PATCH] lib: memutils: respect minimum memory watermark when polluting memory X-BeenThere: ltp@lists.linux.it X-Mailman-Version: 2.1.29 Precedence: list List-Id: Linux Test Project List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: multipart/mixed; boundary="===============1548487058==" Errors-To: ltp-bounces+ltp=archiver.kernel.org@lists.linux.it Sender: "ltp" This is a multi-part message in MIME format. --===============1548487058== Content-Type: multipart/alternative; boundary="----=_001_NextPart176036538777_=----" This is a multi-part message in MIME format. ------=_001_NextPart176036538777_=---- Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 U2VydmVyYWwgbW9udGhzIGFnbyxpIHJlcG9ydCB0aGlzIGlzc3VlLkkgc3VnZ2VzdCB0byB1c2Ug YXZhaWxhYmxlIG1lbW9yeS4NCllvdSBjYW4gdGVzdCB3aXRoIGF2YWlsYWJsZSBtZW1vcnkgaW5z dGVhZCBvZiBmcmVlcmFtLEl0IHdpbGwgYmUgT0suDQoNClJlcG9ydC1ieTogTGl1IFhpbnBlbmcg PGxpdXhwMTFAY2hpbmF0ZWxlY29tLmNuPg0KUmV2aWV3ZWQtYnk6IExpdSBYaW5wZW5nIDxsaXV4 cDExQGNoaW5hdGVsZWNvbS5jbj4NCg0KDQoNClRoYW5rc++8gQ0KDQogDQpGcm9tOiBLcnp5c3p0 b2YgS296bG93c2tpDQpEYXRlOiAyMDIxLTEwLTE5IDIzOjAyDQpUbzogbHRwDQpTdWJqZWN0OiBb TFRQXSBbUEFUQ0hdIGxpYjogbWVtdXRpbHM6IHJlc3BlY3QgbWluaW11bSBtZW1vcnkgd2F0ZXJt YXJrIHdoZW4gcG9sbHV0aW5nIG1lbW9yeQ0KUHJldmlvdXMgZml4IGZvciBhbiBvdXQtb2YtbWVt b3J5IGtpbGxlciBraWxsaW5nIGlvY3RsX3NnMDEgcHJvY2Vzcw0KaW4gY29tbWl0IDRkMmUzZDQ0 ZmFkNSAoImxpYjogbWVtdXRpbHM6IGRvbid0IHBvbGx1dGUNCmVudGlyZSBzeXN0ZW0gbWVtb3J5 IHRvIGF2b2lkIE9vTSIpIHdhcyBub3QgZnVsbHkgZWZmZWN0aXZlLiAgV2hpbGUgaXQNCmNvdmVy cyBtb3N0IG9mIHRoZSBjYXNlcywgYW4gQVJNNjQgbWFjaGluZSB3aXRoIDEyOCBHQiBvZiBtZW1v cnksIDY0IGtCDQpwYWdlIHNpemUgYW5kIHY1LjExIGtlcm5lbCBoaXQgaXQgYWdhaW4uICBQb2xs dXRpbmcgdGhlIG1lbW9yeSBmYWlscw0Kd2l0aCBPb006DQogDQogIExUUDogc3RhcnRpbmcgaW9j dGxfc2cwMQ0KICBpb2N0bF9zZzAxIGludm9rZWQgb29tLWtpbGxlcjogZ2ZwX21hc2s9MHgxMDBk Y2EoR0ZQX0hJR0hVU0VSX01PVkFCTEV8X19HRlBfWkVSTyksIG9yZGVyPTAsIG9vbV9zY29yZV9h ZGo9MA0KICAuLi4NCiAgTWVtLUluZm86DQogIGFjdGl2ZV9hbm9uOjMwOSBpbmFjdGl2ZV9hbm9u OjE5NjQ3ODEgaXNvbGF0ZWRfYW5vbjowDQogICAgICAgICAgICAgICAgICBhY3RpdmVfZmlsZTo5 NCBpbmFjdGl2ZV9maWxlOjAgaXNvbGF0ZWRfZmlsZTowDQogICAgICAgICAgICAgICAgICB1bmV2 aWN0YWJsZTozMDUgZGlydHk6MCB3cml0ZWJhY2s6MA0KICAgICAgICAgICAgICAgICAgc2xhYl9y ZWNsYWltYWJsZToxNTEwIHNsYWJfdW5yZWNsYWltYWJsZTo1MDEyDQogICAgICAgICAgICAgICAg ICBtYXBwZWQ6MTE1IHNobWVtOjMzOSBwYWdldGFibGVzOjQ2MyBib3VuY2U6MA0KICAgICAgICAg ICAgICAgICAgZnJlZToxMTIwNDMgZnJlZV9wY3A6MSBmcmVlX2NtYTozMTU5DQogIE5vZGUgMCBh Y3RpdmVfYW5vbjoxOTc3NmtCIGluYWN0aXZlX2Fub246MTI1NzQ1OTg0a0IgYWN0aXZlX2ZpbGU6 NjAxNmtCIGluYWN0aXZlX2ZpbGU6MGtCIHVuZXZpY3RhYmxlOjE5NTIwa0IgLi4uDQogIE5vZGUg MCBETUEgZnJlZTo3MTA2NTZrQiBtaW46MjA1MTIwa0IgbG93OjI1NjM4NGtCIGhpZ2g6MzA3NjQ4 a0IgcmVzZXJ2ZWRfaGlnaGF0b21pYzowS0IgYWN0aXZlX2Fub246MGtCIGluYWN0aXZlX2Fub246 MzMzMjAzMmtCIC4uLg0KICBsb3dtZW1fcmVzZXJ2ZVtdOiAwIDAgNzkwOCA3OTA4IDc5MDgNCiAg Tm9kZSAwIE5vcm1hbCBmcmVlOjY0NjAwOTZrQiBtaW46NjQ2MzE2OGtCIGxvdzo4MDc4OTEya0Ig aGlnaDo5Njk0NjU2a0IgcmVzZXJ2ZWRfaGlnaGF0b21pYzowS0IgYWN0aXZlX2Fub246MTk3NzZr QiBpbmFjdGl2ZV9hbm9uOjEyMjQxMzk1MmtCIC4uLg0KICBsb3dtZW1fcmVzZXJ2ZVtdOiAwIDAg MCAwIDANCiANClRoZSBpbXBvcnRhbnQgcGFydCBhcmUgZGV0YWlscyBvZiBtZW1vcnkgb24gTm9k ZSAwIGluIE5vcm1hbCB6b25lOg0KMS4gZnJlZSBtZW1vcnk6IDY0NjAwOTYga0INCjIuIG1pbiAo bWluaW11bSB3YXRlcm1hcmspOiA2NDYzMTY4IGtCDQogDQpQYXJzZSB0aGUgL3Byb2Mvem9uZWlu Zm8gYW5kIGluY2x1ZGUgdGhlICJtaW4iIGRhdGEgd2hlbiBjb3VudGluZyBzYWZldHkNCihmcmVl IG1lbW9yeSB3aGljaCBzaG91bGQgbm90IGJlIHBvbGx1dGVkKS4gIFRoaXMgd2F5IHdlIGFsc28g aW5jbHVkZQ0KbWluaW11bSBtZW1vcnkgZm9yIERNQSB6b25lcyBhbmQgYWxsIG5vZGVzLg0KIA0K U2lnbmVkLW9mZi1ieTogS3J6eXN6dG9mIEtvemxvd3NraSA8a3J6eXN6dG9mLmtvemxvd3NraUBj YW5vbmljYWwuY29tPg0KLS0tDQpsaWIvdHN0X21lbXV0aWxzLmMgfCAzMSArKysrKysrKysrKysr KysrKysrKysrKysrKysrKy0tDQoxIGZpbGUgY2hhbmdlZCwgMjkgaW5zZXJ0aW9ucygrKSwgMiBk ZWxldGlvbnMoLSkNCiANCmRpZmYgLS1naXQgYS9saWIvdHN0X21lbXV0aWxzLmMgYi9saWIvdHN0 X21lbXV0aWxzLmMNCmluZGV4IGFmMTMyYmNjNmMyNC4uZjM0YmE1ODJlYzkzIDEwMDY0NA0KLS0t IGEvbGliL3RzdF9tZW11dGlscy5jDQorKysgYi9saWIvdHN0X21lbXV0aWxzLmMNCkBAIC02LDIy ICs2LDQ5IEBADQojaW5jbHVkZSA8dW5pc3RkLmg+DQojaW5jbHVkZSA8bGltaXRzLmg+DQojaW5j bHVkZSA8c3lzL3N5c2luZm8uaD4NCisjaW5jbHVkZSA8c3RkaW8uaD4NCiNpbmNsdWRlIDxzdGRs aWIuaD4NCiNkZWZpbmUgVFNUX05PX0RFRkFVTFRfTUFJTg0KI2luY2x1ZGUgInRzdF90ZXN0Lmgi DQorI2luY2x1ZGUgInRzdF9zYWZlX3N0ZGlvLmgiDQojZGVmaW5lIEJMT0NLU0laRSAoMTYgKiAx MDI0ICogMTAyNCkNCit1bnNpZ25lZCBsb25nIHRzdF9taW5fbWVtb3J5KHZvaWQpDQorew0KKyBG SUxFICpmcDsNCisgaW50IHJldDsNCisgdW5zaWduZWQgbG9uZyB0b3RhbF9wYWdlcyA9IDA7DQor IHVuc2lnbmVkIGxvbmcgcGFnZXM7DQorIGNoYXIgbGluZVtCVUZTSVpdOw0KKw0KKyBmcCA9IFNB RkVfRk9QRU4oIi9wcm9jL3pvbmVpbmZvIiwgInIiKTsNCisNCisgd2hpbGUgKGZnZXRzKGxpbmUs IEJVRlNJWiwgZnApICE9IE5VTEwpIHsNCisgcmV0ID0gc3NjYW5mKGxpbmUsICIgbWluICVsdSIs ICZwYWdlcyk7DQorIGlmIChyZXQgPT0gMSkNCisgdG90YWxfcGFnZXMgKz0gcGFnZXM7DQorIH0N CisNCisgU0FGRV9GQ0xPU0UoZnApOw0KKw0KKyAvKiBBcHBseSBhIG1hcmdpbiBiZWNhdXNlIHdl IGNhbm5vdCBnZXQgYmVsb3cgIm1pbiIgd2F0ZXJtYXJrICovDQorIHRvdGFsX3BhZ2VzICs9ICh0 b3RhbF9wYWdlcyAvIDEwKTsNCisNCisgcmV0dXJuIHRvdGFsX3BhZ2VzOw0KK30NCisNCnZvaWQg dHN0X3BvbGx1dGVfbWVtb3J5KHNpemVfdCBtYXhzaXplLCBpbnQgZmlsbGNoYXIpDQp7DQpzaXpl X3QgaSwgbWFwX2NvdW50ID0gMCwgc2FmZXR5ID0gMCwgYmxvY2tzaXplID0gQkxPQ0tTSVpFOw0K KyBsb25nIHBhZ2VzaXplID0gU0FGRV9TWVNDT05GKF9TQ19QQUdFU0laRSk7DQp2b2lkICoqbWFw X2Jsb2NrczsNCnN0cnVjdCBzeXNpbmZvIGluZm87DQpTQUZFX1NZU0lORk8oJmluZm8pOw0KLSBz YWZldHkgPSBNQVgoNDA5NiAqIFNBRkVfU1lTQ09ORihfU0NfUEFHRVNJWkUpLCAxMjggKiAxMDI0 ICogMTAyNCk7DQotIHNhZmV0eSA9IE1BWChzYWZldHksIChpbmZvLmZyZWVyYW0gLyA2NCkpOw0K KyBzYWZldHkgPSBNQVgoNDA5NiAqIHBhZ2VzaXplLCAxMjggKiAxMDI0ICogMTAyNCk7DQorIHNh ZmV0eSA9IE1BWChzYWZldHksIHRzdF9taW5fbWVtb3J5KCkgKiBwYWdlc2l6ZSk7DQpzYWZldHkg Lz0gaW5mby5tZW1fdW5pdDsNCmlmIChpbmZvLmZyZWVzd2FwID4gc2FmZXR5KQ0KLS0gDQoyLjMw LjINCiANCiANCi0tIA0KTWFpbGluZyBsaXN0IGluZm86IGh0dHBzOi8vbGlzdHMubGludXguaXQv bGlzdGluZm8vbHRwDQo= ------=_001_NextPart176036538777_=---- Content-Type: text/html; charset="utf-8" Content-Transfer-Encoding: quoted-printable =0A
Serveral months ago,i report this issue.I suggest to use available memory.
=0AYou can test with available memory instead of freeram,It will be OK.

Report-by: Liu Xinpeng <liuxp11@chinatelecom.cn>
liuxp11@chinatelecom.cn>

=
=0A

Thanks=EF=BC=81


=0A
 
<= div>From: Krzysztof Kozlowski
Date: 2021-10-19 23:02=
To: ltp
Subject: [LTP] [PATCH] lib: memutils: respect minimum= memory watermark when polluting memory
Previou= s fix for an out-of-memory killer killing ioctl_sg01 process
=0A
= in commit 4d2e3d44fad5 ("lib: memutils: don't pollute
=0A
entire = system memory to avoid OoM") was not fully effective.  While it
= =0A
covers most of the cases, an ARM64 machine with 128 GB of memory, = 64 kB
=0A
page size and v5.11 kernel hit it again.  Pollutin= g the memory fails
=0A
with OoM:
=0A
 
=0A  LTP: starting ioctl_sg01
=0A
  ioctl_sg01 invoked oo= m-killer: gfp_mask=3D0x100dca(GFP_HIGHUSER_MOVABLE|__GFP_ZERO), order=3D0,= oom_score_adj=3D0
=0A
  ...
=0A
  Mem-Info:=0A
  active_anon:309 inactive_anon:1964781 isolated_anon:0=0A
          &n= bsp;       active_file:94 inactive_file:0 is= olated_file:0
=0A
        = ;          unevictable:305 di= rty:0 writeback:0
=0A
       &= nbsp;          slab_reclaimab= le:1510 slab_unreclaimable:5012
=0A
     = ;             = mapped:115 shmem:339 pagetables:463 bounce:0
=0A
  &nbs= p;            =    free:112043 free_pcp:1 free_cma:3159
=0A
  Node= 0 active_anon:19776kB inactive_anon:125745984kB active_file:6016kB inacti= ve_file:0kB unevictable:19520kB ...
=0A
  Node 0 DMA free:71= 0656kB min:205120kB low:256384kB high:307648kB reserved_highatomic:0KB act= ive_anon:0kB inactive_anon:3332032kB ...
=0A
  lowmem_reserv= e[]: 0 0 7908 7908 7908
=0A
  Node 0 Normal free:6460096kB m= in:6463168kB low:8078912kB high:9694656kB reserved_highatomic:0KB active_a= non:19776kB inactive_anon:122413952kB ...
=0A
  lowmem_reser= ve[]: 0 0 0 0 0
=0A
 
=0A
The important part are de= tails of memory on Node 0 in Normal zone:
=0A
1. free memory: 646= 0096 kB
=0A
2. min (minimum watermark): 6463168 kB
=0A
&= nbsp;
=0A
Parse the /proc/zoneinfo and include the "min" data whe= n counting safety
=0A
(free memory which should not be polluted).=   This way we also include
=0A
minimum memory for DMA zones = and all nodes.
=0A
 
=0A
Signed-off-by: Krzysztof K= ozlowski <krzysztof.kozlowski@canonical.com>
=0A
---
= =0A
lib/tst_memutils.c | 31 +++++++++++++++++++++++++++++--
=0A<= div> 1 file changed, 29 insertions(+), 2 deletions(-)
=0A
 <= /div>=0A
diff --git a/lib/tst_memutils.c b/lib/tst_memutils.c
=0A=
index af132bcc6c24..f34ba582ec93 100644
=0A
--- a/lib/tst_me= mutils.c
=0A
+++ b/lib/tst_memutils.c
=0A
@@ -6,22 +6,49= @@
=0A
#include <unistd.h>
=0A
#include <lim= its.h>
=0A
#include <sys/sysinfo.h>
=0A
+#incl= ude <stdio.h>
=0A
#include <stdlib.h>
=0A
=
=0A
#define TST_NO_DEFAULT_MAIN
=0A
#include "tst_tes= t.h"
=0A
+#include "tst_safe_stdio.h"
=0A
=0A #define BLOCKSIZE (16 * 1024 * 1024)
=0A
=0A
+unsign= ed long tst_min_memory(void)
=0A
+{
=0A
+ FILE *fp;=0A
+ int ret;
=0A
+ unsigned long total_pages =3D 0;
= =0A
+ unsigned long pages;
=0A
+ char line[BUFSIZ];
=0A<= div>+
=0A
+ fp =3D SAFE_FOPEN("/proc/zoneinfo", "r");
=0A+
=0A
+ while (fgets(line, BUFSIZ, fp) !=3D NULL) {
=0A+ ret =3D sscanf(line, " min %lu", &pages);
=0A
+ if (ret= =3D=3D 1)
=0A
+ total_pages +=3D pages;
=0A
+ }
= =0A
+
=0A
+ SAFE_FCLOSE(fp);
=0A
+
=0A
+ /*= Apply a margin because we cannot get below "min" watermark */
=0A+ total_pages +=3D (total_pages / 10);=0A
+
=0A
+ ret= urn total_pages;
=0A
+}
=0A
+
=0A
void tst_pol= lute_memory(size_t maxsize, int fillchar)
=0A
{
=0A
s= ize_t i, map_count =3D 0, safety =3D 0, blocksize =3D BLOCKSIZE;
=0A<= div>+ long pagesize =3D SAFE_SYSCONF(_SC_PAGESIZE);=0A
void **= map_blocks;
=0A
struct sysinfo info;
=0A
=0A SAFE_SYSINFO(&info);=0A
- safety =3D MAX(4096 * SAFE_SYS= CONF(_SC_PAGESIZE), 128 * 1024 * 1024);
=0A
- safety =3D MAX(safe= ty, (info.freeram / 64));
=0A
+ safety =3D MAX(4096 * pagesize, 1= 28 * 1024 * 1024);
=0A
+ safety =3D MAX(safety, tst_min_memory() = * pagesize);
=0A
safety /=3D info.mem_unit;
=0A
=0A
if (info.freeswap > safety)
=0A
--
=0A
2.= 30.2
=0A
 
=0A
 
=0A
--
=0AMailing list info: https://lists.linux.it/listinfo/ltp
=0A=0A ------=_001_NextPart176036538777_=------ --===============1548487058== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline -- Mailing list info: https://lists.linux.it/listinfo/ltp --===============1548487058==--