All of lore.kernel.org
 help / color / mirror / Atom feed
From: Daniel Axtens <dja@axtens.net>
To: Uma Krishnan <ukrishn@linux.vnet.ibm.com>,
	linux-scsi@vger.kernel.org,
	James Bottomley <James.Bottomley@HansenPartnership.com>,
	"Martin K. Petersen" <martin.petersen@oracle.com>,
	"Matthew R. Ochs" <mrochs@linux.vnet.ibm.com>,
	"Manoj N. Kumar" <manoj@linux.vnet.ibm.com>,
	Brian King <brking@linux.vnet.ibm.com>
Cc: linuxppc-dev@lists.ozlabs.org, Ian Munsie <imunsie@au1.ibm.com>,
	Andrew Donnellan <andrew.donnellan@au1.ibm.com>
Subject: Re: [PATCH 2/6] cxlflash: Fix to avoid virtual LUN failover failure
Date: Mon, 14 Dec 2015 16:00:25 +1100	[thread overview]
Message-ID: <87h9jl7hg6.fsf@gamma.ozlabs.ibm.com> (raw)
In-Reply-To: <1449788029-23093-1-git-send-email-ukrishn@linux.vnet.ibm.com>

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


> Virtual LUNs may be accessed through one or both ports of the adapter.

Is it possible that there might ever be adapters with a number of ports
other than 2? In particular, is it possible for 3 or 4 port adapters to
exist?

If so, do you need something with a bit more fidelity?

If not, this is a good approach.

Regards,
Daniel

> This access is encoded in the translation entries that comprise the
> virtual LUN and used by the AFU for load-balancing I/O and handling
> failover scenarios. In a link loss scenario, even though the AFU is
> able to maintain connectivity to the LUN, it is up to the application
> to retry the failed I/O. When applications are unaware of the virtual
> LUN's underlying topology, they are unable to make a sound decision of
> when to retry an I/O and therefore are forced to make their reaction to
> a failed I/O absolute. The result is either a failure to retry I/O or
> increased latency for scenarios where a retry is pointless.
>
> To remedy this scenario, provide feedback back to the application on
> virtual LUN creation as to which ports the LUN may be accessed. LUN's
> spanning both ports are candidates for a retry in a presence of an I/O
> failure.
>
> Signed-off-by: Matthew R. Ochs <mrochs@linux.vnet.ibm.com>
> ---
>  drivers/scsi/cxlflash/vlun.c       |  2 ++
>  include/uapi/scsi/cxlflash_ioctl.h | 10 ++++++++++
>  2 files changed, 12 insertions(+)
>
> diff --git a/drivers/scsi/cxlflash/vlun.c b/drivers/scsi/cxlflash/vlun.c
> index a53f583..50f8e93 100644
> --- a/drivers/scsi/cxlflash/vlun.c
> +++ b/drivers/scsi/cxlflash/vlun.c
> @@ -1008,6 +1008,8 @@ int cxlflash_disk_virtual_open(struct scsi_device *sdev, void *arg)
>  	virt->last_lba = last_lba;
>  	virt->rsrc_handle = rsrc_handle;
>  
> +	if (lli->port_sel == BOTH_PORTS)
> +		virt->hdr.return_flags |= DK_CXLFLASH_ALL_PORTS_ACTIVE;
>  out:
>  	if (likely(ctxi))
>  		put_context(ctxi);
> diff --git a/include/uapi/scsi/cxlflash_ioctl.h b/include/uapi/scsi/cxlflash_ioctl.h
> index 831351b..2302f3c 100644
> --- a/include/uapi/scsi/cxlflash_ioctl.h
> +++ b/include/uapi/scsi/cxlflash_ioctl.h
> @@ -31,6 +31,16 @@ struct dk_cxlflash_hdr {
>  };
>  
>  /*
> + * Return flag definitions available to all ioctls
> + *
> + * Similar to the input flags, these are grown from the bottom-up with the
> + * intention that ioctl-specific return flag definitions would grow from the
> + * top-down, allowing the two sets to co-exist. While not required/enforced
> + * at this time, this provides future flexibility.
> + */
> +#define DK_CXLFLASH_ALL_PORTS_ACTIVE	0x0000000000000001ULL
> +
> +/*
>   * Notes:
>   * -----
>   * The 'context_id' field of all ioctl structures contains the context
> -- 
> 2.1.0
>
> _______________________________________________
> Linuxppc-dev mailing list
> Linuxppc-dev@lists.ozlabs.org
> https://lists.ozlabs.org/listinfo/linuxppc-dev

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 859 bytes --]

  parent reply	other threads:[~2015-12-14  5:00 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-12-10 22:51 [PATCH 0/6] cxlflash: Miscellaneous fixes and updates Uma Krishnan
2015-12-10 22:53 ` [PATCH 1/6] cxlflash: Fix to escalate LINK_RESET also on port 1 Uma Krishnan
2015-12-14 17:30   ` Matthew R. Ochs
2015-12-17 21:24     ` Uma Krishnan
2015-12-10 22:53 ` [PATCH 2/6] cxlflash: Fix to avoid virtual LUN failover failure Uma Krishnan
2015-12-11 14:53   ` Manoj Kumar
2015-12-14  5:00   ` Daniel Axtens [this message]
2015-12-17 22:19   ` Uma Krishnan
2015-12-10 22:54 ` [PATCH 3/6] cxlflash: Updated date of the driver Uma Krishnan
2015-12-11  0:35   ` Daniel Axtens
2015-12-14 19:29     ` Uma Krishnan
2015-12-10 22:54 ` [PATCH 4/6] cxlflash: Fix to resolve cmd leak after host reset Uma Krishnan
2015-12-14 17:31   ` Matthew R. Ochs
2015-12-10 22:54 ` [PATCH 5/6] cxlflash: Resolve oops in wait_port_offline Uma Krishnan
2015-12-14 17:32   ` Matthew R. Ochs
2015-12-17 22:30   ` Uma Krishnan
2015-12-10 22:54 ` [PATCH 6/6] cxlflash: Enable device id for future IBM CXL adapter Uma Krishnan
2015-12-14  3:47   ` Andrew Donnellan
2015-12-14 17:18     ` Manoj Kumar
2015-12-14 17:32   ` Matthew R. Ochs

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87h9jl7hg6.fsf@gamma.ozlabs.ibm.com \
    --to=dja@axtens.net \
    --cc=James.Bottomley@HansenPartnership.com \
    --cc=andrew.donnellan@au1.ibm.com \
    --cc=brking@linux.vnet.ibm.com \
    --cc=imunsie@au1.ibm.com \
    --cc=linux-scsi@vger.kernel.org \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=manoj@linux.vnet.ibm.com \
    --cc=martin.petersen@oracle.com \
    --cc=mrochs@linux.vnet.ibm.com \
    --cc=ukrishn@linux.vnet.ibm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.