thread-context
QEMU 源码树里的util/thread-context.c。这个文件是QEMU 7.2 引入、后续版本一直保留的“线程上下文对象”实现作者是 Red Hat 的 David Hildenbrand专门用来解决“内存后端预分配线程如何吃上 NUMA 亲和性”这个问题。它到底是干什么的thread-context.c实现了一个 QOM 用户可创建对象thread-context本质就是“一个常驻的后台线程专门用来生孩子建新线程”。核心机制看thread_context_run()就懂它自己起一个持久线程叫 context thread外界通过thread_context_create_thread()让它代建新线程Linux 上新线程会继承创建者的 CPU affinity所以只要把 context thread 绑到某组 CPU所有经它生出来的线程比如touch_pages预分配线程自动继承同一亲和性它暴露的属性cpu-affinity直接指定宿主机 CPU 列表node-affinity写宿主 NUMA node 号内部用numa_node_to_cpus()展开成 CPU 列表仅写不能回读thread-id把自身 tid 暴露出去让 libvirt 等上层在 QEMU 开 sandbox/seccomp 前或外部手动taskset/sched_setaffinityprealloc-context是挂在memory-backend-*上的引用不是本文件属性和 NUMA 功能实现的关系要分两层看别和-numa混了1. 它不实现“虚拟机 NUMA 拓扑”-numa node,memdevxxx,cpusxx那套 guest 侧 NUMA 是别处softmmu/vl.c、hw/core/numa.c等的事thread-context.c完全不碰 guest NUMA。2. 它是“宿主机侧 NUMA 感知预分配”的粘合层当你这样配-object memory-backend-memfd,idmem0,size64G,host-nodes0,policybind,preallocon,prealloc-threads8,prealloc-contexttc0 -object thread-context,idtc0,node-affinity0host-nodes0,policybind决定内存从宿主 node 0 分配preallocon会起若干touch_pages线程去踩页大页/巨页场景很慢这些预分配线程本来是 QEMU 按需建的短命线程调度器可能把它们扔到 node 1 的 CPU 上跨节点踩 node 0 的内存启动慢且抖动大prealloc-contexttc0让后端通过 tc0 建预分配线程​ → 线程继承 tc0绑 node 0 CPU的 affinity → 踩页线程本地化到 node 0实测 256G 大页 VM 启动预分配从 ~25s 降到 ~10s就是这么来的。为什么非要单独搞个文件/对象而不是 QEMU 直接sched_setaffinityQEMU 开-sandbox后 seccomp 禁了sched_setaffinity类 syscall自己设不了预分配线程是运行时懒建的libvirt 来不及挨个抓 tid 绑于是“先建一个带亲和性的 context 线程以后都从它肚子生线程”是最干净的绕过办法在 QEMU里定位路径util/thread-context.c 头文件include/qemu/thread-context.h调用方backends/hostmem.c内存后端prealloc-context解析、os_mem_prealloc里用thread_context_create_thread替代裸qemu_thread_create、util/oslib-posix.c的预分配逻辑。libvirt 侧检测到host-nodes时会自动帮你生成配对thread-context并填prealloc-context不用手敲。一句话总结thread-context.c不是 NUMA 本身而是“让 QEMU 内部短命工作线程主要是内存预分配线程能继承宿主 NUMA CPU 亲和性”的线程工厂是宿主侧 NUMA 化内存后端预分配的加速与本地化手段。

相关新闻

Playwright UI自动化测试实战:从元素定位到CI集成的避坑指南

Playwright UI自动化测试实战:从元素定位到CI集成的避坑指南

1. 项目概述与核心痛点 最近在重构一个老项目的UI自动化测试套件,踩了不少坑,也积累了一些实战经验。UI自动化测试,听起来高大上,但真正做起来,你会发现它远不止是“录个脚本然后回放”那么简单。尤其是在面对复杂业务…

2026/7/23 10:39:02阅读更多 →
AI反事实推理如何重塑企业战略决策

AI反事实推理如何重塑企业战略决策

1. 项目概述:当战略规划遇上AI的"如果当初" 去年参与某跨国企业的五年战略修订时,我们团队首次尝试将GPT-4的反事实推理能力引入SWOT分析环节。当模型推演出"若三年前放弃北美市场转向东南亚,当前利润率可能提升27%"的结…

2026/7/23 10:39:02阅读更多 →
嵌入式系统复位与时钟配置:TM4C1294实战解析与避坑指南

嵌入式系统复位与时钟配置:TM4C1294实战解析与避坑指南

