926f968742
Introduce the following parameters in order to add the possibility to sync DMA memory for device before putting allocated pages in the page_pool caches: - PP_FLAG_DMA_SYNC_DEV: if set in page_pool_params flags, all pages that the driver gets from page_pool will be DMA-synced-for-device according to the length provided by the device driver. Please note DMA-sync-for-CPU is still device driver responsibility - offset: DMA address offset where the DMA engine starts copying rx data - max_len: maximum DMA memory size page_pool is allowed to flush. This is currently used in __page_pool_alloc_pages_slow routine when pages are allocated from page allocator These parameters are supposed to be set by device drivers. This optimization reduces the length of the DMA-sync-for-device. The optimization is valid because pages are initially DMA-synced-for-device as defined via max_len. At RX time, the driver will perform a DMA-sync-for-CPU on the memory for the packet length. What is important is the memory occupied by packet payload, because this is the area CPU is allowed to read and modify. As we don't track cache-lines written into by the CPU, simply use the packet payload length as dma_sync_size at page_pool recycle time. This also take into account any tail-extend. Tested-by: Matteo Croce <mcroce@redhat.com> Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org> Signed-off-by: Jesper Dangaard Brouer <brouer@redhat.com> Acked-by: Ilias Apalodimas <ilias.apalodimas@linaro.org> Signed-off-by: David S. Miller <davem@davemloft.net> Signed-off-by: hongrongxuan <hongrongxuan@huawei.com> |
||
---|---|---|
Documentation | ||
LICENSES | ||
arch | ||
block | ||
certs | ||
crypto | ||
dist | ||
drivers | ||
fs | ||
include | ||
init | ||
ipc | ||
kernel | ||
lib | ||
mm | ||
net | ||
package | ||
samples | ||
scripts | ||
security | ||
sound | ||
tools | ||
usr | ||
virt | ||
.clang-format | ||
.cocciconfig | ||
.get_maintainer.ignore | ||
.gitattributes | ||
.gitignore | ||
.mailmap | ||
COPYING | ||
CREDITS | ||
Kbuild | ||
Kconfig | ||
MAINTAINERS | ||
Makefile | ||
README | ||
README.md | ||
backport_remove_lists.txt | ||
tools_key.pub |
README.md
Tencent Linux Kernel 4.0
一、项目介绍 README
wiki空间
TK (TencentOS kernel)是腾讯OS团队自研的TencentOS内核,将最新的Linux创新推向市场,
为企业各类软件提供了超强性能、高可伸缩性和可靠性。
生命周期
TK4基于社区5.4 longterm,2020年发布,2025年12月31日停止维护。
- 开发阶段:内核发布前的内部构建、准备、开发阶段。
- 全面支持:会持续开发、回合新特性、定期对其上游Bug Fix。
- 扩展支持:主要对齐上游bug fix patch,以稳定运行为主。
TK4各版本changelog信息
二、快速上手 Getting Started
1、config
本地编译前需要按照服务器类型准备好对应config文件,服务器编译可以跳过该部分
- 标准 X86 config路径
package/default/config.default
- 标准 ARM config路径
package/arm/config.default
2、构建&安装镜像
- 本地编译
make -j[x] # 编译
make modules_install install # 安装
- Tmanger编译
tmanger 在下拉菜单中选择对应仓库等,会自动进行编译,成功后会生成对应rpm压缩包。 执行如下指令安装
rpm -ivh *.rpm
(头文件rpm包最好使用-Uvh方式安装)
三、常见问题
详细各模块问题: 常见问题总结
- TK现网问题负责人
tlinux_helper,frankjpliu, shookliu,samuelliao,alexsshi。 - 如何查看内核版本
uname -r
4、行为准则
1、合入准则
TK采用TKCI保证合入代码的初步检测。 TKCI 是tkernel 自动CI系统, 它可以自动监测TKERNEL https://git.woa.com/tlinux/tkernel4 仓库任意push, 并对pushed commit/branch, 自动启动13个蓝盾测试,包括一个 commit 规范检查,12个内核不同config build测试,并支持TKCONFIG 内核准入测试(711case),未来还会支持更多。 TK4合入准则
2、MR请求
各领域Reviewer:
- 现网运营问题: samuelliao(廖生苗)
- TK通用Bug: kaixuxia(夏开旭)
- 如意相关问题: herberthbli(李弘博)
- 悟能相关问题: aurelianliu(刘诗)
- TK规范问题: alexsshi(时奎亮)
- BPF工具问题:
haisuwang(王海粟)
(或可联系内核研发组任意同学)
五、如何加入 How To Join
- 专职开发
企微联系:jasperwang(王佳) - Bug提交
可以MR方式提交,并联系前文提到的同学
六、团队介绍 Members
1、总览
2、新特性
悟能
悟能wiki空间
悟能(简称ECO),目前基于x86 core:c-state、uncore duf,两部分硬件节能。例如x86 cpu c-state,来做能效架构设计。以x86为例,在操作系统层面,通过电源管理、cpu idle子系统、调度器子系统、中断子系统等,使cpu空闲,并且使其进入深度睡眠c6 state,从而达到节能的目的。悟能的当前目标是:保证性能的前提下,争取节能。二期也就是现在到明年的目标是:提高性能的前提下,争取节能。
如意
如意wiki空间
如意,TencentOS RUE(Resource Utilization Enhancement),是TencentOS产品矩阵中一款专为云原生场景下服务器资源QoS设计,提升资源利用率,降低运营成本的产品。如意是统一调度分配云上机器的CPU、IO、网络、内存等资源,相比传统的服务器资源管理方案,如意更适用于云场景,能够显著提升云上机器的资源使用效率,降低云上客户的运营成本,为公有云、混合云、私有云等客户提供资源增值服务。
七、版本规划及changelog
1、版本规划
版本规划详见: https://iwiki.woa.com/pages/viewpage.action?pageId=4007003111
2、changelog
changelog详见: https://iwiki.woa.com/pages/viewpage.action?pageId=4007003117