Re: riscv gcc-13 allyesconfig error the frame size of 2064 bytes is larger than 2048 bytes [-Werror=frame-larger-than=]

Kent Overstreet <[email protected]>
Newsgroups org.kernel.vger.linux-bcache,dev.linux.lists.regressions,org.kernel.vger.linux-kernel
Message-ID <bsvrygs6lzmwarionkbrxzeorkmf62pig2h7hobqlmtlftzrpt@kg4cs5h7qq5s>
On Sun, May 25, 2025 at 03:25:02PM -0400, Steven Rostedt wrote:
> On Sun, 25 May 2025 13:36:16 -0400
> Kent Overstreet <[email protected]> wrote:
> 
> > We already have "trace max stack", but that only checks at process exit,
> > so it doesn't tell you much.
> 
> Nope, it traces the stack at every function call, but it misses the leaf
> functions and also doesn't check interrupts as they may use a different
> stack.

I was thinking of DEBUG_STACK_USAGE :)

> > We could do better with tracing - just inject a trampoline that checks
> > the current stack usage against the maximum stack usage we've seen, and
> > emits a trace event with a stack trace if it's greater.
> > 
> > (and now Steve's going to tell us he's already done this :)
> 
> Close ;-)
> 
> # echo 1 > /proc/sys/kernel/stack_tracer_enabled
> 
> Wait.
> 
> # cat /sys/kernel/tracing/stack_trace
>         Depth    Size   Location    (33 entries)
>         -----    ----   --------
>   0)     8360      48   __msecs_to_jiffies+0x9/0x30
>   1)     8312     104   update_group_capacity+0x95/0x970
>   2)     8208     520   update_sd_lb_stats.constprop.0+0x278/0x2f40
>   3)     7688     416   sched_balance_find_src_group+0x96/0xe30
>   4)     7272     512   sched_balance_rq+0x53f/0x2fe0
>   5)     6760     344   sched_balance_newidle+0x6c1/0x1310
>   6)     6416      80   pick_next_task_fair+0x55/0xe60
>   7)     6336     328   __schedule+0x8a5/0x33d0
>   8)     6008      32   schedule+0xe2/0x3b0
>   9)     5976      32   io_schedule+0x8f/0xf0
>  10)     5944     264   rq_qos_wait+0x12a/0x200
>  11)     5680     144   wbt_wait+0x159/0x260
>  12)     5536      40   __rq_qos_throttle+0x50/0x90
>  13)     5496     320   blk_mq_submit_bio+0x70b/0x1ff0
>  14)     5176     240   __submit_bio+0x1b3/0x600
>  15)     4936     248   submit_bio_noacct_nocheck+0x546/0xca0
>  16)     4688     144   ext4_bio_write_folio+0x69d/0x1870
>  17)     4544      64   mpage_submit_folio+0x14c/0x2b0
>  18)     4480      96   mpage_process_page_bufs+0x392/0x7a0
>  19)     4384     632   mpage_prepare_extent_to_map+0xa5b/0x1080
>  20)     3752     496   ext4_do_writepages+0x8af/0x2ee0
>  21)     3256     304   ext4_writepages+0x26f/0x5c0
>  22)     2952     344   do_writepages+0x183/0x7c0
>  23)     2608     152   __writeback_single_inode+0x114/0xb00
>  24)     2456     744   writeback_sb_inodes+0x52b/0xdf0
>  25)     1712     168   __writeback_inodes_wb+0xf4/0x270
>  26)     1544     312   wb_writeback+0x547/0x800
>  27)     1232     328   wb_workfn+0x7b1/0xbc0
>  28)      904     352   process_one_work+0x85a/0x1450
>  29)      552     176   worker_thread+0x5b7/0xf80
>  30)      376     168   kthread+0x371/0x720
>  31)      208      32   ret_from_fork+0x34/0x70
>  32)      176     176   ret_from_fork_asm+0x1a/0x30

Nice! This is exactly what I was looking for :)

        Depth    Size   Location    (48 entries)
        -----    ----   --------
  0)     7728      48   __update_load_avg_se+0x9/0x440
  1)     7680      80   update_load_avg+0x25f/0x2b0
  2)     7600      56   set_next_task_fair+0x232/0x290
  3)     7544      48   pick_next_task_fair+0xcf/0x1a0
  4)     7496     120   __schedule+0x284/0xe80
  5)     7376      16   preempt_schedule_irq+0x33/0x50
  6)     7360     136   asm_common_interrupt+0x26/0x40
  7)     7224      48   get_symbol_offset+0x43/0x70
  8)     7176      56   kallsyms_lookup_buildid+0x55/0xf0
  9)     7120      88   __sprint_symbol.isra.0+0x48/0xf0
 10)     7032     720   symbol_string+0xf1/0x120
 11)     6312     120   vsnprintf+0x3dc/0x5d0
 12)     6192     128   bch2_prt_printf+0x57/0x140
 13)     6064      64   bch2_prt_task_backtrace+0x71/0xc0
 14)     6000      40   print_cycle+0x71/0xa0
 15)     5960     104   trace_would_deadlock+0xb6/0x150
 16)     5856     128   break_cycle+0xfe/0x260
 17)     5728     368   bch2_check_for_deadlock+0x35f/0x5f0
 18)     5360      96   six_lock_slowpath.isra.0+0x204/0x4c0
 19)     5264      96   __bch2_btree_node_get+0x384/0x5b0
 20)     5168     336   bch2_btree_path_traverse_one+0x7a5/0xd60
 21)     4832     232   bch2_btree_iter_peek_slot+0x104/0x7f0
 22)     4600     216   btree_key_cache_fill+0xcf/0x1a0
 23)     4384      72   bch2_btree_path_traverse_cached+0x2bd/0x310
 24)     4312     336   bch2_btree_path_traverse_one+0x705/0xd60
 25)     3976     232   bch2_btree_iter_peek_slot+0x104/0x7f0
 26)     3744     424   bch2_check_discard_freespace_key+0x172/0x5e0
 27)     3320     224   bch2_bucket_alloc_freelist+0x422/0x610
 28)     3096      88   bch2_bucket_alloc_trans+0x1f3/0x3a0
 29)     3008     168   bch2_bucket_alloc_set_trans+0xf1/0x360
 30)     2840     184   __open_bucket_add_buckets+0x40b/0x660
 31)     2656      40   open_bucket_add_buckets+0x72/0xf0
 32)     2616     280   bch2_alloc_sectors_start_trans+0x76d/0xd00
 33)     2336     424   __bch2_write+0x1d1/0x11d0
 34)     1912     168   __bch2_writepage+0x3b2/0x790
 35)     1744      72   write_cache_pages+0x5c/0xa0
 36)     1672     176   bch2_writepages+0x67/0xc0
 37)     1496     184   do_writepages+0xcc/0x240
 38)     1312      64   __writeback_single_inode+0x41/0x320
 39)     1248     456   writeback_sb_inodes+0x216/0x4e0
 40)      792      64   __writeback_inodes_wb+0x4c/0xe0
 41)      728     168   wb_writeback+0x19c/0x310
 42)      560     136   wb_workfn+0x2a4/0x400
 43)      424      64   process_one_work+0x18c/0x330
 44)      360      72   worker_thread+0x252/0x3a0
 45)      288      80   kthread+0xf9/0x210
 46)      208      32   ret_from_fork+0x31/0x50
 47)      176     176   ret_from_fork_asm+0x11/0x20
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.