Intel-GFX Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: "Christian König" <ckoenig.leichtzumerken@gmail.com>
To: Somalapuram Amaranath <Amaranath.Somalapuram@amd.com>,
	dri-devel@lists.freedesktop.org, amd-gfx@lists.freedesktop.org,
	intel-gfx@lists.freedesktop.org, nouveau@lists.freedesktop.org
Cc: alexander.deucher@amd.com, christian.koenig@amd.com,
	arunpravin.paneerselvam@amd.com
Subject: Re: [Intel-gfx] [PATCH 4/6] drm/nouveau: fix’s on ttm_resource rework to use size_t type
Date: Wed, 19 Oct 2022 18:48:01 +0200	[thread overview]
Message-ID: <51f6672b-230c-6a41-9ec0-27d8561c0ee2@gmail.com> (raw)
In-Reply-To: <20221019152736.654451-4-Amaranath.Somalapuram@amd.com>

Am 19.10.22 um 17:27 schrieb Somalapuram Amaranath:
> Fix the ttm_resource from num_pages to size_t size.
>
> Signed-off-by: Somalapuram Amaranath <Amaranath.Somalapuram@amd.com>

I'm not an expert for nouveau so it might be possible that we better use 
bo->base.size instead of bo->resource->size at some places. But that can 
be cleaned up later if anybody really cares.

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

