没有合适的资源?快使用搜索试试~ 我知道了~
linux内核中的likely和unlikely.pdf
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 28 浏览量
2021-11-05
06:34:41
上传
评论
收藏 79KB PDF 举报
温馨提示
试读
7页
linux内核中的likely和unlikely.pdf
资源推荐
资源详情
资源评论
Kernel version :2.6.14
CPU architecture :ARM920T
Author :ce123(http://blog.csdn.net/ce123)
GCC version :arm-linux-gcc-3.4.1
看内核时经常遇到 if(likely( )){} 或是 if(unlikely( )) 这样的语句,不甚
了解,例如 (选自 kernel/fork.c 中 copy_process) :
[plain] view plaincopyprint?
1. SET_LINKS(p);
2. if (unlikely(p->ptrace & PT_PTRACED))
3. __ptrace_link(p, current->parent);
下面详细分析一下。
likely() 与 unlikely() 是内核中定义的两个宏。位于
/include/linux/compiler.h 中,具体定义如下:
[plain] view plaincopyprint?
1. #define likely(x) __builtin_expect(!!(x), 1)
2. #define unlikely(x) __builtin_expect(!!(x), 0)
__builtin_expect 是 GCC(version>=2.9) 引进的内建函数,其作用就是
帮助编译器判断条件跳转的预期值,避免跳转造成时间乱费, 有利于代
码优化。查阅 GCC 手册,发现其定义如下
(http://gcc.gnu.org/onlinedocs/gcc/Other-Builtins.html) :
-- Built-in Function: long __builtin_expect (long EXP, long C)
You may use `__builtin_expect' to provide the compiler with
branch
prediction information. In general, you should prefer to use
actual profile feedback for this (`-fprofile-arcs'), as
资源评论
筱筱笎琞
- 粉丝: 8
- 资源: 15万+
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- YOLOV4-TINY权重文件
- 以下是一个使用贪心算法解决多机调度问题的基本步骤0.txt
- 基于大数据的房产估价是近年来随着技术的发展而兴起的一种新型估价方法.txt
- 企业供应链管理系统v3.rar
- 富芮坤FR8016HA蓝牙开发板使用手册+硬件PCB图+封装库+DEMO演示软件源代码.zip
- 基于YOLOv7的芯片表面缺陷检测系统
- 京东物流 数字化供应链综合研究报告2018.rar
- 基于YOLOv7的植物虫害识别&防治系统
- 2000.1-2023.8中国经济政策不确定性指数月度数据.xlsx
- Screenshot_2024-04-21-20-42-15-443_com.tencent.mm.jpg
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功