例如,cat /proc/interrupts
。
我看到这个值在不断增长 -
36: 10273035 IPIC 36 Level eth1_g0_rx
当它达到最大值时会发生什么:即 uint64_t 可以容纳的最大值。数据溢出如何处理?处理如此大数据的正确方法是什么?
答案1
没有通用答案,这取决于价值。
中断计数器是每个CPUunsigned int
CPU,并且它们使用 C 加法递增。该值仅供参考,因此出现超过 20 亿次(在unsigned int
32 位值的平台上)后它不再准确并不重要。
对于溢出处理很重要的值,存储本身不会改变 -IE它的大小将被选择以适合数据,但存储中没有“魔法” - 但对值的操作将使用溢出检查变体。