> ---
>   drivers/gpu/drm/nouveau/nouveau_bo.c     | 4 ++--
>   drivers/gpu/drm/nouveau/nouveau_bo0039.c | 4 ++--
>   drivers/gpu/drm/nouveau/nouveau_bo5039.c | 2 +-
>   drivers/gpu/drm/nouveau/nouveau_bo74c1.c | 2 +-
>   drivers/gpu/drm/nouveau/nouveau_bo85b5.c | 4 ++--
>   drivers/gpu/drm/nouveau/nouveau_bo9039.c | 4 ++--
>   drivers/gpu/drm/nouveau/nouveau_bo90b5.c | 4 ++--
>   drivers/gpu/drm/nouveau/nouveau_boa0b5.c | 2 +-
>   drivers/gpu/drm/nouveau/nouveau_gem.c    | 5 ++---
>   drivers/gpu/drm/nouveau/nouveau_mem.c    | 4 ++--
>   drivers/gpu/drm/nouveau/nouveau_ttm.c    | 2 +-
>   11 files changed, 18 insertions(+), 19 deletions(-)
>
> diff --git a/drivers/gpu/drm/nouveau/nouveau_bo.c b/drivers/gpu/drm/nouveau/nouveau_bo.c
> index 126b3c6e12f9..16ca4a141866 100644
> --- a/drivers/gpu/drm/nouveau/nouveau_bo.c
> +++ b/drivers/gpu/drm/nouveau/nouveau_bo.c
> @@ -532,7 +532,7 @@ nouveau_bo_map(struct nouveau_bo *nvbo)
>   	if (ret)
>   		return ret;
>   
> -	ret = ttm_bo_kmap(&nvbo->bo, 0, nvbo->bo.resource->num_pages, &nvbo->kmap);
> +	ret = ttm_bo_kmap(&nvbo->bo, 0, PFN_UP(nvbo->bo.resource->size), &nvbo->kmap);
>   
>   	ttm_bo_unreserve(&nvbo->bo);
>   	return ret;
> @@ -1236,7 +1236,7 @@ vm_fault_t nouveau_ttm_fault_reserve_notify(struct ttm_buffer_object *bo)
>   	} else {
>   		/* make sure bo is in mappable vram */
>   		if (drm->client.device.info.family >= NV_DEVICE_INFO_V0_TESLA ||
> -		    bo->resource->start + bo->resource->num_pages < mappable)
> +		    bo->resource->start + PFN_UP(bo->resource->size) < mappable)
>   			return 0;
>   
>   		for (i = 0; i < nvbo->placement.num_placement; ++i) {
> diff --git a/drivers/gpu/drm/nouveau/nouveau_bo0039.c b/drivers/gpu/drm/nouveau/nouveau_bo0039.c
> index 7390132129fe..e2ce44adaa5c 100644
> --- a/drivers/gpu/drm/nouveau/nouveau_bo0039.c
> +++ b/drivers/gpu/drm/nouveau/nouveau_bo0039.c
> @@ -52,7 +52,7 @@ nv04_bo_move_m2mf(struct nouveau_channel *chan, struct ttm_buffer_object *bo,
>   	u32 src_offset = old_reg->start << PAGE_SHIFT;
>   	u32 dst_ctxdma = nouveau_bo_mem_ctxdma(bo, chan, new_reg);
>   	u32 dst_offset = new_reg->start << PAGE_SHIFT;
> -	u32 page_count = new_reg->num_pages;
> +	u32 page_count = PFN_UP(new_reg->size);
>   	int ret;
>   
>   	ret = PUSH_WAIT(push, 3);
> @@ -62,7 +62,7 @@ nv04_bo_move_m2mf(struct nouveau_channel *chan, struct ttm_buffer_object *bo,
>   	PUSH_MTHD(push, NV039, SET_CONTEXT_DMA_BUFFER_IN, src_ctxdma,
>   			       SET_CONTEXT_DMA_BUFFER_OUT, dst_ctxdma);
>   
> -	page_count = new_reg->num_pages;
> +	page_count = PFN_UP(new_reg->size);
>   	while (page_count) {
>   		int line_count = (page_count > 2047) ? 2047 : page_count;
>   
> diff --git a/drivers/gpu/drm/nouveau/nouveau_bo5039.c b/drivers/gpu/drm/nouveau/nouveau_bo5039.c
> index 4c75c7b3804c..c6cf3629a9f9 100644
> --- a/drivers/gpu/drm/nouveau/nouveau_bo5039.c
> +++ b/drivers/gpu/drm/nouveau/nouveau_bo5039.c
> @@ -41,7 +41,7 @@ nv50_bo_move_m2mf(struct nouveau_channel *chan, struct ttm_buffer_object *bo,
>   {
>   	struct nouveau_mem *mem = nouveau_mem(old_reg);
>   	struct nvif_push *push = chan->chan.push;
> -	u64 length = (new_reg->num_pages << PAGE_SHIFT);
> +	u64 length = new_reg->size;
>   	u64 src_offset = mem->vma[0].addr;
>   	u64 dst_offset = mem->vma[1].addr;
>   	int src_tiled = !!mem->kind;
> diff --git a/drivers/gpu/drm/nouveau/nouveau_bo74c1.c b/drivers/gpu/drm/nouveau/nouveau_bo74c1.c
> index ed6c09d67840..9b7ba31fae13 100644
> --- a/drivers/gpu/drm/nouveau/nouveau_bo74c1.c
> +++ b/drivers/gpu/drm/nouveau/nouveau_bo74c1.c
> @@ -44,7 +44,7 @@ nv84_bo_move_exec(struct nouveau_channel *chan, struct ttm_buffer_object *bo,
>   	if (ret)
>   		return ret;
>   
> -	PUSH_NVSQ(push, NV74C1, 0x0304, new_reg->num_pages << PAGE_SHIFT,
> +	PUSH_NVSQ(push, NV74C1, 0x0304, new_reg->size,
>   				0x0308, upper_32_bits(mem->vma[0].addr),
>   				0x030c, lower_32_bits(mem->vma[0].addr),
>   				0x0310, upper_32_bits(mem->vma[1].addr),
> diff --git a/drivers/gpu/drm/nouveau/nouveau_bo85b5.c b/drivers/gpu/drm/nouveau/nouveau_bo85b5.c
> index dec29b2d8bb2..a15a38a87a95 100644
> --- a/drivers/gpu/drm/nouveau/nouveau_bo85b5.c
> +++ b/drivers/gpu/drm/nouveau/nouveau_bo85b5.c
> @@ -44,10 +44,10 @@ nva3_bo_move_copy(struct nouveau_channel *chan, struct ttm_buffer_object *bo,
>   	struct nvif_push *push = chan->chan.push;
>   	u64 src_offset = mem->vma[0].addr;
>   	u64 dst_offset = mem->vma[1].addr;
> -	u32 page_count = new_reg->num_pages;
> +	u32 page_count = PFN_UP(new_reg->size);
>   	int ret;
>   
> -	page_count = new_reg->num_pages;
> +	page_count = PFN_UP(new_reg->size);
>   	while (page_count) {
>   		int line_count = (page_count > 8191) ? 8191 : page_count;
>   
> diff --git a/drivers/gpu/drm/nouveau/nouveau_bo9039.c b/drivers/gpu/drm/nouveau/nouveau_bo9039.c
> index 776b04976cdf..d2bb2687d401 100644
> --- a/drivers/gpu/drm/nouveau/nouveau_bo9039.c
> +++ b/drivers/gpu/drm/nouveau/nouveau_bo9039.c
> @@ -42,10 +42,10 @@ nvc0_bo_move_m2mf(struct nouveau_channel *chan, struct ttm_buffer_object *bo,
>   	struct nouveau_mem *mem = nouveau_mem(old_reg);
>   	u64 src_offset = mem->vma[0].addr;
>   	u64 dst_offset = mem->vma[1].addr;
> -	u32 page_count = new_reg->num_pages;
> +	u32 page_count = PFN_UP(new_reg->size);
>   	int ret;
>   
> -	page_count = new_reg->num_pages;
> +	page_count = PFN_UP(new_reg->size);
>   	while (page_count) {
>   		int line_count = (page_count > 2047) ? 2047 : page_count;
>   
> diff --git a/drivers/gpu/drm/nouveau/nouveau_bo90b5.c b/drivers/gpu/drm/nouveau/nouveau_bo90b5.c
> index 8499f58213e3..4618f4f5ab56 100644
> --- a/drivers/gpu/drm/nouveau/nouveau_bo90b5.c
> +++ b/drivers/gpu/drm/nouveau/nouveau_bo90b5.c
> @@ -37,10 +37,10 @@ nvc0_bo_move_copy(struct nouveau_channel *chan, struct ttm_buffer_object *bo,
>   	struct nvif_push *push = chan->chan.push;
>   	u64 src_offset = mem->vma[0].addr;
>   	u64 dst_offset = mem->vma[1].addr;
> -	u32 page_count = new_reg->num_pages;
> +	u32 page_count = PFN_UP(new_reg->size);
>   	int ret;
>   
> -	page_count = new_reg->num_pages;
> +	page_count = PFN_UP(new_reg->size);
>   	while (page_count) {
>   		int line_count = (page_count > 8191) ? 8191 : page_count;
>   
> diff --git a/drivers/gpu/drm/nouveau/nouveau_boa0b5.c b/drivers/gpu/drm/nouveau/nouveau_boa0b5.c
> index 575212472e7a..07a5c6302c98 100644
> --- a/drivers/gpu/drm/nouveau/nouveau_boa0b5.c
> +++ b/drivers/gpu/drm/nouveau/nouveau_boa0b5.c
> @@ -58,7 +58,7 @@ nve0_bo_move_copy(struct nouveau_channel *chan, struct ttm_buffer_object *bo,
>   				PITCH_IN, PAGE_SIZE,
>   				PITCH_OUT, PAGE_SIZE,
>   				LINE_LENGTH_IN, PAGE_SIZE,
> -				LINE_COUNT, new_reg->num_pages);
> +				LINE_COUNT, PFN_UP(new_reg->size));
>   
>   	PUSH_IMMD(push, NVA0B5, LAUNCH_DMA,
>   		  NVDEF(NVA0B5, LAUNCH_DMA, DATA_TRANSFER_TYPE, NON_PIPELINED) |
> diff --git a/drivers/gpu/drm/nouveau/nouveau_gem.c b/drivers/gpu/drm/nouveau/nouveau_gem.c
> index fab542a758ff..2f479c96e415 100644
> --- a/drivers/gpu/drm/nouveau/nouveau_gem.c
> +++ b/drivers/gpu/drm/nouveau/nouveau_gem.c
> @@ -679,7 +679,7 @@ nouveau_gem_pushbuf_reloc_apply(struct nouveau_cli *cli,
>   		}
>   
>   		if (!nvbo->kmap.virtual) {
> -			ret = ttm_bo_kmap(&nvbo->bo, 0, nvbo->bo.resource->num_pages,
> +			ret = ttm_bo_kmap(&nvbo->bo, 0, PFN_UP(nvbo->bo.resource->size),
>   					  &nvbo->kmap);
>   			if (ret) {
>   				NV_PRINTK(err, cli, "failed kmap for reloc\n");
> @@ -868,8 +868,7 @@ nouveau_gem_ioctl_pushbuf(struct drm_device *dev, void *data,
>   			if (unlikely(cmd != req->suffix0)) {
>   				if (!nvbo->kmap.virtual) {
>   					ret = ttm_bo_kmap(&nvbo->bo, 0,
> -							  nvbo->bo.resource->
> -							  num_pages,
> +							  PFN_UP(nvbo->bo.resource->size),
>   							  &nvbo->kmap);
>   					if (ret) {
>   						WIND_RING(chan);
> diff --git a/drivers/gpu/drm/nouveau/nouveau_mem.c b/drivers/gpu/drm/nouveau/nouveau_mem.c
> index 76f8edefa637..1fde3a5d7c32 100644
> --- a/drivers/gpu/drm/nouveau/nouveau_mem.c
> +++ b/drivers/gpu/drm/nouveau/nouveau_mem.c
> @@ -115,7 +115,7 @@ nouveau_mem_host(struct ttm_resource *reg, struct ttm_tt *tt)
>   
>   	mutex_lock(&drm->master.lock);
>   	ret = nvif_mem_ctor_type(mmu, "ttmHostMem", cli->mem->oclass, type, PAGE_SHIFT,
> -				 reg->num_pages << PAGE_SHIFT,
> +				 reg->size,
>   				 &args, sizeof(args), &mem->mem);
>   	mutex_unlock(&drm->master.lock);
>   	return ret;
> @@ -128,7 +128,7 @@ nouveau_mem_vram(struct ttm_resource *reg, bool contig, u8 page)
>   	struct nouveau_cli *cli = mem->cli;
>   	struct nouveau_drm *drm = cli->drm;
>   	struct nvif_mmu *mmu = &cli->mmu;
> -	u64 size = ALIGN(reg->num_pages << PAGE_SHIFT, 1 << page);
> +	u64 size = ALIGN(reg->size, 1 << page);
>   	int ret;
>   
>   	mutex_lock(&drm->master.lock);
> diff --git a/drivers/gpu/drm/nouveau/nouveau_ttm.c b/drivers/gpu/drm/nouveau/nouveau_ttm.c
> index 9602c30928f2..1469a88910e4 100644
> --- a/drivers/gpu/drm/nouveau/nouveau_ttm.c
> +++ b/drivers/gpu/drm/nouveau/nouveau_ttm.c
> @@ -139,7 +139,7 @@ nv04_gart_manager_new(struct ttm_resource_manager *man,
>   	mem = nouveau_mem(*res);
>   	ttm_resource_init(bo, place, *res);
>   	ret = nvif_vmm_get(&mem->cli->vmm.vmm, PTES, false, 12, 0,
> -			   (long)(*res)->num_pages << PAGE_SHIFT, &mem->vma[0]);
> +			   (long)(*res)->size, &mem->vma[0]);
>   	if (ret) {
>   		nouveau_mem_del(man, *res);
>   		return ret;


  reply	other threads:[~2022-10-19 16:48 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-10-19 15:27 [Intel-gfx] [PATCH 1/6] drm/ttm: rework on ttm_resource to use size_t type Somalapuram Amaranath
2022-10-19 15:27 ` [Intel-gfx] [PATCH 2/6] drm/amd: fix’s on ttm_resource rework " Somalapuram Amaranath
2022-10-19 16:43   ` Christian König
2022-10-19 15:27 ` [Intel-gfx] [PATCH 3/6] drm/i915: " Somalapuram Amaranath
2022-10-19 16:44   ` Christian König
2022-10-19 15:27 ` [Intel-gfx] [PATCH 4/6] drm/nouveau: " Somalapuram Amaranath
2022-10-19 16:48   ` Christian König [this message]
2022-10-19 15:27 ` [Intel-gfx] [PATCH 5/6] drm/radeon: " Somalapuram Amaranath
2022-10-19 16:53   ` Christian König
2022-10-19 15:27 ` [Intel-gfx] [PATCH 6/6] drm/vmwgfx: " Somalapuram Amaranath
2022-10-19 16:42 ` [Intel-gfx] [PATCH 1/6] drm/ttm: rework on ttm_resource " Christian König
2022-10-20  3:56 ` kernel test robot
2022-10-20  7:49 ` kernel test robot
2022-10-24 15:15 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for series starting with [1/6] " Patchwork
2022-10-24 15:15 ` [Intel-gfx] ✗ Fi.CI.SPARSE: " Patchwork
2022-10-24 15:34 ` [Intel-gfx] ✗ Fi.CI.BAT: failure " Patchwork

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=51f6672b-230c-6a41-9ec0-27d8561c0ee2@gmail.com \
    --to=ckoenig.leichtzumerken@gmail.com \
    --cc=Amaranath.Somalapuram@amd.com \
    --cc=alexander.deucher@amd.com \
    --cc=amd-gfx@lists.freedesktop.org \
    --cc=arunpravin.paneerselvam@amd.com \
    --cc=christian.koenig@amd.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=nouveau@lists.freedesktop.org \
    /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
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox