mbox series

[0/3,backport] nvme: Consolidate chunk_sectors settings

Message ID 20200923025808.14698-1-revanth.rajashekar@intel.com
Headers show
Series nvme: Consolidate chunk_sectors settings | expand

Message

Rajashekar, Revanth Sept. 23, 2020, 2:58 a.m. UTC
Backport commit 38adf94e166e3cb4eb89683458ca578051e8218d and it's
dependencies to linux-stable 5.4.y.

Dependent commits:
314d48dd224897e35ddcaf5a1d7d133b5adddeb7
e08f2ae850929d40e66268ee47e443e7ea56eeb7

When running test cases to stress NVMe device, a race condition / deadlocks is
seen every couple of days or so where multiple threads are trying to acquire
ctrl->subsystem->lock or ctrl->scan_lock.

The test cases send a lot nvme-cli requests to do Sanitize, Format, FW Download,
FW Activate, Flush, Get Log, Identify, and reset requests to two controllers
that share a namespace. Some of those commands target a namespace, some target
a controller.  The commands are sent in random order and random mix to the two
controllers.

The test cases does not wait for nvme-cli requests to finish before sending more.
So for example, there could be multiple reset requests, multiple format requests,
outstanding at the same time as a sanitize, on both paths at the same time, etc.
Many of these test cases include combos that don't really make sense in the
context of NVMe, however it is used to create as much stress as possible.

This patchset fixes this issue.

Similar issue with a detailed call trace/log was discussed in the LKML
Link: https://lore.kernel.org/linux-nvme/04580CD6-7652-459D-ABDD-732947B4A6DF@javigon.com/

Revanth Rajashekar (3):
  nvme: Cleanup and rename nvme_block_nr()
  nvme: Introduce nvme_lba_to_sect()
  nvme: consolidate chunk_sectors settings

 drivers/nvme/host/core.c | 40 +++++++++++++++++++---------------------
 drivers/nvme/host/nvme.h | 16 +++++++++++++---
 2 files changed, 32 insertions(+), 24 deletions(-)

--
2.17.1

Comments

Greg KH Oct. 5, 2020, 1:23 p.m. UTC | #1
On Tue, Sep 22, 2020 at 08:58:05PM -0600, Revanth Rajashekar wrote:
> Backport commit 38adf94e166e3cb4eb89683458ca578051e8218d and it's
> dependencies to linux-stable 5.4.y.
> 
> Dependent commits:
> 314d48dd224897e35ddcaf5a1d7d133b5adddeb7
> e08f2ae850929d40e66268ee47e443e7ea56eeb7
> 
> When running test cases to stress NVMe device, a race condition / deadlocks is
> seen every couple of days or so where multiple threads are trying to acquire
> ctrl->subsystem->lock or ctrl->scan_lock.
> 
> The test cases send a lot nvme-cli requests to do Sanitize, Format, FW Download,
> FW Activate, Flush, Get Log, Identify, and reset requests to two controllers
> that share a namespace. Some of those commands target a namespace, some target
> a controller.  The commands are sent in random order and random mix to the two
> controllers.
> 
> The test cases does not wait for nvme-cli requests to finish before sending more.
> So for example, there could be multiple reset requests, multiple format requests,
> outstanding at the same time as a sanitize, on both paths at the same time, etc.
> Many of these test cases include combos that don't really make sense in the
> context of NVMe, however it is used to create as much stress as possible.
> 
> This patchset fixes this issue.
> 
> Similar issue with a detailed call trace/log was discussed in the LKML
> Link: https://lore.kernel.org/linux-nvme/04580CD6-7652-459D-ABDD-732947B4A6DF@javigon.com/
> 
> Revanth Rajashekar (3):
>   nvme: Cleanup and rename nvme_block_nr()
>   nvme: Introduce nvme_lba_to_sect()
>   nvme: consolidate chunk_sectors settings
> 
>  drivers/nvme/host/core.c | 40 +++++++++++++++++++---------------------
>  drivers/nvme/host/nvme.h | 16 +++++++++++++---
>  2 files changed, 32 insertions(+), 24 deletions(-)

For some reason you forgot to credit, and cc: all of the people on the
original patches, which isn't very nice, don't you think?

Next time please be more careful.

greg k-h
Rajashekar, Revanth Oct. 5, 2020, 3:16 p.m. UTC | #2
On 10/5/2020 7:23 AM, Greg KH wrote:
> On Tue, Sep 22, 2020 at 08:58:05PM -0600, Revanth Rajashekar wrote:
>> Backport commit 38adf94e166e3cb4eb89683458ca578051e8218d and it's
>> dependencies to linux-stable 5.4.y.
>>
>> Dependent commits:
>> 314d48dd224897e35ddcaf5a1d7d133b5adddeb7
>> e08f2ae850929d40e66268ee47e443e7ea56eeb7
>>
>> When running test cases to stress NVMe device, a race condition / deadlocks is
>> seen every couple of days or so where multiple threads are trying to acquire
>> ctrl->subsystem->lock or ctrl->scan_lock.
>>
>> The test cases send a lot nvme-cli requests to do Sanitize, Format, FW Download,
>> FW Activate, Flush, Get Log, Identify, and reset requests to two controllers
>> that share a namespace. Some of those commands target a namespace, some target
>> a controller.  The commands are sent in random order and random mix to the two
>> controllers.
>>
>> The test cases does not wait for nvme-cli requests to finish before sending more.
>> So for example, there could be multiple reset requests, multiple format requests,
>> outstanding at the same time as a sanitize, on both paths at the same time, etc.
>> Many of these test cases include combos that don't really make sense in the
>> context of NVMe, however it is used to create as much stress as possible.
>>
>> This patchset fixes this issue.
>>
>> Similar issue with a detailed call trace/log was discussed in the LKML
>> Link: https://lore.kernel.org/linux-nvme/04580CD6-7652-459D-ABDD-732947B4A6DF@javigon.com/
>>
>> Revanth Rajashekar (3):
>>   nvme: Cleanup and rename nvme_block_nr()
>>   nvme: Introduce nvme_lba_to_sect()
>>   nvme: consolidate chunk_sectors settings
>>
>>  drivers/nvme/host/core.c | 40 +++++++++++++++++++---------------------
>>  drivers/nvme/host/nvme.h | 16 +++++++++++++---
>>  2 files changed, 32 insertions(+), 24 deletions(-)
> For some reason you forgot to credit, and cc: all of the people on the
> original patches, which isn't very nice, don't you think?
>
> Next time please be more careful.
>
> greg k-h
I'm really sorry for missing out a few people from the cc list who are on the original patch.
Thought only the signed-off names go in there.
Will make sure this won't happen again and thanks for pointing it out :)

Thanks!
Revanth