diff mbox

[1,22/25] hpsa: enhance device messages

Message ID 20151028220644.5323.17616.stgit@brunhilda (mailing list archive)
State Superseded, archived
Headers show

Commit Message

Don Brace Oct. 28, 2015, 10:06 p.m. UTC
Reviewed-by: Justin Lindley <justin.lindley@pmcs.com>
Reviewed-by: Scott Teel <scott.teel@pmcs.com>
Reviewed-by: Kevin Barnett <kevin.barnett@pmcs.com>
Signed-off-by: Don Brace <don.brace@pmcs.com>
---
 drivers/scsi/hpsa.c |   45 ++++++++++++++++++++++++++++++++++++++++-----
 1 file changed, 40 insertions(+), 5 deletions(-)


--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Comments

Hannes Reinecke Oct. 30, 2015, 8:16 a.m. UTC | #1
On 10/28/2015 11:06 PM, Don Brace wrote:
> Reviewed-by: Justin Lindley <justin.lindley@pmcs.com>
> Reviewed-by: Scott Teel <scott.teel@pmcs.com>
> Reviewed-by: Kevin Barnett <kevin.barnett@pmcs.com>
> Signed-off-by: Don Brace <don.brace@pmcs.com>
> ---
>  drivers/scsi/hpsa.c |   45 ++++++++++++++++++++++++++++++++++++++++-----
>  1 file changed, 40 insertions(+), 5 deletions(-)
> 
Reviewed-by: Hannes Reinecke <hare@suse.de>

Cheers,

