- 论坛徽章:
- 0
|
想知道自己的电脑是单处理机还是多处理机,于是我用spin_lock()去获得一个已经上锁了的自旋锁,结果整个系统被锁住,死机了,于是我猜测自己的系统是单处理机(不知道这种猜测对不对),后来又看某篇文章的方法,用 grep 'physical id' /proc/cpuinfo | sort -u 命令知道了自己的电脑只有一个CPU,这是背景。。
后来想试下禁止了中断后jiffies会不会增长,在模块初始化函数中有如下代码
- unsigned long delay_time = 3000;
- spin_lock_init(&my_lock);
- // 会禁止中断的自旋锁版本
- spin_lock_irq(&my_lock);
- printk(KERN_INFO "jiffies is %u\n",jiffies);
- // 延迟3ms,是忙延迟
- udelay(delay_time);
- printk(KERN_INFO "delay jiffies is %u\n", jiffies);
- spin_unlock_irq(&my_lock);
复制代码 结果是,两次输出的jiffies有时会相差3,有时则相等,不过通常相差3的情况更普遍。请问各位这是什么原因啊,是不是我对禁止中断或jiffies的理解有问题? |
|