573613955 发表于 2015-12-29 14:52

想问问大神用spin_lock delay了1秒有没有什么问题

最近做个项目要用spin_lock保持同步打开spin_lock后里面mdelay(1000)这样会不会有什么问题

还有就是spin_lock_irqsave(&lock, flags);用这种自旋锁会百分之百成功锁定吗

nswcfd 发表于 2016-01-02 17:06

本帖最后由 nswcfd 于 2016-01-02 17:07 编辑

spin_lock返回之后一定是成功的,只是等待的过程~有可能~会比较长(即出现饿死现象,如果spinlock的实现不是公平的话——不过最近的实现都是公平的)

shiweixingcn 发表于 2016-01-02 17:56

spin_lock时间太长的话会引起soft lockup,一般情况下最好不要这么做。
spin_lock是为了防止多个cpu同时进入的,所以不一定能够马上获取lock锁,但是cpu会忙等直到获得锁。

zhaochongzq 发表于 2016-01-06 14:50

spin_lock中mdelay应该没问题的,只是盲等嘛.
页: [1]
查看完整版本: 想问问大神用spin_lock delay了1秒有没有什么问题