On Tue, Jul 06, 2021 at 05:30:54PM +0200, Abd-Alrhman Masalkhi wrote:
Thank you for your comment, the div_u64 function is called 5 times
inside diskstats_show function, so I have made a test case; I have
replaced one call with a constant number then I have compiled the
kernel, the result was instead of emitting "the frame size of 1656
bytes is larger than 1280 bytes" warning, it has emitted "the frame
size of 1328 bytes is larger than 1280 bytes" warning, so I came to the
conclusion that each call to div_u64 will add 328 bytes to the stack
frame of diskstats_show function, since it is an inlined function. so I
thought it might be the solution that to preventing div_u64 to be
inlined in diskstats_show function.
Adding a bunch of relevant parties to the CC list - any idea how we
can make the generic do_div / div_u64 not use up such gigantic amounts
of stack?