On 5/23/25 16:39, Alex Deucher wrote:
> On Fri, May 23, 2025 at 10:12 AM Alex Deucher <alexdeuc...@gmail.com> wrote:
>>
>> On Fri, May 23, 2025 at 10:03 AM Christian König
>> <christian.koe...@amd.com> wrote:
>>>
>>> On 5/23/25 15:58, Alex Deucher wrote:
>>>> I think that's probably the best option.  I was thinking we could
>>>> mirror the ring frames for each gang and after a reset, we submit the
>>>> unprocessed frames again.  That way we can still do a ring test to
>>>> make sure the ring is functional after the reset and then submit the
>>>> unprocessed work.
>>>
>>> Keep in mind that we can't allocate any memory during submission or in a 
>>> reset.
>>
>> Yeah, I was thinking we'd just have a static mirror allocated upfront.
>>
>>>
>>> I think we should just tell the newly mapped kernel ring to start to from 
>>> the known good RPTR and process to whatever the current WPTR is. Only after 
>>> that an IB test should be inserted.
>>
>> I considered that, but we don't know if the reset worked or not
>> without some sort of test.  I guess we could put an IB test at the
>> end, but it may take a while if there is a lot of content to process.
>> I guess that's not really fundamentally different from how vmid reset
>> is supposed to work anyway.  We should be able to set the requested
>> wptr/rptr in the MQD when we map the ring after the reset.
> 
> I think I've got something workable.  What's the best way to keep
> track of the last known good RPTR?

Good question. We could stuff that into the fence, but I'm not 100% sure if 
that would be correct or not.

Could be that there is still stuff behind the fence which we don't want to 
execute.

Christian.


> 
> Alex
> 
>>
>>>
>>> We could also modify the conditional code used for MCBP to skip processing 
>>> for a specific VMID by applying a mask instead of always checking for 0 and 
>>> 1.
>>
>> How would that work?  I haven't paged that into my head in a while.
>>
>> Alex
>>
>>>
>>> Christian.

Reply via email to