Hannes
Tomas Henzl Oct. 30, 2015, 2:32 p.m. UTC | #2
On 28.10.2015 23:06, Don Brace wrote:
> Reviewed-by: Justin Lindley <justin.lindley@pmcs.com>
> Reviewed-by: Scott Teel <scott.teel@pmcs.com>
> Reviewed-by: Kevin Barnett <kevin.barnett@pmcs.com>
> Signed-off-by: Don Brace <don.brace@pmcs.com>
> ---
>  drivers/scsi/hpsa.c |   45 ++++++++++++++++++++++++++++++++++++++++-----
>  1 file changed, 40 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/scsi/hpsa.c b/drivers/scsi/hpsa.c
> index 33fd0aa..b2418c3 100644
> --- a/drivers/scsi/hpsa.c
> +++ b/drivers/scsi/hpsa.c
> @@ -609,7 +609,7 @@ static inline int is_logical_dev_addr_mode(unsigned char scsi3addr[])
>  }
>  
>  static const char * const raid_label[] = { "0", "4", "1(+0)", "5", "5+1", "6",
> -	"1(+0)ADM", "UNKNOWN"
> +	"1(+0)ADM", "UNKNOWN", "PHYS DRV"
>  };
>  #define HPSA_RAID_0	0
>  #define HPSA_RAID_4	1
> @@ -618,7 +618,8 @@ static const char * const raid_label[] = { "0", "4", "1(+0)", "5", "5+1", "6",
>  #define HPSA_RAID_51	4
>  #define HPSA_RAID_6	5	/* also used for RAID 60 */
>  #define HPSA_RAID_ADM	6	/* also used for RAID 1+0 ADM */
> -#define RAID_UNKNOWN (ARRAY_SIZE(raid_label) - 1)
> +#define RAID_UNKNOWN (ARRAY_SIZE(raid_label) - 2)
> +#define PHYSICAL_DRIVE (ARRAY_SIZE(raid_label) - 1)

RAID_UNKNOWN is used in few other places - raid_level_show for example,
shouldn't be that also adapted?

-tm

> /
>  
>  static inline bool is_logical_device(struct hpsa_scsi_dev_t *device)
>  {
> @@ -1144,21 +1145,55 @@ static int hpsa_find_target_lun(struct ctlr_info *h,
>  static void hpsa_show_dev_msg(const char *level, struct ctlr_info *h,
>  	struct hpsa_scsi_dev_t *dev, char *description)
>  {
> +#define LABEL_SIZE 25
> +	char label[LABEL_SIZE];
> +
>  	if (dev == NULL)
>  		return;
>  
>  	if (h == NULL || h->pdev == NULL || h->scsi_host == NULL)
>  		return;
>  
> +	switch (dev->devtype) {
> +	case TYPE_RAID:
> +		snprintf(label, LABEL_SIZE, "controller");
> +		break;
> +	case TYPE_ENCLOSURE:
> +		snprintf(label, LABEL_SIZE, "enclosure");
> +		break;
> +	case TYPE_DISK:
> +		if (dev->external)
> +			snprintf(label, LABEL_SIZE, "external");
> +		else if (!is_logical_dev_addr_mode(dev->scsi3addr))
> +			snprintf(label, LABEL_SIZE, "%s",
> +				raid_label[PHYSICAL_DRIVE]);
> +		else
> +			snprintf(label, LABEL_SIZE, "RAID-%s",
> +				dev->raid_level > RAID_UNKNOWN ? "?" :
> +				raid_label[dev->raid_level]);
> +		break;
> +	case TYPE_ROM:
> +		snprintf(label, LABEL_SIZE, "rom");
> +		break;
> +	case TYPE_TAPE:
> +		snprintf(label, LABEL_SIZE, "tape");
> +		break;
> +	case TYPE_MEDIUM_CHANGER:
> +		snprintf(label, LABEL_SIZE, "changer");
> +		break;
> +	default:
> +		snprintf(label, LABEL_SIZE, "UNKNOWN");
> +		break;
> +	}
> +
>  	dev_printk(level, &h->pdev->dev,
> -			"scsi %d:%d:%d:%d: %s %s %.8s %.16s RAID-%s SSDSmartPathCap%c En%c Exp=%d\n",
> +			"scsi %d:%d:%d:%d: %s %s %.8s %.16s %s SSDSmartPathCap%c En%c Exp=%d\n",
>  			h->scsi_host->host_no, dev->bus, dev->target, dev->lun,
>  			description,
>  			scsi_device_type(dev->devtype),
>  			dev->vendor,
>  			dev->model,
> -			dev->raid_level > RAID_UNKNOWN ?
> -				"RAID-?" : raid_label[dev->raid_level],
> +			label,
>  			dev->offload_config ? '+' : '-',
>  			dev->offload_enabled ? '+' : '-',
>  			dev->expose_device);
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Matthew R. Ochs Oct. 30, 2015, 4:53 p.m. UTC | #3
Reviewed-by: Matthew R. Ochs <mrochs@linux.vnet.ibm.com>

--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Don Brace Nov. 2, 2015, 4:54 p.m. UTC | #4
On 10/30/2015 09:32 AM, Tomas Henzl wrote:
> RAID_UNKNOWN is used in few other places - raid_level_show for example,

raid_level_show handles physical devices by using "N/A", otherwise it 
displays
the RAID level for logical devices.

Other functions avoid the use of raid_type when the drive is not a RAID 
device.

Or, am I missing your point?

--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Tomas Henzl Nov. 3, 2015, 1:12 p.m. UTC | #5
On 2.11.2015 17:54, Don Brace wrote:
> On 10/30/2015 09:32 AM, Tomas Henzl wrote:
>> RAID_UNKNOWN is used in few other places - raid_level_show for example,
> raid_level_show handles physical devices by using "N/A", otherwise it 
> displays
> the RAID level for logical devices.
>
> Other functions avoid the use of raid_type when the drive is not a RAID 
> device.
>
> Or, am I missing your point?

Seems that I missed the fact that raid_level_show output is N/A,
I thought it would be "RAID-Unknown".

Last minor point is that you could replace 
+				dev->raid_level > RAID_UNKNOWN ? "?" :
+				raid_label[dev->raid_level]);
with
+				dev->raid_level > RAID_UNKNOWN ? raid_label[RAID_UNKNOWN] :
+				raid_label[dev->raid_level]);
but that's not important.

Reviewed-by: Tomas Henzl <thenzl@redhat.com>

Tomas

--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/drivers/scsi/hpsa.c b/drivers/scsi/hpsa.c
index 33fd0aa..b2418c3 100644
--- a/drivers/scsi/hpsa.c
+++ b/drivers/scsi/hpsa.c
@@ -609,7 +609,7 @@  static inline int is_logical_dev_addr_mode(unsigned char scsi3addr[])
 }
 
 static const char * const raid_label[] = { "0", "4", "1(+0)", "5", "5+1", "6",
-	"1(+0)ADM", "UNKNOWN"
+	"1(+0)ADM", "UNKNOWN", "PHYS DRV"
 };
 #define HPSA_RAID_0	0
 #define HPSA_RAID_4	1
@@ -618,7 +618,8 @@  static const char * const raid_label[] = { "0", "4", "1(+0)", "5", "5+1", "6",
 #define HPSA_RAID_51	4
 #define HPSA_RAID_6	5	/* also used for RAID 60 */
 #define HPSA_RAID_ADM	6	/* also used for RAID 1+0 ADM */
-#define RAID_UNKNOWN (ARRAY_SIZE(raid_label) - 1)
+#define RAID_UNKNOWN (ARRAY_SIZE(raid_label) - 2)
+#define PHYSICAL_DRIVE (ARRAY_SIZE(raid_label) - 1)
 
 static inline bool is_logical_device(struct hpsa_scsi_dev_t *device)
 {
@@ -1144,21 +1145,55 @@  static int hpsa_find_target_lun(struct ctlr_info *h,
 static void hpsa_show_dev_msg(const char *level, struct ctlr_info *h,
 	struct hpsa_scsi_dev_t *dev, char *description)
 {
+#define LABEL_SIZE 25
+	char label[LABEL_SIZE];
+
 	if (dev == NULL)
 		return;
 
 	if (h == NULL || h->pdev == NULL || h->scsi_host == NULL)
 		return;
 
+	switch (dev->devtype) {
+	case TYPE_RAID:
+		snprintf(label, LABEL_SIZE, "controller");
+		break;
+	case TYPE_ENCLOSURE:
+		snprintf(label, LABEL_SIZE, "enclosure");
+		break;
+	case TYPE_DISK:
+		if (dev->external)
+			snprintf(label, LABEL_SIZE, "external");
+		else if (!is_logical_dev_addr_mode(dev->scsi3addr))
+			snprintf(label, LABEL_SIZE, "%s",
+				raid_label[PHYSICAL_DRIVE]);
+		else
+			snprintf(label, LABEL_SIZE, "RAID-%s",
+				dev->raid_level > RAID_UNKNOWN ? "?" :
+				raid_label[dev->raid_level]);
+		break;
+	case TYPE_ROM:
+		snprintf(label, LABEL_SIZE, "rom");
+		break;
+	case TYPE_TAPE:
+		snprintf(label, LABEL_SIZE, "tape");
+		break;
+	case TYPE_MEDIUM_CHANGER:
+		snprintf(label, LABEL_SIZE, "changer");
+		break;
+	default:
+		snprintf(label, LABEL_SIZE, "UNKNOWN");
+		break;
+	}
+
 	dev_printk(level, &h->pdev->dev,
-			"scsi %d:%d:%d:%d: %s %s %.8s %.16s RAID-%s SSDSmartPathCap%c En%c Exp=%d\n",
+			"scsi %d:%d:%d:%d: %s %s %.8s %.16s %s SSDSmartPathCap%c En%c Exp=%d\n",
 			h->scsi_host->host_no, dev->bus, dev->target, dev->lun,
 			description,
 			scsi_device_type(dev->devtype),
 			dev->vendor,
 			dev->model,
-			dev->raid_level > RAID_UNKNOWN ?
-				"RAID-?" : raid_label[dev->raid_level],
+			label,
 			dev->offload_config ? '+' : '-',
 			dev->offload_enabled ? '+' : '-',
 			dev->expose_device);