mirror of
https://github.com/torvalds/linux.git
synced 2024-12-29 14:21:47 +00:00
binder: convert logging macros into functions
Converting binder_debug() and binder_user_error() macros into functions reduces the overall object size by 16936 bytes when cross-compiled with aarch64-linux-gnu-gcc 11.2.0: $ size drivers/android/binder.o.{old,new} text data bss dec hex filename 77935 6168 20264 104367 197af drivers/android/binder.o.old 65551 1616 20264 87431 15587 drivers/android/binder.o.new This is particularly beneficial to functions binder_transaction() and binder_thread_write() which repeatedly use these macros and are both part of the critical path for all binder transactions. $ nm --size vmlinux.{old,new} |grep ' binder_transaction$' 0000000000002f60 t binder_transaction 0000000000002358 t binder_transaction $ nm --size vmlinux.{old,new} |grep binder_thread_write 0000000000001c54 t binder_thread_write 00000000000014a8 t binder_thread_write Acked-by: Christian Brauner (Microsoft) <brauner@kernel.org> Acked-by: Todd Kjos <tkjos@google.com> Signed-off-by: Carlos Llamas <cmllamas@google.com> Link: https://lore.kernel.org/r/20220429235644.697372-5-cmllamas@google.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
d23386ed70
commit
06a3494ef6
@ -133,19 +133,36 @@ static int binder_set_stop_on_user_error(const char *val,
|
||||
module_param_call(stop_on_user_error, binder_set_stop_on_user_error,
|
||||
param_get_int, &binder_stop_on_user_error, 0644);
|
||||
|
||||
#define binder_debug(mask, x...) \
|
||||
do { \
|
||||
if (binder_debug_mask & mask) \
|
||||
pr_info_ratelimited(x); \
|
||||
} while (0)
|
||||
static __printf(2, 3) void binder_debug(int mask, const char *format, ...)
|
||||
{
|
||||
struct va_format vaf;
|
||||
va_list args;
|
||||
|
||||
#define binder_user_error(x...) \
|
||||
do { \
|
||||
if (binder_debug_mask & BINDER_DEBUG_USER_ERROR) \
|
||||
pr_info_ratelimited(x); \
|
||||
if (binder_stop_on_user_error) \
|
||||
binder_stop_on_user_error = 2; \
|
||||
} while (0)
|
||||
if (binder_debug_mask & mask) {
|
||||
va_start(args, format);
|
||||
vaf.va = &args;
|
||||
vaf.fmt = format;
|
||||
pr_info_ratelimited("%pV", &vaf);
|
||||
va_end(args);
|
||||
}
|
||||
}
|
||||
|
||||
static __printf(1, 2) void binder_user_error(const char *format, ...)
|
||||
{
|
||||
struct va_format vaf;
|
||||
va_list args;
|
||||
|
||||
if (binder_debug_mask & BINDER_DEBUG_USER_ERROR) {
|
||||
va_start(args, format);
|
||||
vaf.va = &args;
|
||||
vaf.fmt = format;
|
||||
pr_info_ratelimited("%pV", &vaf);
|
||||
va_end(args);
|
||||
}
|
||||
|
||||
if (binder_stop_on_user_error)
|
||||
binder_stop_on_user_error = 2;
|
||||
}
|
||||
|
||||
#define binder_set_extended_error(ee, _id, _command, _param) \
|
||||
do { \
|
||||
|
Loading…
Reference in New Issue
Block a user