2023-07-12 18:13:50

by Fenghua Yu

[permalink] [raw]
Subject: [PATCH v2] dmaengine: idxd: Clear PRS disable flag when disabling IDXD device

Disabling IDXD device doesn't reset Page Request Service (PRS)
disable flag to its initial value 0. This may cause user confusion
because once PRS is disabled user will see PRS still remains the
previous setting (i.e. disabled) via sysfs interface even after the
device is disabled.

To eliminate the confusion, reset PRS disable flag when the device
is disabled.

Tested-by: Tony Zhu <[email protected]>
Signed-off-by: Fenghua Yu <[email protected]>
---
v2:
- Fix Tony's email typo

drivers/dma/idxd/device.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/drivers/dma/idxd/device.c b/drivers/dma/idxd/device.c
index 5abbcc61c528..71dfb2c13066 100644
--- a/drivers/dma/idxd/device.c
+++ b/drivers/dma/idxd/device.c
@@ -387,6 +387,7 @@ static void idxd_wq_disable_cleanup(struct idxd_wq *wq)
clear_bit(WQ_FLAG_DEDICATED, &wq->flags);
clear_bit(WQ_FLAG_BLOCK_ON_FAULT, &wq->flags);
clear_bit(WQ_FLAG_ATS_DISABLE, &wq->flags);
+ clear_bit(WQ_FLAG_PRS_DISABLE, &wq->flags);
memset(wq->name, 0, WQ_NAME_SIZE);
wq->max_xfer_bytes = WQ_DEFAULT_MAX_XFER;
idxd_wq_set_max_batch_size(idxd->data->type, wq, WQ_DEFAULT_MAX_BATCH);
--
2.37.1



2023-07-12 18:17:24

by Dave Jiang

[permalink] [raw]
Subject: Re: [PATCH v2] dmaengine: idxd: Clear PRS disable flag when disabling IDXD device



On 7/12/23 10:42, Fenghua Yu wrote:
> Disabling IDXD device doesn't reset Page Request Service (PRS)
> disable flag to its initial value 0. This may cause user confusion
> because once PRS is disabled user will see PRS still remains the
> previous setting (i.e. disabled) via sysfs interface even after the
> device is disabled.
>
> To eliminate the confusion, reset PRS disable flag when the device
> is disabled.
>
> Tested-by: Tony Zhu <[email protected]>
> Signed-off-by: Fenghua Yu <[email protected]>

Should there be a Fixes tag?
> ---
> v2:
> - Fix Tony's email typo
>
> drivers/dma/idxd/device.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/drivers/dma/idxd/device.c b/drivers/dma/idxd/device.c
> index 5abbcc61c528..71dfb2c13066 100644
> --- a/drivers/dma/idxd/device.c
> +++ b/drivers/dma/idxd/device.c
> @@ -387,6 +387,7 @@ static void idxd_wq_disable_cleanup(struct idxd_wq *wq)
> clear_bit(WQ_FLAG_DEDICATED, &wq->flags);
> clear_bit(WQ_FLAG_BLOCK_ON_FAULT, &wq->flags);
> clear_bit(WQ_FLAG_ATS_DISABLE, &wq->flags);
> + clear_bit(WQ_FLAG_PRS_DISABLE, &wq->flags);

I wonder if it's better if we just do wq->flags = 0? I don't see any
bits we need to preserve. Do you?

> memset(wq->name, 0, WQ_NAME_SIZE);
> wq->max_xfer_bytes = WQ_DEFAULT_MAX_XFER;
> idxd_wq_set_max_batch_size(idxd->data->type, wq, WQ_DEFAULT_MAX_BATCH);

2023-07-12 20:13:53

by Fenghua Yu

[permalink] [raw]
Subject: Re: [PATCH v2] dmaengine: idxd: Clear PRS disable flag when disabling IDXD device

Hi, Dave,

On 7/12/23 10:58, Dave Jiang wrote:
>
>
> On 7/12/23 10:42, Fenghua Yu wrote:
>> Disabling IDXD device doesn't reset Page Request Service (PRS)
>> disable flag to its initial value 0. This may cause user confusion
>> because once PRS is disabled user will see PRS still remains the
>> previous setting (i.e. disabled) via sysfs interface even after the
>> device is disabled.
>>
>> To eliminate the confusion, reset PRS disable flag when the device
>> is disabled.
>>
>> Tested-by: Tony Zhu <[email protected]>
>> Signed-off-by: Fenghua Yu <[email protected]>
>
> Should there be a Fixes tag?

Will add a Fixes tag.

>> ---
>> v2:
>> - Fix Tony's email typo
>>
>>   drivers/dma/idxd/device.c | 1 +
>>   1 file changed, 1 insertion(+)
>>
>> diff --git a/drivers/dma/idxd/device.c b/drivers/dma/idxd/device.c
>> index 5abbcc61c528..71dfb2c13066 100644
>> --- a/drivers/dma/idxd/device.c
>> +++ b/drivers/dma/idxd/device.c
>> @@ -387,6 +387,7 @@ static void idxd_wq_disable_cleanup(struct idxd_wq
>> *wq)
>>       clear_bit(WQ_FLAG_DEDICATED, &wq->flags);
>>       clear_bit(WQ_FLAG_BLOCK_ON_FAULT, &wq->flags);
>>       clear_bit(WQ_FLAG_ATS_DISABLE, &wq->flags);
>> +    clear_bit(WQ_FLAG_PRS_DISABLE, &wq->flags);
>
> I wonder if it's better if we just do wq->flags = 0? I don't see any
> bits we need to preserve. Do you?

wq->flags = 0 is better.

Thanks.

-Fenghua