我这边可以呀,拉个微信群嘛,什么形式呀,还是腾讯会议这种的嘛 ---原始邮件--- 发件人: "liqingqing (C)" ; 发送时间: 2023年3月9日(周四) 下午3:15 收件人: "常新" ;;"lvying" ;;"dev" ;;"Liuzixian" ;;"linfeilong" ;;"Zhoukang (A)" ;; 主题: 答复: [Dev] 回复:答复: 转发:回复:RE: 回复:答复: 您好 关于内核大页特性怎么开启,需要请教一下
@lvying @ 常新 这块看下是否需要一个会议交流下,效果可能会好一点 发件人 : 常新 [mailto:x_xiny@qq.com]
发送时间 : 2023 年 3 月 9 日 14:39 收件人 : lvying ;; dev ;; Liuzixian ;; linfeilong ;; Zhoukang (A) ; 主题 : [Dev] 回复:答复 : 转发:回复: RE: 回复:答复 : 您好 关于内核大页特性怎么开启,需要请教一下
今天又发现一个问题,根据文档描述的,如果不打开 sysctl fs.exec-use-hugetlb 即使用户设置了环境变量也不会使用该特性,内核会忽略相关流程。但是我没有开启这个开关或者关闭了,然后使用 HUGEPAGE_PROBR=1 这个环境变量,动态库仍然可以开启大页,好像并没有被忽略,使用 LD_HUGEPAGE_LIB=1 也一样可以开启,而且我看了一下代码,好像也没有看到这个开关会影响动态库大页加载,这里是代码实现的有问题还是文档描述的有问题呀
--- 原始邮件 ---
发件人 : "lvying" lvying6@huawei.com >;
发送时间 : 2023 年 3 月 6 日 ( 周一 ) 下午 4:16
收件人 : "x_xiny" x_xiny@qq.com >;;
主题 : 答复 : 转发:回复: RE: 回复:答复 : 您好 关于内核大页特性怎么开启,需要请教一下
感谢常新同学对于 openEuler 动态库大页的特性的关注!最近团队工作较忙,我们会在工作完成的第一时间答复您的信息,也麻烦子杨关注下常新同学的问题,及时答复。
祝好
发件人 : 常新 x_xiny@qq.com >;
发送时间 : 2023 年 3 月 6 日 10:23 收件人 : lvying lvying6@huawei.com >; 抄送 : dev dev@openeuler.org >;; Liuzixian liuzixian4@huawei.com >; 主题 : 转发:回复: RE: 回复:答复 : 您好 关于内核大页特性怎么开启,需要请教一下
因为我在看 LD_DEBUG 信息的时候,前边的流程都是一样的,但是在 __mmap_reserved_area 这个函数里调用 _mmap 的时候 x86 上返回 MAP_FAILED 了,可是 ARM 上却成功了,然后导致了动态库在 x86 上没有开 2m 对齐编译的时候就不映射大页,但是在 ARM 上映射了,所以这是因为 mmap 在 ARM 和 x86 上实现差异导致的吗
常新
x_xiny@qq.com
------------------ 原始邮件 ------------------
发件人 : " 常新 " x_xiny@qq.com >;;
发送时间 : 2023 年 3 月 3 日 ( 星期五 ) 下午 5:35
收件人 : "Zhoukang (A)" zhoukang7@huawei.com >;;"Liuzixian" liuzixian4@huawei.com >;;" 常新 " x_xiny@qq.com >;;" dev@openeuler.org " dev@openeuler.org >;;
抄送 : "lvying" lvying6@huawei.com >;;"linfeilong" linfeilong@huawei.com >;;
主题 : 回复: RE: 回复:答复 : 您好 关于内核大页特性怎么开启,需要请教一下
那在 x86 上和 ARM 上存在的这种差异,是因为在两个架构上对于 mmap 的实现差异导致的嘛,还是说现在非对齐情况下使用暂时就是一种未定义行为会导致不确定的结果
--- 原始邮件 ---
发件人 : "Zhoukang (A)" zhoukang7@huawei.com >;
发送时间 : 2023 年 3 月 3 日 ( 周五 ) 下午 4:30
收件人 : "Liuzixian" liuzixian4@huawei.com >;;" 常新 " x_xiny@qq.com >;;" dev@openeuler.org " dev@openeuler.org >;;
抄送 : "lvying" lvying6@huawei.com >;;"linfeilong" linfeilong@huawei.com >;;
主题 : RE: 回复:答复 : 您好 关于内核大页特性怎么开启,需要请教一下
相关讨论 , 请抄送 dev@openeuler.org , 方便后续搜索类似问题
From: Liuzixian liuzixian4@huawei.com >;
Sent: Friday, March 3, 2023 4:26 PM To: 常新 x_xiny@qq.com >; Cc: Zhoukang (A) zhoukang7@huawei.com >;; lvying lvying6@huawei.com >;; linfeilong linfeilong@huawei.com >; Subject: 答复 : 回复:答复 : 您好 关于内核大页特性怎么开启,需要请教一下
动态库的实现代码没有加这个约束,但目前我们认为支持非对齐的动态库较复杂,且未看到支持非对齐的需求,后期可能考虑删除。 写文档时考虑到实际产品均对齐使用,因此增加了约束限制,并且 openEuler 没有验证非对齐场景。
发件人 : 常新 x_xiny@qq.com >;
发送时间 : 2023 年 3 月 3 日 15:36 收件人 : Liuzixian liuzixian4@huawei.com >; 主题 : 回复:答复 : 您好 关于内核大页特性怎么开启,需要请教一下
你好,文档上有一个约束条件,要求 2m 对齐,动态库也受这个约束嘛,我试了一下,在 x86 平台上动态库也受这个约束,但是在 ARM 平台上好像动态库不受限制,
我跑的是这个用例 tst-ld-use-hugpage.c 里面的用例 环境设置为
sysctl fs.exec-use-hugetld=1
export LD_HUGEPAGE_LIB=1
HUGEPAGE_PROBE 没有设置,
也没有对动态库和二进制文件进行标记,
执行了 echo 200 >; /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages ,
2209 分支 x86 版本中动态库没有被大页映射, KernelPageSize 全部都是 4k 的,但是 ARM 平台上动态库被映射了 2m 的大页,是 x86 和 ARM 约束条件不一样吗,还是这是一个 bug
--- 原始邮件 ---
发件人 : "Liuzixian" liuzixian4@huawei.com >;
发送时间 : 2023 年 2 月 9 日 ( 周四 ) 上午 9:21
收件人 : "x_xiny" x_xiny@qq.com >;;
主题 : 答复 : 您好 关于内核大页特性怎么开启,需要请教一下
22 . 09 版本文档链接: https://docs.openeuler.org/zh/docs/22.09/docs/A-Tune/native-turbo.html
发件人 : Liuzixian ;
发送时间 : 2023 年 2 月 9 日 9:20 收件人 : ' 常新 ' x_xiny@qq.com >; 抄送 : Zhoukang (A) zhoukang7@huawei.com >;; linfeilong linfeilong@huawei.com >; 主题 : 答复 : 您好 关于内核大页特性怎么开启,需要请教一下
22.09 版本使用 sysctl 开关( exec-use-hugetlb ) PR 中的这个 commit 增加了该开关: https://gitee.com/openeuler/kernel/commit/1efdacff482d8609bed72b9de61b6cc288...
环境变量改为 sysctl 的理由如下: 1 、 内核原生不支持判断环境变量,不符合社区使用方式 2 、 22.03 还有内核启动参数 exec-hugepages 进行控制,调试时不如 sysctl 方便,在 22.09 合并到 sysctl 中 3 、 有使用者反馈业务启动代码有 sudo app_start 这样切换用户的场景,无法继承环境变量。
如果您有关于该特性使用方式的建议,也可以反馈给我们。
发件人 : 常新 x_xiny@qq.com >;
发送时间 : 2023 年 2 月 8 日 17:48 收件人 : Liuzixian liuzixian4@huawei.com >; 抄送 : Zhoukang (A) zhoukang7@huawei.com >; 主题 : 您好 关于内核大页特性怎么开启,需要请教一下
您好,有个问题向您请教一下,我看见你们已经在 kernel2209 分支上合入了大页的特性,这个在 5.10 上怎么开启
https://gitee.com/openeuler/kernel/pulls/59
我看见开启大页功能这个在 4.19 内核版本上可以通过设置环境变量的方式 export HUGEPAGE_ELF=1 的方式开启 看这里是通过加了几个补丁做了这么一个功能,
https://gitee.com/openeuler/native-turbo/blob/master/kernel-patch/kernel-4.1...
我在 5.10 内核上没有看见相关的代码,如果开启这个功能的话,是需要同步这些补丁吗?
或者有没有相关的文档呀 感谢
文档描述不完善,sysctl应该是内核特性开关,glibc特性开关是环境变量。
程序启动时,内核加载主函数部分,glibc加载动态库部分,在代码层面没有统一的控制开关。 内核常用sysctl等伪文件系统开关,glibc常用环境变量开关(LD_XXX),因此在重构内核部分代码时没有动glibc的部分。
可以认为内核与glibc的开关都是各自的特性配置,实际功能开关是ELF文件中的flag。 比较理想的方式应该是内核与glibc的特性开关默认开,通过ELF文件中的flag控制是否使用大页。 只是大页特性现阶段不太成熟,因此商用版本做成了默认关,使用时需要先打开特性配置开关。
发件人: 常新 x_xiny@qq.com 发送时间: 2023年3月9日 15:51 收件人: liqingqing (C) liqingqing3@huawei.com; 常新 x_xiny@qq.com; lvying lvying6@huawei.com; dev dev@openeuler.org; Liuzixian liuzixian4@huawei.com; linfeilong linfeilong@huawei.com; Zhoukang (A) zhoukang7@huawei.com 主题: 回复:答复: [Dev] 回复:答复: 转发:回复:RE: 回复:答复: 您好 关于内核大页特性怎么开启,需要请教一下
我这边可以呀,拉个微信群嘛,什么形式呀,还是腾讯会议这种的嘛
---原始邮件--- 发件人: "liqingqing (C)"liqingqing3@huawei.com 发送时间: 2023年3月9日(周四) 下午3:15 收件人: "常新"x_xiny@qq.com;"lvying"lvying6@huawei.com;"dev"dev@openeuler.org;"Liuzixian"liuzixian4@huawei.com;"linfeilong"linfeilong@huawei.com;"Zhoukang (A)"zhoukang7@huawei.com; 主题: 答复: [Dev] 回复:答复: 转发:回复:RE: 回复:答复: 您好 关于内核大页特性怎么开启,需要请教一下
@lvying @常新 这块看下是否需要一个会议交流下,效果可能会好一点 发件人: 常新 [mailto:x_xiny@qq.com] 发送时间: 2023年3月9日 14:39 收件人: lvying lvying6@huawei.com; dev dev@openeuler.org; Liuzixian liuzixian4@huawei.com; linfeilong linfeilong@huawei.com; Zhoukang (A) zhoukang7@huawei.com 主题: [Dev] 回复:答复: 转发:回复:RE: 回复:答复: 您好 关于内核大页特性怎么开启,需要请教一下
今天又发现一个问题,根据文档描述的,如果不打开sysctl fs.exec-use-hugetlb 即使用户设置了环境变量也不会使用该特性,内核会忽略相关流程。但是我没有开启这个开关或者关闭了,然后使用HUGEPAGE_PROBR=1 这个环境变量,动态库仍然可以开启大页,好像并没有被忽略,使用LD_HUGEPAGE_LIB=1 也一样可以开启,而且我看了一下代码,好像也没有看到这个开关会影响动态库大页加载,这里是代码实现的有问题还是文档描述的有问题呀
---原始邮件--- 发件人: "lvying"<lvying6@huawei.commailto:lvying6@huawei.com> 发送时间: 2023年3月6日(周一) 下午4:16 收件人: "x_xiny"<x_xiny@qq.commailto:x_xiny@qq.com>; 主题: 答复: 转发:回复:RE: 回复:答复: 您好 关于内核大页特性怎么开启,需要请教一下
感谢常新同学对于openEuler动态库大页的特性的关注!最近团队工作较忙,我们会在工作完成的第一时间答复您的信息,也麻烦子杨关注下常新同学的问题,及时答复。
祝好
发件人: 常新 <x_xiny@qq.commailto:x_xiny@qq.com> 发送时间: 2023年3月6日 10:23 收件人: lvying <lvying6@huawei.commailto:lvying6@huawei.com> 抄送: dev <dev@openeuler.orgmailto:dev@openeuler.org>; Liuzixian <liuzixian4@huawei.commailto:liuzixian4@huawei.com> 主题: 转发:回复:RE: 回复:答复: 您好 关于内核大页特性怎么开启,需要请教一下
因为我在看LD_DEBUG信息的时候,前边的流程都是一样的,但是在__mmap_reserved_area 这个函数里调用_mmap的时候x86上返回MAP_FAILED了,可是ARM上却成功了,然后导致了动态库在x86上没有开2m对齐编译的时候就不映射大页,但是在ARM上映射了,所以这是因为mmap在ARM和x86上实现差异导致的吗 ________________________________ [图像已被发件人删除。]
常新 x_xiny@qq.commailto:x_xiny@qq.com
------------------ 原始邮件 ------------------ 发件人: "常新" <x_xiny@qq.commailto:x_xiny@qq.com>; 发送时间: 2023年3月3日(星期五) 下午5:35 收件人: "Zhoukang (A)"<zhoukang7@huawei.commailto:zhoukang7@huawei.com>;"Liuzixian"<liuzixian4@huawei.commailto:liuzixian4@huawei.com>;"常新"<x_xiny@qq.commailto:x_xiny@qq.com>;"dev@openeuler.orgmailto:dev@openeuler.org"<dev@openeuler.orgmailto:dev@openeuler.org>; 抄送: "lvying"<lvying6@huawei.commailto:lvying6@huawei.com>;"linfeilong"<linfeilong@huawei.commailto:linfeilong@huawei.com>; 主题: 回复:RE: 回复:答复: 您好 关于内核大页特性怎么开启,需要请教一下
那在x86上和ARM上存在的这种差异,是因为在两个架构上对于mmap的实现差异导致的嘛,还是说现在非对齐情况下使用暂时就是一种未定义行为会导致不确定的结果
---原始邮件--- 发件人: "Zhoukang (A)"<zhoukang7@huawei.commailto:zhoukang7@huawei.com> 发送时间: 2023年3月3日(周五) 下午4:30 收件人: "Liuzixian"<liuzixian4@huawei.commailto:liuzixian4@huawei.com>;"常新"<x_xiny@qq.commailto:x_xiny@qq.com>;"dev@openeuler.orgmailto:dev@openeuler.org"<dev@openeuler.orgmailto:dev@openeuler.org>; 抄送: "lvying"<lvying6@huawei.commailto:lvying6@huawei.com>;"linfeilong"<linfeilong@huawei.commailto:linfeilong@huawei.com>; 主题: RE: 回复:答复: 您好 关于内核大页特性怎么开启,需要请教一下
相关讨论, 请抄送 dev@openeuler.orgmailto:dev@openeuler.org, 方便后续搜索类似问题
From: Liuzixian <liuzixian4@huawei.commailto:liuzixian4@huawei.com> Sent: Friday, March 3, 2023 4:26 PM To: 常新 <x_xiny@qq.commailto:x_xiny@qq.com> Cc: Zhoukang (A) <zhoukang7@huawei.commailto:zhoukang7@huawei.com>; lvying <lvying6@huawei.commailto:lvying6@huawei.com>; linfeilong <linfeilong@huawei.commailto:linfeilong@huawei.com> Subject: 答复: 回复:答复: 您好 关于内核大页特性怎么开启,需要请教一下
动态库的实现代码没有加这个约束,但目前我们认为支持非对齐的动态库较复杂,且未看到支持非对齐的需求,后期可能考虑删除。 写文档时考虑到实际产品均对齐使用,因此增加了约束限制,并且openEuler没有验证非对齐场景。
发件人: 常新 <x_xiny@qq.commailto:x_xiny@qq.com> 发送时间: 2023年3月3日 15:36 收件人: Liuzixian <liuzixian4@huawei.commailto:liuzixian4@huawei.com> 主题: 回复:答复: 您好 关于内核大页特性怎么开启,需要请教一下
你好,文档上有一个约束条件,要求2m对齐,动态库也受这个约束嘛,我试了一下,在x86平台上动态库也受这个约束,但是在ARM平台上好像动态库不受限制, 我跑的是这个用例tst-ld-use-hugpage.c里面的用例 环境设置为
sysctl fs.exec-use-hugetld=1 export LD_HUGEPAGE_LIB=1
HUGEPAGE_PROBE没有设置, 也没有对动态库和二进制文件进行标记, 执行了 echo 200 > /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages,
2209分支x86版本中动态库没有被大页映射,KernelPageSize全部都是4k的,但是ARM平台上动态库被映射了2m的大页,是x86和ARM约束条件不一样吗,还是这是一个bug
---原始邮件--- 发件人: "Liuzixian"<liuzixian4@huawei.commailto:liuzixian4@huawei.com> 发送时间: 2023年2月9日(周四) 上午9:21 收件人: "x_xiny"<x_xiny@qq.commailto:x_xiny@qq.com>; 主题: 答复: 您好 关于内核大页特性怎么开启,需要请教一下
22.09版本文档链接:https://docs.openeuler.org/zh/docs/22.09/docs/A-Tune/native-turbo.html
发件人: Liuzixian <> 发送时间: 2023年2月9日 9:20 收件人: '常新' <x_xiny@qq.commailto:x_xiny@qq.com> 抄送: Zhoukang (A) <zhoukang7@huawei.commailto:zhoukang7@huawei.com>; linfeilong <linfeilong@huawei.commailto:linfeilong@huawei.com> 主题: 答复: 您好 关于内核大页特性怎么开启,需要请教一下
22.09版本使用sysctl开关(exec-use-hugetlb) PR中的这个commit增加了该开关:https://gitee.com/openeuler/kernel/commit/1efdacff482d8609bed72b9de61b6cc288...
环境变量改为sysctl的理由如下:
1、 内核原生不支持判断环境变量,不符合社区使用方式
2、 22.03还有内核启动参数exec-hugepages进行控制,调试时不如sysctl方便,在22.09合并到sysctl中
3、 有使用者反馈业务启动代码有sudo app_start这样切换用户的场景,无法继承环境变量。
如果您有关于该特性使用方式的建议,也可以反馈给我们。
发件人: 常新 <x_xiny@qq.commailto:x_xiny@qq.com> 发送时间: 2023年2月8日 17:48 收件人: Liuzixian <liuzixian4@huawei.commailto:liuzixian4@huawei.com> 抄送: Zhoukang (A) <zhoukang7@huawei.commailto:zhoukang7@huawei.com> 主题: 您好 关于内核大页特性怎么开启,需要请教一下
您好,有个问题向您请教一下,我看见你们已经在kernel2209分支上合入了大页的特性,这个在5.10上怎么开启 https://gitee.com/openeuler/kernel/pulls/59
我看见开启大页功能这个在4.19内核版本上可以通过设置环境变量的方式 export HUGEPAGE_ELF=1的方式开启 看这里是通过加了几个补丁做了这么一个功能, https://gitee.com/openeuler/native-turbo/blob/master/kernel-patch/kernel-4.1... 我在5.10内核上没有看见相关的代码,如果开启这个功能的话,是需要同步这些补丁吗?
或者有没有相关的文档呀 感谢