1. Don't touch the preamble flag at all, just keep that handling as it is for 
now.

2. Add the CONTEXT_CONTROL with the appropriate handling on context switch and 
bump the version number to signal that this is done.

3. When #2 is upstream we hack on Mesa to drop the CONTEXT_CONTROL packets from 
its IBs when it sees the new kernel version.

4. When we release SR-IOV we add some logic to the kernel driver to ignore the 
preamble flag.


[ml] 
Let's simplify the problem and don't involve SR-IOV currently, the object is 
that:
A) We change dma frame to make it compatible with standard/documented scheme, 
which is aligned with d3d and close OGL, and meanwhile
B) We keep current MESA still work.

For A), we need CONTEXT_CONTROL always inserted in ring buffer, because the 
load_xxx of close OGL  is dynamically skipped/kept by CONTEXT_CONTROL in ring 
buffer.
So your #2 seems not correct, because if we only insert CONTEXT_CONTROL when 
doing context switch, that means the load_xxx from CEIB/DEIB of close OGL is 
always kept ( and only Preamble is skipped) even there is no context switch, 
and this harms performance.

Since MESA use CONTEXT_CONTROL in IB, so the CONTEXT_CONTROL in ring buffer 
will be replaced by MESA, that means kmd can always insert CONTEXT_CONTROL.

With above concerns, I think the step could follow below steps:

1. keep original preamble_flag logic: skip the preamble IB if no context switch 
occurs, so that old MESA doesn't break. 
        Note: I remembered  @Bas mentioned that even no context switch, 
preamble IB should be kept because MESA rely on Preamble IB to do some L2 
update like shader uniforms. I think that's wrong, because original           
logic is we always skip Preamble IB when no context switch occurs.
2.always Insert CONTEXT_CONTROL before ALL IB in ring buffer, and this 
CONTEXT_CONTROL skips load_xxx when no context switch ( keep load_xxx when 
context switch), so the close OGL can gain performance and supported by kmd 
with right logic.  
        Note: like I said, MESA shouldn't get trouble with #2 because current 
MESA's CONTEXT_CONROL in IB will override the one of kmd.

3.Bump up KMS version to notify MESA that KMD already use CONTEXT_CONTROL,  for 
MESA we change it and let it not insert CONTEXT_CONTROL when talking with new 
version KMS. Also Mesa should make Preamble CEIb, CEIB, DEIB behave the same 
way as close OGL.


I think above steps can satisfy both current MESA an close OGL logic, as well 
as new MESA logic.
after sr-iov get upstreamed, kmd can remove the logic of "skip Preamble IB when 
no context switch".


What do you guys think

BR monk






-----Original Message-----
From: Christian König [mailto:[email protected]] 
Sent: Tuesday, September 06, 2016 5:39 PM
To: Liu, Monk <[email protected]>; Koenig, Christian <[email protected]>; 
Bas Nieuwenhuizen <[email protected]>
Cc: [email protected]
Subject: Re: [PATCH] drm/amdgpu:implement CONTEXT_CONTROL (v3)

> 1) Is that my patch must work with current MESA driver ? (even MESA doesn't 
> change any bit of its logic) ?
Yes and it must work with all old versions of Mesa. This is usual the tricky 
part to get right and most of my concern right now.

> 2) is that my patch can let kmd go to a new path (using CONTEXT_CONTROL) with 
> bump up the KMS version ?
No, not necessary. Bumping the KMS version can only be used to signal to Mesa 
that it can use a new feature. E.g. Mesa can then stop to use CONTEXT_CONTROL 
in it's IBs, but there isn't any guarantee that it does.

> 3) will MESA change its logic (align with close OGL driver) and bump up its 
> version so that new version MESA can work with new version KMS/kmd?
No, usually Mesa is changed in a way so that it works with both old and new 
kernel drivers. Only when there is a really good reason (usually critical bugs 
in the kernel driver) Mesa will drop support for older kernel versions.

As I said in my internal mail let's do it like this:

1. Don't touch the preamble flag at all, just keep that handling as it is for 
now.

2. Add the CONTEXT_CONTROL with the appropriate handling on context switch and 
bump the version number to signal that this is done.

3. When #2 is upstream we hack on Mesa to drop the CONTEXT_CONTROL packets from 
it's IBs when it sees the new kernel version.

4. When we release SR-IOV we add some logic to the kernel driver to ignore the 
preamble flag.

Regards,
Christian.

Am 06.09.2016 um 11:28 schrieb Liu, Monk:
> Hi Bas & Christian
>
> I'm not familiar with the policy of upstream kernel driver, so I 
> cannot say if your proposal is doable or not,
>
> I have questions:
>
> 1) Is that my patch must work with current MESA driver ? (even MESA doesn't 
> change any bit of its logic) ?
> 2) is that my patch can let kmd go to a new path (using CONTEXT_CONTROL) with 
> bump up the KMS version ?
> 3) will MESA change its logic (align with close OGL driver) and bump up its 
> version so that new version MESA can work with new version KMS/kmd?
>
> With above question addressed, we can together discuss how to modify 
> CONTEXT_CONTROL patch
>
> BR Monk
>
>
>
>
> -----Original Message-----
> From: Koenig, Christian
> Sent: Monday, September 05, 2016 7:57 PM
> To: Liu, Monk <[email protected]>
> Cc: brahma_hybrid_dev <[email protected]>
> Subject: Re: [PATCH] drm/amdgpu:implement CONTEXT_CONTROL (v3)
>
> Another possible solution which just came to my mind: Completely ignore the 
> preamble flag on the IB on keep the existing preamble handling as it is.
>
> Just insert a CONTEXT_CONTROL package at the beginning of the command 
> submission controlled by if we have seen a context switch or not and then 
> raise the driver version number.
>
> Then we can fix Mesa to not emit the CONTEXT_CONTROL commands from the UMD 
> any more and when SR-IOV comes out we add a handling to ignore the preamble 
> flag in the kernel when it is activated.
>
> Does that sounds like it should work?
>
> Regards,
> Christian.
>
>
> _______________________________________________
> amd-gfx mailing list
> [email protected]
> https://lists.freedesktop.org/mailman/listinfo/amd-gfx


_______________________________________________
amd-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

Reply via email to