Re: [PATCH 1/1] mdadm: enable Intel Alderlake RST VMD configuration

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, 5 Aug 2022 14:50:36 +0200
Oldřich Jedlička <oldium.pro@xxxxxxxxx> wrote:

> pá 5. 8. 2022 v 13:56 odesílatel Kinga Tanska
> <kinga.tanska@xxxxxxxxxxxxxxx> napsal:
> >
> > On Fri,  5 Aug 2022 12:05:45 +0200
> > Oldřich Jedlička <oldium.pro@xxxxxxxxx> wrote:
> >
> > > Alderlake changed UEFI variable name to 'RstVmdV' also and for VMD
> > > devices, so check the updated name for VMD devices like it is
> > > done in the SATA case.
> > >
> > > Signed-off-by: Oldřich Jedlička <oldium.pro@xxxxxxxxx>
> > > ---
> > >  platform-intel.c | 19 ++++++++++++-------
> > >  1 file changed, 12 insertions(+), 7 deletions(-)
> > >
> > > diff --git a/platform-intel.c b/platform-intel.c
> > > index a4d55a3..2f8e6af 100644
> > > --- a/platform-intel.c
> > > +++ b/platform-intel.c
> > > @@ -512,8 +512,8 @@ static const struct imsm_orom
> > > *find_imsm_hba_orom(struct sys_dev *hba) #define AHCI_PROP
> > > "RstSataV" #define AHCI_SSATA_PROP "RstsSatV"
> > >  #define AHCI_TSATA_PROP "RsttSatV"
> > > -#define AHCI_RST_PROP "RstVmdV"
> > > -#define VMD_PROP "RstUefiV"
> > > +#define RST_VMD_PROP "RstVmdV"
> > > +#define RST_UEFI_PROP "RstUefiV"
> > >
> > >  #define VENDOR_GUID \
> > >       EFI_GUID(0x193dfefa, 0xa445, 0x4302, 0x99, 0xd8, 0xef, 0x3a,
> > > 0xad, 0x1a, 0x04, 0xc6) @@ -607,7 +607,8 @@ const struct imsm_orom
> > > *find_imsm_efi(struct sys_dev *hba) struct orom_entry *ret;
> > >       static const char * const sata_efivars[] = {AHCI_PROP,
> > > AHCI_SSATA_PROP, AHCI_TSATA_PROP,
> > > -                                                 AHCI_RST_PROP};
> > > +                                                 RST_VMD_PROP};
> > > +     static const char * const vmd_efivars[] = {RST_UEFI_PROP,
> > > RST_VMD_PROP}; unsigned long i;
> > >
> > >       if (check_env("IMSM_TEST_AHCI_EFI") ||
> > > check_env("IMSM_TEST_SCU_EFI")) @@ -640,10 +641,14 @@ const struct
> > > imsm_orom *find_imsm_efi(struct sys_dev *hba)
> > >               break;
> > >       case SYS_DEV_VMD:
> > > -             if (!read_efi_variable(&orom, sizeof(orom),
> > > VMD_PROP,
> > > -                                    VENDOR_GUID))
> > > -                     break;
> > > -             return NULL;
> > > +             for (i = 0; i < ARRAY_SIZE(vmd_efivars); i++) {
> > > +                     if (!read_efi_variable(&orom, sizeof(orom),
> > > +                                             vmd_efivars[i],
> > > VENDOR_GUID))
> > > +                             break;
> > > +             }
> > > +             if (i == ARRAY_SIZE(vmd_efivars))
> > > +                     return NULL;
> > > +             break;
> > >       default:
> > >               return NULL;
> > >       }
> >
> > Hi,
> >
> > please have a look at the following mail:
> > https://marc.info/?l=linux-raid&m=165969352101643&w=2
> 
> Sorry for double-posting, I received rejection emails regarding HTML
> content. Gmail switched to HTML.
> 
> Hi, the described issue applies specifically in the SYS_DEV_SATA (SATA
> configuration) case, so it should not apply to SYS_DEV_VMD (VMD
> configuration) one.
> 
> For me, the platform output looks reasonable (I have RAID 0 active):
> 
> #> sudo mdadm --detail-platform
>        Platform : Intel(R) Rapid Storage Technology
>         Version : 19.0.7.5579
>     RAID Levels : raid0 raid1 raid10 raid5
>     Chunk Sizes : 4k 8k 16k 32k 64k 128k
>     2TB volumes : supported
>       2TB disks : supported
>       Max Disks : 32
>     Max Volumes : 2 per array, 4 per controller
>  3rd party NVMe : supported
>  I/O Controller : /sys/devices/pci0000:00/0000:00:0e.0 (VMD)
>  NVMe under VMD : /dev/nvme0n1 (S6P1NS0T318266R)
>  NVMe under VMD : /dev/nvme1n1 (S6P1NS0T318223V)
> 
> Without the patch the platform isn't even recognized. Common to both
> changes is the usage of the new UEFI variable 'RstVmdV', not the
> changes to the controller.
> 
> Regards,
> Oldrich.
> 
> >
> > Regards,
> > Kinga Tanska

Hello,

I've done test to check if your patch doesn't change way of recognizing
controllers. I've got two SATA controllers - first one with AHCI mode
and the other one with RAID MODE enabled. Command "mdadm
--detail-platform" should display info only about controller with RAID
MODE:

