Re: [PATCH AUTOSEL 5.0 011/262] tracing: kdb: Fix ftdump to not sleep

From: Pavel Machek
Date: Thu Mar 28 2019 - 06:13:55 EST


> From: Douglas Anderson <dianders@xxxxxxxxxxxx>
>
> [ Upstream commit 31b265b3baaf55f209229888b7ffea523ddab366 ]
>
> As reported back in 2016-11 [1], the "ftdump" kdb command triggers a
> BUG for "sleeping function called from invalid context".
>
> kdb's "ftdump" command wants to call ring_buffer_read_prepare() in
> atomic context. A very simple solution for this is to add allocation
> flags to ring_buffer_read_prepare() so kdb can call it without
> triggering the allocation error. This patch does that.

I see solution is simple, but now we have a loop with GFP_ATOMIC
allocations inside. How many "tracing spus" is this expected to loop
over? Will not it exhaust atomically available pages and reliably fail
in common configurations?
Pavel

--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html