This patch series generate RAS CPER records for UE/DE/CE/BP threshold exceed event. SMU_TYPE_CE banks are combined into 1 CPER entry, they could be CEs or DEs or both. UEs and BPs are encoded into separate CPER entries. RAS CPER records for CEs will be generated only after CEs count been queried. All records are committed to a pure software ring with a limit size, new records will flush older records when overflow happened. User can access the records by reading debugfs node, which is read-only. Hawking Zhang (5): drm/amd/include: Add amd cper header drm/amdgpu: Introduce funcs for populating CPER drm/amdgpu: Include ACA error type in aca bank drm/amdgpu: Introduce funcs for generating cper record drm/amdgpu: Generate cper records Tao Zhou (4): drm/amdgpu: add RAS CPER ring buffer drm/amdgpu: read CPER ring via debugfs drm/amdgpu: add data write function for CPER ring drm/amdgpu: add mutex lock for cper ring Xiang Liu (3): drm/amdgpu: Get timestamp from system time drm/amdgpu: Commit CPER entry drm/amdgpu: Generate bad page threshold cper records drivers/gpu/drm/amd/amdgpu/Makefile | 2 +- drivers/gpu/drm/amd/amdgpu/amdgpu.h | 4 + drivers/gpu/drm/amd/amdgpu/amdgpu_aca.c | 46 +- drivers/gpu/drm/amd/amdgpu/amdgpu_aca.h | 16 +- drivers/gpu/drm/amd/amdgpu/amdgpu_cper.c | 559 +++++++++++++++++++++ drivers/gpu/drm/amd/amdgpu/amdgpu_cper.h | 104 ++++ drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 4 + drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c | 91 +++- drivers/gpu/drm/amd/amdgpu/amdgpu_ring.h | 1 + drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c | 2 + drivers/gpu/drm/amd/amdgpu/aqua_vanjaram.c | 3 +- drivers/gpu/drm/amd/amdgpu/gfx_v9_4_3.c | 2 + drivers/gpu/drm/amd/amdgpu/jpeg_v4_0_3.c | 2 + drivers/gpu/drm/amd/amdgpu/mmhub_v1_8.c | 2 + drivers/gpu/drm/amd/amdgpu/sdma_v4_4_2.c | 2 + drivers/gpu/drm/amd/amdgpu/umc_v12_0.c | 1 + drivers/gpu/drm/amd/amdgpu/vcn_v4_0_3.c | 2 + drivers/gpu/drm/amd/include/amd_cper.h | 269 ++++++++++ drivers/gpu/drm/amd/pm/amdgpu_dpm.c | 3 + 19 files changed, 1075 insertions(+), 40 deletions(-) create mode 100644 drivers/gpu/drm/amd/amdgpu/amdgpu_cper.c create mode 100644 drivers/gpu/drm/amd/amdgpu/amdgpu_cper.h create mode 100644 drivers/gpu/drm/amd/include/amd_cper.h -- 2.34.1