0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Linus亲自改进Linux用户模式堆栈扩展

OSC开源社区 来源:OSC开源社区 2023-07-04 15:31 次阅读

时至今日,Linus Torvalds 实际上已经很少会亲自动手写内核代码;更多的是忙于监督上游的内核开发社区、审查代码、管理发布,并在邮件列表中进行讨论。不过近日,他就为 Linux 6.5 进行了将近 500 行的 code rework ,以改进用户模式的堆栈扩展代码。

4a990f7e-198f-11ee-962d-dac502259ad0.png

他在合并报告中解释称:

这修改了我们的用户模式堆栈扩展代码,使其在修改 VM 布局之前始终获取 mmap_lock 进行写入。

实际上这是我们在技术上应该做到的事情,但是因为我们并不严格地需要它,所以我们有点偷懒(“机会主义” 听起来好多了,不是吗?)。并且在我们需要的地方设置了这个 hack,会在不进行适当锁定的情况下就地扩展堆栈 vma。

而且效果很好。我们只需要改变 vm_start(或者,在 grow-up stacks 的情况下,vm_end),再加上一些使用 anon_vma 锁和 mm》page_table_lock 的特殊的临时锁,这一切都相当简单明了。

也就是说这一切都很好,直到 Ruihan Li 指出,现在 vma 布局使用 maple tree code,我们真的不只是改变 vm_start 和 vm_end 了,而且 locking 真的被打破了。

一劳永逸地解决这个问题并做适当的 locking 其实并不可怕,但有点痛苦。我们基本上有三种不同的堆栈扩展情况,它们的工作方式都略有不同。

目前,Linux 6.5 中的这个问题应该已经得到了解决。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    87

    文章

    11310

    浏览量

    209616
  • 代码
    +关注

    关注

    30

    文章

    4790

    浏览量

    68654

原文标题:Linus亲自改进Linux用户模式堆栈扩展

文章出处:【微信号:OSC开源社区,微信公众号:OSC开源社区】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    腾讯云内核团队修复Linux关键Bug

    Maintainer深感棘手的关键内核bug。 这一改进方案经过严格评审和测试,最终被合并进入后续的Linux LTS(长期支持)版本中,标志着腾讯云在操作系统内核领域的技术实力得到了广泛认可。值得一提的是,该方案还获得了Linux
    的头像 发表于 12-31 10:58 157次阅读

    Linux中的用户与创建

    Linux中的用户与创建 用户的类型 超级管理用户: 权限最高的用户(uid:0) #uid:是用户
    的头像 发表于 12-20 14:24 231次阅读
    <b class='flag-5'>Linux</b>中的<b class='flag-5'>用户</b>与创建

    Linux用户管理终极指南:从基础到进阶

    1.用户基本概述 1.什么是用户? 用户指的是能够正常登录Linux或Windows系统(可以理解为你租了房子,能够正常入驻) F:那Linux
    的头像 发表于 12-04 11:42 199次阅读
    <b class='flag-5'>Linux</b><b class='flag-5'>用户</b>管理终极指南:从基础到进阶

    Linux学习之用户管理

    Linux学习——用户管理 1用户/组概览 Linux系统是多用户、多任务的分时操作系统,系统上每一个进程都有一个特定的文件,每个文件都被一
    的头像 发表于 11-25 10:47 248次阅读

    Linux用户管理详解

    用户分为普通用户和超级用户,超级用户在Windows系统中为Administrator在Linux系统中为root。登陆
    的头像 发表于 11-01 09:48 180次阅读

    ChatGPT 高级语音模式扩展至欧盟多国

    近日,OpenAI 宣布了一个重要的更新,将其 ChatGPT 高级语音模式扩展到了欧盟、瑞士、冰岛、挪威和列支敦士登等地区。这一功能最初在今年5月推出时,仅限于美国的 Plus 和 Team 用户
    的头像 发表于 10-23 11:08 424次阅读

    堆栈和内存的基本知识

    本文主要聊聊关于堆栈的内容。包括堆栈和内存的基本知识。常见和堆栈相关的 bug,如栈溢出,内存泄漏,堆内存分配失败等。后面介绍软件中堆栈统计的重要性,以及如何使用工具工具软件中
    的头像 发表于 08-29 14:10 477次阅读
    <b class='flag-5'>堆栈</b>和内存的基本知识

    freebsd和linux哪个好用

    操作系统历史和起源: FreeBSD和Linux都是基于UNIX的操作系统。FreeBSD起源于加州大学伯克利分校的BSD项目,而Linux则是由Linus Torvalds在1991年创建
    的头像 发表于 08-08 10:29 649次阅读

    如何使用Polyspace Code Prover来统计堆栈

    前一篇文章介绍了堆栈和内存的一些背景知识。本次介绍如何使用 Polyspace Code Prover来统计堆栈,如何使用这些数据为软件优化服务。
    的头像 发表于 07-25 14:06 532次阅读
    如何使用Polyspace Code Prover来统计<b class='flag-5'>堆栈</b>

    IBM扩展全面的量子软件堆栈Qiskit

    IBM 近日宣布其量子软件 Qiskit 取得了显著的发展和扩展。自2017年作为软件开发工具包(SDK)推出以来,Qiskit 已成为全球量子计算领域的佼佼者。作为一款开源工具,Qiskit 赋予超过55万用户在IBM的先进量子硬件系统上构建和运行量子电路的能力。
    的头像 发表于 05-20 14:14 442次阅读

    改进的电流模式PWM控制器UC3856数据表

    电子发烧友网站提供《改进的电流模式PWM控制器UC3856数据表.pdf》资料免费下载
    发表于 04-07 15:58 0次下载
    <b class='flag-5'>改进</b>的电流<b class='flag-5'>模式</b>PWM控制器UC3856数据表

    改进的电流模式脉宽调制 (PWM) 控制器UC1856-SP数据表

    电子发烧友网站提供《改进的电流模式脉宽调制 (PWM) 控制器UC1856-SP数据表.pdf》资料免费下载
    发表于 04-03 14:11 0次下载
    <b class='flag-5'>改进</b>的电流<b class='flag-5'>模式</b>脉宽调制 (PWM) 控制器UC1856-SP数据表

    Linux操作系统上的射频测试模式应用指南

    电子发烧友网站提供《Linux操作系统上的射频测试模式应用指南.pdf》资料免费下载
    发表于 02-19 09:39 0次下载
    <b class='flag-5'>Linux</b>操作系统上的射频测试<b class='flag-5'>模式</b>应用指南

    TLE9893如何配置堆栈溢出检测?

    我需要了解如何配置堆栈溢出检测。 我从 TLE9893 用户手册中收集到的 需要启用用户堆栈溢出保护 (USOP), 需要通过上限和下限 DSRAM 地址来建立所谓的保护频段。 我
    发表于 01-19 06:11

    冬季风暴导致Linus Torvalds暂停Linux 6.8内核开发

    Linus Torvalds 在内核邮件列表宣布,由于他位于美国俄勒冈州波特兰的居住地遭遇严重冬季风暴,导致网络和电力中断,他所在的波特兰附近地区气温降至 -10°C,因此他不得不暂停 Linux 6.8 内核的合并窗口。
    的头像 发表于 01-17 11:01 681次阅读
    冬季风暴导致<b class='flag-5'>Linus</b> Torvalds暂停<b class='flag-5'>Linux</b> 6.8内核开发