coredump
int coredump = check_coredump();
switch(coredump) {
test_name, coredump);
static char coredump[PATH_MAX] = "";
if (*coredump)
return (coredump);
if (strlcpy(coredump, __progname, sizeof(coredump)) >= sizeof(coredump))
if (strlcat(coredump, ".core", sizeof(coredump)) >= sizeof(coredump))
return (coredump);
const char *coredump = coredump_name();
if ((fd = open(coredump, O_RDONLY)) == -1) {
struct amdgpu_coredump_info *coredump = data;
drm_printf(&p, "time: %lld.%09ld\n", coredump->reset_time.tv_sec,
coredump->reset_time.tv_nsec);
if (coredump->reset_task_info.task.pid)
coredump->reset_task_info.process_name,
coredump->reset_task_info.task.pid);
drm_printf(&p, "SOC Device id: %d\n", coredump->adev->pdev->device);
drm_printf(&p, "SOC PCI Revision id: %d\n", coredump->adev->pdev->revision);
drm_printf(&p, "SOC Family: %d\n", coredump->adev->family);
drm_printf(&p, "SOC Revision id: %d\n", coredump->adev->rev_id);
drm_printf(&p, "SOC External Revision id: %d\n", coredump->adev->external_rev_id);
drm_printf(&p, "real vram size: %llu\n", coredump->adev->gmc.real_vram_size);
drm_printf(&p, "visible vram size: %llu\n", coredump->adev->gmc.visible_vram_size);
drm_printf(&p, "gtt size: %llu\n", coredump->adev->mman.gtt_mgr.manager.size);
drm_printf(&p, "gds: total size: %d\n", coredump->adev->gds.gds_size);
drm_printf(&p, "gds: compute partition size: %d\n", coredump->adev->gds.gds_size);
drm_printf(&p, "gds: gws per compute partition: %d\n", coredump->adev->gds.gws_size);
drm_printf(&p, "gds: os per compute partition: %d\n", coredump->adev->gds.oa_size);
ver = coredump->adev->ip_versions[i][j];
amdgpu_devcoredump_fw_info(coredump->adev, &p);
if (coredump->ring) {
coredump->ring->funcs->type,
coredump->ring->name);
fault_info = &coredump->adev->vm_manager.fault_info;
for (int i = 0; i < coredump->adev->num_ip_blocks; i++) {
ip_block = &coredump->adev->ip_blocks[i];
for (int i = 0; i < coredump->adev->num_rings; i++) {
struct amdgpu_ring *ring = coredump->adev->rings[i];
if (coredump->skip_vram_check)
else if (coredump->reset_vram_lost)
struct amdgpu_coredump_info *coredump;
coredump = kzalloc(sizeof(*coredump), GFP_NOWAIT);
if (!coredump) {
coredump->skip_vram_check = skip_vram_check;
coredump->reset_vram_lost = vram_lost;
coredump->reset_task_info = *ti;
coredump->ring = to_amdgpu_ring(s_job->sched);
coredump->adev = adev;
ktime_get_ts64(&coredump->reset_time);
dev_coredumpm(dev->dev, THIS_MODULE, coredump, 0, GFP_NOWAIT,
if (coredump(p) == 0)
int coredump(struct proc *p);