mdadm: imsm capabilities not found for controller:
/sys/devices/pci0000:00/0000:00:17.0 (type SATA) Platform : Intel(R)
Rapid Storage Technology enterprise Version : 5.3.0.1052
    RAID Levels : raid0 raid1 raid10 raid5
    Chunk Sizes : 4k 8k 16k 32k 64k 128k
    2TB volumes : supported
      2TB disks : supported
      Max Disks : 8
    Max Volumes : 2 per array, 8 per controller
 I/O Controller : /sys/devices/pci0000:00/0000:00:11.5 (SATA)
          Port4 : - non-disk device (TEAC DV-W28S-B) -
          Port0 : - no device attached -
          Port1 : - no device attached -
          Port2 : - no device attached -
          Port3 : - no device attached -
          Port5 : - no device attached -

       Platform : Intel(R) Rapid Storage Technology enterprise
        Version : 5.3.0.1052
    RAID Levels : raid0 raid1 raid10 raid5
    Chunk Sizes : 4k 8k 16k 32k 64k 128k
    2TB volumes : supported
      2TB disks : supported
      Max Disks : 24
    Max Volumes : 2 per array, 24 per controller
 3rd party NVMe : supported
 I/O Controller : /sys/devices/pci0000:17/0000:17:05.5 (VMD)
 I/O Controller : /sys/devices/pci0000:d7/0000:d7:05.5 (VMD)
 NVMe under VMD : /dev/nvme3n1 (PHLJ915000201P0FGN)
 NVMe under VMD : /dev/nvme2n1 (PHLJ915003201P0FGN)
 I/O Controller : /sys/devices/pci0000:85/0000:85:05.5 (VMD)
 I/O Controller : /sys/devices/pci0000:ae/0000:ae:05.5 (VMD)
 I/O Controller : /sys/devices/pci0000:5d/0000:5d:05.5 (VMD)
 NVMe under VMD : /dev/nvme0n1 (PHFT536600GT400GGN)
 NVMe under VMD : /dev/nvme1n1 (CVFT523100122P0KGN)

But with your patch this command returns info about all controllers
which is not correct:

Platform : Intel(R) Rapid Storage Technology enterprise
        Version : 5.3.0.1052
    RAID Levels : raid0 raid1 raid10 raid5
    Chunk Sizes : 4k 8k 16k 32k 64k 128k
    2TB volumes : supported
      2TB disks : supported
      Max Disks : 8
    Max Volumes : 2 per array, 8 per controller
 I/O Controller : /sys/devices/pci0000:00/0000:00:17.0 (SATA)
          Port2 : /dev/sdd (WDEBMLJ2)
          Port3 : /dev/sde (BTPR2300034W120LGN)
          Port0 : /dev/sdb (CVTS5396007S240JGN)
          Port1 : /dev/sdc (ZDE0XM9Z)
          Port4 : - no device attached -
          Port5 : - no device attached -
          Port6 : - no device attached -
          Port7 : - no device attached -

       Platform : Intel(R) Rapid Storage Technology enterprise
        Version : 5.3.0.1052
    RAID Levels : raid0 raid1 raid10 raid5
    Chunk Sizes : 4k 8k 16k 32k 64k 128k
    2TB volumes : supported
      2TB disks : supported
      Max Disks : 8
    Max Volumes : 2 per array, 8 per controller
 I/O Controller : /sys/devices/pci0000:00/0000:00:11.5 (SATA)
          Port4 : - non-disk device (TEAC DV-W28S-B) -
          Port0 : - no device attached -
          Port1 : - no device attached -
          Port2 : - no device attached -
          Port3 : - no device attached -
          Port5 : - no device attached -

       Platform : Intel(R) Rapid Storage Technology enterprise
        Version : 5.3.0.1052
    RAID Levels : raid0 raid1 raid10 raid5
    Chunk Sizes : 4k 8k 16k 32k 64k 128k
    2TB volumes : supported
      2TB disks : supported
      Max Disks : 24
    Max Volumes : 2 per array, 24 per controller
 3rd party NVMe : supported
 I/O Controller : /sys/devices/pci0000:17/0000:17:05.5 (VMD)
 I/O Controller : /sys/devices/pci0000:d7/0000:d7:05.5 (VMD)
 NVMe under VMD : /dev/nvme3n1 (PHLJ915000201P0FGN)
 NVMe under VMD : /dev/nvme2n1 (PHLJ915003201P0FGN)
 I/O Controller : /sys/devices/pci0000:85/0000:85:05.5 (VMD)
 I/O Controller : /sys/devices/pci0000:ae/0000:ae:05.5 (VMD)
 I/O Controller : /sys/devices/pci0000:5d/0000:5d:05.5 (VMD)
 NVMe under VMD : /dev/nvme0n1 (PHFT536600GT400GGN)
 NVMe under VMD : /dev/nvme1n1 (CVFT523100122P0KGN)

Please analyze it.
Regards,
Kinga Tanska




[Index of Archives]     [Linux RAID Wiki]     [ATA RAID]     [Linux SCSI Target Infrastructure]     [Linux Block]     [Linux IDE]     [Linux SCSI]     [Linux Hams]     [Device Mapper]     [Device Mapper Cryptographics]     [Kernel]     [Linux Admin]     [Linux Net]     [GFS]     [RPM]     [git]     [Yosemite Forum]


  Powered by Linux