Re: [PATCH] mm: memory-failure: update statistics before emitting the trace event

From: Miaohe Lin

Date: Sun Nov 01 2026 - 22:41:17 EST


On 2026/10/28 16:09, Mauro Carvalho Chehab wrote:
> From: Mauro Carvalho Chehab <m.chehab@xxxxxxxxxx>
>
> Today's rasdaemon-ci run showed a race condition at the page poison
> logic affecting userspace (rasdaemon): action_result() emits a
> memory_failure_event before incrementing num_poisoned_pages and
> updating the per-node memory failure statistics.
>
> That causes userspace to read /proc/meminfo to detect HardwareCorrupted
> trace events to warn if the value exceeds POISON_STAT_THRESHOLD.
> This works most of the cases, but there is a chance that the value
> not being updated in time before libtraceevent notification is handled.
>
> Root cause is commit e240ac52f7da ("mm/memory-failure.c: simplify num_poisoned_pages_inc/dec")
> which changed the order of updates.
>
> Rasdaemod-ci run up to Oct 27 worked properly, but on today's run, it
> failed to get the HardwareCorrupted data from /proc/meminfo because
> it was updated only after trigging the hardware error event:
> https://mchehab.github.io/rasdaemon-ci/failures/20261028T035110Z-40629018388/daily/aarch64/consumer-poison-page-stat.html
>
> E.g. it failed to log this:
> rasdaemon: Poison page statistics exceeded threshold: 4 kB (threshold: 0 kB)
>
> This is important for rasdaemon, as the consumer's action monitors a failed
> threshold before poisoning pages. So, if the counter doesn't update properly,
> it will end not poisoning pages at the expected threshold.
>
> Fixes: e240ac52f7da ("mm/memory-failure.c: simplify num_poisoned_pages_inc/dec")
> Closes: https://github.com/mchehab/rasdaemon-ci/actions/runs/40629018388
> Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@xxxxxxxxxx>

Acked-by: Miaohe Lin <linmiaohe@xxxxxxxxxx>

Thanks.
.