我正在阅读一些代码,我在函数foo中看到:
// x is a global variable shared by all functions
spin_lock(&x);
if(some condition)
function();
spin_unlock(&x);
在函数()中;
// do stuff
spin_lock_irqsave(&x, vals);
....
如果“某个条件”为真,会不会出现死锁?这似乎太明显了,所以我想我可能遗漏了什么?
谢谢
编辑:代码不是linux的一部分,它只是我在网上找到的一些随机代码
我正在阅读理解linux网络内部书和链接上Linux内核空间中的pdf网络数据包捕获
在主题9.2.2下的LinuxNetworkingInternational的理解中,给出了
处理输入帧的代码分为两部分:首先驱动程序将帧复制到内核可访问的输入队列中,然后内核处理它(通常将其传递给相关协议(如IP)的处理程序)。第一部分在中断上下文中执行,可以抢先执行第二部分。
现在查询是何时排定第二部分?谁安排他们?调用是在中断处理程序中进行的吗?在Linux内核空间的网络数据包捕获中,分组输入流描述为:-
When working in interrupt driven model, the n
我正在为linux内核开发一个补丁。我必须使用多个列表,并且我必须保护它们不受多核机器上并发修改的影响。我正在尝试使用自旋锁来实现这个目标,但是有一些事情我不能理解。我必须锁定列表的条目(我使用的是链表的linux默认实现),可能会发生这样的情况:一个进程调用syscall来删除列表中的一个元素,而相同的元素被锁定,因为实际上正在对它进行一些修改。如果我在列表条目中插入一个自旋锁,当有人在它上面进行自旋锁定时,如果进程设法删除它,会发生什么??我应该锁定整个列表吗?我正在寻找一段代码,可以解释如何处理这种情况。
例如,这段代码不应该工作(参见最后一行代码的注释):
struct list
我使用的是三星Chromebook和Crouton安装,可以找到。
我的问题是,是否安装使用chroot的软件,打开我的Chrome漏洞?
use :我是一名软件开发人员,希望在Chrome上使用Linux进行开发。无论如何,我不是Linux专家。我只想要一个不把我的工作,或我的新Chrome书的风险的环境!
如信号(7)的手册页中所述, Interruption of system calls and library functions by signal handlers
If a signal handler is invoked while a system call or library function call is blocked, then either:
* the call is automatically restarted after the signal handler returns; or
* the call f