Pull Request已成功合入, 合并人@openeuler-ci-bot
(感谢 xhpintell 的贡献)变更摘要
此 PR 主要对 epoll/poll/select 子系统中的内存分配方式进行优化:将 SockNotify_t 结构体的分配与释放从共享内存接口 (SHM_MALLOC/SHM_FREE) 切换为 OS 堆内存接口 (OS_MALLOC/OS_FREE),涉及 sock.c、epoll.c、poll.c、select.c 四个文件。同时调整了两个宏常量:KNET_POLL_MAX_NUM 从 1024 提升至 8192,MBUF_BATCH_THREAD_NUM 从 256 降低至 128。
主要改动
-
SockNotify_t内存分配方式切换:在sock.c的SOCK_EnableNotify中将SHM_MALLOC替换为OS_MALLOC,在SOCK_DisableNotify和SOCK_DisableNotifyWithoutHook中将SHM_FREE替换为OS_FREE,统一使用 OS 堆内存管理 notify 对象。 -
epoll 模块 notify 释放方式对齐:在
epoll.c的DisableSockNotify和DeleteEpollItem中,将SHM_FREE(notify, DP_MEM_FREE)替换为OS_FREE(notify),与新的分配方式保持一致。 -
poll 模块 notify 释放方式对齐:在
poll.c的DisableNotifySafe中,将SHM_FREE(notify, DP_MEM_FREE)替换为OS_FREE(notify)。 -
select 模块 notify 释放方式对齐:在
select.c的DisableNotifySafe中,将SHM_FREE(notify, DP_MEM_FREE)替换为OS_FREE(notify)。 -
常量调整:
KNET_POLL_MAX_NUM从 1024 提升至 8192,扩大了 poll 可监听的最大文件描述符数量;MBUF_BATCH_THREAD_NUM从 256 降低至 128,缩减了 mbuf 批量处理线程数组的内存占用。


/lgtm
/approve


当前PR是否有AI参与:
[x] 否
[ ] 是
__1. AI Agent 平台:
__2. AI 模型:
__3. Prompt上下文 :
参考:openEuler社区《生成式AI工具使用与开源贡献政策》
PR功能描述 / 为什么需要这个合入**:
[描述信息]:Feat: epoll/poll/seleclt malloc optimize
[原因分析]:多线程情况下,监听的notify SHM_MALLOC竞争严重,采用OS_MALLOC
[修改说明]:将SHM_MALLOC替换为OS_MALLOC
[测试结果]:1.gaussdb场景验证无问题 2.sdv用例全跑通。
该PR关联的issue
(格式为fixes #<issue号>, 或者resolves #<issue号>): fixes #
希望检视人员了解: