linux-raid.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/1] enable Intel Alderlake RST VMD configuration
@ 2022-08-05 10:05 Oldřich Jedlička
  2022-08-05 10:05 ` [PATCH 1/1] mdadm: " Oldřich Jedlička
  0 siblings, 1 reply; 12+ messages in thread
From: Oldřich Jedlička @ 2022-08-05 10:05 UTC (permalink / raw)
  To: linux-raid; +Cc: Oldřich Jedlička

Hi,

I was testing RAID 0 on my Dell Precision 3570 with Intel i7-1255U
Alderlake processor. The mdadm tool did not work initially (the
RAID was not recognised), but I was able to get the RAID working when
I simply set IMSM_NO_PLATFORM=1. Then I tracked the issue down to UEFI
variables and discovered that the platform newly uses the 'RstVmdV'
name. This exactly same variable was used in recent patch series called
"mdadm-CI for-jes/20220728", so I updated the code to recognise the new
variable name also for VMD controller case. I then verified the change
by first running it in a debugger and then by putting it to initrd on
Fedora 36 (kernel 5.17). The startup was fine, the RAID 0 was correctly
setup.

I based my work on top of "mdadm-CI for-jes/20220728" patch series,
it is required in order to apply the patch.

Regards,
Oldrich.

Oldřich Jedlička (1):
  mdadm: enable Intel Alderlake RST VMD configuration

 platform-intel.c | 19 ++++++++++++-------
 1 file changed, 12 insertions(+), 7 deletions(-)

-- 
2.37.1


^ permalink raw reply	[flat|nested] 12+ messages in thread

* [PATCH 1/1] mdadm: enable Intel Alderlake RST VMD configuration
  2022-08-05 10:05 [PATCH 0/1] enable Intel Alderlake RST VMD configuration Oldřich Jedlička
@ 2022-08-05 10:05 ` Oldřich Jedlička
  2022-08-05 11:56   ` Kinga Tanska
  0 siblings, 1 reply; 12+ messages in thread
From: Oldřich Jedlička @ 2022-08-05 10:05 UTC (permalink / raw)
  To: linux-raid; +Cc: Oldřich Jedlička

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@gmail.com>
---
 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;
 	}
-- 
2.37.1


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* Re: [PATCH 1/1] mdadm: enable Intel Alderlake RST VMD configuration
  2022-08-05 10:05 ` [PATCH 1/1] mdadm: " Oldřich Jedlička
@ 2022-08-05 11:56   ` Kinga Tanska
  2022-08-05 12:50     ` Oldřich Jedlička
  0 siblings, 1 reply; 12+ messages in thread
From: Kinga Tanska @ 2022-08-05 11:56 UTC (permalink / raw)
  To: Oldřich Jedlička; +Cc: linux-raid

On Fri,  5 Aug 2022 12:05:45 +0200
Oldřich Jedlička <oldium.pro@gmail.com> 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@gmail.com>
> ---
>  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

Regards,
Kinga Tanska

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH 1/1] mdadm: enable Intel Alderlake RST VMD configuration
  2022-08-05 11:56   ` Kinga Tanska
@ 2022-08-05 12:50     ` Oldřich Jedlička
  2022-08-11 10:18       ` Mariusz Tkaczyk
  2022-08-18 14:12       ` Kinga Tanska
  0 siblings, 2 replies; 12+ messages in thread
From: Oldřich Jedlička @ 2022-08-05 12:50 UTC (permalink / raw)
  To: Kinga Tanska; +Cc: linux-raid

pá 5. 8. 2022 v 13:56 odesílatel Kinga Tanska
<kinga.tanska@linux.intel.com> napsal:
>
> On Fri,  5 Aug 2022 12:05:45 +0200
> Oldřich Jedlička <oldium.pro@gmail.com> 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@gmail.com>
> > ---
> >  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

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH 1/1] mdadm: enable Intel Alderlake RST VMD configuration
  2022-08-05 12:50     ` Oldřich Jedlička
@ 2022-08-11 10:18       ` Mariusz Tkaczyk
  2022-08-11 19:38         ` Oldřich Jedlička
  2022-08-18 14:12       ` Kinga Tanska
  1 sibling, 1 reply; 12+ messages in thread
From: Mariusz Tkaczyk @ 2022-08-11 10:18 UTC (permalink / raw)
  To: Oldřich Jedlička; +Cc: Kinga Tanska, linux-raid

Hello Oldřich,

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

> pá 5. 8. 2022 v 13:56 odesílatel Kinga Tanska
> <kinga.tanska@linux.intel.com> napsal:
> >
> > On Fri,  5 Aug 2022 12:05:45 +0200
> > Oldřich Jedlička <oldium.pro@gmail.com> 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.

Alderlake is RST so it doesn't changed, it is different. It is a support for
RST family product.
> > >
> > > Signed-off-by: Oldřich Jedlička <oldium.pro@gmail.com>
> > > ---
> > >  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"

There are two products RSTe/ VROC and RST.  Here you are adding support for RST
platform. Please name it accordingly (yeah, I know that naming is confusing).
I propose:

#define RST_VMD_PROP "RstVmdV"
#define VROC_VMD_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
> 
> 
> 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.
> 

This version is different than one sent by Coly. We will test that to see if it
doesn't cause regression in our VROC product.
I noted  some nits, we will test this version anyway.

Thanks,
Mariusz


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH 1/1] mdadm: enable Intel Alderlake RST VMD configuration
  2022-08-11 10:18       ` Mariusz Tkaczyk
@ 2022-08-11 19:38         ` Oldřich Jedlička
  2022-08-16 11:43           ` Mariusz Tkaczyk
  0 siblings, 1 reply; 12+ messages in thread
From: Oldřich Jedlička @ 2022-08-11 19:38 UTC (permalink / raw)
  To: Mariusz Tkaczyk; +Cc: Kinga Tanska, linux-raid

Hi Mariusz,

čt 11. 8. 2022 v 12:18 odesílatel Mariusz Tkaczyk
<mariusz.tkaczyk@linux.intel.com> napsal:
>
> Hello Oldřich,
>
> On Fri, 5 Aug 2022 14:50:36 +0200
> Oldřich Jedlička <oldium.pro@gmail.com> wrote:
>
> > pá 5. 8. 2022 v 13:56 odesílatel Kinga Tanska
> > <kinga.tanska@linux.intel.com> napsal:
> > >
> > > On Fri,  5 Aug 2022 12:05:45 +0200
> > > Oldřich Jedlička <oldium.pro@gmail.com> 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.
>
> Alderlake is RST so it doesn't changed, it is different. It is a support for
> RST family product.
> > > >
> > > > Signed-off-by: Oldřich Jedlička <oldium.pro@gmail.com>
> > > > ---
> > > >  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"
>
> There are two products RSTe/ VROC and RST.  Here you are adding support for RST
> platform. Please name it accordingly (yeah, I know that naming is confusing).
> I propose:
>
> #define RST_VMD_PROP "RstVmdV"
> #define VROC_VMD_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
> >
> >
> > 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.
> >
>
> This version is different than one sent by Coly. We will test that to see if it
> doesn't cause regression in our VROC product.
> I noted  some nits, we will test this version anyway.

Should I update the description (to just mention adding support for
Alderlake RST on VMD platform), change the defines in the patch, and
send V2, or you will send (possibly) updated version after your
testing?

The patch was tested on my Dell Precision 3570 notebook with Intel
i7-1255U CPU and two 2TB NVMe disks.

Cheers,
Oldřich.

> Thanks,
> Mariusz
>

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH 1/1] mdadm: enable Intel Alderlake RST VMD configuration
  2022-08-11 19:38         ` Oldřich Jedlička
