Add new adapter and enhancement for early EEH spport
Subsystems (2)
cover Add new adapter and enhancement for early EEH spport
Hi All,
This patch set includes add new adapter and enhancement for early EEH support.
Thanks for your help!
Wendy
PATCH 1/3 ipr: Remove extended delay bit on GSCSI reads/writes ops
This patch removes extended delay bit on GSCSI reads/writes ops, the performance will be significanly better.
--- drivers/scsi/ipr.c | 6 +++++- drivers/scsi/ipr.h | 1 + 2 files changed, 6 insertions(+), 1 deletion(-)
drivers/scsi/ipr.c +5 -1
@@ -1143,6 +1143,7 @@ static void ipr_init_res_entry(struct ip res->add_to_ml =0 ; res->del_from_ml =0 ; res->resetting_device =0 ; + res->reset_occurred =0 ; res->sdev =NULL ; res->sata_port =NULL ;
@@ -5015,6 +5016,7 @@ static int __ipr_eh_dev_reset(struct scs }else rc =ipr_device_reset (ioa_cfg, res); res->resetting_device =0 ; + res->reset_occurred =1 ;LEAVE ;return rc ?FAILED :SUCCESS ;
@@ -6183,8 +6185,10 @@ static int ipr_queuecommand(struct Scsi_ ioarcb->cmd_pkt.flags_hi |=IPR_FLAGS_HI_NO_ULEN_CHK ; ioarcb->cmd_pkt.flags_hi |=IPR_FLAGS_HI_NO_LINK_DESC ; -if (ipr_is_gscsi (res)) +if (ipr_is_gscsi (res) && res->reset_occurred) { + res->reset_occurred =0 ; ioarcb->cmd_pkt.flags_lo |=IPR_FLAGS_LO_DELAY_AFTER_RST ; + } ioarcb->cmd_pkt.flags_lo |=IPR_FLAGS_LO_ALIGNED_BFR ; ioarcb->cmd_pkt.flags_lo |=ipr_get_task_attributes (scsi_cmd); }
drivers/scsi/ipr.h +1 -0
@@ -1252,6 +1252,7 @@ struct ipr_resource_entry { u8 add_to_ml:1; u8 del_from_ml:1; u8 resetting_device:1; + u8 reset_occurred:1;u32 bus;/* AKA channel */ u32 target;/* AKA id */
Re: [PATCH 1/3] ipr: Remove extended delay bit on GSCSI reads/writes ops
Re: [PATCH 1/3] ipr: Remove extended delay bit on GSCSI reads/writes ops
In reply to [email protected]Hi James,
I didn't see these patches got merged yet. Do you want me to re-submit them?
Thanks for your help!
Wendy
Quoting [email protected]:
Quoted 56 lines
This patch removes extended delay bit on GSCSI reads/writes ops, the performance will be significanly better.
Signed-off-by Wen Xiong <[email protected]>--- drivers/scsi/ipr.c | 6 +++++- drivers/scsi/ipr.h | 1 + 2 files changed, 6 insertions(+), 1 deletion(-)Index:
b/drivers/scsi/ipr.c
===================================================================drivers/scsi/ipr.c +5
-1@@ -1143,6 +1143,7 @@ static void ipr_init_res_entry(struct ip res->add_to_ml =0 ; res->del_from_ml =0 ; res->resetting_device =0 ; + res->reset_occurred =0 ; res->sdev =NULL ; res->sata_port =NULL ;@@ -5015,6 +5016,7 @@ static int __ipr_eh_dev_reset(struct scs }else rc =ipr_device_reset (ioa_cfg, res); res->resetting_device =0 ; + res->reset_occurred =1 ;LEAVE ;return rc ?FAILED :SUCCESS ;@@ -6183,8 +6185,10 @@ static int ipr_queuecommand(struct Scsi_ ioarcb->cmd_pkt.flags_hi |=IPR_FLAGS_HI_NO_ULEN_CHK ; ioarcb->cmd_pkt.flags_hi |=IPR_FLAGS_HI_NO_LINK_DESC ; -if (ipr_is_gscsi (res)) +if (ipr_is_gscsi (res) && res->reset_occurred) { + res->reset_occurred =0 ; ioarcb->cmd_pkt.flags_lo |=IPR_FLAGS_LO_DELAY_AFTER_RST ; + } ioarcb->cmd_pkt.flags_lo |=IPR_FLAGS_LO_ALIGNED_BFR ; ioarcb->cmd_pkt.flags_lo |=ipr_get_task_attributes (scsi_cmd); }Index:
b/drivers/scsi/ipr.h
===================================================================drivers/scsi/ipr.h +1
-1@@ -1252,6 +1252,7 @@ struct ipr_resource_entry { u8 add_to_ml:1; u8 del_from_ml:1; u8 resetting_device:1; + u8 reset_occurred:1;u32 bus;/* AKA channel */ u32 target;/* AKA id */ --
PATCH 2/3 ipr: Add new CCIN definition for new hardware support
In reply to [email protected]Add the appropriate definition and table entry for new hardware support.
--- drivers/scsi/ipr.c | 2 ++ drivers/scsi/ipr.h | 1 + 2 files changed, 3 insertions(+)
drivers/scsi/ipr.c +2 -0
@@ -9998,6 +9998,8 @@ static struct pci_device_id ipr_pci_tabl {PCI_VENDOR_ID_IBM ,PCI_DEVICE_ID_IBM_CROCODILE , PCI_VENDOR_ID_IBM, IPR_SUBS_DEV_ID_57D9, 0, 0, 0 }, { PCI_VENDOR_ID_IBM, PCI_DEVICE_ID_IBM_CROCODILE, + PCI_VENDOR_ID_IBM, IPR_SUBS_DEV_ID_57DA, 0, 0, 0 }, + { PCI_VENDOR_ID_IBM, PCI_DEVICE_ID_IBM_CROCODILE, PCI_VENDOR_ID_IBM, IPR_SUBS_DEV_ID_57EB, 0, 0, 0 }, { PCI_VENDOR_ID_IBM, PCI_DEVICE_ID_IBM_CROCODILE, PCI_VENDOR_ID_IBM, IPR_SUBS_DEV_ID_57EC, 0, 0, 0 },
drivers/scsi/ipr.h +1 -0
@@ -101,6 +101,7 @@#define IPR_SUBS_DEV_ID_57D7 0x03FF#define IPR_SUBS_DEV_ID_57D8 0x03FE#define IPR_SUBS_DEV_ID_57D9 0x046D +#define IPR_SUBS_DEV_ID_57DA 0x04CA#define IPR_SUBS_DEV_ID_57EB 0x0474#define IPR_SUBS_DEV_ID_57EC 0x0475#define IPR_SUBS_DEV_ID_57ED 0x0499
Re: [PATCH 2/3] ipr: Add new CCIN definition for new hardware support
Quoted 3 lines · On 01/21/2014 12:16 PM, [email protected] wrote:
Add the appropriate definition and table entry for new hardware support.
Signed-off-by Wen Xiong <[email protected]>
Signature · 3 lines
Brian King Power Linux I/O IBM Linux Technology Center
PATCH 3/3 ipr: Handle early EEH
In reply to [email protected]From: Brian King <[email protected]>
If, when the ipr driver loads, the adapter is in an EEH error state, it will currently oops and not be able to recover, as it attempts to access memory that has not yet been allocated. We've seen this occur in some kexec scenarios. The following patch fixes the oops and also allows the driver to recover from these probe time EEH errors.
---
drivers/scsi/ipr.c | 265 +++++++++++++++++++++++++++++++++++------------------ drivers/scsi/ipr.h | 3 2 files changed, 179 insertions(+), 89 deletions(-)
drivers/scsi/ipr.h +3 -0
@@ -231,6 +231,7 @@#define IPR_WAIT_FOR_RESET_TIMEOUT (2 * HZ)#define IPR_CHECK_FOR_RESET_TIMEOUT (HZ / 10)#define IPR_WAIT_FOR_BIST_TIMEOUT (2 * HZ) +#define IPR_PCI_ERROR_RECOVERY_TIMEOUT (120 * HZ)#define IPR_PCI_RESET_TIMEOUT (HZ / 2)#define IPR_SIS32_DUMP_TIMEOUT (15 * HZ)#define IPR_SIS64_DUMP_TIMEOUT (40 * HZ)
@@ -1443,6 +1444,7 @@ struct ipr_ioa_cfg { u8 dump_timeout:1; u8 cfg_locked:1; u8 clear_isr:1; + u8 probe_done:1;u8 revid;
@@ -1521,6 +1523,7 @@ struct ipr_ioa_cfg {wait_queue_head_t reset_wait_q;wait_queue_head_t msi_wait_q; +wait_queue_head_t eeh_wait_q;struct ipr_dump *dump;enum ipr_sdt_state sdt_state;
drivers/scsi/ipr.c +176 -89
463 lines not on this page · raw message
Re: [PATCH 3/3] ipr: Handle early EEH
James,
Not sure if you were waiting for an ack for the third in this series, since it came from me, but this whole series is ready to get pulled in.
Signature · 3 lines
Brian King Power Linux I/O IBM Linux Technology Center