1. 项目概述:为什么复位与时钟是嵌入式系统的基石 在嵌入式系统开发中,尤其是基于ARM Cortex-M这类微控制器的项目,有两个概念看似基础,却决定了整个系统的稳定性和性能上限:复位机制与时钟系统。很多开发者&#xff0…

2026/7/23 10:39:02阅读更多 →
广州番禺 GEO 优化公司推荐哪家?

广州番禺 GEO 优化公司推荐哪家?

你有没有发现,身边的同事、朋友,甚至你自己,遇到问题时的第一反应,已经从“打开百度搜一下”变成了“问一下AI”?无论是打开Kimi、豆包,还是使用嵌入在微信里的腾讯元宝,甚至是直接在浏览器中唤…

2026/7/23 12:07:25阅读更多 →
吴恩达2025 AI报告:普惠化趋势与关键技术解析

吴恩达2025 AI报告:普惠化趋势与关键技术解析

1. 项目概述2025年对人工智能领域来说是关键的一年,作为该领域的领军人物,斯坦福大学教授吴恩达(Andrew Ng)的年度总结报告向来备受业界关注。这份报告不仅反映了AI技术的最新进展,更为从业者指明了未来发展方向。今年…

2026/7/23 12:07:25阅读更多 →
SOLIDWORKS曲面切除功能详解与应用实践

SOLIDWORKS曲面切除功能详解与应用实践

1. SOLIDWORKS曲面切除功能深度解析曲面切除是SOLIDWORKS中一项强大的建模功能,它允许我们使用曲面作为"刀具"来切割实体模型。与传统的拉伸切除或旋转切除不同,曲面切除可以实现极其复杂的几何形状切割,特别适合处理有机形态、流体…

2026/7/23 12:07:25阅读更多 →
闲置笔记本改造智能养虾系统:低成本高效益方案

闲置笔记本改造智能养虾系统:低成本高效益方案

1. 项目概述:闲置笔记本变身智能养虾助手 去年处理旧笔记本时,我发现2015款MacBook Pro在海鲜市场只能卖800元,但改装成Ubuntu服务器后,配合OpenClaw搭建的智能养殖系统,成功实现了虾池溶氧量的自动调节。这种软硬件组…

2026/7/23 12:07:25阅读更多 →
2026手机变声器实测:4款新手首选超好用

2026手机变声器实测:4款新手首选超好用

大家好,专注真实软件实测。不少人想要上手简单、体验尚可的手机变声器,用于游戏开黑、亲友趣味语音。市面多数变声软件存在音色机械感强、操作繁琐、广告偏多等问题。我实测十余款主流APP,无合作、无推广,结合真实使用感受&#x…

2026/7/23 12:07:25阅读更多 →
AI模型团队协同部署全链路实践(私藏版SOP首次公开):Git+Docker+MLflow+权限矩阵四层加固方案

AI模型团队协同部署全链路实践(私藏版SOP首次公开):Git+Docker+MLflow+权限矩阵四层加固方案

更多请点击: https://codechina.net 第一章:AI模型团队协同部署全链路实践(私藏版SOP首次公开):GitDockerMLflow权限矩阵四层加固方案 协同基座:Git分支策略与模型版本强绑定 采用 git flow 衍生的 ml-…

2026/7/23 12:05:25阅读更多 →
Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/23 0:56:31阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/23 0:56:31阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/23 0:56:31阅读更多 →
Chitchatter完整指南:免费开源的终极点对点安全聊天工具

Chitchatter完整指南:免费开源的终极点对点安全聊天工具

Chitchatter完整指南:免费开源的终极点对点安全聊天工具 【免费下载链接】chitchatter Secure peer-to-peer chat that is serverless, decentralized, and ephemeral 项目地址: https://gitcode.com/gh_mirrors/ch/chitchatter Chitchatter是一款革命性的安…

2026/7/23 0:00:28阅读更多 →
从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表)

从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表)

更多请点击: https://intelliparadigm.com 第一章:从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表) 当AI副业主理人不再仅满足于单次服务交付,而是主动构建可复用、可裂变、可…

2026/7/23 0:00:28阅读更多 →
油泥处理设备哪里能买到

油泥处理设备哪里能买到

油泥处理设备哪里有?这是许多从事油田、炼化、清罐业务的从业者最关心的问题。根据河南三丰环保设备有限公司的行业经验,选购油泥处理设备的核心在于设备能否适配当地环保法规与原料特性,而非单纯看价格。该公司总经理王钦田先生指出&#xf…

2026/7/23 0:00:28阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/22 22:56:18阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/22 18:55:50阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/22 18:55:50阅读更多 →