@ 2022-08-16 11:43           ` Mariusz Tkaczyk
  0 siblings, 0 replies; 12+ messages in thread
From: Mariusz Tkaczyk @ 2022-08-16 11:43 UTC (permalink / raw)
  To: Oldřich Jedlička; +Cc: Kinga Tanska, linux-raid

On Thu, 11 Aug 2022 21:38:59 +0200
Oldřich Jedlička <oldium.pro@gmail.com> wrote:

> Hi Mariusz,
> 
> čt 11. 8. 2022 v 12:18 odesílatel Mariusz Tkaczyk
> <mariusz.tkaczyk@linux.intel.com> napsal:
> >
> > Hello Oldřich,
> >
> > On Fri, 5 Aug 2022 14:50:36 +0200
> > Oldřich Jedlička <oldium.pro@gmail.com> wrote:
> >  
> > > pá 5. 8. 2022 v 13:56 odesílatel Kinga Tanska
> > > <kinga.tanska@linux.intel.com> napsal:  
> > > >
> > > > On Fri,  5 Aug 2022 12:05:45 +0200
> > > > Oldřich Jedlička <oldium.pro@gmail.com> 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.  
> >
> > Alderlake is RST so it doesn't changed, it is different. It is a support for
> > RST family product.  
> > > > >
> > > > > Signed-off-by: Oldřich Jedlička <oldium.pro@gmail.com>
> > > > > ---
> > > > >  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"  
> >
> > There are two products RSTe/ VROC and RST.  Here you are adding support for
> > RST platform. Please name it accordingly (yeah, I know that naming is
> > confusing). I propose:
> >
> > #define RST_VMD_PROP "RstVmdV"
> > #define VROC_VMD_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  
> > >
> > >
> > > 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.
> > >  
> >
> > This version is different than one sent by Coly. We will test that to see
> > if it doesn't cause regression in our VROC product.
> > I noted  some nits, we will test this version anyway.  
> 
> Should I update the description (to just mention adding support for
> Alderlake RST on VMD platform), change the defines in the patch, and
> send V2, or you will send (possibly) updated version after your
> testing?
> 
> The patch was tested on my Dell Precision 3570 notebook with Intel
> i7-1255U CPU and two 2TB NVMe disks.
> 

Please do. This is your patch, so I don't want to take a your glory :)

Thanks,
Mariusz

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH 1/1] mdadm: enable Intel Alderlake RST VMD configuration
  2022-08-05 12:50     ` Oldřich Jedlička
  2022-08-11 10:18       ` Mariusz Tkaczyk
@ 2022-08-18 14:12       ` Kinga Tanska
  2022-08-18 14:53         ` Oldřich Jedlička
  1 sibling, 1 reply; 12+ messages in thread
From: Kinga Tanska @ 2022-08-18 14:12 UTC (permalink / raw)
  To: Oldřich Jedlička; +Cc: linux-raid

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

> pá 5. 8. 2022 v 13:56 odesílatel Kinga Tanska
> <kinga.tanska@linux.intel.com> napsal:
> >
> > On Fri,  5 Aug 2022 12:05:45 +0200
> > Oldřich Jedlička <oldium.pro@gmail.com> 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@gmail.com>
> > > ---
> > >  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

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH 1/1] mdadm: enable Intel Alderlake RST VMD configuration
  2022-08-18 14:12       ` Kinga Tanska
@ 2022-08-18 14:53         ` Oldřich Jedlička
  2022-08-18 15:21           ` Oldřich Jedlička
  0 siblings, 1 reply; 12+ messages in thread
From: Oldřich Jedlička @ 2022-08-18 14:53 UTC (permalink / raw)
  To: Kinga Tanska; +Cc: linux-raid

čt 18. 8. 2022 v 16:12 odesílatel Kinga Tanska
<kinga.tanska@linux.intel.com> napsal:
>
> On Fri, 5 Aug 2022 14:50:36 +0200
> Oldřich Jedlička <oldium.pro@gmail.com> wrote:
>
> > pá 5. 8. 2022 v 13:56 odesílatel Kinga Tanska
> > <kinga.tanska@linux.intel.com> napsal:
> > >
> > > On Fri,  5 Aug 2022 12:05:45 +0200
> > > Oldřich Jedlička <oldium.pro@gmail.com> 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@gmail.com>
> > > > ---
> > > >  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.

Hi Kinga Tanska,

My patch touches only the VMD controllers. I see that there are no
changes to VMD display in your output. My patch is only about VMD.

I guess that your issue is identical to what you already wrote to RAID
mailing list 5th of August. Correct? I cannot investigate this for
you, I am neither the author of the change, nor I have RST enterprise
RAID controller, sorry. Please contact the patch submitter/author.

Regards,
Oldrich.

> Regards,
> Kinga Tanska

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH 1/1] mdadm: enable Intel Alderlake RST VMD configuration
  2022-08-18 14:53         ` Oldřich Jedlička
@ 2022-08-18 15:21           ` Oldřich Jedlička
  2022-08-23 14:03             ` Kinga Tanska
  0 siblings, 1 reply; 12+ messages in thread
From: Oldřich Jedlička @ 2022-08-18 15:21 UTC (permalink / raw)
  To: Kinga Tanska; +Cc: linux-raid

čt 18. 8. 2022 v 16:53 odesílatel Oldřich Jedlička
<oldium.pro@gmail.com> napsal:
>
> čt 18. 8. 2022 v 16:12 odesílatel Kinga Tanska
> <kinga.tanska@linux.intel.com> napsal:
> >
> > On Fri, 5 Aug 2022 14:50:36 +0200
> > Oldřich Jedlička <oldium.pro@gmail.com> wrote:
> >
> > > pá 5. 8. 2022 v 13:56 odesílatel Kinga Tanska
> > > <kinga.tanska@linux.intel.com> napsal:
> > > >
> > > > On Fri,  5 Aug 2022 12:05:45 +0200
> > > > Oldřich Jedlička <oldium.pro@gmail.com> 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@gmail.com>
> > > > > ---
> > > > >  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.
>
> Hi Kinga Tanska,
>
> My patch touches only the VMD controllers. I see that there are no
> changes to VMD display in your output. My patch is only about VMD.
>
> I guess that your issue is identical to what you already wrote to RAID
> mailing list 5th of August. Correct? I cannot investigate this for
> you, I am neither the author of the change, nor I have RST enterprise
> RAID controller, sorry. Please contact the patch submitter/author.

I just checked the patch code, I cannot debug this. You are most
probably affected by patch which you already identified:

  [PATCH 19/23] mdadm: enable Intel Alderlake RSTe configuration.

It tries to exclude SATA in AHCI mode (PCI class 0x010601) from
the changed EFI variable check. What is your `lspci -nn` output?
It could help in verifying that my guess is correct.

Cheers,
Oldrich.

>
> Regards,
> Oldrich.
>
> > Regards,
> > Kinga Tanska

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH 1/1] mdadm: enable Intel Alderlake RST VMD configuration
  2022-08-18 15:21           ` Oldřich Jedlička
@ 2022-08-23 14:03             ` Kinga Tanska
  2022-08-25 18:57               ` Oldřich Jedlička
  0 siblings, 1 reply; 12+ messages in thread
From: Kinga Tanska @ 2022-08-23 14:03 UTC (permalink / raw)
  To: Oldřich Jedlička; +Cc: linux-raid, mariusz.tkaczyk

On Thu, 18 Aug 2022 17:21:20 +0200
Oldřich Jedlička <oldium.pro@gmail.com> wrote:

> čt 18. 8. 2022 v 16:53 odesílatel Oldřich Jedlička
> <oldium.pro@gmail.com> napsal:
> >
> > čt 18. 8. 2022 v 16:12 odesílatel Kinga Tanska
> > <kinga.tanska@linux.intel.com> napsal:  
> > >
> > > On Fri, 5 Aug 2022 14:50:36 +0200
> > > Oldřich Jedlička <oldium.pro@gmail.com> wrote:
> > >  
> > > > pá 5. 8. 2022 v 13:56 odesílatel Kinga Tanska
> > > > <kinga.tanska@linux.intel.com> napsal:  
> > > > >
> > > > > On Fri,  5 Aug 2022 12:05:45 +0200
> > > > > Oldřich Jedlička <oldium.pro@gmail.com> 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@gmail.com>
> > > > > > ---
> > > > > >  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.  
> >
> > Hi Kinga Tanska,
> >
> > My patch touches only the VMD controllers. I see that there are no
> > changes to VMD display in your output. My patch is only about VMD.
> >
> > I guess that your issue is identical to what you already wrote to
> > RAID mailing list 5th of August. Correct? I cannot investigate this
> > for you, I am neither the author of the change, nor I have RST
> > enterprise RAID controller, sorry. Please contact the patch
> > submitter/author.  
> 
> I just checked the patch code, I cannot debug this. You are most
> probably affected by patch which you already identified:
> 
>   [PATCH 19/23] mdadm: enable Intel Alderlake RSTe configuration.
> 
> It tries to exclude SATA in AHCI mode (PCI class 0x010601) from
> the changed EFI variable check. What is your `lspci -nn` output?
> It could help in verifying that my guess is correct.
> 
> Cheers,
> Oldrich.
> 
> >
> > Regards,
> > Oldrich.
> >  
> > > Regards,
> > > Kinga Tanska  

Hi Oldrich,

