diff mbox series

linux-next: manual merge of the amdgpu tree with the drm-misc tree

Message ID 20220406103405.299c06b9@canb.auug.org.au (mailing list archive)
State New, archived
Headers show
Series linux-next: manual merge of the amdgpu tree with the drm-misc tree | expand

Commit Message

Stephen Rothwell April 6, 2022, 12:34 a.m. UTC
Hi all,

Today's linux-next merge of the amdgpu tree got a conflict in:

  drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c

between commit:

  fee2ede15542 ("drm/ttm: rework bulk move handling v5")

from the drm-misc tree and commit:

  184a69ca4d41 ("drm/amdgpu: separate VM PT handling into amdgpu_vm_pt.c")

from the amdgpu tree.

I fixed it up (I used this file from the latter and added the following
patch) and can carry the fix as necessary. This is now fixed as far as
linux-next is concerned, but any non trivial conflicts should be mentioned
to your upstream maintainer when your tree is submitted for merging.
You may also want to consider cooperating with the maintainer of the
conflicting tree to minimise any particularly complex conflicts.

From: Stephen Rothwell <sfr@canb.auug.org.au>
Date: Wed, 6 Apr 2022 10:28:53 +1000
Subject: [PATCH] fix up for "drm/ttm: rework bulk move handling v5"

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_vm_pt.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

Comments

Stephen Rothwell April 13, 2022, 12:10 a.m. UTC | #1
Hi all,

