[PATCH 0/1] MdeModulePkg/Ahci: Skip retry for non-transient errors


Albecki, Mateusz
 

Fix for the recovery logic which causes hdd unlock to fail if user supplies incorrect
password. Every failed packet used to be recovered which is causing the
incorrect password to be tried multiple times. This patch series fixes the logic
to only retry commands that failed due to CRC error.

BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=4011

Github pull: https://github.com/tianocore/edk2/pull/4157

Tests:
- tested basic linux boot from AHCI on qemu
- tested basic linux boot from AHCI on custom qemu which will fail 50% of the DMA commands with CRC error.
Observed that all of the packets that failed were successfully retried. Custom Qemu: https://github.com/matalbec/qemu/tree/sata_dma_50p_fail
- additionally Hunter Chang tested and confirmed that the password issue is no longer observed.

Cc: Hao A Wu <hao.a.wu@...>
Cc: Ray Ni <ray.ni@...>
Cc: Hunter Chang <hunter.chang@...>

Mateusz Albecki (1):
MdeModulePkg/Ahci: Skip retry for non-transient errors

.../Bus/Ata/AtaAtapiPassThru/AhciMode.c | 69 +++++++++++++++++--
.../Bus/Ata/AtaAtapiPassThru/AhciMode.h | 3 +-
2 files changed, 67 insertions(+), 5 deletions(-)

--
2.39.1.windows.1

---------------------------------------------------------------------
Intel Technology Poland sp. z o.o.
ul. Slowackiego 173 | 80-298 Gdansk | Sad Rejonowy Gdansk Polnoc | VII Wydzial Gospodarczy Krajowego Rejestru Sadowego - KRS 101882 | NIP 957-07-52-316 | Kapital zakladowy 200.000 PLN.
Spolka oswiadcza, ze posiada status duzego przedsiebiorcy w rozumieniu ustawy z dnia 8 marca 2013 r. o przeciwdzialaniu nadmiernym opoznieniom w transakcjach handlowych.

Ta wiadomosc wraz z zalacznikami jest przeznaczona dla okreslonego adresata i moze zawierac informacje poufne. W razie przypadkowego otrzymania tej wiadomosci, prosimy o powiadomienie nadawcy oraz trwale jej usuniecie; jakiekolwiek przegladanie lub rozpowszechnianie jest zabronione.
This e-mail and any attachments may contain confidential material for the sole use of the intended recipient(s). If you are not the intended recipient, please contact the sender and delete all copies; any review or distribution by others is strictly prohibited.


Wu, Hao A
 

Thanks Mateusz, the patch looks good to me.
I noticed that there are some check failures in https://github.com/tianocore/edk2/pull/4157, could you help to address them?


Hello Baraneedharan Anbazhagan,
Could you help to check if this patch can resolve the issue https://bugzilla.tianocore.org/show_bug.cgi?id=4011 when switching back to: "#define AHCI_COMMAND_RETRIES 5"?
This change can be accessed for integration at: https://patch-diff.githubusercontent.com/raw/tianocore/edk2/pull/4157.patch
Thanks in advance.

Best Regards,
Hao Wu

-----Original Message-----
From: Albecki, Mateusz <mateusz.albecki@...>
Sent: Wednesday, March 22, 2023 4:20 AM
To: devel@edk2.groups.io
Cc: Albecki, Mateusz <mateusz.albecki@...>; Wu, Hao A
<hao.a.wu@...>; Ni, Ray <ray.ni@...>; Chang, Hunter
<hunter.chang@...>
Subject: [PATCH 0/1] MdeModulePkg/Ahci: Skip retry for non-transient errors

Fix for the recovery logic which causes hdd unlock to fail if user supplies
incorrect password. Every failed packet used to be recovered which is causing
the incorrect password to be tried multiple times. This patch series fixes the
logic to only retry commands that failed due to CRC error.

BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=4011

Github pull: https://github.com/tianocore/edk2/pull/4157

Tests:
- tested basic linux boot from AHCI on qemu
- tested basic linux boot from AHCI on custom qemu which will fail 50% of the
DMA commands with CRC error.
Observed that all of the packets that failed were successfully retried. Custom
Qemu: https://github.com/matalbec/qemu/tree/sata_dma_50p_fail
- additionally Hunter Chang tested and confirmed that the password issue is no
longer observed.

