mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-07 03:15:31 +09:00
fe835d5fd3329ba629f8c4290c818ef4b8f9895d
(1) enable err_event: root@rk3576-buildroot:/sys/kernel/debug/2a200000.pcie# echo enable > /sys/kernel/debug/2a200000.pcie/err_event root@rk3576-buildroot:/sys/kernel/debug/2a200000.pcie# cat err_event Common event signal status: 0xL1 EBUF Overflow: 0x0 EBUF Under-run: 0x0 Decode Error: 0x0 Running Disparity Error: 0x0 SKP OS Parity Error: 0x0 SYNC Header Error: 0x0 CTL SKP OS Parity Error: 0x0 Detect EI Infer: 0x0 Receiver Error: 0x0 Rx Recovery Request: 0x0 N_FTS Timeout: 0x0 Framing Error: 0x0 Deskew Error: 0x0 BAD TLP: 0x0 LCRC Error: 0x0 BAD DLLP: 0x0 Replay Number Rollover: 0x0 Replay Timeout: 0x0 Rx Nak DLLP: 0x0 Tx Nak DLLP: 0x0 Retry TLP: 0x0 FC Timeout: 0x0 Poisoned TLP: 0x0 ECRC Error: 0x0 Unsupported Request: 0x0 Completer Abort: 0x0 Completion Timeout: 0x0 (2) enable fault injection, for example, add 128 bad DLLP to EINJ2 root@rk3576-buildroot:/sys/kernel/debug/2a200000.pcie# echo "2 1 2 128" > fault_injection root@rk3576-buildroot:/sys/kernel/debug/2a200000.pcie# cat fault_injection ERROR_INJECTION0_ENABLE: 0x0 ERROR_INJECTION1_ENABLE: 0x0 ERROR_INJECTION2_ENABLE: 0x1 // enabled ERROR_INJECTION3_ENABLE: 0x0 ERROR_INJECTION4_ENABLE: 0x0 ERROR_INJECTION5_ENABLE: 0x0 ERROR_INJECTION6_ENABLE: 0x0 EINJ0_CRC_TYPE: 0x0 EINJ0_COUNT: 0x0 EINJ1_BAD_SEQNUM: 0x0 EINJ1_SEQNUM_TYPE: 0x0 EINJ1_COUNT: 0x0 EINJ2_DLLP_TYPE: 0x2 // NAK DLLP EINJ2_COUNT: 0x80 // number 128 EINJ3_SYMBOL_TYPE: 0x0 EINJ3_COUNT: 0x0 EINJ4_BAD_UPDFC_VALUE: 0x0 EINJ4_VC_NUMBER: 0x0 EINJ4_UPDFC_TYPE: 0x0 EINJ4_COUNT: 0x0 EINJ5_SPECIFIED_TLP: 0x0 EINJ5_COUNT: 0x0 EINJ6_PACKET_TYPE: 0x0 EINJ6_INVERTED_CONTROL: 0x0 EINJ6_COUNT: 0x0 (3) start transfer and see EINJ2_COUNT decreased to zero root@rk3576-buildroot:/# dd if=/dev/nvme0n1 of=/dev/null bs=1M count=5000 ... root@rk3576-buildroot:/sys/kernel/debug/2a200000.pcie# cat fault_injection ERROR_INJECTION0_ENABLE: 0x0 ERROR_INJECTION1_ENABLE: 0x0 ERROR_INJECTION2_ENABLE: 0x0 // auto disabled ERROR_INJECTION3_ENABLE: 0x0 ERROR_INJECTION4_ENABLE: 0x0 ERROR_INJECTION5_ENABLE: 0x0 ERROR_INJECTION6_ENABLE: 0x0 EINJ0_CRC_TYPE: 0x0 EINJ0_COUNT: 0x0 EINJ1_BAD_SEQNUM: 0x0 EINJ1_SEQNUM_TYPE: 0x0 EINJ1_COUNT: 0x0 EINJ2_DLLP_TYPE: 0x2 EINJ2_COUNT: 0x0 // auto decreased to zero EINJ3_SYMBOL_TYPE: 0x0 EINJ3_COUNT: 0x0 EINJ4_BAD_UPDFC_VALUE: 0x0 EINJ4_VC_NUMBER: 0x0 EINJ4_UPDFC_TYPE: 0x0 EINJ4_COUNT: 0x0 EINJ5_SPECIFIED_TLP: 0x0 EINJ5_COUNT: 0x0 EINJ6_PACKET_TYPE: 0x0 EINJ6_INVERTED_CONTROL: 0x0 EINJ6_COUNT: 0x0 (4) check err_event again root@rk3576-buildroot:/sys/kernel/debug/2a200000.pcie# cat err_event Common event signal status: 0xL1 EBUF Overflow: 0x0 EBUF Under-run: 0x0 Decode Error: 0x0 Running Disparity Error: 0x0 SKP OS Parity Error: 0x0 SYNC Header Error: 0x0 CTL SKP OS Parity Error: 0x0 Detect EI Infer: 0x0 Receiver Error: 0x0 Rx Recovery Request: 0x1f // we get 31 reoocvery due to error N_FTS Timeout: 0x0 Framing Error: 0x0 Deskew Error: 0x0 BAD TLP: 0x0 LCRC Error: 0x0 BAD DLLP: 0x0 Replay Number Rollover: 0x0 Replay Timeout: 0x0 Rx Nak DLLP: 0x0 Tx Nak DLLP: 0x80 // We get 128 NAK DLLP Retry TLP: 0x0 FC Timeout: 0x0 Poisoned TLP: 0x0 ECRC Error: 0x0 Unsupported Request: 0x0 Completer Abort: 0x0 Completion Timeout: 0x0 Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com> Change-Id: Ib214cc1be565bf16bafb6a847215572f35c43753
…
…
Merge tag 'mm-hotfixes-stable-2022-12-10-1' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm
…
…
…
…
…
…
…
Linux kernel
============
There are several guides for kernel developers and users. These guides can
be rendered in a number of formats, like HTML and PDF. Please read
Documentation/admin-guide/README.rst first.
In order to build the documentation, use ``make htmldocs`` or
``make pdfdocs``. The formatted documentation can also be read online at:
https://www.kernel.org/doc/html/latest/
There are various text files in the Documentation/ subdirectory,
several of them using the Restructured Text markup notation.
Please read the Documentation/process/changes.rst file, as it contains the
requirements for building and running the kernel, and information about
the problems which may result by upgrading your kernel.
Description
Languages
C
97.7%
Assembly
1.6%
Makefile
0.3%
Perl
0.1%