On Wed, 6 Apr 2022 10:34:05 +1000 Stephen Rothwell <sfr@canb.auug.org.au> wrote:
>
> Today's linux-next merge of the amdgpu tree got a conflict in:
> 
>   drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
> 
> between commit:
> 
>   fee2ede15542 ("drm/ttm: rework bulk move handling v5")
> 
> from the drm-misc tree and commit:
> 
>   184a69ca4d41 ("drm/amdgpu: separate VM PT handling into amdgpu_vm_pt.c")
> 
> from the amdgpu tree.
> 
> I fixed it up (I used this file from the latter and added the following
> patch) and can carry the fix as necessary. This is now fixed as far as
> linux-next is concerned, but any non trivial conflicts should be mentioned
> to your upstream maintainer when your tree is submitted for merging.
> You may also want to consider cooperating with the maintainer of the
> conflicting tree to minimise any particularly complex conflicts.
> 
> From: Stephen Rothwell <sfr@canb.auug.org.au>
> Date: Wed, 6 Apr 2022 10:28:53 +1000
> Subject: [PATCH] fix up for "drm/ttm: rework bulk move handling v5"
> 
> Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
> ---
>  drivers/gpu/drm/amd/amdgpu/amdgpu_vm_pt.c | 9 +++++++--
>  1 file changed, 7 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm_pt.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm_pt.c
> index 958d7ed97882..a29933fa001f 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm_pt.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm_pt.c
> @@ -630,7 +630,14 @@ static void amdgpu_vm_pt_free(struct amdgpu_vm_bo_base *entry)
>  
>  	if (!entry->bo)
>  		return;
> +
>  	shadow = amdgpu_bo_shadowed(entry->bo);
> +	if (shadow) {
> +		ttm_bo_set_bulk_move(&shadow->tbo, NULL);
> +		amdgpu_bo_unref(&shadow);
> +	}
> +
> +	ttm_bo_set_bulk_move(&entry->bo->tbo, NULL);
>  	entry->bo->vm_bo = NULL;
>  	list_del(&entry->vm_status);
>  	amdgpu_bo_unref(&shadow);
> @@ -653,8 +660,6 @@ static void amdgpu_vm_pt_free_dfs(struct amdgpu_device *adev,
>  	struct amdgpu_vm_pt_cursor cursor;
>  	struct amdgpu_vm_bo_base *entry;
>  
> -	vm->bulk_moveable = false;
> -
>  	for_each_amdgpu_vm_pt_dfs_safe(adev, vm, start, cursor, entry)
>  		amdgpu_vm_pt_free(entry);
>  
> -- 
> 2.35.1

This is now a conflict between the drm tree and the amdgpu tree.
Stephen Rothwell April 29, 2022, 1:13 a.m. UTC | #2
Hi all,

On Wed, 13 Apr 2022 10:10:14 +1000 Stephen Rothwell <sfr@canb.auug.org.au> wrote:
>
> On Wed, 6 Apr 2022 10:34:05 +1000 Stephen Rothwell <sfr@canb.auug.org.au> wrote:
> >
> > Today's linux-next merge of the amdgpu tree got a conflict in:
> > 
> >   drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
> > 
> > between commit:
> > 
> >   fee2ede15542 ("drm/ttm: rework bulk move handling v5")
> > 
> > from the drm-misc tree and commit:
> > 
> >   184a69ca4d41 ("drm/amdgpu: separate VM PT handling into amdgpu_vm_pt.c")
> > 
> > from the amdgpu tree.
> > 
> > I fixed it up (I used this file from the latter and added the following
> > patch) and can carry the fix as necessary. This is now fixed as far as
> > linux-next is concerned, but any non trivial conflicts should be mentioned
> > to your upstream maintainer when your tree is submitted for merging.
> > You may also want to consider cooperating with the maintainer of the
> > conflicting tree to minimise any particularly complex conflicts.
> > 
> > From: Stephen Rothwell <sfr@canb.auug.org.au>
> > Date: Wed, 6 Apr 2022 10:28:53 +1000
> > Subject: [PATCH] fix up for "drm/ttm: rework bulk move handling v5"
> > 
> > Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
> > ---
> >  drivers/gpu/drm/amd/amdgpu/amdgpu_vm_pt.c | 9 +++++++--
> >  1 file changed, 7 insertions(+), 2 deletions(-)
> > 
> > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm_pt.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm_pt.c
> > index 958d7ed97882..a29933fa001f 100644
> > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm_pt.c
> > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm_pt.c
> > @@ -630,7 +630,14 @@ static void amdgpu_vm_pt_free(struct amdgpu_vm_bo_base *entry)
> >  
> >  	if (!entry->bo)
> >  		return;
> > +
> >  	shadow = amdgpu_bo_shadowed(entry->bo);
> > +	if (shadow) {
> > +		ttm_bo_set_bulk_move(&shadow->tbo, NULL);
> > +		amdgpu_bo_unref(&shadow);
> > +	}
> > +
> > +	ttm_bo_set_bulk_move(&entry->bo->tbo, NULL);
> >  	entry->bo->vm_bo = NULL;
> >  	list_del(&entry->vm_status);
> >  	amdgpu_bo_unref(&shadow);
> > @@ -653,8 +660,6 @@ static void amdgpu_vm_pt_free_dfs(struct amdgpu_device *adev,
> >  	struct amdgpu_vm_pt_cursor cursor;
> >  	struct amdgpu_vm_bo_base *entry;
> >  
> > -	vm->bulk_moveable = false;
> > -
> >  	for_each_amdgpu_vm_pt_dfs_safe(adev, vm, start, cursor, entry)
> >  		amdgpu_vm_pt_free(entry);
> >  
> > -- 
> > 2.35.1  
> 
> This is now a conflict between the drm tree and the amdgpu tree.

I noticed that commit 184a69ca4d41 was merged into the drm tree but
only the second hunk of this merge fixup was applied.  So is the first
hunk above unnecessary?
Christian König April 29, 2022, 10:38 a.m. UTC | #3
Am 29.04.22 um 03:13 schrieb Stephen Rothwell:
> Hi all,
>
> On Wed, 13 Apr 2022 10:10:14 +1000 Stephen Rothwell <sfr@canb.auug.org.au> wrote:
>> On Wed, 6 Apr 2022 10:34:05 +1000 Stephen Rothwell <sfr@canb.auug.org.au> wrote:
>>> Today's linux-next merge of the amdgpu tree got a conflict in:
>>>
>>>    drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
>>>
>>> between commit:
>>>
>>>    fee2ede15542 ("drm/ttm: rework bulk move handling v5")
>>>
>>> from the drm-misc tree and commit:
>>>
>>>    184a69ca4d41 ("drm/amdgpu: separate VM PT handling into amdgpu_vm_pt.c")
>>>
>>> from the amdgpu tree.
>>>
>>> I fixed it up (I used this file from the latter and added the following
>>> patch) and can carry the fix as necessary. This is now fixed as far as
>>> linux-next is concerned, but any non trivial conflicts should be mentioned
>>> to your upstream maintainer when your tree is submitted for merging.
>>> You may also want to consider cooperating with the maintainer of the
>>> conflicting tree to minimise any particularly complex conflicts.
>>>
>>> From: Stephen Rothwell <sfr@canb.auug.org.au>
>>> Date: Wed, 6 Apr 2022 10:28:53 +1000
>>> Subject: [PATCH] fix up for "drm/ttm: rework bulk move handling v5"
>>>
>>> Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
>>> ---
>>>   drivers/gpu/drm/amd/amdgpu/amdgpu_vm_pt.c | 9 +++++++--
>>>   1 file changed, 7 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm_pt.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm_pt.c
>>> index 958d7ed97882..a29933fa001f 100644
>>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm_pt.c
>>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm_pt.c
>>> @@ -630,7 +630,14 @@ static void amdgpu_vm_pt_free(struct amdgpu_vm_bo_base *entry)
>>>   
>>>   	if (!entry->bo)
>>>   		return;
>>> +
>>>   	shadow = amdgpu_bo_shadowed(entry->bo);
>>> +	if (shadow) {
>>> +		ttm_bo_set_bulk_move(&shadow->tbo, NULL);
>>> +		amdgpu_bo_unref(&shadow);
>>> +	}
>>> +
>>> +	ttm_bo_set_bulk_move(&entry->bo->tbo, NULL);
>>>   	entry->bo->vm_bo = NULL;
>>>   	list_del(&entry->vm_status);
>>>   	amdgpu_bo_unref(&shadow);
>>> @@ -653,8 +660,6 @@ static void amdgpu_vm_pt_free_dfs(struct amdgpu_device *adev,
>>>   	struct amdgpu_vm_pt_cursor cursor;
>>>   	struct amdgpu_vm_bo_base *entry;
>>>   
>>> -	vm->bulk_moveable = false;
>>> -
>>>   	for_each_amdgpu_vm_pt_dfs_safe(adev, vm, start, cursor, entry)
>>>   		amdgpu_vm_pt_free(entry);
>>>   
>>> -- 
>>> 2.35.1
>> This is now a conflict between the drm tree and the amdgpu tree.
> I noticed that commit 184a69ca4d41 was merged into the drm tree but
> only the second hunk of this merge fixup was applied.  So is the first
> hunk above unnecessary?

Ah! Thanks a lot for noticing this.

And the hunk is absolutely necessary and we already have a bug report 
that it is missing wondering why I can't reproduce this.

Thanks,
Christian.
diff mbox series

Patch

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm_pt.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm_pt.c
index 958d7ed97882..a29933fa001f 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm_pt.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm_pt.c
@@ -630,7 +630,14 @@  static void amdgpu_vm_pt_free(struct amdgpu_vm_bo_base *entry)
 
 	if (!entry->bo)
 		return;
+
 	shadow = amdgpu_bo_shadowed(entry->bo);
+	if (shadow) {
+		ttm_bo_set_bulk_move(&shadow->tbo, NULL);
+		amdgpu_bo_unref(&shadow);
+	}
+
+	ttm_bo_set_bulk_move(&entry->bo->tbo, NULL);
 	entry->bo->vm_bo = NULL;
 	list_del(&entry->vm_status);
 	amdgpu_bo_unref(&shadow);
@@ -653,8 +660,6 @@  static void amdgpu_vm_pt_free_dfs(struct amdgpu_device *adev,
 	struct amdgpu_vm_pt_cursor cursor;
 	struct amdgpu_vm_bo_base *entry;
 
-	vm->bulk_moveable = false;
-
 	for_each_amdgpu_vm_pt_dfs_safe(adev, vm, start, cursor, entry)
 		amdgpu_vm_pt_free(entry);