Cc: Hao A Wu <hao.a.wu@...>
Cc: Ray Ni <ray.ni@...>
Cc: Hunter Chang <hunter.chang@...>

Mateusz Albecki (1):
MdeModulePkg/Ahci: Skip retry for non-transient errors

.../Bus/Ata/AtaAtapiPassThru/AhciMode.c | 69 +++++++++++++++++--
.../Bus/Ata/AtaAtapiPassThru/AhciMode.h | 3 +-
2 files changed, 67 insertions(+), 5 deletions(-)

--
2.39.1.windows.1


Albecki, Mateusz
 

Seems like a code formatting issue. I will address it tomorrow.

Regards,
Mateusz


Anbazhagan, Baraneedharan
 

Hi,

This patch seems to resolve the issue reported in 4011 – MdeModulePkg: Need configurable AHCI command retries (tianocore.org) and verified with ‘AHCI_COMMAND_RETRIES’ as 5. Able to unlock the drive with correct password on 2nd attempt after providing an incorrect password.

 

Thanks,

Baranee

 

From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Wu, Hao A via groups.io
Sent: Wednesday, March 22, 2023 1:59 AM
To: Albecki, Mateusz <mateusz.albecki@...>; Anbazhagan, Baraneedharan <anbazhagan@...>; devel@edk2.groups.io
Cc: Ni, Ray <ray.ni@...>; Chang, Hunter <hunter.chang@...>
Subject: Re: [edk2-devel] [PATCH 0/1] MdeModulePkg/Ahci: Skip retry for non-transient errors

 

CAUTION: External Email

Thanks Mateusz, the patch looks good to me.
I noticed that there are some check failures in https://github.com/tianocore/edk2/pull/4157, could you help to address them?


Hello Baraneedharan Anbazhagan,
Could you help to check if this patch can resolve the issue https://bugzilla.tianocore.org/show_bug.cgi?id=4011 when switching back to: "#define AHCI_COMMAND_RETRIES 5"?
This change can be accessed for integration at: https://patch-diff.githubusercontent.com/raw/tianocore/edk2/pull/4157.patch
Thanks in advance.

Best Regards,
Hao Wu

> -----Original Message-----
> From: Albecki, Mateusz <mateusz.albecki@...>
> Sent: Wednesday, March 22, 2023 4:20 AM
> To: devel@edk2.groups.io
> Cc: Albecki, Mateusz <mateusz.albecki@...>; Wu, Hao A
> <hao.a.wu@...>; Ni, Ray <ray.ni@...>; Chang, Hunter
> <hunter.chang@...>
> Subject: [PATCH 0/1] MdeModulePkg/Ahci: Skip retry for non-transient errors
>
> Fix for the recovery logic which causes hdd unlock to fail if user supplies
> incorrect password. Every failed packet used to be recovered which is causing
> the incorrect password to be tried multiple times. This patch series fixes the
> logic to only retry commands that failed due to CRC error.
>
> BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=4011
>
> Github pull: https://github.com/tianocore/edk2/pull/4157
>
> Tests:
> - tested basic linux boot from AHCI on qemu
> - tested basic linux boot from AHCI on custom qemu which will fail 50% of the
> DMA commands with CRC error.
> Observed that all of the packets that failed were successfully retried. Custom
> Qemu: https://github.com/matalbec/qemu/tree/sata_dma_50p_fail
> - additionally Hunter Chang tested and confirmed that the password issue is no
> longer observed.
>
> Cc: Hao A Wu <hao.a.wu@...>
> Cc: Ray Ni <ray.ni@...>
> Cc: Hunter Chang <hunter.chang@...>
>
> Mateusz Albecki (1):
> MdeModulePkg/Ahci: Skip retry for non-transient errors
>
> .../Bus/Ata/AtaAtapiPassThru/AhciMode.c | 69 +++++++++++++++++--
> .../Bus/Ata/AtaAtapiPassThru/AhciMode.h | 3 +-
> 2 files changed, 67 insertions(+), 5 deletions(-)
>
> --
> 2.39.1.windows.1




Wu, Hao A
 

Thanks Baranee. We will proceed to merge the this patch after reviewing process.

 

For the PCD (PcdAhciCommandRetryCount) previously introduced to address the password retry issue, what is your opinion on it?

Do you think we can remove it or keep it for other reason? Thanks.

 

Best Regards,

Hao Wu

 

