关于“MR_DCMD_PD_LIST_QUERY 失败/不受固件支持”的内核垃圾邮件异常级别

关于“MR_DCMD_PD_LIST_QUERY 失败/不受固件支持”的内核垃圾邮件异常级别
Jul  1 22:17:14 nosgoth kernel: [1382019.484038] megaraid_sas 0000:01:00.0: MR_DCMD_PD_LIST_QUERY failed/not supported by firmware
Jul  1 22:17:15 nosgoth kernel: [1382019.516031] megaraid_sas 0000:01:00.0: MR_DCMD_PD_LIST_QUERY failed/not supported by firmware
Jul  1 22:17:15 nosgoth kernel: [1382019.548076] megaraid_sas 0000:01:00.0: MR_DCMD_PD_LIST_QUERY failed/not supported by firmware
Jul  1 22:17:15 nosgoth kernel: [1382019.580026] megaraid_sas 0000:01:00.0: MR_DCMD_PD_LIST_QUERY failed/not supported by firmware
Jul  1 22:17:15 nosgoth kernel: [1382019.612047] megaraid_sas 0000:01:00.0: MR_DCMD_PD_LIST_QUERY failed/not supported by firmware
Jul  1 22:17:15 nosgoth kernel: [1382019.644054] megaraid_sas 0000:01:00.0: MR_DCMD_PD_LIST_QUERY failed/not supported by firmware
Jul  1 22:17:15 nosgoth kernel: [1382019.676055] megaraid_sas 0000:01:00.0: MR_DCMD_PD_LIST_QUERY failed/not supported by firmware
Jul  1 22:17:15 nosgoth kernel: [1382019.708081] megaraid_sas 0000:01:00.0: MR_DCMD_PD_LIST_QUERY failed/not supported by firmware
Jul  1 22:17:15 nosgoth kernel: [1382019.740061] megaraid_sas 0000:01:00.0: MR_DCMD_PD_LIST_QUERY failed/not supported by firmware
Jul  1 22:17:15 nosgoth kernel: [1382019.772074] megaraid_sas 0000:01:00.0: MR_DCMD_PD_LIST_QUERY failed/not supported by firmware

如您所见,它每秒发送数十次垃圾邮件,大概 20 或 30 次,而且似乎只有重新启动才能解决问题。重新启动有点昂贵,因为它是 dom0。当我运行 archlinux 内核时这不是问题,但似乎对于 ubuntu 使用的任何内核都是一个问题。

有没有什么解决办法?我在网上搜索时,除了驱动程序源代码外,什么也找不到。

Megaraid SAS 设备:

01:00.0 RAID bus controller: LSI Logic / Symbios Logic MegaRAID SAS 1078 (rev 04)

我不确定还有什么有用的东西,它是一台 Dell Poweredge 2900 服务器,连接有 SATA 驱动器。

服务器运行良好,只是内核向日志中发送了过多的垃圾信息。

编辑:“语言”,美国队长说。

答案1

这仍在进行中,并且最近为与 2 个 CVE 相关的 RedHat 进行了修补:(清晰度):此问题与 CVE 无关,相反,该补丁针对的是 2 个 CVE + 这个和几个错误修复。

https://rhn.redhat.com/errata/RHSA-2016-2006.html

(编辑)这似乎指向了这一点:https://lkml.org/lkml/2016/8/18/553

(编辑)我正在重新编译+测试内核,我会用补丁来托管它。

Oct 31 21:38:36 ohlookadell kernel: [943983.390883] megaraid_sas 0000:03:00.0: MR_DCMD_PD_LIST_QUERY failed/not supported by firmware
Oct 31 21:38:36 ohlookadell kernel: [943983.414877] megaraid_sas 0000:03:00.0: MR_DCMD_PD_LIST_QUERY failed/not supported by firmware
Oct 31 21:38:36 ohlookadell kernel: [943983.438801] megaraid_sas 0000:03:00.0: MR_DCMD_PD_LIST_QUERY failed/not supported by firmware
Oct 31 21:38:36 ohlookadell kernel: [943983.462982] megaraid_sas 0000:03:00.0: MR_DCMD_PD_LIST_QUERY failed/not supported by firmware
Oct 31 21:38:36 ohlookadell kernel: [943983.486832] megaraid_sas 0000:03:00.0: MR_DCMD_PD_LIST_QUERY failed/not supported by firmware

答案2

这是由驱动程序中的 megasas_get_pd_list() 函数发出的,请参阅 drivers/scsi/megaraid/megaraid_sas_base.c

    if (instance->ctrl_context && !instance->mask_interrupts)
            ret = megasas_issue_blocked_cmd(instance, cmd,
                    MFI_IO_TIMEOUT_SECS);
    else
            ret = megasas_issue_polled(instance, cmd);

    switch (ret) {
    case DCMD_FAILED:
            dev_info(&instance->pdev->dev, "MR_DCMD_PD_LIST_QUERY "
                    "failed/not supported by firmware\n");

            if (instance->ctrl_context)
                    megaraid_sas_kill_hba(instance);
            else
                    instance->pd_list_not_supported = 1;
            break;

....

我想知道将驱动程序内核参数 msix_disable 更改为 1 是否会改变行为。

相关内容