Почему KernelStack> ThreadCount * 16k
Каждый поток имеет KernelStack размером 16k, поэтому я попытался подсчитать количество потоков в системе с помощью
[root@docker31 ~]# ps -eT | wc -l
714
и получилKernelStack из / proc / meminfo с
[root@docker31 ~]# cat /proc/meminfo | grep KernelStack
KernelStack: 12640 kB
Если в одном потоке имеется 16k стека ядра
, то общий размер стека ядра должен составлять 714 * 16k = 11424k
, но KernelStack из /proc / meminfo - 1216K (76 * 16k), больше чем количество потоков
Что такое 1216K?Это стек прерываний на процессор?
Я искал исходный код 3.10.0-975.el7 и обнаружил, что KernelStack из / proc / meminfo подсчитывается в do_fork-> copy_process-> dup_task_struct-> account_kernel_stack oprerion, поэтомуя думаю, что он должен быть равен числу потоков
, но на самом деле они не равны, почему?