From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Anbazhagan, Baraneedharan via groups.io
Sent: Friday, March 24, 2023 12:55 AM
To: devel@edk2.groups.io; Wu, Hao A <hao.a.wu@...>; Albecki, Mateusz <mateusz.albecki@...>
Cc: Ni, Ray <ray.ni@...>; Chang, Hunter <hunter.chang@...>
Subject: Re: [edk2-devel] [PATCH 0/1] MdeModulePkg/Ahci: Skip retry for non-transient errors

 

Hi,

This patch seems to resolve the issue reported in 4011 – MdeModulePkg: Need configurable AHCI command retries (tianocore.org) and verified with ‘AHCI_COMMAND_RETRIES’ as 5. Able to unlock the drive with correct password on 2nd attempt after providing an incorrect password.

 

Thanks,

Baranee

 

From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Wu, Hao A via groups.io
Sent: Wednesday, March 22, 2023 1:59 AM
To: Albecki, Mateusz <mateusz.albecki@...>; Anbazhagan, Baraneedharan <anbazhagan@...>; devel@edk2.groups.io
Cc: Ni, Ray <ray.ni@...>; Chang, Hunter <hunter.chang@...>
Subject: Re: [edk2-devel] [PATCH 0/1] MdeModulePkg/Ahci: Skip retry for non-transient errors

 

CAUTION: External Email

Thanks Mateusz, the patch looks good to me.
I noticed that there are some check failures in https://github.com/tianocore/edk2/pull/4157, could you help to address them?


Hello Baraneedharan Anbazhagan,
Could you help to check if this patch can resolve the issue https://bugzilla.tianocore.org/show_bug.cgi?id=4011 when switching back to: "#define AHCI_COMMAND_RETRIES 5"?
This change can be accessed for integration at: https://patch-diff.githubusercontent.com/raw/tianocore/edk2/pull/4157.patch
Thanks in advance.

Best Regards,
Hao Wu

> -----Original Message-----
> From: Albecki, Mateusz <mateusz.albecki@...>
> Sent: Wednesday, March 22, 2023 4:20 AM
> To: devel@edk2.groups.io
> Cc: Albecki, Mateusz <mateusz.albecki@...>; Wu, Hao A
> <hao.a.wu@...>; Ni, Ray <ray.ni@...>; Chang, Hunter
> <hunter.chang@...>
> Subject: [PATCH 0/1] MdeModulePkg/Ahci: Skip retry for non-transient errors
>
> Fix for the recovery logic which causes hdd unlock to fail if user supplies
> incorrect password. Every failed packet used to be recovered which is causing
> the incorrect password to be tried multiple times. This patch series fixes the
> logic to only retry commands that failed due to CRC error.
>
> BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=4011
>
> Github pull: https://github.com/tianocore/edk2/pull/4157
>
> Tests:
> - tested basic linux boot from AHCI on qemu
> - tested basic linux boot from AHCI on custom qemu which will fail 50% of the
> DMA commands with CRC error.
> Observed that all of the packets that failed were successfully retried. Custom
> Qemu: https://github.com/matalbec/qemu/tree/sata_dma_50p_fail
> - additionally Hunter Chang tested and confirmed that the password issue is no
> longer observed.
>
> Cc: Hao A Wu <hao.a.wu@...>
> Cc: Ray Ni <ray.ni@...>
> Cc: Hunter Chang <hunter.chang@...>
>
> Mateusz Albecki (1):
> MdeModulePkg/Ahci: Skip retry for non-transient errors
>
> .../Bus/Ata/AtaAtapiPassThru/AhciMode.c | 69 +++++++++++++++++--
> .../Bus/Ata/AtaAtapiPassThru/AhciMode.h | 3 +-
> 2 files changed, 67 insertions(+), 5 deletions(-)
>
> --
> 2.39.1.windows.1



Anbazhagan, Baraneedharan
 

It’s OK to remove the PCD since password issue is fixed in different way. On other hand, PCD allows the platform to determine the retries independent of specific command. Am OK with either approach on this one currently. Thanks.

 

From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Wu, Hao A via groups.io
Sent: Thursday, March 23, 2023 8:14 PM
To: Anbazhagan, Baraneedharan <anbazhagan@...>; devel@edk2.groups.io; Albecki, Mateusz <mateusz.albecki@...>
Cc: Ni, Ray <ray.ni@...>; Chang, Hunter <hunter.chang@...>
Subject: Re: [edk2-devel] [PATCH 0/1] MdeModulePkg/Ahci: Skip retry for non-transient errors

 

