Linux kernel linux内核中的上下文是原子的吗?

Linux kernel linux内核中的上下文是原子的吗?,linux-kernel,kernel,spinlock,Linux Kernel,Kernel,Spinlock,上述示例中提到的上下文是原子的吗?在这里,我们只是禁用中断,而不是抢占 我不明白这个问题?没有一个有用的上下文来回答你的问题;您刚刚以错误的方式锁定/解锁了自旋锁。代码可能运行在多个处理器/coresAtomic上。自旋锁是做同样事情的非原子方式。你的命名法有些混乱。你的意思是按你的顺序做吗?似乎事情并没有在上下文中锁定,因此在任何情况下都有种族条件。中断可以是先发制人的。请看,等等,了解真正的原子原语。给定的序列也是可以接受的,您可以在开源驱动程序中找到它们。在这里,我们只是试图释放锁并获取回

上述示例中提到的上下文是原子的吗?在这里,我们只是禁用中断,而不是抢占

我不明白这个问题?没有一个有用的上下文来回答你的问题;您刚刚以错误的方式锁定/解锁了自旋锁。代码可能运行在多个处理器/coresAtomic上。自旋锁是做同样事情的非原子方式。你的命名法有些混乱。你的意思是按你的顺序做吗?似乎事情并没有在上下文中锁定,因此在任何情况下都有种族条件。中断可以是先发制人的。请看,等等,了解真正的原子原语。给定的序列也是可以接受的,您可以在开源驱动程序中找到它们。在这里,我们只是试图释放锁并获取回来。当您不知道回调函数的作用时,如果需要调用回调函数,通常会调用该函数。假设代码在SMP处理器上运行。
spin_lock_irqsave(...);

spin_unlock(...);
/* context */
spin_lock(...);

spin_unlock_irqrestore(...);