All of lore.kernel.org
 help / color / mirror / Atom feed
* [SPDK] I/O getting lost on retry?
@ 2018-01-19 17:36 Andrey Kuzmin
  0 siblings, 0 replies; 3+ messages in thread
From: Andrey Kuzmin @ 2018-01-19 17:36 UTC (permalink / raw)
  To: spdk

[-- Attachment #1: Type: text/plain, Size: 643 bytes --]

Just looking at the code below, doesn't the command being retried get lost
after the break statement  if the block device is still in the nomem
condition?

Regards,
Andrey

diff --git a/lib/bdev/bdev.c b/lib/bdev/bdev.c
index ba64994..77328ae 100644
--- a/lib/bdev/bdev.c
+++ b/lib/bdev/bdev.c
@@ -1567,10 +1567,11 @@
  TAILQ_REMOVE(&bdev_ch->nomem_io, bdev_io, link);
  bdev_ch->io_outstanding++;
  bdev_io->status = SPDK_BDEV_IO_STATUS_PENDING;
  bdev->fn_table->submit_request(bdev_ch->channel, bdev_io);
  if (bdev_io->status == SPDK_BDEV_IO_STATUS_NOMEM) {
+ /** Doesn't the io get lost here? */
  break;
  }
  }
 }

[-- Attachment #2: attachment.html --]
[-- Type: text/html, Size: 1250 bytes --]

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [SPDK] I/O getting lost on retry?
@ 2018-01-19 18:07 Andrey Kuzmin
  0 siblings, 0 replies; 3+ messages in thread
From: Andrey Kuzmin @ 2018-01-19 18:07 UTC (permalink / raw)
  To: spdk

[-- Attachment #1: Type: text/plain, Size: 1654 bytes --]

On Fri, Jan 19, 2018 at 9:02 PM, Harris, James R <james.r.harris(a)intel.com>
wrote:

>
>
>
>
> *From: *SPDK <spdk-bounces(a)lists.01.org> on behalf of Andrey Kuzmin <
> andrey.v.kuzmin(a)gmail.com>
> *Reply-To: *Storage Performance Development Kit <spdk(a)lists.01.org>
> *Date: *Friday, January 19, 2018 at 10:36 AM
> *To: *Storage Performance Development Kit <spdk(a)lists.01.org>
> *Subject: *[SPDK] I/O getting lost on retry?
>
>
>
> Just looking at the code below, doesn't the command being retried get lost
> after the break statement  if the block device is still in the nomem
> condition?
>
> Regards,
> Andrey
>
> Hi Andrey,
>
> diff --git a/lib/bdev/bdev.c b/lib/bdev/bdev.c
>
> index ba64994..77328ae 100644
>
> --- a/lib/bdev/bdev.c
>
> +++ b/lib/bdev/bdev.c
>
> @@ -1567,10 +1567,11 @@
>
>   TAILQ_REMOVE(&bdev_ch->nomem_io, bdev_io, link);
>
>   bdev_ch->io_outstanding++;
>
>   bdev_io->status = SPDK_BDEV_IO_STATUS_PENDING;
>
>   bdev->fn_table->submit_request(bdev_ch->channel, bdev_io);
>
>   if (bdev_io->status == SPDK_BDEV_IO_STATUS_NOMEM) {
>
> + /** Doesn't the io get lost here? */
>
>   break;
>
>   }
>
>   }
>
>  }
>
>
>
> In this case, the bdev module will have called spdk_bdev_io_complete()
> within the submit_request() context.  spdk_bdev_io_complete() puts this
> bdev_io back at the head of the TAILQ.
>

Thanks Jim, that makes sense.

Regards,
Andrey


>
>
> Regards,
>
>
>
> -Jim
>
>
>
>
>
> _______________________________________________
> SPDK mailing list
> SPDK(a)lists.01.org
> https://lists.01.org/mailman/listinfo/spdk
>
>

[-- Attachment #2: attachment.html --]
[-- Type: text/html, Size: 5365 bytes --]

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [SPDK] I/O getting lost on retry?
@ 2018-01-19 18:02 Harris, James R
  0 siblings, 0 replies; 3+ messages in thread
From: Harris, James R @ 2018-01-19 18:02 UTC (permalink / raw)
  To: spdk

[-- Attachment #1: Type: text/plain, Size: 1185 bytes --]



From: SPDK <spdk-bounces(a)lists.01.org> on behalf of Andrey Kuzmin <andrey.v.kuzmin(a)gmail.com>
Reply-To: Storage Performance Development Kit <spdk(a)lists.01.org>
Date: Friday, January 19, 2018 at 10:36 AM
To: Storage Performance Development Kit <spdk(a)lists.01.org>
Subject: [SPDK] I/O getting lost on retry?

Just looking at the code below, doesn't the command being retried get lost after the break statement  if the block device is still in the nomem condition?

Regards,
Andrey
Hi Andrey,
diff --git a/lib/bdev/bdev.c b/lib/bdev/bdev.c
index ba64994..77328ae 100644
--- a/lib/bdev/bdev.c
+++ b/lib/bdev/bdev.c
@@ -1567,10 +1567,11 @@
  TAILQ_REMOVE(&bdev_ch->nomem_io, bdev_io, link);
  bdev_ch->io_outstanding++;
  bdev_io->status = SPDK_BDEV_IO_STATUS_PENDING;
  bdev->fn_table->submit_request(bdev_ch->channel, bdev_io);
  if (bdev_io->status == SPDK_BDEV_IO_STATUS_NOMEM) {
+ /** Doesn't the io get lost here? */
  break;
  }
  }
 }

In this case, the bdev module will have called spdk_bdev_io_complete() within the submit_request() context.  spdk_bdev_io_complete() puts this bdev_io back at the head of the TAILQ.

Regards,

-Jim



[-- Attachment #2: attachment.html --]
[-- Type: text/html, Size: 5389 bytes --]

^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2018-01-19 18:07 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-01-19 17:36 [SPDK] I/O getting lost on retry? Andrey Kuzmin
2018-01-19 18:02 Harris, James R
2018-01-19 18:07 Andrey Kuzmin

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.