CAUTION: External Email

Thanks Baranee. We will proceed to merge the this patch after reviewing process.

 

For the PCD (PcdAhciCommandRetryCount) previously introduced to address the password retry issue, what is your opinion on it?

Do you think we can remove it or keep it for other reason? Thanks.

 

Best Regards,

Hao Wu

 

From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Anbazhagan, Baraneedharan via groups.io
Sent: Friday, March 24, 2023 12:55 AM
To: devel@edk2.groups.io; Wu, Hao A <hao.a.wu@...>; Albecki, Mateusz <mateusz.albecki@...>
Cc: Ni, Ray <ray.ni@...>; Chang, Hunter <hunter.chang@...>
Subject: Re: [edk2-devel] [PATCH 0/1] MdeModulePkg/Ahci: Skip retry for non-transient errors

 

Hi,

This patch seems to resolve the issue reported in 4011 – MdeModulePkg: Need configurable AHCI command retries (tianocore.org) and verified with ‘AHCI_COMMAND_RETRIES’ as 5. Able to unlock the drive with correct password on 2nd attempt after providing an incorrect password.

 

Thanks,

Baranee

 

From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Wu, Hao A via groups.io
Sent: Wednesday, March 22, 2023 1:59 AM
To: Albecki, Mateusz <mateusz.albecki@...>; Anbazhagan, Baraneedharan <anbazhagan@...>; devel@edk2.groups.io
Cc: Ni, Ray <ray.ni@...>; Chang, Hunter <hunter.chang@...>
Subject: Re: [edk2-devel] [PATCH 0/1] MdeModulePkg/Ahci: Skip retry for non-transient errors

 

CAUTION: External Email

Thanks Mateusz, the patch looks good to me.
I noticed that there are some check failures in https://github.com/tianocore/edk2/pull/4157, could you help to address them?


Hello Baraneedharan Anbazhagan,
Could you help to check if this patch can resolve the issue https://bugzilla.tianocore.org/show_bug.cgi?id=4011 when switching back to: "#define AHCI_COMMAND_RETRIES 5"?
This change can be accessed for integration at: https://patch-diff.githubusercontent.com/raw/tianocore/edk2/pull/4157.patch
Thanks in advance.

Best Regards,
Hao Wu

> -----Original Message-----
> From: Albecki, Mateusz <mateusz.albecki@...>
> Sent: Wednesday, March 22, 2023 4:20 AM
> To: devel@edk2.groups.io
> Cc: Albecki, Mateusz <mateusz.albecki@...>; Wu, Hao A
> <hao.a.wu@...>; Ni, Ray <ray.ni@...>; Chang, Hunter
> <hunter.chang@...>
> Subject: [PATCH 0/1] MdeModulePkg/Ahci: Skip retry for non-transient errors
>
> Fix for the recovery logic which causes hdd unlock to fail if user supplies
> incorrect password. Every failed packet used to be recovered which is causing
> the incorrect password to be tried multiple times. This patch series fixes the
> logic to only retry commands that failed due to CRC error.
>
> BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=4011
>
> Github pull: https://github.com/tianocore/edk2/pull/4157
>
> Tests:
> - tested basic linux boot from AHCI on qemu
> - tested basic linux boot from AHCI on custom qemu which will fail 50% of the
> DMA commands with CRC error.
> Observed that all of the packets that failed were successfully retried. Custom
> Qemu: https://github.com/matalbec/qemu/tree/sata_dma_50p_fail
> - additionally Hunter Chang tested and confirmed that the password issue is no
> longer observed.
>
> Cc: Hao A Wu <hao.a.wu@...>
> Cc: Ray Ni <ray.ni@...>
> Cc: Hunter Chang <hunter.chang@...>
>
> Mateusz Albecki (1):
> MdeModulePkg/Ahci: Skip retry for non-transient errors
>
> .../Bus/Ata/AtaAtapiPassThru/AhciMode.c | 69 +++++++++++++++++--
> .../Bus/Ata/AtaAtapiPassThru/AhciMode.h | 3 +-
> 2 files changed, 67 insertions(+), 5 deletions(-)
>
> --
> 2.39.1.windows.1