> -----Original Message----- > From: amd-gfx [mailto:amd-gfx-bounces at lists.freedesktop.org] On Behalf > Of Pixel Ding > Sent: Monday, October 23, 2017 6:03 AM > To: amd-gfx at lists.freedesktop.org > Cc: Sun, Gary; Ding, Pixel; Li, Bingley > Subject: [PATCH 2/7] drm/amdgpu: add init_log param to control logs in > exclusive mode > > From: pding <Pixel.Ding at amd.com> > > When this VF stays in exclusive mode for long, other VFs will be > impacted. > > The redundant messages causes exclusive mode timeout when they're > redirected. That is a normal use case for cloud service to redirect > guest log to virtual serial port. > > Introduce init_log param to control logs during exclusive mode. The > default behavior is not changed. Exclusive time decreases 200ms if log > direction is enabled with this change. Let's not add another module parameter. It's getting to be a mess. I'd prefer to just make some of these debug only or bare metal only. I think a few others can be dropped. See additional comments below. > > Signed-off-by: pding <Pixel.Ding at amd.com> > --- > drivers/gpu/drm/amd/amdgpu/amdgpu.h | 13 +++++++++++++ > drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c | 8 ++++---- > drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 20 +++++++++---------- > - > drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 4 ++++ > drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c | 6 +++--- > drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c | 4 ++-- > drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c | 4 ++-- > drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | 10 +++++----- > drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 8 ++++---- > drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c | 2 +- > drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c | 4 ++-- > drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 6 +++--- > drivers/gpu/drm/amd/amdgpu/atom.c | 2 +- > drivers/gpu/drm/amd/amdgpu/cik_sdma.c | 2 +- > drivers/gpu/drm/amd/amdgpu/gfx_v6_0.c | 2 +- > drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c | 2 +- > drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | 2 +- > drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c | 2 +- > drivers/gpu/drm/amd/amdgpu/gmc_v6_0.c | 6 +++--- > drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c | 6 +++--- > drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c | 6 +++--- > drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c | 6 +++--- > drivers/gpu/drm/amd/amdgpu/sdma_v2_4.c | 2 +- > drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c | 2 +- > drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c | 2 +- > drivers/gpu/drm/amd/amdgpu/si_dma.c | 2 +- > drivers/gpu/drm/amd/amdgpu/uvd_v4_2.c | 2 +- > drivers/gpu/drm/amd/amdgpu/uvd_v5_0.c | 2 +- > drivers/gpu/drm/amd/amdgpu/uvd_v6_0.c | 4 ++-- > drivers/gpu/drm/amd/amdgpu/uvd_v7_0.c | 4 ++-- > drivers/gpu/drm/amd/powerplay/amd_powerplay.c | 3 ++- > 31 files changed, 82 insertions(+), 66 deletions(-) > > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h > b/drivers/gpu/drm/amd/amdgpu/amdgpu.h > index 774edc1..f08bb9c 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h > @@ -126,6 +126,7 @@ extern int amdgpu_param_buf_per_se; > extern int amdgpu_job_hang_limit; > extern int amdgpu_lbpw; > extern int amdgpu_compute_multipipe; > +extern int amdgpu_init_log; > > #ifdef CONFIG_DRM_AMDGPU_SI > extern int amdgpu_si_support; > @@ -134,6 +135,18 @@ extern int amdgpu_si_support; > extern int amdgpu_cik_support; > #endif > > +#define INIT_INFO(fmt, ...) \ > + do { \ > + if (amdgpu_init_log) \ > + DRM_INFO(fmt, ##__VA_ARGS__); \ > + } while (0) \ > + > +#define INIT_DEV_INFO(dev, fmt, ...) \ > + do { \ > + if (amdgpu_init_log) \ > + dev_info(dev, fmt, ##__VA_ARGS__); \ > + } while (0) \ > + Rather than using a module parameter here, just disable it for SR-IOV. > #define AMDGPU_DEFAULT_GTT_SIZE_MB 3072ULL /* 3GB by > default */ > #define AMDGPU_WAIT_IDLE_TIMEOUT_IN_MS 3000 > #define AMDGPU_MAX_USEC_TIMEOUT 100000 /* 100 > ms */ > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c > b/drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c > index f66d33e..5ff786a 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c > @@ -690,12 +690,12 @@ int amdgpu_atombios_get_clock_info(struct > amdgpu_device *adev) > le32_to_cpu(firmware_info- > >info_21.ulDefaultDispEngineClkFreq); > /* set a reasonable default for DP */ > if (adev->clock.default_dispclk < 53900) { > - DRM_INFO("Changing default dispclk from %dMhz to > 600Mhz\n", > - adev->clock.default_dispclk / 100); > + INIT_INFO("Changing default dispclk from %dMhz to > 600Mhz\n", > + adev->clock.default_dispclk / 100); You can use DRM_DEBUG here. > adev->clock.default_dispclk = 60000; > } else if (adev->clock.default_dispclk <= 60000) { > - DRM_INFO("Changing default dispclk from %dMhz to > 625Mhz\n", > - adev->clock.default_dispclk / 100); > + INIT_INFO("Changing default dispclk from %dMhz to > 625Mhz\n", > + adev->clock.default_dispclk / 100); > adev->clock.default_dispclk = 62500; > } Same here. > adev->clock.dp_extclk = > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c > b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c > index 286ba3c..3458d46 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c > @@ -613,9 +613,9 @@ void amdgpu_vram_location(struct amdgpu_device > *adev, struct amdgpu_mc *mc, u64 > mc->vram_end = mc->vram_start + mc->mc_vram_size - 1; > if (limit && limit < mc->real_vram_size) > mc->real_vram_size = limit; > - dev_info(adev->dev, "VRAM: %lluM 0x%016llX - 0x%016llX (%lluM > used)\n", > - mc->mc_vram_size >> 20, mc->vram_start, > - mc->vram_end, mc->real_vram_size >> 20); > + INIT_DEV_INFO(adev->dev, "VRAM: %lluM 0x%016llX - 0x%016llX > (%lluM used)\n", > + mc->mc_vram_size >> 20, mc->vram_start, > + mc->vram_end, mc->real_vram_size >> 20); This one is useful. I'd suggest either dropping this hunk or making it bare metal only. > } > > /** > @@ -650,8 +650,8 @@ void amdgpu_gart_location(struct amdgpu_device > *adev, struct amdgpu_mc *mc) > mc->gart_start = mc->vram_end + 1; > } > mc->gart_end = mc->gart_start + mc->gart_size - 1; > - dev_info(adev->dev, "GTT: %lluM 0x%016llX - 0x%016llX\n", > - mc->gart_size >> 20, mc->gart_start, mc->gart_end); > + INIT_DEV_INFO(adev->dev, "GTT: %lluM 0x%016llX - 0x%016llX\n", > + mc->gart_size >> 20, mc->gart_start, mc->gart_end); Same here. > } > > /* > @@ -1029,7 +1029,7 @@ static int amdgpu_atombios_init(struct > amdgpu_device *adev) > atom_card_info->ioreg_read = cail_ioreg_read; > atom_card_info->ioreg_write = cail_ioreg_write; > } else { > - DRM_INFO("PCI I/O BAR is not found. Using MMIO to access > ATOM BIOS\n"); > + INIT_INFO("PCI I/O BAR is not found. Using MMIO to access > ATOM BIOS\n"); This can be changed to DRM_DEBUG. > atom_card_info->ioreg_read = cail_reg_read; > atom_card_info->ioreg_write = cail_reg_write; > } > @@ -1716,10 +1716,8 @@ static int amdgpu_init(struct amdgpu_device > *adev) > adev->ip_blocks[i].status.hw = true; > } > > - if (amdgpu_sriov_vf(adev)) { > - DRM_INFO("rel_init\n"); > + if (amdgpu_sriov_vf(adev)) > amdgpu_virt_release_full_gpu(adev, true); > - } > > return 0; > } > @@ -2264,14 +2262,14 @@ int amdgpu_device_init(struct amdgpu_device > *adev, > r = -EINVAL; > goto failed; > } > - DRM_INFO("GPU posting now...\n"); > + INIT_INFO("GPU posting now...\n"); This is useful. I'd suggest either dropping this hunk or making it bare metal only. > r = amdgpu_atom_asic_init(adev- > >mode_info.atom_context); > if (r) { > dev_err(adev->dev, "gpu post error!\n"); > goto failed; > } > } else { > - DRM_INFO("GPU post is not needed\n"); > + INIT_INFO("GPU post is not needed\n"); This can be dropped. > } > > if (adev->is_atom_fw) { > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c > b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c > index c2f414f..6230adc 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c > @@ -128,6 +128,7 @@ int amdgpu_param_buf_per_se = 0; > int amdgpu_job_hang_limit = 0; > int amdgpu_lbpw = -1; > int amdgpu_compute_multipipe = -1; > +int amdgpu_init_log = 1; > > MODULE_PARM_DESC(vramlimit, "Restrict VRAM for testing, in > megabytes"); > module_param_named(vramlimit, amdgpu_vram_limit, int, 0600); > @@ -280,6 +281,9 @@ module_param_named(lbpw, amdgpu_lbpw, int, > 0444); > MODULE_PARM_DESC(compute_multipipe, "Force compute queues to be > spread across pipes (1 = enable, 0 = disable, -1 = auto)"); > module_param_named(compute_multipipe, amdgpu_compute_multipipe, > int, 0444); > > +MODULE_PARM_DESC(init_log, "log output during initialization (1 = enable, > 0 = disable)"); > +module_param_named(init_log, amdgpu_init_log, int, 0444); > + > #ifdef CONFIG_DRM_AMDGPU_SI > > #if defined(CONFIG_DRM_RADEON) || > defined(CONFIG_DRM_RADEON_MODULE) > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c > b/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c > index fb9f88ef..6c4c50f 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c > @@ -390,9 +390,9 @@ int amdgpu_fence_driver_start_ring(struct > amdgpu_ring *ring, > ring->fence_drv.irq_type = irq_type; > ring->fence_drv.initialized = true; > > - dev_info(adev->dev, "fence driver on ring %d use gpu addr > 0x%016llx, " > - "cpu addr 0x%p\n", ring->idx, > - ring->fence_drv.gpu_addr, ring->fence_drv.cpu_addr); > + INIT_DEV_INFO(adev->dev, "fence driver on ring %d use gpu addr > 0x%016llx, " > + "cpu addr 0x%p\n", ring->idx, > + ring->fence_drv.gpu_addr, ring->fence_drv.cpu_addr); This could be switched to DRM_DEBUG. > return 0; > } > > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c > b/drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c > index f437008..7ce8105 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c > @@ -370,8 +370,8 @@ int amdgpu_gart_init(struct amdgpu_device *adev) > /* Compute table size */ > adev->gart.num_cpu_pages = adev->mc.gart_size / PAGE_SIZE; > adev->gart.num_gpu_pages = adev->mc.gart_size / > AMDGPU_GPU_PAGE_SIZE; > - DRM_INFO("GART: num cpu pages %u, num gpu pages %u\n", > - adev->gart.num_cpu_pages, adev->gart.num_gpu_pages); > + INIT_INFO("GART: num cpu pages %u, num gpu pages %u\n", > + adev->gart.num_cpu_pages, adev->gart.num_gpu_pages); This is also useful. I'd suggest either dropping this hunk or making it bare metal only. > > #ifdef CONFIG_DRM_AMDGPU_GART_DEBUGFS > /* Allocate pages table */ > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c > b/drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c > index 47c5ce9..c2d8255 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c > @@ -232,7 +232,7 @@ int amdgpu_irq_init(struct amdgpu_device *adev) > int ret = pci_enable_msi(adev->pdev); > if (!ret) { > adev->irq.msi_enabled = true; > - dev_info(adev->dev, "amdgpu: using MSI.\n"); > + INIT_DEV_INFO(adev->dev, "amdgpu: using > MSI.\n"); Make this debug only. > } > } > > @@ -262,7 +262,7 @@ int amdgpu_irq_init(struct amdgpu_device *adev) > return r; > } > > - DRM_INFO("amdgpu: irq initialized.\n"); > + INIT_INFO("amdgpu: irq initialized.\n"); Use DRM_DEBUG. > return 0; > } > > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c > b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c > index 8b4ed8a..d86805a 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c > @@ -778,11 +778,11 @@ int amdgpu_bo_init(struct amdgpu_device *adev) > /* Add an MTRR for the VRAM */ > adev->mc.vram_mtrr = arch_phys_wc_add(adev->mc.aper_base, > adev->mc.aper_size); > - DRM_INFO("Detected VRAM RAM=%lluM, BAR=%lluM\n", > - adev->mc.mc_vram_size >> 20, > - (unsigned long long)adev->mc.aper_size >> 20); > - DRM_INFO("RAM width %dbits %s\n", > - adev->mc.vram_width, amdgpu_vram_names[adev- > >mc.vram_type]); > + INIT_INFO("Detected VRAM RAM=%lluM, BAR=%lluM\n", > + adev->mc.mc_vram_size >> 20, > + (unsigned long long)adev->mc.aper_size >> 20); > + INIT_INFO("RAM width %dbits %s\n", > + adev->mc.vram_width, amdgpu_vram_names[adev- > >mc.vram_type]); This is also useful. I'd suggest either dropping this hunk or making it bare metal only. > return amdgpu_ttm_init(adev); > } > > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c > b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c > index dcdfb8d..95a50c3 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c > @@ -1348,8 +1348,8 @@ int amdgpu_ttm_init(struct amdgpu_device *adev) > NULL, NULL); > if (r) > return r; > - DRM_INFO("amdgpu: %uM of VRAM memory ready\n", > - (unsigned) (adev->mc.real_vram_size / (1024 * 1024))); > + INIT_INFO("amdgpu: %uM of VRAM memory ready\n", > + (unsigned) (adev->mc.real_vram_size / (1024 * 1024))); > This is also useful. I'd suggest either dropping this hunk or making it bare metal only. > if (amdgpu_gtt_size == -1) > gtt_size = max((AMDGPU_DEFAULT_GTT_SIZE_MB << 20), > @@ -1361,8 +1361,8 @@ int amdgpu_ttm_init(struct amdgpu_device *adev) > DRM_ERROR("Failed initializing GTT heap.\n"); > return r; > } > - DRM_INFO("amdgpu: %uM of GTT memory ready.\n", > - (unsigned)(gtt_size / (1024 * 1024))); > + INIT_INFO("amdgpu: %uM of GTT memory ready.\n", > + (unsigned)(gtt_size / (1024 * 1024))); > This is also useful. I'd suggest either dropping this hunk or making it bare metal only. > adev->gds.mem.total_size = adev->gds.mem.total_size << > AMDGPU_GDS_SHIFT; > adev->gds.mem.gfx_partition_size = adev- > >gds.mem.gfx_partition_size << AMDGPU_GDS_SHIFT; > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c > b/drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c > index b46280c..940f666 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c > @@ -954,7 +954,7 @@ int amdgpu_vce_ring_test_ring(struct amdgpu_ring > *ring) > } > > if (i < timeout) { > - DRM_INFO("ring test on %d succeeded in %d usecs\n", > + INIT_INFO("ring test on %d succeeded in %d usecs\n", > ring->idx, i); DRM_DEBUG. > } else { > DRM_ERROR("amdgpu: ring %d test failed\n", > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c > b/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c > index 041e012..5ca7d4e 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c > @@ -261,7 +261,7 @@ int amdgpu_vcn_dec_ring_test_ring(struct > amdgpu_ring *ring) > } > > if (i < adev->usec_timeout) { > - DRM_INFO("ring test on %d succeeded in %d usecs\n", > + INIT_INFO("ring test on %d succeeded in %d usecs\n", > ring->idx, i); DRM_DEBUG. > } else { > DRM_ERROR("amdgpu: ring %d test failed (0x%08X)\n", > @@ -500,7 +500,7 @@ int amdgpu_vcn_enc_ring_test_ring(struct > amdgpu_ring *ring) > } > > if (i < adev->usec_timeout) { > - DRM_INFO("ring test on %d succeeded in %d usecs\n", > + INIT_INFO("ring test on %d succeeded in %d usecs\n", DRM_DEBUG. > ring->idx, i); > } else { > DRM_ERROR("amdgpu: ring %d test failed\n", > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c > b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c > index ef8b7a9..908779b 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c > @@ -2594,9 +2594,9 @@ void amdgpu_vm_adjust_size(struct > amdgpu_device *adev, uint64_t vm_size, > > amdgpu_vm_set_fragment_size(adev, fragment_size_default); > > - DRM_INFO("vm size is %llu GB, block size is %u-bit, fragment size is > %u-bit\n", > - adev->vm_manager.vm_size, adev- > >vm_manager.block_size, > - adev->vm_manager.fragment_size); > + INIT_INFO("vm size is %llu GB, block size is %u-bit, fragment size is > %u-bit\n", > + adev->vm_manager.vm_size, adev- > >vm_manager.block_size, > + adev->vm_manager.fragment_size); This is also useful. I'd suggest either dropping this hunk or making it bare metal only. > } > > /** > diff --git a/drivers/gpu/drm/amd/amdgpu/atom.c > b/drivers/gpu/drm/amd/amdgpu/atom.c > index 69500a8..bfb308e 100644 > --- a/drivers/gpu/drm/amd/amdgpu/atom.c > +++ b/drivers/gpu/drm/amd/amdgpu/atom.c > @@ -1344,7 +1344,7 @@ struct atom_context *amdgpu_atom_parse(struct > card_info *card, void *bios) > > str = CSTR(idx); > if (*str != '\0') { > - pr_info("ATOM BIOS: %s\n", str); > + INIT_INFO("ATOM BIOS: %s\n", str); This is also useful. I'd suggest either dropping this hunk or making it bare metal only. > strlcpy(ctx->vbios_version, str, sizeof(ctx->vbios_version)); > } > > diff --git a/drivers/gpu/drm/amd/amdgpu/cik_sdma.c > b/drivers/gpu/drm/amd/amdgpu/cik_sdma.c > index 60cecd1..18268c9 100644 > --- a/drivers/gpu/drm/amd/amdgpu/cik_sdma.c > +++ b/drivers/gpu/drm/amd/amdgpu/cik_sdma.c > @@ -657,7 +657,7 @@ static int cik_sdma_ring_test_ring(struct amdgpu_ring > *ring) > } > > if (i < adev->usec_timeout) { > - DRM_INFO("ring test on %d succeeded in %d usecs\n", ring- > >idx, i); > + INIT_INFO("ring test on %d succeeded in %d usecs\n", ring- > >idx, i); DRM_DEBUG > } else { > DRM_ERROR("amdgpu: ring %d test failed (0x%08X)\n", > ring->idx, tmp); > diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v6_0.c > b/drivers/gpu/drm/amd/amdgpu/gfx_v6_0.c > index dbbe986..a4771a6 100644 > --- a/drivers/gpu/drm/amd/amdgpu/gfx_v6_0.c > +++ b/drivers/gpu/drm/amd/amdgpu/gfx_v6_0.c > @@ -1798,7 +1798,7 @@ static int gfx_v6_0_ring_test_ring(struct > amdgpu_ring *ring) > DRM_UDELAY(1); > } > if (i < adev->usec_timeout) { > - DRM_INFO("ring test on %d succeeded in %d usecs\n", ring- > >idx, i); > + INIT_INFO("ring test on %d succeeded in %d usecs\n", ring- > >idx, i); DRM_DEBUG > } else { > DRM_ERROR("amdgpu: ring %d test failed > (scratch(0x%04X)=0x%08X)\n", > ring->idx, scratch, tmp); > diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c > b/drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c > index 0086876..7de5d68 100644 > --- a/drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c > +++ b/drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c > @@ -2069,7 +2069,7 @@ static int gfx_v7_0_ring_test_ring(struct > amdgpu_ring *ring) > DRM_UDELAY(1); > } > if (i < adev->usec_timeout) { > - DRM_INFO("ring test on %d succeeded in %d usecs\n", ring- > >idx, i); > + INIT_INFO("ring test on %d succeeded in %d usecs\n", ring- > >idx, i); DRM_DEBUG > } else { > DRM_ERROR("amdgpu: ring %d test failed > (scratch(0x%04X)=0x%08X)\n", > ring->idx, scratch, tmp); > diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c > b/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c > index b8002ac..fd38cb1 100644 > --- a/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c > +++ b/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c > @@ -804,7 +804,7 @@ static int gfx_v8_0_ring_test_ring(struct amdgpu_ring > *ring) > DRM_UDELAY(1); > } > if (i < adev->usec_timeout) { > - DRM_INFO("ring test on %d succeeded in %d usecs\n", > + INIT_INFO("ring test on %d succeeded in %d usecs\n", > ring->idx, i); DRM_DEBUG. > } else { > DRM_ERROR("amdgpu: ring %d test failed > (scratch(0x%04X)=0x%08X)\n", > diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c > b/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c > index 8738b13..50124ab 100644 > --- a/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c > +++ b/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c > @@ -318,7 +318,7 @@ static int gfx_v9_0_ring_test_ring(struct amdgpu_ring > *ring) > DRM_UDELAY(1); > } > if (i < adev->usec_timeout) { > - DRM_INFO("ring test on %d succeeded in %d usecs\n", > + INIT_INFO("ring test on %d succeeded in %d usecs\n", > ring->idx, i); DRM_DEBUG. > } else { > DRM_ERROR("amdgpu: ring %d test failed > (scratch(0x%04X)=0x%08X)\n", > diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v6_0.c > b/drivers/gpu/drm/amd/amdgpu/gmc_v6_0.c > index f4603a7..3b5f6bb 100644 > --- a/drivers/gpu/drm/amd/amdgpu/gmc_v6_0.c > +++ b/drivers/gpu/drm/amd/amdgpu/gmc_v6_0.c > @@ -560,9 +560,9 @@ static int gmc_v6_0_gart_enable(struct > amdgpu_device *adev) > gmc_v6_0_set_fault_enable_default(adev, true); > > gmc_v6_0_gart_flush_gpu_tlb(adev, 0); > - dev_info(adev->dev, "PCIE GART of %uM enabled (table at > 0x%016llX).\n", > - (unsigned)(adev->mc.gart_size >> 20), > - (unsigned long long)adev->gart.table_addr); > + INIT_DEV_INFO(adev->dev, "PCIE GART of %uM enabled (table at > 0x%016llX).\n", > + (unsigned)(adev->mc.gart_size >> 20), > + (unsigned long long)adev->gart.table_addr); This is also useful. I'd suggest either dropping this hunk or making it bare metal only. > adev->gart.ready = true; > return 0; > } > diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c > b/drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c > index b0528ca..23bf504 100644 > --- a/drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c > +++ b/drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c > @@ -674,9 +674,9 @@ static int gmc_v7_0_gart_enable(struct > amdgpu_device *adev) > } > > gmc_v7_0_gart_flush_gpu_tlb(adev, 0); > - DRM_INFO("PCIE GART of %uM enabled (table at 0x%016llX).\n", > - (unsigned)(adev->mc.gart_size >> 20), > - (unsigned long long)adev->gart.table_addr); > + INIT_INFO("PCIE GART of %uM enabled (table at 0x%016llX).\n", > + (unsigned)(adev->mc.gart_size >> 20), > + (unsigned long long)adev->gart.table_addr); This is also useful. I'd suggest either dropping this hunk or making it bare metal only. > adev->gart.ready = true; > return 0; > } > diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c > b/drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c > index f368cfe..84ae01b 100644 > --- a/drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c > +++ b/drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c > @@ -890,9 +890,9 @@ static int gmc_v8_0_gart_enable(struct > amdgpu_device *adev) > gmc_v8_0_set_fault_enable_default(adev, true); > > gmc_v8_0_gart_flush_gpu_tlb(adev, 0); > - DRM_INFO("PCIE GART of %uM enabled (table at 0x%016llX).\n", > - (unsigned)(adev->mc.gart_size >> 20), > - (unsigned long long)adev->gart.table_addr); > + INIT_INFO("PCIE GART of %uM enabled (table at 0x%016llX).\n", > + (unsigned)(adev->mc.gart_size >> 20), > + (unsigned long long)adev->gart.table_addr); This is also useful. I'd suggest either dropping this hunk or making it bare metal only. > adev->gart.ready = true; > return 0; > } > diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c > b/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c > index 6216993..3dac031 100644 > --- a/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c > +++ b/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c > @@ -756,9 +756,9 @@ static int gmc_v9_0_gart_enable(struct > amdgpu_device *adev) > mmhub_v1_0_set_fault_enable_default(adev, value); > gmc_v9_0_gart_flush_gpu_tlb(adev, 0); > > - DRM_INFO("PCIE GART of %uM enabled (table at 0x%016llX).\n", > - (unsigned)(adev->mc.gart_size >> 20), > - (unsigned long long)adev->gart.table_addr); > + INIT_INFO("PCIE GART of %uM enabled (table at 0x%016llX).\n", > + (unsigned)(adev->mc.gart_size >> 20), > + (unsigned long long)adev->gart.table_addr); This is also useful. I'd suggest either dropping this hunk or making it bare metal only. > adev->gart.ready = true; > return 0; > } > diff --git a/drivers/gpu/drm/amd/amdgpu/sdma_v2_4.c > b/drivers/gpu/drm/amd/amdgpu/sdma_v2_4.c > index 67f375b..8fd1451 100644 > --- a/drivers/gpu/drm/amd/amdgpu/sdma_v2_4.c > +++ b/drivers/gpu/drm/amd/amdgpu/sdma_v2_4.c > @@ -633,7 +633,7 @@ static int sdma_v2_4_ring_test_ring(struct > amdgpu_ring *ring) > } > > if (i < adev->usec_timeout) { > - DRM_INFO("ring test on %d succeeded in %d usecs\n", ring- > >idx, i); > + INIT_INFO("ring test on %d succeeded in %d usecs\n", ring- > >idx, i); DRM_DEBUG > } else { > DRM_ERROR("amdgpu: ring %d test failed (0x%08X)\n", > ring->idx, tmp); > diff --git a/drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c > b/drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c > index 6d06f8e..540b42a 100644 > --- a/drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c > +++ b/drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c > @@ -893,7 +893,7 @@ static int sdma_v3_0_ring_test_ring(struct > amdgpu_ring *ring) > } > > if (i < adev->usec_timeout) { > - DRM_INFO("ring test on %d succeeded in %d usecs\n", ring- > >idx, i); > + INIT_INFO("ring test on %d succeeded in %d usecs\n", ring- > >idx, i); DRM_DEBUG. > } else { > DRM_ERROR("amdgpu: ring %d test failed (0x%08X)\n", > ring->idx, tmp); > diff --git a/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c > b/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c > index 46009db..bf8e06a 100644 > --- a/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c > +++ b/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c > @@ -919,7 +919,7 @@ static int sdma_v4_0_ring_test_ring(struct > amdgpu_ring *ring) > } > > if (i < adev->usec_timeout) { > - DRM_INFO("ring test on %d succeeded in %d usecs\n", ring- > >idx, i); > + INIT_INFO("ring test on %d succeeded in %d usecs\n", ring- > >idx, i); DRM_DEBUG. > } else { > DRM_ERROR("amdgpu: ring %d test failed (0x%08X)\n", > ring->idx, tmp); > diff --git a/drivers/gpu/drm/amd/amdgpu/si_dma.c > b/drivers/gpu/drm/amd/amdgpu/si_dma.c > index 3fa2fbf..c356338 100644 > --- a/drivers/gpu/drm/amd/amdgpu/si_dma.c > +++ b/drivers/gpu/drm/amd/amdgpu/si_dma.c > @@ -252,7 +252,7 @@ static int si_dma_ring_test_ring(struct amdgpu_ring > *ring) > } > > if (i < adev->usec_timeout) { > - DRM_INFO("ring test on %d succeeded in %d usecs\n", ring- > >idx, i); > + INIT_INFO("ring test on %d succeeded in %d usecs\n", ring- > >idx, i); DRM_DEBUG. > } else { > DRM_ERROR("amdgpu: ring %d test failed (0x%08X)\n", > ring->idx, tmp); > diff --git a/drivers/gpu/drm/amd/amdgpu/uvd_v4_2.c > b/drivers/gpu/drm/amd/amdgpu/uvd_v4_2.c > index 8ab0f78..c31f4d7 100644 > --- a/drivers/gpu/drm/amd/amdgpu/uvd_v4_2.c > +++ b/drivers/gpu/drm/amd/amdgpu/uvd_v4_2.c > @@ -521,7 +521,7 @@ static int uvd_v4_2_ring_test_ring(struct > amdgpu_ring *ring) > } > > if (i < adev->usec_timeout) { > - DRM_INFO("ring test on %d succeeded in %d usecs\n", > + INIT_INFO("ring test on %d succeeded in %d usecs\n", > ring->idx, i); DRM_DEBUG. > } else { > DRM_ERROR("amdgpu: ring %d test failed (0x%08X)\n", > diff --git a/drivers/gpu/drm/amd/amdgpu/uvd_v5_0.c > b/drivers/gpu/drm/amd/amdgpu/uvd_v5_0.c > index bb6d46e..a62804b 100644 > --- a/drivers/gpu/drm/amd/amdgpu/uvd_v5_0.c > +++ b/drivers/gpu/drm/amd/amdgpu/uvd_v5_0.c > @@ -536,7 +536,7 @@ static int uvd_v5_0_ring_test_ring(struct > amdgpu_ring *ring) > } > > if (i < adev->usec_timeout) { > - DRM_INFO("ring test on %d succeeded in %d usecs\n", > + INIT_INFO("ring test on %d succeeded in %d usecs\n", > ring->idx, i); DRM_DEBUG. > } else { > DRM_ERROR("amdgpu: ring %d test failed (0x%08X)\n", > diff --git a/drivers/gpu/drm/amd/amdgpu/uvd_v6_0.c > b/drivers/gpu/drm/amd/amdgpu/uvd_v6_0.c > index 71299c6..1f8093a 100644 > --- a/drivers/gpu/drm/amd/amdgpu/uvd_v6_0.c > +++ b/drivers/gpu/drm/amd/amdgpu/uvd_v6_0.c > @@ -184,7 +184,7 @@ static int uvd_v6_0_enc_ring_test_ring(struct > amdgpu_ring *ring) > } > > if (i < adev->usec_timeout) { > - DRM_INFO("ring test on %d succeeded in %d usecs\n", > + INIT_INFO("ring test on %d succeeded in %d usecs\n", > ring->idx, i); DRM_DEBUG. > } else { > DRM_ERROR("amdgpu: ring %d test failed\n", > @@ -1010,7 +1010,7 @@ static int uvd_v6_0_ring_test_ring(struct > amdgpu_ring *ring) > } > > if (i < adev->usec_timeout) { > - DRM_INFO("ring test on %d succeeded in %d usecs\n", > + INIT_INFO("ring test on %d succeeded in %d usecs\n", > ring->idx, i); DRM_DEBUG. > } else { > DRM_ERROR("amdgpu: ring %d test failed (0x%08X)\n", > diff --git a/drivers/gpu/drm/amd/amdgpu/uvd_v7_0.c > b/drivers/gpu/drm/amd/amdgpu/uvd_v7_0.c > index b8ed8fa..3d73542 100644 > --- a/drivers/gpu/drm/amd/amdgpu/uvd_v7_0.c > +++ b/drivers/gpu/drm/amd/amdgpu/uvd_v7_0.c > @@ -184,7 +184,7 @@ static int uvd_v7_0_enc_ring_test_ring(struct > amdgpu_ring *ring) > } > > if (i < adev->usec_timeout) { > - DRM_INFO("ring test on %d succeeded in %d usecs\n", > + INIT_INFO("ring test on %d succeeded in %d usecs\n", > ring->idx, i); DRM_DEBUG. > } else { > DRM_ERROR("amdgpu: ring %d test failed\n", > @@ -1198,7 +1198,7 @@ static int uvd_v7_0_ring_test_ring(struct > amdgpu_ring *ring) > } > > if (i < adev->usec_timeout) { > - DRM_INFO("ring test on %d succeeded in %d usecs\n", > + INIT_INFO("ring test on %d succeeded in %d usecs\n", > ring->idx, i); DRM_DEBUG. > } else { > DRM_ERROR("amdgpu: ring %d test failed (0x%08X)\n", > diff --git a/drivers/gpu/drm/amd/powerplay/amd_powerplay.c > b/drivers/gpu/drm/amd/powerplay/amd_powerplay.c > index 6b0cf8e..4de4d63 100644 > --- a/drivers/gpu/drm/amd/powerplay/amd_powerplay.c > +++ b/drivers/gpu/drm/amd/powerplay/amd_powerplay.c > @@ -29,6 +29,7 @@ > #include "amd_powerplay.h" > #include "pp_instance.h" > #include "power_state.h" > +#include "amdgpu.h" > > #define PP_DPM_DISABLED 0xCCCC > > @@ -119,7 +120,7 @@ static int pp_sw_init(void *handle) > > ret = hwmgr->smumgr_funcs->smu_init(hwmgr); > > - pr_info("amdgpu: powerplay sw initialized\n"); > + INIT_INFO("amdgpu: powerplay sw initialized\n"); Debug. > } > return ret; > } > -- > 2.9.5 > > _______________________________________________ > amd-gfx mailing list > amd-gfx at lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/amd-gfx