AMD-GFX Archive on lore.kernel.org
 help / color / Atom feed
From: "Christian König" <ckoenig.leichtzumerken@gmail.com>
To: Alex Deucher <alexdeucher@gmail.com>, amd-gfx@lists.freedesktop.org
Cc: Alex Deucher <alexander.deucher@amd.com>
Subject: Re: [PATCH 17/17] drm/amdgpu: move vram usage by vbios to mman (v2)
Date: Fri, 31 Jul 2020 08:45:07 +0200
Message-ID: <0b157f85-1e3b-6438-5ab5-d08de7e99b38@gmail.com> (raw)
In-Reply-To: <20200730200414.40485-18-alexander.deucher@amd.com>

Am 30.07.20 um 22:04 schrieb Alex Deucher:
> It's related to the memory manager so move it there.
>
> v2: inline the structure
>
> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>

Reviewed-by: Christian König <christian.koenig@amd.com>

> ---
>   drivers/gpu/drm/amd/amdgpu/amdgpu.h           | 12 -----------
>   drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c  |  4 ++--
>   .../gpu/drm/amd/amdgpu/amdgpu_atomfirmware.c  |  4 ++--
>   drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c       | 20 +++++++++----------
>   drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.h       |  6 ++++++
>   drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c      |  6 +++---
>   6 files changed, 23 insertions(+), 29 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
> index 44fd0ef7394f..81f6412eb54f 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
> @@ -649,16 +649,6 @@ struct amdgpu_atcs {
>   	struct amdgpu_atcs_functions functions;
>   };
>   
> -/*
> - * Firmware VRAM reservation
> - */
> -struct amdgpu_fw_vram_usage {
> -	u64 start_offset;
> -	u64 size;
> -	struct amdgpu_bo *reserved_bo;
> -	void *va;
> -};
> -
>   /*
>    * CGS
>    */
> @@ -942,8 +932,6 @@ struct amdgpu_device {
>   	struct delayed_work     delayed_init_work;
>   
>   	struct amdgpu_virt	virt;
> -	/* firmware VRAM reservation */
> -	struct amdgpu_fw_vram_usage fw_vram_usage;
>   
>   	/* link all shadow bo */
>   	struct list_head                shadow_list;
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c
> index 29f767e026e4..e33f63712b46 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c
> @@ -1786,9 +1786,9 @@ static int amdgpu_atombios_allocate_fb_scratch(struct amdgpu_device *adev)
>   			(uint32_t)(ATOM_VRAM_BLOCK_SRIOV_MSG_SHARE_RESERVATION <<
>   			ATOM_VRAM_OPERATION_FLAGS_SHIFT)) {
>   			/* Firmware request VRAM reservation for SR-IOV */
> -			adev->fw_vram_usage.start_offset = (start_addr &
> +			adev->mman.fw_vram_usage_start_offset = (start_addr &
>   				(~ATOM_VRAM_OPERATION_FLAGS_MASK)) << 10;
> -			adev->fw_vram_usage.size = size << 10;
> +			adev->mman.fw_vram_usage_size = size << 10;
>   			/* Use the default scratch size */
>   			usage_bytes = 0;
>   		} else {
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.c
> index 1279053324f9..17c010d0431f 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.c
> @@ -89,9 +89,9 @@ int amdgpu_atomfirmware_allocate_fb_scratch(struct amdgpu_device *adev)
>   			(uint32_t)(ATOM_VRAM_BLOCK_SRIOV_MSG_SHARE_RESERVATION <<
>   			ATOM_VRAM_OPERATION_FLAGS_SHIFT)) {
>   			/* Firmware request VRAM reservation for SR-IOV */
> -			adev->fw_vram_usage.start_offset = (start_addr &
> +			adev->mman.fw_vram_usage_start_offset = (start_addr &
>   				(~ATOM_VRAM_OPERATION_FLAGS_MASK)) << 10;
> -			adev->fw_vram_usage.size = size << 10;
> +			adev->mman.fw_vram_usage_size = size << 10;
>   			/* Use the default scratch size */
>   			usage_bytes = 0;
>   		} else {
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
> index ea9b5b39f640..c7421aa32946 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
> @@ -1766,8 +1766,8 @@ static struct ttm_bo_driver amdgpu_bo_driver = {
>    */
>   static void amdgpu_ttm_fw_reserve_vram_fini(struct amdgpu_device *adev)
>   {
> -	amdgpu_bo_free_kernel(&adev->fw_vram_usage.reserved_bo,
> -		NULL, &adev->fw_vram_usage.va);
> +	amdgpu_bo_free_kernel(&adev->mman.fw_vram_usage_reserved_bo,
> +		NULL, &adev->mman.fw_vram_usage_va);
>   }
>   
>   /**
> @@ -1781,19 +1781,19 @@ static int amdgpu_ttm_fw_reserve_vram_init(struct amdgpu_device *adev)
>   {
>   	uint64_t vram_size = adev->gmc.visible_vram_size;
>   
> -	adev->fw_vram_usage.va = NULL;
> -	adev->fw_vram_usage.reserved_bo = NULL;
> +	adev->mman.fw_vram_usage_va = NULL;
> +	adev->mman.fw_vram_usage_reserved_bo = NULL;
>   
> -	if (adev->fw_vram_usage.size == 0 ||
> -	    adev->fw_vram_usage.size > vram_size)
> +	if (adev->mman.fw_vram_usage_size == 0 ||
> +	    adev->mman.fw_vram_usage_size > vram_size)
>   		return 0;
>   
>   	return amdgpu_bo_create_kernel_at(adev,
> -					  adev->fw_vram_usage.start_offset,
> -					  adev->fw_vram_usage.size,
> +					  adev->mman.fw_vram_usage_start_offset,
> +					  adev->mman.fw_vram_usage_size,
>   					  AMDGPU_GEM_DOMAIN_VRAM,
> -					  &adev->fw_vram_usage.reserved_bo,
> -					  &adev->fw_vram_usage.va);
> +					  &adev->mman.fw_vram_usage_reserved_bo,
> +					  &adev->mman.fw_vram_usage_va);
>   }
>   
>   /*
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.h
> index 6d7b83d967ce..de37ceff0e56 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.h
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.h
> @@ -70,6 +70,12 @@ struct amdgpu_mman {
>   	uint8_t				*discovery_bin;
>   	uint32_t			discovery_tmr_size;
>   	struct amdgpu_bo		*discovery_memory;
> +
> +	/* firmware VRAM reservation */
> +	u64		fw_vram_usage_start_offset;
> +	u64		fw_vram_usage_size;
> +	struct amdgpu_bo	*fw_vram_usage_reserved_bo;
> +	void		*fw_vram_usage_va;
>   };
>   
>   struct amdgpu_copy_mem {
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c
> index 5cae39d35c04..1e211544f2dc 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c
> @@ -401,7 +401,7 @@ static void amdgpu_virt_add_bad_page(struct amdgpu_device *adev,
>   	if (bp_block_size) {
>   		bp_cnt = bp_block_size / sizeof(uint64_t);
>   		for (bp_idx = 0; bp_idx < bp_cnt; bp_idx++) {
> -			retired_page = *(uint64_t *)(adev->fw_vram_usage.va +
> +			retired_page = *(uint64_t *)(adev->mman.fw_vram_usage_va +
>   					bp_block_offset + bp_idx * sizeof(uint64_t));
>   			bp.retired_page = retired_page;
>   
> @@ -428,10 +428,10 @@ void amdgpu_virt_init_data_exchange(struct amdgpu_device *adev)
>   	adev->virt.fw_reserve.p_pf2vf = NULL;
>   	adev->virt.fw_reserve.p_vf2pf = NULL;
>   
> -	if (adev->fw_vram_usage.va != NULL) {
> +	if (adev->mman.fw_vram_usage_va != NULL) {
>   		adev->virt.fw_reserve.p_pf2vf =
>   			(struct amd_sriov_msg_pf2vf_info_header *)(
> -			adev->fw_vram_usage.va + AMDGIM_DATAEXCHANGE_OFFSET);
> +			adev->mman.fw_vram_usage_va + AMDGIM_DATAEXCHANGE_OFFSET);
>   		AMDGPU_FW_VRAM_PF2VF_READ(adev, header.size, &pf2vf_size);
>   		AMDGPU_FW_VRAM_PF2VF_READ(adev, checksum, &checksum);
>   		AMDGPU_FW_VRAM_PF2VF_READ(adev, feature_flags, &adev->virt.gim_feature);

_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

      reply index

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-07-30 20:03 [PATCH 00/17] rework stolen pre-OS fb allocation handling (v3) Alex Deucher
2020-07-30 20:03 ` [PATCH 01/17] drm/amdgpu: handle bo size 0 in amdgpu_bo_create_kernel_at (v2) Alex Deucher
2020-07-30 20:03 ` [PATCH 02/17] drm/amdgpu: use create_at for the stolen pre-OS buffer Alex Deucher
2020-07-30 20:04 ` [PATCH 03/17] drm/amdgpu: use a define for the memory size of the vga emulator Alex Deucher
2020-07-30 20:04 ` [PATCH 04/17] drm/amdgpu: move stolen vga bo from amdgpu to amdgpu.gmc Alex Deucher
2020-07-30 20:04 ` [PATCH 05/17] drm/amdgpu: move keep stolen memory check into gmc core Alex Deucher
2020-07-30 20:04 ` [PATCH 06/17] drm/amdgpu: add support for extended stolen vga memory Alex Deucher
2020-07-30 20:04 ` [PATCH 07/17] drm/amdgpu/gmc: add new helper to get the FB size used by pre-OS console Alex Deucher
2020-07-30 20:04 ` [PATCH 08/17] drm/amdgpu/gmc6: switch to using amdgpu_gmc_get_vbios_allocations Alex Deucher
2020-07-30 20:04 ` [PATCH 09/17] drm/amdgpu/gmc7: " Alex Deucher
2020-07-30 20:04 ` [PATCH 10/17] drm/amdgpu/gmc8: " Alex Deucher
2020-07-30 20:04 ` [PATCH 11/17] drm/amdgpu/gmc9: " Alex Deucher
2020-07-30 20:04 ` [PATCH 12/17] drm/amdgpu/gmc10: " Alex Deucher
2020-07-30 20:04 ` [PATCH 13/17] drm/amdgpu: drop the CPU pointers for the stolen vga bos Alex Deucher
2020-07-30 20:04 ` [PATCH 14/17] drm/amdgpu/gmc: disable keep_stolen_vga_memory on arcturus Alex Deucher
2020-07-30 20:04 ` [PATCH 15/17] drm/amdgpu: move stolen memory from gmc to mman Alex Deucher
2020-07-30 20:04 ` [PATCH 16/17] drm/amdgpu: move IP discovery data " Alex Deucher
2020-07-30 20:04 ` [PATCH 17/17] drm/amdgpu: move vram usage by vbios to mman (v2) Alex Deucher
2020-07-31  6:45   ` Christian König [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=0b157f85-1e3b-6438-5ab5-d08de7e99b38@gmail.com \
    --to=ckoenig.leichtzumerken@gmail.com \
    --cc=alexander.deucher@amd.com \
    --cc=alexdeucher@gmail.com \
    --cc=amd-gfx@lists.freedesktop.org \
    --cc=christian.koenig@amd.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

AMD-GFX Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/amd-gfx/0 amd-gfx/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 amd-gfx amd-gfx/ https://lore.kernel.org/amd-gfx \
		amd-gfx@lists.freedesktop.org
	public-inbox-index amd-gfx

Example config snippet for mirrors

Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/org.freedesktop.lists.amd-gfx


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git