On Sun, Sep 25, 2022 at 12:59:27AM +0000, Klemens Nanni wrote:
> On a sparc64 T4-2 I boot OpenBSD from hardware RAID 1E using the
> built-in controller:
> 
>       mpii0 at pci15 dev 0 function 0 "Symbios Logic SAS2008" rev 0x03: msi
>       mpii0: Solana On-Board, firmware 9.0.0.0 IR, MPI 2.0
>       scsibus1 at mpii0: 834 targets
>       sd0 at scsibus1 targ 0 lun 0: <LSI, Logical Volume, 3000> 
> naa.600508e0000000006cd1dcd59022a30a
>       sd0: 713824MB, 512 bytes/sector, 1461911552 sectors
>       root on sd0a (efde5b2c6ab7b8ac.a) swap on sd0b dump on sd0b
> 
> But OpenBSD shows it as RAID10, which is misleading:
> 
>       # bioctl mpii0
>       Volume      Status               Size Device
>           mpii0 0 Online       748498714112 sd0     RAID10
>                 0 Online       500107861504 0:2.0   noencl <ATA 
> CT500MX500SSD1>
>                 1 Online       500107861504 0:1.0   noencl <ATA 
> CT500MX500SSD1>
>                 2 Online       500107861504 0:0.0   noencl <ATA 
> CT500MX500SSD1>
> 
> Turns out the driver reports it like that and adapting the tool is
> trivial.
> 
> Document 1E support, report 1E as 0x1E (like softraid(4) 1C being 0x1C)
> and print it as such.
> 
> This merely supports printing it;  softraid code has nothing to do with
> what hardware supports and the create/write path remains unchanged in
> driver/softraid/bioctl land.
> 
> Format strings for different RAID levels start identical up to the level
> specifics, so hoist the identical part while here to make this clearer
> and simplify/shorten it.
> 
>       # ./obj/bioctl mpii0
>       Volume      Status               Size Device
>           mpii0 0 Online       748498714112 sd0     RAID1E
>                 0 Online       500107861504 0:2.0   noencl <ATA 
> CT500MX500SSD1>
>                 1 Online       500107861504 0:1.0   noencl <ATA 
> CT500MX500SSD1>
>                 2 Online       500107861504 0:0.0   noencl <ATA 
> CT500MX500SSD1>
> 
> Feedback? OK? (for after release)

Ping.


Index: sbin/bioctl/bioctl.c
===================================================================
RCS file: /cvs/src/sbin/bioctl/bioctl.c,v
retrieving revision 1.149
diff -u -p -r1.149 bioctl.c
--- sbin/bioctl/bioctl.c        26 Aug 2022 09:14:00 -0000      1.149
+++ sbin/bioctl/bioctl.c        5 Oct 2022 00:09:17 -0000
@@ -492,25 +492,24 @@ bio_inq(char *name)
                        else
                                snprintf(size, sizeof size, "%14llu",
                                    bv.bv_size);
+                       printf("%11s %-10s %14s %-7s ",
+                           volname, status, size, bv.bv_dev);
                        switch (bv.bv_level) {
                        case 'C':
-                               printf("%11s %-10s %14s %-7s CRYPTO%s%s\n",
-                                   volname, status, size, bv.bv_dev,
+                               printf("CRYPTO%s%s\n",
                                    percent, seconds);
                                break;
                        case 'c':
-                               printf("%11s %-10s %14s %-7s CONCAT%s%s\n",
-                                   volname, status, size, bv.bv_dev,
+                               printf("CONCAT%s%s\n",
                                    percent, seconds);
                                break;
                        case 0x1C:
-                               printf("%11s %-10s %14s %-7s RAID%X%s%s %s\n",
-                                   volname, status, size, bv.bv_dev,
+                       case 0x1E:
+                               printf("RAID%X%s%s %s\n",
                                    bv.bv_level, percent, seconds, cache);
                                break;
                        default:
-                               printf("%11s %-10s %14s %-7s RAID%u%s%s %s\n",
-                                   volname, status, size, bv.bv_dev,
+                               printf("RAID%u%s%s %s\n",
                                    bv.bv_level, percent, seconds, cache);
                                break;
                        }
Index: share/man/man4/mpii.4
===================================================================
RCS file: /cvs/src/share/man/man4/mpii.4,v
retrieving revision 1.15
diff -u -p -r1.15 mpii.4
--- share/man/man4/mpii.4       19 Jun 2018 10:43:21 -0000      1.15
+++ share/man/man4/mpii.4       5 Oct 2022 00:09:17 -0000
@@ -59,11 +59,12 @@ Lenovo N2215, ThinkSystem 430
 LSI SAS 9200-8e, SAS 9207-8i, SAS 9211-4i, SAS 9211-8i
 .It
 Broadcom SAS 9300, HBA 9400
+.It
+Oracle SPARC T Series Platforms
 .El
 .Pp
 Some models of these controllers carry an Integrated RAID (IR) firmware
-providing support for RAID 0, RAID 1, RAID10 or RAID5 using SAS or SATA
-drives.
+providing support for RAID levels 0, 1, 1E, 5 or 10 using SAS or SATA drives.
 All RAID configuration is done through the controllers' BIOSes.
 .Sh SEE ALSO
 .Xr bio 4 ,

Reply via email to