Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1uVARA-00Eed4-Oe for pgsql-hackers@arkaria.postgresql.org; Fri, 27 Jun 2025 14:52:21 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1uVAR8-002XDG-Nm for pgsql-hackers@arkaria.postgresql.org; Fri, 27 Jun 2025 14:52:19 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1uVAR7-002XD7-WE for pgsql-hackers@lists.postgresql.org; Fri, 27 Jun 2025 14:52:19 +0000 Received: from relay4-d.mail.gandi.net ([217.70.183.196]) by makus.postgresql.org with smtp (Exim 4.96) (envelope-from ) id 1uVAR5-004Hws-1j for pgsql-hackers@lists.postgresql.org; Fri, 27 Jun 2025 14:52:17 +0000 Received: by mail.gandi.net (Postfix) with ESMTPSA id D817E443EE; Fri, 27 Jun 2025 14:52:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vondra.me; s=gm1; t=1751035932; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=PYdGqkBAlGgwm0NQHwbTt+OYmRVVsuLEPIK786BVOB4=; b=BcKA4w0FWlEHsl4KfoHPdTTXO+ShW153hD0X62Zi0M9pXvgUMnb1yjYSaP76QeXUAvrV+5 nLcnbzzDfLZmDWcxh5cZ8lvmr8I2idqbwUvl6RkOUQfpyC31OOWO0zekWPkwH4ESrgz4mA dApd7laWqmZfHD+183YAmWVcm1Lgiu8w1e5j9azHue/yCzOHu21WTLDeRKB5ypeFbFQe+y fLqC+35xy1R8lkvLqdmhoyNqzhkt9WhxxUvwqE4PhJdvZBw5wfzmv0flBfx3Oa1lDojqgc lWZ2liEWjAYBjwSLA0VWqHF0EFvY234jCAEA/GrOwHZphVx2PgS9iHGgKmJpoA== Content-Type: multipart/mixed; boundary="------------Kt0t0uQS0vpUJhx0cbKYNP76" Message-ID: Date: Fri, 27 Jun 2025 16:52:08 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: pgsql: Introduce pg_shmem_allocations_numa view To: Bertrand Drouvot , Christoph Berg Cc: Andres Freund , Tomas Vondra , pgsql-hackers@lists.postgresql.org References: Content-Language: en-US From: Tomas Vondra In-Reply-To: X-GND-State: clean X-GND-Score: -100 X-GND-Cause: gggruggvucftvghtrhhoucdtuddrgeeffedrtdefgdeffeehucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecuifetpfffkfdpucggtfgfnhhsuhgsshgtrhhisggvnecuuegrihhlohhuthemuceftddunecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenucfjughrpegtkfffgggfuffvvehfhfgjsehmtderredtvdejnecuhfhrohhmpefvohhmrghsucggohhnughrrgcuoehtohhmrghssehvohhnughrrgdrmhgvqeenucggtffrrghtthgvrhhnpeekudfhgfelgefhjedtheelhffgudegjedufefftedutdehlefhjeeftdevieefieenucfkphepkeeirdegledrvdeftddrvddtieenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepihhnvghtpeekiedrgeelrddvfedtrddvtdeipdhhvghloheplgdutddrudefjedrtddrvdgnpdhmrghilhhfrhhomhepthhomhgrshesvhhonhgurhgrrdhmvgdpnhgspghrtghpthhtohephedprhgtphhtthhopegsvghrthhrrghnuggurhhouhhvohhtrdhpghesghhmrghilhdrtghomhdprhgtphhtthhopehmhihonhesuggvsghirghnrdhorhhgpdhrtghpthhtoheprghnughrvghssegrnhgrrhgriigvlhdruggvpdhrtghpthhtohepthhomhgrshdrvhhonhgurhgrsehpohhsthhgrhgvshhqlhdrohhrghdprhgtphhtthhopehpghhsqhhlqdhhrggtkhgvrhhssehlihhsthhsrdhpohhsthhgrhgvshhqlhdrohhrgh X-GND-Sasl: tomas@vondra.me List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------Kt0t0uQS0vpUJhx0cbKYNP76 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Here's three small patches, that should handle the issue 0001 - Adds the batching into pg_numa_query_pages, so that the callers don't need to do anything. The batching doesn't seem to cause any performance regression. 32-bit systems can't use that much memory anyway, and on 64-bit systems the batch is sufficiently large (1024). 0002 - Silences the valgrind about the memory touching. It replaces the macro with a static inline function, and adds suppressions for both 32-bit and 64-bits. The 32-bit may be a bit pointless, because on my rpi5 valgrind produces about a bunch of other stuff anyway. But doesn't hurt. The function now looks like this: static inline void pg_numa_touch_mem_if_required(void *ptr) { volatile uint64 touch pg_attribute_unused(); touch = *(volatile uint64 *) ptr; } I did a lot of testing on multiple systems to check replacing the macro with a static inline function still works - and it seems it does. But if someone thinks the function won't work, I'd like to know. 0003 - While working on these patches, it occurred to me we could/should add CHECK_FOR_INTERRUPTS() into the batch loop. This querying can take quite a bit of time, so letting people to interrupt it seems reasonable. It wasn't possible with just one call into the kernel, but with the batching we can add a CFI. Please, take a look. regards -- Tomas Vondra --------------Kt0t0uQS0vpUJhx0cbKYNP76 Content-Type: text/x-patch; charset=UTF-8; name="0001-Add-batching-when-calling-numa_move_pages.patch" Content-Disposition: attachment; filename="0001-Add-batching-when-calling-numa_move_pages.patch" Content-Transfer-Encoding: base64 RnJvbSAzZDkzNWY2MjY2NWExOGQ5NmU2YmVjNTljYjFmM2Y3Y2Q3ZGFhMDY4IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBUb21hcyBWb25kcmEgPHRvbWFzQHZvbmRyYS5tZT4K RGF0ZTogRnJpLCAyNyBKdW4gMjAyNSAxMjo0MzoyMCArMDIwMApTdWJqZWN0OiBbUEFUQ0gg MS8zXSBBZGQgYmF0Y2hpbmcgd2hlbiBjYWxsaW5nIG51bWFfbW92ZV9wYWdlcwoKVGhlcmUn cyBhIGtlcm5lbCBidWcgaW4gZG9fcGFnZXNfc3RhdCgpLCByZXN1bHRpbmcgaW4gbnVtYV9t b3ZlX3BhZ2VzKCkKcHJvZHVjaW5nIGJvZ3VzIHN0YXR1cyB3aGVuIHF1ZXJ5aW5nIGxvY2F0 aW9uIG9mIG1lbW9yeSBwYWdlcy4gVGhlIGJ1Zwpvbmx5IGFmZmVjdHMgc3lzdGVtcyBjb21i aW5pbmcgNjQtYml0IGtlcm5lbCBhbmQgMzItYml0IHVzZXIgc3BhY2UuIFRoaXMKbWF5IHNl ZW0gdW5jb21tb24sIGJ1dCB3ZSB1c2Ugc3VjaCBzeXN0ZW1zIGZvciBidWlsZGluZyAzMi1i aXQgRGViaWFuCnBhY2thZ2VzICh3aGljaCBoYXBwZW5zIGluIGEgMzItYml0IGNocm9vdCku CgpUaGlzIGlzIGEgbG9uZy1zdGFuZGluZyBrZXJuZWwgYnVnIChzaW5jZSAyMDEwKSwgYWZm ZWN0aW5nIHByZXR0eSBtdWNoCmFsbCBrZXJuZWxzLCBzbyBpdCdsbCB0YWtlIHRpbWUgdW50 aWwgYWxsIHN5c3RlbXMgZ2V0IGEgZml4ZWQga2VybmVsLgpMdWNraWx5LCB3ZSBjYW4gd29y ayBhcm91bmQgdGhhdCBvbiBvdXIgZW5kLCBieSBiYXRjaGluZyB0aGUgcmVxdWVzdHMKdGhl IHNhbWUgd2F5IGFzIGluIGRvX3BhZ2VzX3N0YXQoKS4gT24gMzItYml0IHN5c3RlbXMgd2Ug dXNlIGJhdGNoZXMgb2YKMTYgcG9pbnRlcnMsIHNhbWUgYXMgZG9fcGFnZXNfc3RhdCgpLiA2 NC1iaXQgc3lzdGVtcyBhcmUgbm90IGFmZmVjdGVkLApzbyB3ZSB1c2UgYSBtdWNoIGxhcmdl ciBiYXRjaCBvZiAxMDI0LgoKUmVwb3J0ZWQtYnk6IENocmlzdG9waCBCZXJnIDxteW9uQGRl Ymlhbi5vcmc+CkF1dGhvcjogQ2hyaXN0b3BoIEJlcmcgPG15b25AZGViaWFuLm9yZz4KQXV0 aG9yOiBCZXJ0cmFuZCBEcm91dm90IDxiZXJ0cmFuZGRyb3V2b3QucGdAZ21haWwuY29tPgpE aXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9tL2FFdERvekxtdFpkZEFSZEJAbXNnLmRm N2NiLmRlCi0tLQogc3JjL2luY2x1ZGUvcG9ydC9wZ19udW1hLmggfCAgMiArLQogc3JjL3Bv cnQvcGdfbnVtYS5jICAgICAgICAgfCA0NSArKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrLQogMiBmaWxlcyBjaGFuZ2VkLCA0NSBpbnNlcnRpb25zKCspLCAyIGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3BvcnQvcGdfbnVtYS5oIGIvc3Jj L2luY2x1ZGUvcG9ydC9wZ19udW1hLmgKaW5kZXggNDBmMWQzMjRkY2YuLmQ3MDdkMTQ5YTQz IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9wb3J0L3BnX251bWEuaAorKysgYi9zcmMvaW5j bHVkZS9wb3J0L3BnX251bWEuaApAQCAtMjksNyArMjksNyBAQCBleHRlcm4gUEdETExJTVBP UlQgaW50IHBnX251bWFfZ2V0X21heF9ub2RlKHZvaWQpOwogCiAjZWxzZQogCi0jZGVmaW5l IHBnX251bWFfdG91Y2hfbWVtX2lmX3JlcXVpcmVkKHJvX3ZvbGF0aWxlX3ZhciwgcHRyKSBc CisjZGVmaW5lIHBnX251bWFfdG91Y2hfbWVtX2lmX3JlcXVpcmVkKHB0cikgXAogCWRvIHt9 IHdoaWxlKDApCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvc3JjL3BvcnQvcGdfbnVtYS5jIGIv c3JjL3BvcnQvcGdfbnVtYS5jCmluZGV4IDRiNDg3YTJhNGU4Li41NGFiOWM3MGQ1NiAxMDA2 NDQKLS0tIGEvc3JjL3BvcnQvcGdfbnVtYS5jCisrKyBiL3NyYy9wb3J0L3BnX251bWEuYwpA QCAtMjksNiArMjksMTkgQEAKICNpbmNsdWRlIDxudW1hLmg+CiAjaW5jbHVkZSA8bnVtYWlm Lmg+CiAKKy8qCisgKiBudW1hX21vdmVfcGFnZXMoKSBiYXRjaCBzaXplLCBoYXMgdG8gYmUg PD0gMTYgdG8gd29yayBhcm91bmQgYSBrZXJuZWwgYnVnCisgKiBpbiBkb19wYWdlc19zdGF0 KCkgKGNodW5rZWQgYnkgRE9fUEFHRVNfU1RBVF9DSFVOS19OUikuIEJ5IHVzaW5nIHRoZSBz YW1lCisgKiBiYXRjaCBzaXplLCB3ZSBtYWtlIGl0IHdvcmsgZXZlbiBvbiB1bmZpeGVkIGtl cm5lbHMuCisgKgorICogNjQtYml0IHN5c3RlbSBhcmUgbm90IGFmZmVjdGVkIGJ5IHRoZSBi dWcsIGFuZCBzbyB1c2UgbXVjaCBsYXJnZXIgYmF0Y2hlcy4KKyAqLworI2lmIFNJWkVPRl9T SVpFX1QgPT0gNAorI2RlZmluZSBOVU1BX1FVRVJZX0JBVENIX1NJWkUgMTYKKyNlbHNlCisj ZGVmaW5lIE5VTUFfUVVFUllfQkFUQ0hfU0laRSAxMDI0CisjZW5kaWYKKwogLyogbGlibnVt YSByZXF1aXJlcyBpbml0aWFsaXphdGlvbiBhcyBwZXIgbnVtYSgzKSBvbiBMaW51eCAqLwog aW50CiBwZ19udW1hX2luaXQodm9pZCkKQEAgLTQ2LDcgKzU5LDM3IEBAIHBnX251bWFfaW5p dCh2b2lkKQogaW50CiBwZ19udW1hX3F1ZXJ5X3BhZ2VzKGludCBwaWQsIHVuc2lnbmVkIGxv bmcgY291bnQsIHZvaWQgKipwYWdlcywgaW50ICpzdGF0dXMpCiB7Ci0JcmV0dXJuIG51bWFf bW92ZV9wYWdlcyhwaWQsIGNvdW50LCBwYWdlcywgTlVMTCwgc3RhdHVzLCAwKTsKKwl1bnNp Z25lZCBsb25nCW5leHQgPSAwOworCWludAkJCQlyZXQgPSAwOworCisJLyoKKwkgKiBCYXRj aCBwb2ludGVycyBwYXNzZWQgdG8gbnVtYV9tb3ZlX3BhZ2VzIHRvIE5VTUFfUVVFUllfQkFU Q0hfU0laRQorCSAqIGl0ZW1zLCB0byB3b3JrIGFyb3VuZCBhIGtlcm5lbCBidWcgaW4gZG9f cGFnZXNfc3RhdCgpLgorCSAqLworCXdoaWxlIChuZXh0IDwgY291bnQpCisJeworCQl1bnNp Z25lZCBsb25nIGNvdW50X2JhdGNoID0gTWluKGNvdW50IC0gbmV4dCwKKwkJCQkJCQkJCQlO VU1BX1FVRVJZX0JBVENIX1NJWkUpOworCisJCS8qCisJCSAqIEJhaWwgb3V0IGlmIGFueSBv ZiB0aGUgYmF0Y2hlcyBlcnJvcnMgb3V0IChyZXQ8MCkuIFdlIGlnbm9yZQorCQkgKiAocmV0 PjApIHdoaWNoIGlzIHVzZWQgdG8gcmV0dXJuIG51bWJlciBvZiBub25taWdyYXRlZCBwYWdl cywKKwkJICogYnV0IHdlJ3JlIG5vdCBtaWdyYXRpbmcgYW55IHBhZ2VzIGhlcmUuCisJCSAq LworCQlyZXQgPSBudW1hX21vdmVfcGFnZXMocGlkLCBjb3VudF9iYXRjaCwgJnBhZ2VzW25l eHRdLCBOVUxMLCAmc3RhdHVzW25leHRdLCAwKTsKKwkJaWYgKHJldCA8IDApCisJCXsKKwkJ CS8qIHBsYWluIGVycm9yLCByZXR1cm4gYXMgaXMgKi8KKwkJCXJldHVybiByZXQ7CisJCX0K KworCQluZXh0ICs9IGNvdW50X2JhdGNoOworCX0KKworCS8qIHNob3VsZCBoYXZlIGNvbnN1 bWVkIHRoZSBpbnB1dCBhcnJheSBleGFjdGx5ICovCisJQXNzZXJ0KG5leHQgPT0gY291bnQp OworCisJcmV0dXJuIDA7CiB9CiAKIGludAotLSAKMi40OS4wCgo= --------------Kt0t0uQS0vpUJhx0cbKYNP76 Content-Type: text/x-patch; charset=UTF-8; name="0002-Silence-valgrind-about-pg_numa_touch_mem_if_required.patch" Content-Disposition: attachment; filename*0="0002-Silence-valgrind-about-pg_numa_touch_mem_if_required.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSA2MTNhODVjNTBhMTc1NzRmY2QzNDY4OTU4MmNlMDBjODc5MTg3NDYzIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBUb21hcyBWb25kcmEgPHRvbWFzQHZvbmRyYS5tZT4K RGF0ZTogRnJpLCAyNyBKdW4gMjAyNSAxMjo0NzozOCArMDIwMApTdWJqZWN0OiBbUEFUQ0gg Mi8zXSBTaWxlbmNlIHZhbGdyaW5kIGFib3V0IHBnX251bWFfdG91Y2hfbWVtX2lmX3JlcXVp cmVkCgpXaGVuIHF1ZXJ5aW5nIE5VTUEgc3RhdHVzIG9mIHBhZ2VzIGluIHNoYXJlZCBtZW1v cnksIHdlIG5lZWQgdG8gdG91Y2gKdGhlIG1lbW9yeSBmaXJzdCB0byBnZXQgdmFsaWQgcmVz dWx0cy4gVGhpcyBtYXkgdHJpZ2dlciB2YWxncmluZApyZXBvcnRzLCBiZWNhdXNlIHNvbWUg b2YgdGhlIG1lbW9yeSAoZS5nLiB1bnBpbm5lZCBidWZmZXJzKSBtYXkgYmUKbWFya2VkIGFz IG5vYWNjZXNzLgoKU29sdmVkIGJ5IGFkZGluZyBhIHZhbGdyaW5kIHN1cHByZXNpb24sIHRv IGlnbm9yZSB0aGlzLiBBbiBhbHRlcm5hdGl2ZQp3b3VsZCBiZSB0byBhZGp1c3QgdGhlIGFj Y2Vzcy9ub2FjY2VzcyBzdGF0dXMgYmVmb3JlIHRvdWNoaW5nIHRoZQptZW1vcnksIGJ1dCB0 aGF0IHNlZW1zIGZhciB0b28gaW52YXNpdmUgLSBpdCB3b3VsZCByZXF1aXJlIGFsbCB0aG9z ZQpwYWdlcyB0byBoYXZlIGRldGFpbGVkIGtub3dsZWRnZSBvZiB3aGF0IHRoZSBtZW1vcnkg c3RvcmVzLgoKVGhlIHBnX251bWFfdG91Y2hfbWVtX2lmX3JlcXVpcmVkKCkgbWFjcm8gaXMg cmVwbGFjZWQgd2l0aCBhIHBsYWluCmZ1bmN0aW9uLiBNYWNyb3MgYXJlIGludmlzaWJsZSB0 byBzdXBwcmVzc2lvbnMsIHNvIGl0J2QgaGF2ZSB0byBzdXBwcmVzcwpyZXBvcnRzIGZvciB0 aGUgY2FsbGVyIC0gZS5nLiBwZ19nZXRfc2htZW1fYWxsb2NhdGlvbnNfbnVtYSgpLiBXaGlj aAptZWFucyB3ZSdkIHN1cHByZXNzIHJlcG9ydHMgZm9yIHRoZSB3aG9sZSBmdW5jdGlvbi4K ClJldmlld2VkLWJ5OiBDaHJpc3RvcGggQmVyZyA8bXlvbkBkZWJpYW4ub3JnPgpSZXZpZXdl ZC1ieTogQmVydHJhbmQgRHJvdXZvdCA8YmVydHJhbmRkcm91dm90LnBnQGdtYWlsLmNvbT4K RGlzY3Vzc2lvbjogaHR0cHM6Ly9wb3N0Z3IuZXMvbS9hRXREb3pMbXRaZGRBUmRCQG1zZy5k ZjdjYi5kZQotLS0KIGNvbnRyaWIvcGdfYnVmZmVyY2FjaGUvcGdfYnVmZmVyY2FjaGVfcGFn ZXMuYyB8ICAzICstLQogc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvc2htZW0uYyAgICAgICAg ICAgICAgIHwgIDQgKy0tLQogc3JjL2luY2x1ZGUvcG9ydC9wZ19udW1hLmggICAgICAgICAg ICAgICAgICAgIHwgIDggKysrKysrLS0KIHNyYy90b29scy92YWxncmluZC5zdXBwICAgICAg ICAgICAgICAgICAgICAgICB8IDE0ICsrKysrKysrKysrKysrCiA0IGZpbGVzIGNoYW5nZWQs IDIyIGluc2VydGlvbnMoKyksIDcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvY29udHJp Yi9wZ19idWZmZXJjYWNoZS9wZ19idWZmZXJjYWNoZV9wYWdlcy5jIGIvY29udHJpYi9wZ19i dWZmZXJjYWNoZS9wZ19idWZmZXJjYWNoZV9wYWdlcy5jCmluZGV4IDRiMDA3ZjZlMWIwLi5h ZTAyOTFlNmU5NiAxMDA2NDQKLS0tIGEvY29udHJpYi9wZ19idWZmZXJjYWNoZS9wZ19idWZm ZXJjYWNoZV9wYWdlcy5jCisrKyBiL2NvbnRyaWIvcGdfYnVmZmVyY2FjaGUvcGdfYnVmZmVy Y2FjaGVfcGFnZXMuYwpAQCAtMzIwLDcgKzMyMCw2IEBAIHBnX2J1ZmZlcmNhY2hlX251bWFf cGFnZXMoUEdfRlVOQ1RJT05fQVJHUykKIAkJdWludDY0CQlvc19wYWdlX2NvdW50OwogCQlp bnQJCQlwYWdlc19wZXJfYnVmZmVyOwogCQlpbnQJCQltYXhfZW50cmllczsKLQkJdm9sYXRp bGUgdWludDY0IHRvdWNoIHBnX2F0dHJpYnV0ZV91bnVzZWQoKTsKIAkJY2hhcgkgICAqc3Rh cnRwdHIsCiAJCQkJICAgKmVuZHB0cjsKIApAQCAtMzc1LDcgKzM3NCw3IEBAIHBnX2J1ZmZl cmNhY2hlX251bWFfcGFnZXMoUEdfRlVOQ1RJT05fQVJHUykKIAogCQkJLyogT25seSBuZWVk IHRvIHRvdWNoIG1lbW9yeSBvbmNlIHBlciBiYWNrZW5kIHByb2Nlc3MgbGlmZXRpbWUgKi8K IAkJCWlmIChmaXJzdE51bWFUb3VjaCkKLQkJCQlwZ19udW1hX3RvdWNoX21lbV9pZl9yZXF1 aXJlZCh0b3VjaCwgcHRyKTsKKwkJCQlwZ19udW1hX3RvdWNoX21lbV9pZl9yZXF1aXJlZChw dHIpOwogCQl9CiAKIAkJQXNzZXJ0KGlkeCA9PSBvc19wYWdlX2NvdW50KTsKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL3NobWVtLmMgYi9zcmMvYmFja2VuZC9zdG9y YWdlL2lwYy9zaG1lbS5jCmluZGV4IGM5YWUzYjQ1Yjc2Li5jYTM2NTZmYzc2ZiAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvc2htZW0uYworKysgYi9zcmMvYmFja2Vu ZC9zdG9yYWdlL2lwYy9zaG1lbS5jCkBAIC02NzksMTIgKzY3OSwxMCBAQCBwZ19nZXRfc2ht ZW1fYWxsb2NhdGlvbnNfbnVtYShQR19GVU5DVElPTl9BUkdTKQogCQkgKi8KIAkJZm9yIChp ID0gMDsgaSA8IHNobV9lbnRfcGFnZV9jb3VudDsgaSsrKQogCQl7Ci0JCQl2b2xhdGlsZSB1 aW50NjQgdG91Y2ggcGdfYXR0cmlidXRlX3VudXNlZCgpOwotCiAJCQlwYWdlX3B0cnNbaV0g PSBzdGFydHB0ciArIChpICogb3NfcGFnZV9zaXplKTsKIAogCQkJaWYgKGZpcnN0TnVtYVRv dWNoKQotCQkJCXBnX251bWFfdG91Y2hfbWVtX2lmX3JlcXVpcmVkKHRvdWNoLCBwYWdlX3B0 cnNbaV0pOworCQkJCXBnX251bWFfdG91Y2hfbWVtX2lmX3JlcXVpcmVkKHBhZ2VfcHRyc1tp XSk7CiAKIAkJCUNIRUNLX0ZPUl9JTlRFUlJVUFRTKCk7CiAJCX0KZGlmZiAtLWdpdCBhL3Ny Yy9pbmNsdWRlL3BvcnQvcGdfbnVtYS5oIGIvc3JjL2luY2x1ZGUvcG9ydC9wZ19udW1hLmgK aW5kZXggZDcwN2QxNDlhNDMuLjZjOGI3MTAzY2MzIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVk ZS9wb3J0L3BnX251bWEuaAorKysgYi9zcmMvaW5jbHVkZS9wb3J0L3BnX251bWEuaApAQCAt MjQsOCArMjQsMTIgQEAgZXh0ZXJuIFBHRExMSU1QT1JUIGludCBwZ19udW1hX2dldF9tYXhf bm9kZSh2b2lkKTsKICAqIFRoaXMgaXMgcmVxdWlyZWQgb24gTGludXgsIGJlZm9yZSBwZ19u dW1hX3F1ZXJ5X3BhZ2VzKCkgYXMgd2UKICAqIG5lZWQgdG8gcGFnZS1mYXVsdCBiZWZvcmUg bW92ZV9wYWdlcygyKSBzeXNjYWxsIHJldHVybnMgdmFsaWQgcmVzdWx0cy4KICAqLwotI2Rl ZmluZSBwZ19udW1hX3RvdWNoX21lbV9pZl9yZXF1aXJlZChyb192b2xhdGlsZV92YXIsIHB0 cikgXAotCXJvX3ZvbGF0aWxlX3ZhciA9ICoodm9sYXRpbGUgdWludDY0ICopIHB0cgorc3Rh dGljIGlubGluZSB2b2lkCitwZ19udW1hX3RvdWNoX21lbV9pZl9yZXF1aXJlZCh2b2lkICpw dHIpCit7CisJdm9sYXRpbGUgdWludDY0IHRvdWNoIHBnX2F0dHJpYnV0ZV91bnVzZWQoKTsK Kwl0b3VjaCA9ICoodm9sYXRpbGUgdWludDY0ICopIHB0cjsKK30KIAogI2Vsc2UKIApkaWZm IC0tZ2l0IGEvc3JjL3Rvb2xzL3ZhbGdyaW5kLnN1cHAgYi9zcmMvdG9vbHMvdmFsZ3JpbmQu c3VwcAppbmRleCA3ZWE0NjRjODA5NC4uMmFkNWI4MTUyNmQgMTAwNjQ0Ci0tLSBhL3NyYy90 b29scy92YWxncmluZC5zdXBwCisrKyBiL3NyYy90b29scy92YWxncmluZC5zdXBwCkBAIC0x ODAsMyArMTgwLDE3IEBACiAgICBNZW1jaGVjazpDb25kCiAgICBmdW46UHlPYmplY3RfUmVh bGxvYwogfQorCisjIE5VTUEgaW50cm9zcGVjdGlvbiByZXF1aXJlcyB0b3VjaGluZyBtZW1v cnkgZmlyc3QsIGFuZCBzb21lIG9mIGl0IG1heQorIyBiZSBtYXJrZWQgYXMgbm9hY2VzcyAo ZS5nLiB1bnBpbm5lZCBidWZmZXJzKS4gU28ganVzdCBpZ25vcmUgdGhhdC4KK3sKKyAgIHBn X251bWFfdG91Y2hfbWVtX2lmX3JlcXVpcmVkCisgICBNZW1jaGVjazpBZGRyNAorICAgZnVu OnBnX251bWFfdG91Y2hfbWVtX2lmX3JlcXVpcmVkCit9CisKK3sKKyAgIHBnX251bWFfdG91 Y2hfbWVtX2lmX3JlcXVpcmVkCisgICBNZW1jaGVjazpBZGRyOAorICAgZnVuOnBnX251bWFf dG91Y2hfbWVtX2lmX3JlcXVpcmVkCit9Ci0tIAoyLjQ5LjAKCg== --------------Kt0t0uQS0vpUJhx0cbKYNP76 Content-Type: text/x-patch; charset=UTF-8; name="0003-Add-CHECK_FOR_INTERRUPTS-into-pg_numa_query_pages.patch" Content-Disposition: attachment; filename*0="0003-Add-CHECK_FOR_INTERRUPTS-into-pg_numa_query_pages.patch" Content-Transfer-Encoding: base64 RnJvbSBhZGQzNzY4MTU2ZDA1MzgyYjJkZTFkZDY0ZDhjNDIwZThjNTBmOTJiIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBUb21hcyBWb25kcmEgPHRvbWFzQHZvbmRyYS5tZT4K RGF0ZTogRnJpLCAyNyBKdW4gMjAyNSAxNjo0Mjo0MyArMDIwMApTdWJqZWN0OiBbUEFUQ0gg My8zXSBBZGQgQ0hFQ0tfRk9SX0lOVEVSUlVQVFMgaW50byBwZ19udW1hX3F1ZXJ5X3BhZ2Vz CgpRdWVyeWluZyB0aGUgTlVNQSBzdGF0dXMgY2FuIGJlIHF1aXRlIHRpbWUgY29uc3VtaW5n LiBUaGFua3MgdG8gdGhlCmJhdGNoaW5nLCB3ZSBjYW4gZG8gQ0hFQ0tfRk9SX0lOVEVSUlVQ VFMoKSwgdG8gYWxsb3cgdXNlcnMgYWJvcnRpbmcKdGhlIGV4ZWN1dGlvbi4KClJldmlld2Vk LWJ5OiBDaHJpc3RvcGggQmVyZyA8bXlvbkBkZWJpYW4ub3JnPgpSZXZpZXdlZC1ieTogQmVy dHJhbmQgRHJvdXZvdCA8YmVydHJhbmRkcm91dm90LnBnQGdtYWlsLmNvbT4KRGlzY3Vzc2lv bjogaHR0cHM6Ly9wb3N0Z3IuZXMvbS9hRXREb3pMbXRaZGRBUmRCQG1zZy5kZjdjYi5kZQot LS0KIHNyYy9wb3J0L3BnX251bWEuYyB8IDMgKysrCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNl cnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvc3JjL3BvcnQvcGdfbnVtYS5jIGIvc3JjL3BvcnQv cGdfbnVtYS5jCmluZGV4IDU0YWI5YzcwZDU2Li5mNzY4NzZiMjkwNiAxMDA2NDQKLS0tIGEv c3JjL3BvcnQvcGdfbnVtYS5jCisrKyBiL3NyYy9wb3J0L3BnX251bWEuYwpAQCAtMTYsNiAr MTYsNyBAQAogI2luY2x1ZGUgImMuaCIKICNpbmNsdWRlIDx1bmlzdGQuaD4KIAorI2luY2x1 ZGUgIm1pc2NhZG1pbi5oIgogI2luY2x1ZGUgInBvcnQvcGdfbnVtYS5oIgogCiAvKgpAQCAt NzEsNiArNzIsOCBAQCBwZ19udW1hX3F1ZXJ5X3BhZ2VzKGludCBwaWQsIHVuc2lnbmVkIGxv bmcgY291bnQsIHZvaWQgKipwYWdlcywgaW50ICpzdGF0dXMpCiAJCXVuc2lnbmVkIGxvbmcg Y291bnRfYmF0Y2ggPSBNaW4oY291bnQgLSBuZXh0LAogCQkJCQkJCQkJCU5VTUFfUVVFUllf QkFUQ0hfU0laRSk7CiAKKwkJQ0hFQ0tfRk9SX0lOVEVSUlVQVFMoKTsKKwogCQkvKgogCQkg KiBCYWlsIG91dCBpZiBhbnkgb2YgdGhlIGJhdGNoZXMgZXJyb3JzIG91dCAocmV0PDApLiBX ZSBpZ25vcmUKIAkJICogKHJldD4wKSB3aGljaCBpcyB1c2VkIHRvIHJldHVybiBudW1iZXIg b2Ygbm9ubWlncmF0ZWQgcGFnZXMsCi0tIAoyLjQ5LjAKCg== --------------Kt0t0uQS0vpUJhx0cbKYNP76--