我正在编译驱动程序模块并收到warning: the frame size of 1064 bytes is larger than 1024 bytes
之类的警告
是的,这意味着在堆栈中为局部变量分配的空间略大。
但最大安全值是多少?
我不能依赖最多8192字节的http://elinux.org/Kernel_Small_Stacks。 没有重要来源。
谢谢。
答案 0 :(得分:0)
没有具体的安全价值。
重要的是实际使用了多少堆栈,即所有活动函数的堆栈帧总和。
此警告不保证您将溢出堆栈空间;它只是表明这个函数更容易出现溢出(当与其他大框架函数一起使用时,或者与许多较小的函数一起使用时)。
答案 1 :(得分:0)
Linux内核为每个内核线程定义了堆栈大小8192个字节,因此最大安全值是整个调用路径中不会溢出8192个字节的值。