为什么在uni-processor上sizeof(spinlock_t)大于零?

vin*_*rak 2 linux kernel linux-kernel

以下行打印输出为4,而我期待0.

 printk(KERN_INFO "size of spinlock_t  %d\n", sizeof(spinlock_t));
Run Code Online (Sandbox Code Playgroud)

我在一个单CPU的系统上试过这个.构建内核时没有启用调试标志CONFIG_DEBUG_SPINLOCK or CONFIG_DEBUG_LOCK_ALLOC.根据内核头文件,它应该为零,但输出与它不一致,任何猜测?

caf*_*caf 5

我最好的猜测是,虽然你有一个CPU,但内核仍然使用CONFIG_SMPset进行编译.