Re: [PATCH 5.4 167/194] binder: print warnings when detecting oneway spamming.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Jan 22, 2024 at 03:58:17PM -0800, Greg Kroah-Hartman wrote:
> 5.4-stable review patch.  If anyone has any objections, please let me know.
> 
> ------------------
> 
> From: Martijn Coenen <maco@xxxxxxxxxxx>
> 
> [ Upstream commit 261e7818f06ec51e488e007f787ccd7e77272918 ]
> 
> The most common cause of the binder transaction buffer filling up is a
> client rapidly firing oneway transactions into a process, before it has
> a chance to handle them. Yet the root cause of this is often hard to
> debug, because either the system or the app will stop, and by that time
> binder debug information we dump in bugreports is no longer relevant.
> 
> This change warns as soon as a process dips below 80% of its oneway
> space (less than 100kB available in the configuration), when any one
> process is responsible for either more than 50 transactions, or more
> than 50% of the oneway space.
> 
> Signed-off-by: Martijn Coenen <maco@xxxxxxxxxxx>
> Acked-by: Todd Kjos <tkjos@xxxxxxxxxx>
> Link: https://lore.kernel.org/r/20200821122544.1277051-1-maco@xxxxxxxxxxx
> Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
> Stable-dep-of: c6d05e0762ab ("binder: fix unused alloc->free_async_space")
> Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>
> ---

I think we should drop this patch from the 5.4 stable queue. I assume it
was pulled in as a dependency of patch c6d05e0762ab ("binder: fix unused
alloc->free_async_space"). However, I have instead fixed the conflicts
for that backport here:
https://lore.kernel.org/all/20240122235725.449688589@xxxxxxxxxxxxxxxxxxx/

I was not aware that this patch was being backported and now we have the
following missing hunk in this v5.4 series:

diff --git a/drivers/android/binder_alloc.c b/drivers/android/binder_alloc.c
index abff1bafcc43..9b5c4d446efa 100644
--- a/drivers/android/binder_alloc.c
+++ b/drivers/android/binder_alloc.c
@@ -344,8 +344,7 @@ static bool debug_low_async_space_locked(struct binder_alloc *alloc, int pid)
                        continue;
                if (!buffer->async_transaction)
                        continue;
-               total_alloc_size += binder_alloc_buffer_size(alloc, buffer)
-                       + sizeof(struct binder_buffer);
+               total_alloc_size += binder_alloc_buffer_size(alloc, buffer);
                num_buffers++;
        }


Dropping this patch fixes this problem. After all it doesn't fix
anything so we don't need it here.

Sorry for all the binder backporting mess.

Thanks,
Carlos Llamas




[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux