From: Tomas Henzl <thenzl@redhat.com>
To: Sumit Saxena <sumit.saxena@avagotech.com>,
jbottomley@parallels.com, hch@infradead.org,
martin.petersen@oracle.com
Cc: linux-scsi@vger.kernel.org, kashyap.desai@avagotech.com
Subject: Re: [PATCH v2 07/15] megaraid_sas: Reply Descriptor Post Queue(RDPQ) support
Date: Fri, 29 Jan 2016 16:19:28 +0100 [thread overview]
Message-ID: <56AB8300.2060207@redhat.com> (raw)
In-Reply-To: <1453995276-24955-8-git-send-email-sumit.saxena@avagotech.com>
On 28.1.2016 16:34, Sumit Saxena wrote:
> This patch will create reply queue pool for each MSI-x index and will provide array of all reply queue base address
> instead of single base address of legacy mode. Using this new interface Driver can support higher Queue depth allocating
> more reply queue as scattered DMA pool.
>
> If array mode is not supported driver will fall back to legacy method of allocation reply pool.
> This method fall back controller queue depth to 1K max. To enable more than 1K QD, driver expect FW to support Array mode
> and scratch_pad3 should provide new queue depth value.
>
> Using this method, Firmware should not allow downgrade (OFU) if latest driver and latest FW report 4K QD and Array mode reply queue.
> This type of FW upgrade may cause firmware fault and it should not be supported. Upgrade of FW will work,
> but queue depth of the controller will be unchanged until reboot/driver reload.
>
> I have accomodated Tomas' comments in this patch- fix few error handling cases inside functions-
> megasas_alloc_cmdlist_fusion() and megasas_alloc_cmds_fusion(), fix typo- disable(old- disbale)
> in rdpq_enable module parameter's description, modify print to reflect RDPQ support statement correctly.
>
>
> Signed-off-by: Kashyap Desai <kashyap.desai@avagotech.com>
> Signed-off-by: Sumit Saxena <sumit.saxena@avagotech.com>
> ---
> drivers/scsi/megaraid/megaraid_sas.h | 6 +-
> drivers/scsi/megaraid/megaraid_sas_base.c | 9 +
> drivers/scsi/megaraid/megaraid_sas_fusion.c | 543 ++++++++++++++++------------
> drivers/scsi/megaraid/megaraid_sas_fusion.h | 12 +-
> 4 files changed, 331 insertions(+), 239 deletions(-)
>
> diff --git a/drivers/scsi/megaraid/megaraid_sas.h b/drivers/scsi/megaraid/megaraid_sas.h
> index 01135be..3b1ed2d 100644
> --- a/drivers/scsi/megaraid/megaraid_sas.h
> +++ b/drivers/scsi/megaraid/megaraid_sas.h
> @@ -152,6 +152,7 @@
> #define MFI_RESET_FLAGS MFI_INIT_READY| \
> MFI_INIT_MFIMODE| \
> MFI_INIT_ABORT
> +#define MPI2_IOCINIT_MSGFLAG_RDPQ_ARRAY_MODE (0x01)
>
> /*
> * MFI frame flags
> @@ -1416,6 +1417,7 @@ enum DCMD_TIMEOUT_ACTION {
> #define MR_MAX_REPLY_QUEUES_EXT_OFFSET 0X003FC000
> #define MR_MAX_REPLY_QUEUES_EXT_OFFSET_SHIFT 14
> #define MR_MAX_MSIX_REG_ARRAY 16
> +#define MR_RDPQ_MODE_OFFSET 0X00800000
> /*
> * register set for both 1068 and 1078 controllers
> * structure extended for 1078 registers
> @@ -1455,8 +1457,9 @@ struct megasas_register_set {
>
> u32 outbound_scratch_pad ; /*00B0h*/
> u32 outbound_scratch_pad_2; /*00B4h*/
> + u32 outbound_scratch_pad_3; /*00B8h*/
>
> - u32 reserved_4[2]; /*00B8h*/
> + u32 reserved_4; /*00BCh*/
>
> u32 inbound_low_queue_port ; /*00C0h*/
>
> @@ -2117,6 +2120,7 @@ struct megasas_instance {
> u8 mask_interrupts;
> u16 max_chain_frame_sz;
> u8 is_imr;
> + u8 is_rdpq;
> bool dev_handle;
> };
> struct MR_LD_VF_MAP {
> diff --git a/drivers/scsi/megaraid/megaraid_sas_base.c b/drivers/scsi/megaraid/megaraid_sas_base.c
> index ea3994b..8df58c2 100644
> --- a/drivers/scsi/megaraid/megaraid_sas_base.c
> +++ b/drivers/scsi/megaraid/megaraid_sas_base.c
> @@ -92,6 +92,10 @@ int smp_affinity_enable = 1;
> module_param(smp_affinity_enable, int, S_IRUGO);
> MODULE_PARM_DESC(smp_affinity_enable, "SMP affinity feature enable/disbale Default: enable(1)");
>
> +int rdpq_enable = 1;
> +module_param(rdpq_enable, int, S_IRUGO);
> +MODULE_PARM_DESC(rdpq_enable, " Allocate reply queue in chunks for large queue depth enable/disable Default: disable(0)");
Thanks for fixing the typo, but the message still says "Default: disable(0)" - it should be "Default: enabled(1)"
A fix in next series if fine for me. Martin has also already added this series to scsi-queue
so my review tag is not needed.
Cheers,
Tomas
next prev parent reply other threads:[~2016-01-29 15:19 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-01-28 15:34 [PATCH v2 00/15] megaraid_sas: Updates for scsi-next Sumit Saxena
2016-01-28 15:34 ` [PATCH v2 01/15] megaraid_sas: Do not allow PCI access during OCR Sumit Saxena
2016-01-28 15:34 ` [PATCH v2 02/15] megaraid_sas: MFI IO timeout handling Sumit Saxena
2016-01-28 15:34 ` [PATCH v2 03/15] megaraid_sas: Syncing request flags macro names with firmware Sumit Saxena
2016-01-28 15:34 ` [PATCH v2 04/15] megaraid_sas: Task management support Sumit Saxena
2016-01-28 15:34 ` [PATCH v2 05/15] megaraid_sas: Update device Queue depth based on interface type Sumit Saxena
2016-01-28 15:34 ` [PATCH v2 06/15] megaraid_sas: Fastpath region lock bypass Sumit Saxena
2016-01-28 15:34 ` [PATCH v2 07/15] megaraid_sas: Reply Descriptor Post Queue(RDPQ) support Sumit Saxena
2016-01-29 15:19 ` Tomas Henzl [this message]
2016-01-28 15:34 ` [PATCH v2 08/15] megaraid_sas: Code optimization build_and_issue_cmd return-type Sumit Saxena
2016-01-28 15:34 ` [PATCH v2 09/15] megaraid_sas: Dual Queue depth support Sumit Saxena
2016-01-28 15:34 ` [PATCH v2 10/15] megaraid_sas: IO throttling support Sumit Saxena
2016-01-28 15:34 ` [PATCH v2 11/15] megaraid_sas: Make adprecovery variable atomic Sumit Saxena
2016-01-29 15:52 ` Tomas Henzl
2016-01-28 15:34 ` [PATCH v2 12/15] megaraid_sas: MFI adapter's OCR changes Sumit Saxena
2016-01-28 15:34 ` [PATCH v2 13/15] megaraid_sas: Introduce module parameter for SCSI command-timeout Sumit Saxena
2016-01-28 15:34 ` [PATCH v2 14/15] megaraid_sas: SPERC OCR changes Sumit Saxena
2016-01-28 15:34 ` [PATCH v2 15/15] megaraid_sas: driver version upgrade Sumit Saxena
2016-01-29 2:54 ` [PATCH v2 00/15] megaraid_sas: Updates for scsi-next Martin K. Petersen
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=56AB8300.2060207@redhat.com \
--to=thenzl@redhat.com \
--cc=hch@infradead.org \
--cc=jbottomley@parallels.com \
--cc=kashyap.desai@avagotech.com \
--cc=linux-scsi@vger.kernel.org \
--cc=martin.petersen@oracle.com \
--cc=sumit.saxena@avagotech.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.