我看到如下错误消息:
Nov 15 15:49:52 x99 kernel: pcieport 0000:00:03.0: AER: Multiple
Corrected error received: id=0018 Nov 15 15:49:52 x99 kernel: pcieport
0000:00:03.0: PCIe Bus Error: severity=Corrected, type=Data Link Layer,
id=0018(Receiver ID) Nov 15 15:49:52 x99 kernel: pcieport 0000:00:03.0:
device [8086:6f08] error status/mask=00000040/00002000 Nov 15 15:49:52
x99 kernel: pcieport 0000:00:03.0: [ 6] Bad TLP
即使这些问题(到目前为止)已得到纠正,也会导致性能下降。显然,这个问题需要解决。但是,我在互联网上找不到太多相关信息。 (也许我找错了地方。)我只找到了几个链接,我将在下面发布这些链接。
有谁对这些错误了解更多吗?
是主板、三星 950 Pro 还是 GPU(或这些的组合)?
硬件是:M2 中的华硕 X99 Deluxe II 三星 950 Pro NVMe。 mb 上的插槽(共享 PCIe 端口 3)。 PCIe 端口 3 中未插入其他任何东西。 PCIe 插槽 1 中的 GeForce GTX 1070 Core i7 6850K CPU
我发现的几个链接提到了相同的硬件(X99 Deluxe II mb 和 Samsung950 Pro)。我正在运行 Arch Linux。
到目前为止,我在journalctl 或其他任何我想搜索的地方都没有找到字符串“8086:6f08”。
nvme ssd 出现奇怪的错误消息(Bad TLP):linuxquestionshttps://www.reddit.com/r/linuxquestions/comments/4walnu/odd_error_message_with_nvme_ssd_bad_tlp/
PCIe:您的卡是否默默地与 TLP 重传作斗争?http://billauer.co.il/blog/2011/07/pcie-tlp-dllp-retransmit-data-link-layer-error/
GTX 1080 抛出错误的 TLP PCIe 总线错误 - GeForce Forumshttps://forums.geforce.com/default/topic/957456/gtx-1080- throwing-bad-tlp-pcie-bus-errors/
驱动程序 - dmesg 日志中的 PCIe 错误 - Ubuntu问答https://askubuntu.com/questions/643952/pcie-error-in-dmesg-log
780Ti X99 硬锁 - PCIE 错误 - NVIDIA 开发者论坛 https://devtalk.nvidia.com/default/topic/779994/linux/780ti-x99-hard-lock-pcie-errors/
答案1
尽管我无法完全解释发生了什么,但我至少可以提供一些细节。
例如所描述的这里,CPU通过以下方式与PCIe总线控制器通信事务层数据包(TLP)。硬件会检测到何时出现故障,Linux 内核会将其报告为消息。
内核选项pci=nommconf
禁用内存映射 PCI 配置空间,该空间自内核 2.6 起在 Linux 中可用。粗略地说,所有的 PCI 设备都有一个描述该设备的区域(您可以看到lspci -vv
),访问该区域的最初方法是通过 I/O 端口,而 PCIe 允许将此空间映射到内存以便更简单地访问。
这意味着在这种特殊情况下,某物当 PCIe 控制器使用此方法访问特定设备的配置空间时会出错。它可能是设备中的硬件错误、主板上的 PCIe 根控制器中的硬件错误、这两者的特定交互中的硬件错误或其他错误。
通过使用pci=nommconf
,所有设备的配置空间都将以原来的方式访问,改变访问方式可以解决这个问题。所以如果你愿意的话,它既可以解决它,又可以抑制它。
答案2
我收到相同的错误(与设备 8086:6f08 关联的错误 TLP)。我有 X99 Deluxe II、三星 960 pro、Nvidia 1080 ti。这些问题似乎与 X99 芯片组和 M.2 设备(例如 Samsung Pro)有关。
X99 Deluxe II主板在PCIE16_3插槽和M.2/U.2之间共享带宽。根据 @Nic 的评论,我在 BIOS 中更改了板载设备配置 | U.2_2 带宽从自动到 U.2_2。这解决了我的问题。
答案3
添加内核命令行选项pci=nommconf
解决了我的问题。因此,我认为问题与主板有关。它发生在全部我的配备 X99 主板的计算机。在 Z170 系统或我拥有的任何其他硬件上不会发生这种情况。
答案4
我将 x99-E 上 Bios 中的 PCIE16_3 插槽配置更改为静态设置为 x8 模式,而不是默认的 M.2 设备支持自动模式。我的两个通过 PCIe 1x 到 16x 扩展板连接的 1070GTX 卡现在工作正常,没有 TLP 错误。
我首先没有使用端口 16_3,而是移至该插槽进行测试,但在更改 BIOS 之前仍然存在问题。还在矿工配置中将所有卡的 bsleep 设置更改为 30。
在更改之前,我的内核日志充满了错误。还尝试在更改之前和之后重新启动系统。看来还蛮执着的。