Re: [PATCH] scsi: sd: Keep the discard mode stable
From: Li Feng
Date: Mon Jun 17 2024 - 05:03:53 EST
> 2024年6月17日 14:17,Christoph Hellwig <hch@xxxxxxxxxxxxx> 写道:
>
> On Sat, Jun 15, 2024 at 12:03:47AM +0800, Li Feng wrote:
>> + /*
>> + * When the discard mode has been set to UNMAP, it should not be set to
>
> Overly long line here.
OK.
>
>> + * WRITE SAME with UNMAP.
>> + */
>> + if (!sdkp->max_unmap_blocks)
>> + sd_config_discard(sdkp, SD_LBP_WS16);
>
> But more importantly this doesn't really scale to all the variations
> of reported / guessed at probe time vs overriden. I think you just
> need an explicit override flag that skips the discard settings.
>
I think we only need to prevent the temporary change of discard mode
from UNMAP to WS16, and this patch should be enough.
Maybe it is a good idea to remove the call to sd_config_discard
from read_capacity_16 . Because the unmap_alignment/ unmap_granularity
used by sd_config_discard are assigned in sd_read_block_limits.
sd_read_block_limits is enough to negotiate the discard parameter.
It is redundant for read_capacity to modify the discard parameter. In this way,
when the SCSI probe sends read_capacity first and then read block limits,
it avoids the change of discard from DISABLE to WS16 to UNMAP.
Thanks,
Li