Linux 内核如何在启动时配置参数到/sys/bus/pci/devices - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
Meano
V2EX    Linux

Linux 内核如何在启动时配置参数到/sys/bus/pci/devices

  •  
  •   Meano
    Meano 2020 年 6 月 23 日 2966 次点击
    这是一个创建于 2033 天前的主题,其中的信息可能已经有所发展或是发生改变。

    前情: 给我的 Ubuntu 服务器加上了建兴 T10 的 SSD,遇到了 AER [12]Timeout 的报错,SSD 的 S.M.A.R.T.中 error log 还一直在增加。一番查找后通过给内核配置 pci=nomsi 的启动参数解决了报错。猜测原因是建兴的固件没有完整实现 MSI 的中断协议导致。

    研究: 了解了一下 MSI 是为提高系统中断效率提出的解决方案,禁用 MSI 必然会导致效率降低,查了一下除了 SSD,网卡和 USB 控制器都在用 MSI,为了一个 SSD 禁用了全局的 MSI 有点得不偿失,所以想单独禁用 NVME 的 MSI 中断。找到了 Linux 内核的 [MSI HOWTO] ,根据文章内容 echo 0 > /sys/bus/pci/devices/$pciaddr/msi_bus 可以单独禁用 pci 设备的 MSI 。

    问题: 问题来了,问问大家有没有方法可以在 grub 注入参数给内核的时候或者其他 nvme.ko 还没有 load 之前,配置 /sys/bus/pci/devices/$pciaddr/msi_bus 这个参数,在不牺牲其他外设的性能的前提下解决这个恼人的 MSI 中断报错问题。

    第 1 条附言    2020 年 6 月 24 日
    发现一个情况,nomsi 的选项确实不能随便用,设置 nomsi 确实可以让所有驱动不再用 MSI 中断,但有些驱动对非 INTx 中断支持有问题,比如我的主机会在 load 显示驱动时偶尔卡死。。。要去翻源码了,唉。。。
    7 条回复    2020-06-24 12:23:21 +08:00
    yanqiyu
        1
    yanqiyu  
       2020 年 6 月 23 日 via Android   1
    想要修改 sysfs 的默认行为?
    sysfs 只是表象...它只是导出驱动的配置(并且我不记得有什么方法可以),你应该去看对应驱动是否能被 cmdline 配置。
    要是不能的话建议直接改代码重新编译
    Meano
        2
    Meano  
    OP
       2020 年 6 月 23 日
    @yanqiyu 不行的话只能翻代码了,主要还是穷病,三年前 SSD 最贵的时候图便宜买了建兴,谁知道还有这问题。。。太麻烦的话就卖掉
    pheyx
        3
    pheyx  
       2020 年 6 月 23 日   1
    man modprobe.d 看看 install 命令。写一个脚本打包到 initramfs 里。
    qakito
        4
    qakito  
       2020 年 6 月 23 日   1
    sysctl.d 里修改该值不行么
    Meano
        5
    Meano  
    OP
       2020 年 6 月 24 日
    /div>
    @pheyx 嗯,这样可以配置,我在 nvme.ko 加载时配置了 msi_bus,只是 nvme.ko 好像只认 nomsi 的 cmdline,还在报错,得编译源码了。。。
    Meano
        6
    Meano  
    OP
       2020 年 6 月 24 日
    @qakito 好像也可以,只是配置时效不确定,应该在 nvme 驱动加载前配置,不然只要 load ssd log 就会加一个 error...
    qakito
        7
    qakito  
       2020 年 6 月 24 日
    systemd-sysctl.service 是在 systemd-modules-load.service 之后运行的
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2476 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 29ms UTC 15:49 PVG 23:49 LAX 07:49 JFK 10:49
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86