- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在linux内核中自旋锁的实现,例如 http://lxr.linux.no/#linux+v2.6.18/include/asm-i386/semaphore.h#L97
97static inline void down(struct semaphore * sem)
98{
99 might_sleep();
100 __asm__ __volatile__(
101 "# atomic down operation\n\t"
102 LOCK_PREFIX "decl %0\n\t" /* --sem->count */
103 "js 2f\n"
104 "1:\n"
105 LOCK_SECTION_START("")
106 "2:\tlea %0,%%eax\n\t"
107 "call __down_failed\n\t"
108 "jmp 1b\n"
109 LOCK_SECTION_END
110 :"+m" (sem->count)
111 :
112 :"memory","ax");
113}
使用LOCK_SECTION_START和LOCK_SECTION_END。它们在http://lxr.linux.no/#linux+v2.6.18/include/linux/spinlock.h#L63中定义。作为
61#define LOCK_SECTION_NAME ".text.lock."KBUILD_BASENAME
62
63#define LOCK_SECTION_START(extra) \
64 ".subsection 1\n\t" \
65 extra \
66 ".ifndef " LOCK_SECTION_NAME "\n\t" \
67 LOCK_SECTION_NAME ":\n\t" \
68 ".endif\n"
69
70#define LOCK_SECTION_END \
71 ".previous\n\t"
因此,所有锁定操作都部分放入第1小节
或.text.lock.SMTH_STRING部分。
这是什么原因?
最佳答案
我不是100%确定,但我认为这与SMP alternatives for i386有关,其中内核可以在启动时甚至运行时在 SMP 和 UP 之间切换。
关于assembly - 为什么Linux内核中的自旋锁位于 ".subsection 1"(或 ".text.lock.smth")中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3512744/
我是在 Scala/SBT 项目的代码中执行此操作,但我认为这个问题同样适用于 Java 代码。 在build.sbt中我有: libraryDependencies += "org.mongodb"
我的数据库中有下一个表: 个人奖品 ___________ ___________ _________ __________ | id | userId | specId|
我不知道如何让这段代码更短,还有很多其他值我需要检查和跟踪变化,所以代码变得又大又复杂 doc.name = doc.name === offer.title ? doc.name : ()
此屏幕截图和代码片段将向您展示我的麻烦。如何避免这种情况?可能是我以错误的方式这样做吗?如果可能的话,我想看一些代码示例。 let canvas = document.querySelector("c
我在 Xcode 8 beta 中编写了 tableView 的代码,然后尝试在实际的 Xcode 7 中执行它。除了 UITableViewDataSource 问题外,我下面的代码看起来是正确的。
声明转发应该怎么办A , 表示元素列表 B , 其中每一个都是指 C , 那boost::recursive_wrapper -s 到 A ? 对所有类型都是模板化类型的情况特别感兴趣。说, temp
这个问题在这里已经有了答案: Where and why do I have to put the "template" and "typename" keywords? (8 个答案) 关闭 9
我有一个由表格呈现的用户列表,我需要搜索具有适当值的 td 元素 - 如果当前页面上不存在该元素 - 单击链接即可转到另一个页面。我不知道如何做到这一点,但我使用 xpath 选择器来查找具有某些值的
抱歉,如果问题的标题不清楚,我真的无法用语言描述它! 我使用花式音乐播放器:http://codecanyon.net/item/fancy-music-player-v20-jquery-plugi
我已经选择了选项并且有很多输入。如果我选择选项(例如“USER”),我需要跨越准备好的输入,如果选择另一个选项,我需要再次隐藏它。
刚刚看到了here . 从来没有遇到过这样的构造,我不明白,这是什么意思!以及它在特化方面的工作方式,因为 typedef 不会生成新类型: 错误: template void a(); typed
我想这是一个非常愚蠢的问题,我对此感到抱歉,但我不知道如何解决它以及我应该做什么。 我从未使用过源代码控制系统,所以我开始阅读 Git 的文档。但是我遇到了这个问题:当我执行 $ git log 时,
我有两张 table 。一个包含酒店信息,由用户添加到我的网站。它包含一个名为用户名的字段,其中包含上传它的人的用户名。第二个表包含用户信息(包括一个名为“active”的字段,指示用户是否已付款)。
经典 Javascript 代码有什么区别: document.getElementById('theID') 和 jQuery 版本: $('#theID') 最佳答案 document.getEl
我的正则表达式真的很烂,所以请帮助我。 我需要在字符串中找到任何片段,例如 #text。 text 不得包含任何空格字符 (\\s)。它的长度必须至少为 2 个字符 ({2,}),并且它必须至少包含
我认为这是一个非常疯狂的问题,但无论如何我想知道是否有机会使用 css、jquery 或 smth 水平翻转选择框...文本本身保持不变,但必须翻转选择框。 最佳答案 一些基本的 CSS 就可以解决问
我想将 Right-Alt 键绑定(bind)到切换输入方法功能并将 Left-Alt 绑定(bind)到 Meta。 但是 Emacs 将两个 Alt 键都识别为 Meta。 如何让 Emacs 区
情况如下: 位于不同地点的两个团队正在开发同一产品,但我们无法访问彼此的资源。一个团队 - 后端(应用服务器),另一个团队 - GUI(客户端)。 服务器请求/响应变化非常频繁,第二个团队(客户端)通
我想检查 的“href”标签为空,如果这是真的,它应该警告类似“该站点在 atm 上不可用”之类的东西,如果链接是正确的,它应该什么都不做。 HTML This Link is defined Th
我是一名优秀的程序员,十分优秀!