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 1uWJgV-00C81z-R7 for pgsql-hackers@arkaria.postgresql.org; Mon, 30 Jun 2025 18:56:56 +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 1uWJgT-001f03-Em for pgsql-hackers@arkaria.postgresql.org; Mon, 30 Jun 2025 18:56:54 +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 1uWJgS-001ezh-AO for pgsql-hackers@lists.postgresql.org; Mon, 30 Jun 2025 18:56:53 +0000 Received: from relay1-d.mail.gandi.net ([217.70.183.193]) by makus.postgresql.org with smtp (Exim 4.96) (envelope-from ) id 1uWJgQ-004oF2-0F for pgsql-hackers@lists.postgresql.org; Mon, 30 Jun 2025 18:56:51 +0000 Received: by mail.gandi.net (Postfix) with ESMTPSA id 32ADE44352; Mon, 30 Jun 2025 18:56:44 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vondra.me; s=gm1; t=1751309807; 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=NH6+le85RmHfcC3vFla4gRd7BApT+zmQNKnJZkkWf6E=; b=J38icvyhmhTUCpD89A2SLDiSVO4Etvh/beEwOWD/CHY2Kcjmkif4wKB7C2ApUUsyIRBZZq 2GyyIWl+kRxpz6J0GyQ8AJ6eQMPeh0Tlj8AqTX6XO/HSGtgPym7XdlYY5McPZBpt1EJHqv seaWn5mB2Xnp9aICQIEzMfms05PTS3IicO3ahJb6QTkocg0XKz45S+IicspJ0mx+4M1Wcq 4NwPt52KEWDxUHLHAHPS0gOSIBY9cLfXo+DOGt3vHIwThSUGAJ/0rQnE29S6ECkbDerC7N XiJl30/PtfElrVOzyJkvYzfOWMHvT+jjXmbUuExC3Li7Dx1+Pk2kslmRC3RweA== Content-Type: multipart/mixed; boundary="------------8dCvXfpXWMKdBuIX8JucObby" Message-ID: <132f85de-75c8-4e21-b875-b806596c9214@vondra.me> Date: Mon, 30 Jun 2025 20:56:43 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: pgsql: Introduce pg_shmem_allocations_numa view To: Bertrand Drouvot Cc: Christoph Berg , 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: gggruggvucftvghtrhhoucdtuddrgeeffedrtdefgdduvdegkecutefuodetggdotefrodftvfcurfhrohhfihhlvgemucfitefpfffkpdcuggftfghnshhusghstghrihgsvgenuceurghilhhouhhtmecufedtudenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurheptgfkffggfgfuvfevfhfhjgesmhdtreertddvjeenucfhrhhomhepvfhomhgrshcugghonhgurhgruceothhomhgrshesvhhonhgurhgrrdhmvgeqnecuggftrfgrthhtvghrnhepkeduhffgleeghfejtdehlefhgfdugeejudefffetuddtheelhfejfedtveeifeeinecukfhppeekiedrgeelrddvfeehrddugeejnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehinhgvthepkeeirdegledrvdefhedrudegjedphhgvlhhopegluddtrddufeejrddtrddukegnpdhmrghilhhfrhhomhepthhomhgrshesvhhonhgurhgrrdhmvgdpnhgspghrtghpthhtohephedprhgtphhtthhopegsvghrthhrrghnuggurhhouhhvohhtrdhpghesghhmrghilhdrtghomhdprhgtphhtthhopehmhihonhesuggvsghirghnrdhorhhgpdhrtghpthhtoheprghnughrvghssegrnhgrrhgriigvlhdruggvpdhrtghpthhtohepthhomhgrshdrvhhonhgurhgrsehpohhsthhgrhgvshhqlhdrohhrghdprhgtphhtthhopehpghhsqhhlqdhhrggtkhgvrhhssehlihhsthhsrdhpohhsthhgrhgvshhqlhdrohhrgh 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. --------------8dCvXfpXWMKdBuIX8JucObby Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit On 6/27/25 19:33, Bertrand Drouvot wrote: > Hi, > > On Fri, Jun 27, 2025 at 04:52:08PM +0200, Tomas Vondra wrote: >> Here's three small patches, that should handle the issue > > Thanks for the patches! > >> 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). > > === 1 > > -#define pg_numa_touch_mem_if_required(ro_volatile_var, ptr) \ > +#define pg_numa_touch_mem_if_required(ptr) \ > > Looks unrelated, should be in 0002? > Of course, I merged it into the wrong patch. Here's a v2 that fixes this, and also reworded some of the comments and commit messages a little bit. In particular it now uses "chunking" instead of "batching". I believe bathing is "combining multiple requests into a single one", but we're doing exactly the opposite - splitting a large request into smaller ones. Which is what "chunking" does. > === 2 > > I thought that it would be better to provide a batch size only in the 32-bit > case (see [1]), but I now think it makes sense to also provide (a larger) one > for non 32-bit (as you did) due to the CFI added in 0003 (as it's also good to > have it for non 32-bit). > Agreed, I think the CFI is a good thing to have. >> 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. > > LGTM. > >> 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. > > Yeah, LGTM. > Thanks! I plan to push this tomorrow morning. -- Tomas Vondra --------------8dCvXfpXWMKdBuIX8JucObby Content-Type: text/x-patch; charset=UTF-8; name="v2-0001-Limit-the-size-of-numa_move_pages-requests.patch" Content-Disposition: attachment; filename="v2-0001-Limit-the-size-of-numa_move_pages-requests.patch" Content-Transfer-Encoding: base64 RnJvbSBkNWRkMDYzMWM1YzUyMzNjYWJlMjAwMGYzMTBhM2Y5MDIyMzBhMjg0IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBUb21hcyBWb25kcmEgPHRvbWFzQHZvbmRyYS5tZT4K RGF0ZTogRnJpLCAyNyBKdW4gMjAyNSAxMjo0MzoyMCArMDIwMApTdWJqZWN0OiBbUEFUQ0gg djIgMS8zXSBMaW1pdCB0aGUgc2l6ZSBvZiBudW1hX21vdmVfcGFnZXMgcmVxdWVzdHMKClRo ZXJlJ3MgYSBrZXJuZWwgYnVnIGluIGRvX3BhZ2VzX3N0YXQoKSwgYWZmZWN0aW5nIHN5c3Rl bXMgY29tYmluaW5nCjY0LWJpdCBrZXJuZWwgYW5kIDMyLWJpdCB1c2VyIHNwYWNlLiBUaGUg ZnVuY3Rpb24gc3BsaXRzIHRoZSByZXF1ZXN0CmludG8gY2h1bmtzIG9mIDE2IHBvaW50ZXJz LCBidXQgZm9yZ2V0cyB0aGUgcG9pbnRlcnMgYXJlIDMyLWJpdCB3aGVuCmFkdmFuY2luZyB0 byB0aGUgbmV4dCBjaHVuay4gU29tZSBvZiB0aGUgcG9pbnRlcnMgZ2V0IHNraXBwZWQsIGFu ZAptZW1vcnkgYWZ0ZXIgdGhlIGFycmF5IGlzIGludGVycHJldGVkIGFzIHBvaW50ZXJzLiBU aGUgcmVzdWx0IGlzIHRoYXQKdGhlIHByb2R1Y2VkIHN0YXR1cyBvZiBtZW1vcnkgcGFnZXMg aXMgbW9zdGx5IGJvZ3VzLgoKU3lzdGVtcyBjb21iaW5pbmcgNjQtYml0IGFuZCAzMi1iaXQg ZW52aXJvbm1lbnRzIGxpa2UgdGhpcyBtaWdodCBzZWVtCnJhcmUsIGJ1dCB0aGF0J3Mgbm90 IHRoZSBjYXNlIC0gYWxsIDMyLWJpdCBEZWJpYW4gcGFja2FnZXMgYXJlIGJ1aWx0IGluCmEg MzItYml0IGNocm9vdCBvbiBhIHN5c3RlbSB3aXRoIDY0LWJpdCBrZXJuZWwuCgpUaGlzIGlz IGEgbG9uZy1zdGFuZGluZyBrZXJuZWwgYnVnIChzaW5jZSAyMDEwKSwgYWZmZWN0aW5nIHBy ZXR0eSBtdWNoCmFsbCBrZXJuZWxzLCBzbyBpdCdsbCB0YWtlIHRpbWUgdW50aWwgYWxsIHN5 c3RlbXMgZ2V0IGEgZml4ZWQga2VybmVsLgpMdWNraWx5LCB3ZSBjYW4gd29yayBhcm91bmQg dGhlIGlzc3VlIGJ5IGNodW5raW5nIHRoZSByZXF1ZXN0cyB0aGUgc2FtZQp3YXkgZG9fcGFn ZXNfc3RhdCgpIGRvZXMsIGF0IGxlYXN0IG9uIGFmZmVjdGVkIHN5c3RlbXMuIFdlIGRvbid0 IGtub3cKd2hhdCBrZXJuZWwgYSAzMi1iaXQgYnVpbGQgd2lsbCBydW4gb24sIHNvIGFsbCAz Mi1iaXQgYnVpbGRzIHVzZSBjaHVua3MKb2YgMTYgZWxlbWVudHMgKHRoZSBsYXJnZXN0IGNo dW5rIGJlZm9yZSBoaXR0aW5nIHRoZSBpc3N1ZSkuCgo2NC1iaXQgYnVpbGRzIGFyZSBub3Qg YWZmZWN0ZWQgYnkgdGhpcyBpc3N1ZSwgYW5kIHNvIGNvdWxkIHdvcmsgd2l0aG91dAp0aGUg Y2h1bmtpbmcuIEJ1dCBjaHVua2luZyBoYXMgb3RoZXIgYWR2YW50YWdlcywgc28gd2UgYXBw bHkgY2h1bmtpbmcKZXZlbiBmb3IgNjQtYml0IGJ1aWxkcywgd2l0aCBjaHVua3Mgb2YgMTAy NCBlbGVtZW50cy4KClJlcG9ydGVkLWJ5OiBDaHJpc3RvcGggQmVyZyA8bXlvbkBkZWJpYW4u b3JnPgpBdXRob3I6IENocmlzdG9waCBCZXJnIDxteW9uQGRlYmlhbi5vcmc+CkF1dGhvcjog QmVydHJhbmQgRHJvdXZvdCA8YmVydHJhbmRkcm91dm90LnBnQGdtYWlsLmNvbT4KRGlzY3Vz c2lvbjogaHR0cHM6Ly9wb3N0Z3IuZXMvbS9hRXREb3pMbXRaZGRBUmRCQG1zZy5kZjdjYi5k ZQotLS0KIHNyYy9wb3J0L3BnX251bWEuYyB8IDUwICsrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKy0KIDEgZmlsZSBjaGFuZ2VkLCA0OSBpbnNlcnRpb25z KCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL3BvcnQvcGdfbnVtYS5jIGIv c3JjL3BvcnQvcGdfbnVtYS5jCmluZGV4IDRiNDg3YTJhNGU4Li5kNTkzNTIwN2QwYSAxMDA2 NDQKLS0tIGEvc3JjL3BvcnQvcGdfbnVtYS5jCisrKyBiL3NyYy9wb3J0L3BnX251bWEuYwpA QCAtMjksNiArMjksMTkgQEAKICNpbmNsdWRlIDxudW1hLmg+CiAjaW5jbHVkZSA8bnVtYWlm Lmg+CiAKKy8qCisgKiBudW1hX21vdmVfcGFnZXMoKSBjaHVuayBzaXplLCBoYXMgdG8gYmUg PD0gMTYgdG8gd29yayBhcm91bmQgYSBrZXJuZWwgYnVnCisgKiBpbiBkb19wYWdlc19zdGF0 KCkgKGNodW5rZWQgYnkgRE9fUEFHRVNfU1RBVF9DSFVOS19OUikuIEJ5IHVzaW5nIHRoZSBz YW1lCisgKiBjaHVuayBzaXplLCB3ZSBtYWtlIGl0IHdvcmsgZXZlbiBvbiB1bmZpeGVkIGtl cm5lbHMuCisgKgorICogNjQtYml0IHN5c3RlbSBhcmUgbm90IGFmZmVjdGVkIGJ5IHRoZSBi dWcsIGFuZCBzbyB1c2UgbXVjaCBsYXJnZXIgY2h1bmtzLgorICovCisjaWYgU0laRU9GX1NJ WkVfVCA9PSA0CisjZGVmaW5lIE5VTUFfUVVFUllfQ0hVTktfU0laRSAxNgorI2Vsc2UKKyNk ZWZpbmUgTlVNQV9RVUVSWV9DSFVOS19TSVpFIDEwMjQKKyNlbmRpZgorCiAvKiBsaWJudW1h IHJlcXVpcmVzIGluaXRpYWxpemF0aW9uIGFzIHBlciBudW1hKDMpIG9uIExpbnV4ICovCiBp bnQKIHBnX251bWFfaW5pdCh2b2lkKQpAQCAtNDIsMTEgKzU1LDQ2IEBAIHBnX251bWFfaW5p dCh2b2lkKQogICogV2UgdXNlIG1vdmVfcGFnZXMoMikgc3lzY2FsbCBoZXJlIC0gaW5zdGVh ZCBvZiBnZXRfbWVtcG9saWN5KDIpIC0gYXMgdGhlCiAgKiBmaXJzdCBvbmUgYWxsb3dzIHVz IHRvIGJhdGNoIGFuZCBxdWVyeSBhYm91dCBtYW55IG1lbW9yeSBwYWdlcyBpbiBvbmUgc2lu Z2xlCiAgKiBnaWFudCBzeXN0ZW0gY2FsbCB0aGF0IGlzIHdheSBmYXN0ZXIuCisgKgorICog V2UgY2FsbCBudW1hX21vdmVfcGFnZXMoKSBmb3Igc21hbGxlciBjaHVua3Mgb2YgdGhlIHdo b2xlIGFycmF5LiBUaGUgZmlyc3QKKyAqIHJlYXNvbiBpcyB0byB3b3JrIGFyb3VuZCBhIGtl cm5lbCBidWcsIGJ1dCBhbHNvIHRvIGFsbG93IGludGVycnVwdGluZyB0aGUKKyAqIHF1ZXJ5 IGJldHdlZW4gdGhlIGNhbGxzIChmb3IgbWFueSBwb2ludGVycyBwcm9jZXNzaW5nIHRoZSB3 aG9sZSBhcnJheSBjYW4KKyAqIHRha2UgYSBsb3Qgb2YgdGltZSkuCiAgKi8KIGludAogcGdf bnVtYV9xdWVyeV9wYWdlcyhpbnQgcGlkLCB1bnNpZ25lZCBsb25nIGNvdW50LCB2b2lkICoq cGFnZXMsIGludCAqc3RhdHVzKQogewotCXJldHVybiBudW1hX21vdmVfcGFnZXMocGlkLCBj b3VudCwgcGFnZXMsIE5VTEwsIHN0YXR1cywgMCk7CisJdW5zaWduZWQgbG9uZwluZXh0ID0g MDsKKwlpbnQJCQkJcmV0ID0gMDsKKworCS8qCisJICogQ2h1bmsgcG9pbnRlcnMgcGFzc2Vk IHRvIG51bWFfbW92ZV9wYWdlcyB0byBOVU1BX1FVRVJZX0NIVU5LX1NJWkUKKwkgKiBpdGVt cywgdG8gd29yayBhcm91bmQgYSBrZXJuZWwgYnVnIGluIGRvX3BhZ2VzX3N0YXQoKS4KKwkg Ki8KKwl3aGlsZSAobmV4dCA8IGNvdW50KQorCXsKKwkJdW5zaWduZWQgbG9uZyBjb3VudF9j aHVuayA9IE1pbihjb3VudCAtIG5leHQsCisJCQkJCQkJCQkJTlVNQV9RVUVSWV9DSFVOS19T SVpFKTsKKworCQkvKgorCQkgKiBCYWlsIG91dCBpZiBhbnkgb2YgdGhlIGNodW5rcyBlcnJv cnMgb3V0IChyZXQ8MCkuIFdlIGlnbm9yZQorCQkgKiAocmV0PjApIHdoaWNoIGlzIHVzZWQg dG8gcmV0dXJuIG51bWJlciBvZiBub25taWdyYXRlZCBwYWdlcywKKwkJICogYnV0IHdlJ3Jl IG5vdCBtaWdyYXRpbmcgYW55IHBhZ2VzIGhlcmUuCisJCSAqLworCQlyZXQgPSBudW1hX21v dmVfcGFnZXMocGlkLCBjb3VudF9jaHVuaywgJnBhZ2VzW25leHRdLCBOVUxMLCAmc3RhdHVz W25leHRdLCAwKTsKKwkJaWYgKHJldCA8IDApCisJCXsKKwkJCS8qIHBsYWluIGVycm9yLCBy ZXR1cm4gYXMgaXMgKi8KKwkJCXJldHVybiByZXQ7CisJCX0KKworCQluZXh0ICs9IGNvdW50 X2NodW5rOworCX0KKworCS8qIHNob3VsZCBoYXZlIGNvbnN1bWVkIHRoZSBpbnB1dCBhcnJh eSBleGFjdGx5ICovCisJQXNzZXJ0KG5leHQgPT0gY291bnQpOworCisJcmV0dXJuIDA7CiB9 CiAKIGludAotLSAKMi40OS4wCgo= --------------8dCvXfpXWMKdBuIX8JucObby Content-Type: text/x-patch; charset=UTF-8; name="v2-0002-Silence-valgrind-about-pg_numa_touch_mem_if_requi.patch" Content-Disposition: attachment; filename*0="v2-0002-Silence-valgrind-about-pg_numa_touch_mem_if_requi.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSA5Y2IwOTVhMjA2MWRlZWE3ZjBhNzgxMTc3ZjRjODk5MjgzOTJkN2NlIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBUb21hcyBWb25kcmEgPHRvbWFzQHZvbmRyYS5tZT4K RGF0ZTogRnJpLCAyNyBKdW4gMjAyNSAxMjo0NzozOCArMDIwMApTdWJqZWN0OiBbUEFUQ0gg djIgMi8zXSBTaWxlbmNlIHZhbGdyaW5kIGFib3V0IHBnX251bWFfdG91Y2hfbWVtX2lmX3Jl cXVpcmVkCgpXaGVuIHF1ZXJ5aW5nIE5VTUEgc3RhdHVzIG9mIHBhZ2VzIGluIHNoYXJlZCBt ZW1vcnksIHdlIG5lZWQgdG8gdG91Y2gKdGhlIG1lbW9yeSBmaXJzdCB0byBnZXQgdmFsaWQg cmVzdWx0cy4gVGhpcyBtYXkgdHJpZ2dlciB2YWxncmluZApyZXBvcnRzLCBiZWNhdXNlIHNv bWUgb2YgdGhlIG1lbW9yeSAoZS5nLiB1bnBpbm5lZCBidWZmZXJzKSBtYXkgYmUKbWFya2Vk IGFzIG5vYWNjZXNzLgoKU29sdmVkIGJ5IGFkZGluZyBhIHZhbGdyaW5kIHN1cHByZXNpb24u IEFuIGFsdGVybmF0aXZlIHdvdWxkIGJlIHRvCmFkanVzdCB0aGUgYWNjZXNzL25vYWNjZXNz IHN0YXR1cyBiZWZvcmUgdG91Y2hpbmcgdGhlIG1lbW9yeSwgYnV0IHRoYXQKc2VlbXMgZmFy IHRvbyBpbnZhc2l2ZS4gSXQgd291bGQgcmVxdWlyZSBhbGwgdGhvc2UgcGxhY2VzIHRvIGhh dmUKZGV0YWlsZWQga25vd2xlZGdlIG9mIHdoYXQgdGhlIHNoYXJlZCBtZW1vcnkgc3RvcmVz LgoKVGhlIHBnX251bWFfdG91Y2hfbWVtX2lmX3JlcXVpcmVkKCkgbWFjcm8gaXMgcmVwbGFj ZWQgd2l0aCBhIGZ1bmN0aW9uLgpNYWNyb3MgYXJlIGludmlzaWJsZSB0byBzdXBwcmVzc2lv bnMsIHNvIGl0J2QgaGF2ZSB0byBzdXBwcmVzcyByZXBvcnRzCmZvciB0aGUgY2FsbGVyIC0g ZS5nLiBwZ19nZXRfc2htZW1fYWxsb2NhdGlvbnNfbnVtYSgpLiBTbyB3ZSdkIHN1cHByZXNz CnJlcG9ydHMgZm9yIHRoZSB3aG9sZSBmdW5jdGlvbiwgYW5kIHRoYXQgc2VlbXMgdG8gaGVh dnktaGFuZGVkLiBJdCBtaWdodAplYXNpbHkgaGlkZSBvdGhlciB2YWxpZCBpc3N1ZXMuCgpS ZXZpZXdlZC1ieTogQ2hyaXN0b3BoIEJlcmcgPG15b25AZGViaWFuLm9yZz4KUmV2aWV3ZWQt Ynk6IEJlcnRyYW5kIERyb3V2b3QgPGJlcnRyYW5kZHJvdXZvdC5wZ0BnbWFpbC5jb20+CkRp c2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVzL20vYUV0RG96TG10WmRkQVJkQkBtc2cuZGY3 Y2IuZGUKLS0tCiBjb250cmliL3BnX2J1ZmZlcmNhY2hlL3BnX2J1ZmZlcmNhY2hlX3BhZ2Vz LmMgfCAgMyArLS0KIHNyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL3NobWVtLmMgICAgICAgICAg ICAgICB8ICA0ICstLS0KIHNyYy9pbmNsdWRlL3BvcnQvcGdfbnVtYS5oICAgICAgICAgICAg ICAgICAgICB8IDEwICsrKysrKystLS0KIHNyYy90b29scy92YWxncmluZC5zdXBwICAgICAg ICAgICAgICAgICAgICAgICB8IDE0ICsrKysrKysrKysrKysrCiA0IGZpbGVzIGNoYW5nZWQs IDIzIGluc2VydGlvbnMoKyksIDggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvY29udHJp 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 aW5kZXggNDBmMWQzMjRkY2YuLjZjOGI3MTAzY2MzIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVk ZS9wb3J0L3BnX251bWEuaAorKysgYi9zcmMvaW5jbHVkZS9wb3J0L3BnX251bWEuaApAQCAt MjQsMTIgKzI0LDE2IEBAIGV4dGVybiBQR0RMTElNUE9SVCBpbnQgcGdfbnVtYV9nZXRfbWF4 X25vZGUodm9pZCk7CiAgKiBUaGlzIGlzIHJlcXVpcmVkIG9uIExpbnV4LCBiZWZvcmUgcGdf bnVtYV9xdWVyeV9wYWdlcygpIGFzIHdlCiAgKiBuZWVkIHRvIHBhZ2UtZmF1bHQgYmVmb3Jl IG1vdmVfcGFnZXMoMikgc3lzY2FsbCByZXR1cm5zIHZhbGlkIHJlc3VsdHMuCiAgKi8KLSNk ZWZpbmUgcGdfbnVtYV90b3VjaF9tZW1faWZfcmVxdWlyZWQocm9fdm9sYXRpbGVfdmFyLCBw dHIpIFwKLQlyb192b2xhdGlsZV92YXIgPSAqKHZvbGF0aWxlIHVpbnQ2NCAqKSBwdHIKK3N0 YXRpYyBpbmxpbmUgdm9pZAorcGdfbnVtYV90b3VjaF9tZW1faWZfcmVxdWlyZWQodm9pZCAq cHRyKQoreworCXZvbGF0aWxlIHVpbnQ2NCB0b3VjaCBwZ19hdHRyaWJ1dGVfdW51c2VkKCk7 CisJdG91Y2ggPSAqKHZvbGF0aWxlIHVpbnQ2NCAqKSBwdHI7Cit9CiAKICNlbHNlCiAKLSNk ZWZpbmUgcGdfbnVtYV90b3VjaF9tZW1faWZfcmVxdWlyZWQocm9fdm9sYXRpbGVfdmFyLCBw dHIpIFwKKyNkZWZpbmUgcGdfbnVtYV90b3VjaF9tZW1faWZfcmVxdWlyZWQocHRyKSBcCiAJ ZG8ge30gd2hpbGUoMCkKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9zcmMvdG9vbHMvdmFsZ3Jp bmQuc3VwcCBiL3NyYy90b29scy92YWxncmluZC5zdXBwCmluZGV4IDdlYTQ2NGM4MDk0Li4y YWQ1YjgxNTI2ZCAxMDA2NDQKLS0tIGEvc3JjL3Rvb2xzL3ZhbGdyaW5kLnN1cHAKKysrIGIv c3JjL3Rvb2xzL3ZhbGdyaW5kLnN1cHAKQEAgLTE4MCwzICsxODAsMTcgQEAKICAgIE1lbWNo ZWNrOkNvbmQKICAgIGZ1bjpQeU9iamVjdF9SZWFsbG9jCiB9CisKKyMgTlVNQSBpbnRyb3Nw ZWN0aW9uIHJlcXVpcmVzIHRvdWNoaW5nIG1lbW9yeSBmaXJzdCwgYW5kIHNvbWUgb2YgaXQg bWF5CisjIGJlIG1hcmtlZCBhcyBub2FjZXNzIChlLmcuIHVucGlubmVkIGJ1ZmZlcnMpLiBT byBqdXN0IGlnbm9yZSB0aGF0LgoreworICAgcGdfbnVtYV90b3VjaF9tZW1faWZfcmVxdWly ZWQKKyAgIE1lbWNoZWNrOkFkZHI0CisgICBmdW46cGdfbnVtYV90b3VjaF9tZW1faWZfcmVx dWlyZWQKK30KKworeworICAgcGdfbnVtYV90b3VjaF9tZW1faWZfcmVxdWlyZWQKKyAgIE1l bWNoZWNrOkFkZHI4CisgICBmdW46cGdfbnVtYV90b3VjaF9tZW1faWZfcmVxdWlyZWQKK30K LS0gCjIuNDkuMAoK --------------8dCvXfpXWMKdBuIX8JucObby Content-Type: text/x-patch; charset=UTF-8; name="v2-0003-Add-CHECK_FOR_INTERRUPTS-into-pg_numa_query_pages.patch" Content-Disposition: attachment; filename*0="v2-0003-Add-CHECK_FOR_INTERRUPTS-into-pg_numa_query_pages.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSA2OTA5MDQ0NjgyMzVmNzA5MzIxNGUxMzIzNzE0ZDE0YjhhMjJhNmNhIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBUb21hcyBWb25kcmEgPHRvbWFzQHZvbmRyYS5tZT4K RGF0ZTogRnJpLCAyNyBKdW4gMjAyNSAxNjo0Mjo0MyArMDIwMApTdWJqZWN0OiBbUEFUQ0gg djIgMy8zXSBBZGQgQ0hFQ0tfRk9SX0lOVEVSUlVQVFMgaW50byBwZ19udW1hX3F1ZXJ5X3Bh Z2VzCgpRdWVyeWluZyB0aGUgTlVNQSBzdGF0dXMgY2FuIGJlIHF1aXRlIHRpbWUgY29uc3Vt aW5nLCBlc3BlY2lhbGx5IHdpdGgKbGFyZ2Ugc2hhcmVkIGJ1ZmZlcnMuIDhjYzEzOWJlYzM0 YSBzaW1wbHkgY2FsbGVkIG51bWFfbW92ZV9wYWdlcygpLAp3aGljaCBtZWFudCB3ZSBoYXZl IHRvIHdhaXQgZm9yIHRoZSBzeXNjYWxsIHRvIGNvbXBsZXRlLgoKQnV0IHdpdGggdGhlIGNo dW5raW5nLCBpbnRyb2R1Y2VkIHRvIHdvcmsgYXJvdW5kIHRoZSBkb19wYWdlc19zdGF0KCkK YnVnLCB3ZSBjYW4gZG8gQ0hFQ0tfRk9SX0lOVEVSUlVQVFMoKSBhZnRlciBlYWNoIGNodW5r LCB0byBhbGxvdyB1c2VycwphYm9ydGluZyB0aGUgZXhlY3V0aW9uLgoKUmV2aWV3ZWQtYnk6 IENocmlzdG9waCBCZXJnIDxteW9uQGRlYmlhbi5vcmc+ClJldmlld2VkLWJ5OiBCZXJ0cmFu ZCBEcm91dm90IDxiZXJ0cmFuZGRyb3V2b3QucGdAZ21haWwuY29tPgpEaXNjdXNzaW9uOiBo dHRwczovL3Bvc3Rnci5lcy9tL2FFdERvekxtdFpkZEFSZEJAbXNnLmRmN2NiLmRlCi0tLQog c3JjL3BvcnQvcGdfbnVtYS5jIHwgMyArKysKIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlv bnMoKykKCmRpZmYgLS1naXQgYS9zcmMvcG9ydC9wZ19udW1hLmMgYi9zcmMvcG9ydC9wZ19u dW1hLmMKaW5kZXggZDU5MzUyMDdkMGEuLmM2NWYyMjAyMGVhIDEwMDY0NAotLS0gYS9zcmMv cG9ydC9wZ19udW1hLmMKKysrIGIvc3JjL3BvcnQvcGdfbnVtYS5jCkBAIC0xNiw2ICsxNiw3 IEBACiAjaW5jbHVkZSAiYy5oIgogI2luY2x1ZGUgPHVuaXN0ZC5oPgogCisjaW5jbHVkZSAi bWlzY2FkbWluLmgiCiAjaW5jbHVkZSAicG9ydC9wZ19udW1hLmgiCiAKIC8qCkBAIC03Niw2 ICs3Nyw4IEBAIHBnX251bWFfcXVlcnlfcGFnZXMoaW50IHBpZCwgdW5zaWduZWQgbG9uZyBj b3VudCwgdm9pZCAqKnBhZ2VzLCBpbnQgKnN0YXR1cykKIAkJdW5zaWduZWQgbG9uZyBjb3Vu dF9jaHVuayA9IE1pbihjb3VudCAtIG5leHQsCiAJCQkJCQkJCQkJTlVNQV9RVUVSWV9DSFVO S19TSVpFKTsKIAorCQlDSEVDS19GT1JfSU5URVJSVVBUUygpOworCiAJCS8qCiAJCSAqIEJh aWwgb3V0IGlmIGFueSBvZiB0aGUgY2h1bmtzIGVycm9ycyBvdXQgKHJldDwwKS4gV2UgaWdu b3JlCiAJCSAqIChyZXQ+MCkgd2hpY2ggaXMgdXNlZCB0byByZXR1cm4gbnVtYmVyIG9mIG5v bm1pZ3JhdGVkIHBhZ2VzLAotLSAKMi40OS4wCgo= --------------8dCvXfpXWMKdBuIX8JucObby--