I've noticed that your patch is on top of mdadm-CI for-jes/20220728
branch. This branch contains previous patch for Alderlake RST VMD
support ([PATCH 19/23] mdadm: enable Intel Alderlake RSTe
configuration). This patch causes defect, which I've described. You were
right saying that this patch affected me.
Please move your patch to the HEAD and then I've been able to test it
again.

Thanks,
Kinga

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH 1/1] mdadm: enable Intel Alderlake RST VMD configuration
  2022-08-23 14:03             ` Kinga Tanska
@ 2022-08-25 18:57               ` Oldřich Jedlička
  0 siblings, 0 replies; 12+ messages in thread
From: Oldřich Jedlička @ 2022-08-25 18:57 UTC (permalink / raw)
  To: Kinga Tanska; +Cc: linux-raid, mariusz.tkaczyk

út 23. 8. 2022 v 16:03 odesílatel Kinga Tanska
<kinga.tanska@linux.intel.com> napsal:
>
> On Thu, 18 Aug 2022 17:21:20 +0200
> Oldřich Jedlička <oldium.pro@gmail.com> wrote:
>
> > čt 18. 8. 2022 v 16:53 odesílatel Oldřich Jedlička
> > <oldium.pro@gmail.com> napsal:
> > >
> > > čt 18. 8. 2022 v 16:12 odesílatel Kinga Tanska
> > > <kinga.tanska@linux.intel.com> napsal:
> > > >
> > > > On Fri, 5 Aug 2022 14:50:36 +0200
> > > > Oldřich Jedlička <oldium.pro@gmail.com> wrote:
> > > >
> > > > > pá 5. 8. 2022 v 13:56 odesílatel Kinga Tanska
> > > > > <kinga.tanska@linux.intel.com> napsal:
> > > > > >
> > > > > > On Fri,  5 Aug 2022 12:05:45 +0200
> > > > > > Oldřich Jedlička <oldium.pro@gmail.com> 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@gmail.com>
> > > > > > > ---
> > > > > > >  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.
> > >
> > > Hi Kinga Tanska,
> > >
> > > My patch touches only the VMD controllers. I see that there are no
> > > changes to VMD display in your output. My patch is only about VMD.
> > >
> > > I guess that your issue is identical to what you already wrote to
> > > RAID mailing list 5th of August. Correct? I cannot investigate this
> > > for you, I am neither the author of the change, nor I have RST
> > > enterprise RAID controller, sorry. Please contact the patch
> > > submitter/author.
> >
> > I just checked the patch code, I cannot debug this. You are most
> > probably affected by patch which you already identified:
> >
> >   [PATCH 19/23] mdadm: enable Intel Alderlake RSTe configuration.
> >
> > It tries to exclude SATA in AHCI mode (PCI class 0x010601) from
> > the changed EFI variable check. What is your `lspci -nn` output?
> > It could help in verifying that my guess is correct.
> >
> > Cheers,
> > Oldrich.
> >
> > >
> > > Regards,
> > > Oldrich.
> > >
> > > > Regards,
> > > > Kinga Tanska
>
> Hi Oldrich,
>
> I've noticed that your patch is on top of mdadm-CI for-jes/20220728
> branch. This branch contains previous patch for Alderlake RST VMD
> support ([PATCH 19/23] mdadm: enable Intel Alderlake RSTe
> configuration). This patch causes defect, which I've described. You were
> right saying that this patch affected me.
> Please move your patch to the HEAD and then I've been able to test it
> again.

Hi Kinga,

Thanks, I will do it during the weekend.

Cheers,
Oldrich.

> Thanks,
> Kinga

^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2022-08-25 18:57 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-08-05 10:05 [PATCH 0/1] enable Intel Alderlake RST VMD configuration Oldřich Jedlička
2022-08-05 10:05 ` [PATCH 1/1] mdadm: " Oldřich Jedlička
2022-08-05 11:56   ` Kinga Tanska
2022-08-05 12:50     ` Oldřich Jedlička
2022-08-11 10:18       ` Mariusz Tkaczyk
2022-08-11 19:38         ` Oldřich Jedlička
2022-08-16 11:43           ` Mariusz Tkaczyk
2022-08-18 14:12       ` Kinga Tanska
2022-08-18 14:53         ` Oldřich Jedlička
2022-08-18 15:21           ` Oldřich Jedlička
2022-08-23 14:03             ` Kinga Tanska
2022-08-25 18:57               ` Oldřich Jedlička

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).