Вопреки заявлениям рекламщиков Самсунга инженеры оной не только не исправили в 860х и 870х сериях SATA SSD ошибки предыдущих 840х и 850х, но и добавили новых. После трёх лет препирательств с пользователями разработчики подсистемы накопителей libata-core.c в Linux наконец-то приняли патчи, предлагавшиеся пользователями.
Когда-то Samsung выпускал оптические приводы, плохо читающие диски. Затем были НЖМД накопители, которые часто сбоили и ломались. Поэтому не было ничего удивительного в обнаружении ошибок в твёрдотельных накопителях этого производителя. Найти их признаки можно, поискав «FPDMA QUEUED» в выводе dmesg. Для SSD от Samsung уже давно наличествовали исправления в ядре Linux.
Прежний код libata-core.c для борьбы с ошибками Samsung SATA SSD:
{ "Samsung SSD 840*", NULL, ATA_HORKAGE_NO_NCQ_TRIM |
ATA_HORKAGE_ZERO_AFTER_TRIM, },
{ "Samsung SSD 850*", NULL, ATA_HORKAGE_NO_NCQ_TRIM |
ATA_HORKAGE_ZERO_AFTER_TRIM, },
Поэтому было удивительно узнать от представителей компании Самсунг, что в новой 860-й серии SSD, выпущенной в начале 2018 года, ошибки были исправлены. Как оказалось, старые ошибки там остались, и ещё появились новые.
Первая ошибка — для серий 840-870:
Накопители Samsung SSD SATA могут портить данные при выполнении команды Queued TRIM, которая используется в Linux (но не в Windows, поскольку разработчики Microsoft не считают её полезной). Подвержены SATA контроллеры Intel, AMD AM4 чипсетов (у более старых тяжелее ошибки — см. далее), Asmedia, Marvell и прочие. Лечится отключением Queued TRIM. Пользователи некоторых дистрибутивов Linux не видели этой ошибки из-за отключения этой фичи создателями дистрибутивов. Зачастую действует негласное правило: "Если Windows какую-то фичу не использует, то лучше её и нам не применять, ибо производители железа отказываются заниматься ошибками не-Windows пользователей".
Вторая ошибка — для серий 860-870:
Накопители Samsung SATA SSD могут портить данные и в разы снижают скорость при работе с SATA портами, подключёнными к южным мостам ATI - AMD. Здесь уже Windows может сбоить. Подвержены SATA контроллеры в южных мостах AM3+ и старее (SB 950 и старее). Лечится отключением NCQ для всех чипсетов c Vendor ID = 0x1002 (ATI). Скорость работы SSD накопителей падает от этого в 2-3 раза (до 10 раз в некоторых тестах).
Код libata-core.c для борьбы с ошибками Samsung SATA SSD выглядит теперь так:
{ "Samsung SSD 840*", NULL, ATA_HORKAGE_NO_NCQ_TRIM |
ATA_HORKAGE_ZERO_AFTER_TRIM, },
{ "Samsung SSD 850*", NULL, ATA_HORKAGE_NO_NCQ_TRIM |
ATA_HORKAGE_ZERO_AFTER_TRIM, },
{ "Samsung SSD 860*", NULL, ATA_HORKAGE_NO_NCQ_TRIM |
ATA_HORKAGE_ZERO_AFTER_TRIM |
ATA_HORKAGE_NO_NCQ_ON_ATI, },
{ "Samsung SSD 870*", NULL, ATA_HORKAGE_NO_NCQ_TRIM |
ATA_HORKAGE_ZERO_AFTER_TRIM |
ATA_HORKAGE_NO_NCQ_ON_ATI, },
Но есть ещё и
Третья ошибка — для неизвестных серий: Накопители Samsung SSD SATA сбоят при работе в устройствах со включённым энергосбережением у контроллеров SATA. Подвержены ноутбуки со включённым энергосбережением оных. Некоторые контроллеры по умолчанию не используют энергосбережение, но начинают это делать при установке пакета TLP. Он ставится по умолчанию для ноутбуков в некоторых дистрибутивах. Пример: openSUSE.
Обновления прошивок для накопителей Samsung SATA SSD пока что не исправили эти ошибки. SATA SSD накопители с чипами Phison, Marvell и прочими работают на том же железе хорошо.
Долгое время разработчики Linux тянули время с запросами пользователей на добавление патчей для глючных Самсунгов, утверждая, что-де у «вас там блок питания барахлит». Дополнительный толчок для применения патчей стал выпуск в 2021 году 870-й серии SATA SSD с теми же самыми ошибками, что и в 860-й.
Указанные патчи уже применяются в дистрибутивах Linux. Как обычно, можно поменять поведение по умолчанию на нужное с помощью параметров ядра. Возможна настройка с точностью до отдельного порта SATA. Есть способ лучше — использовать NVMe SSD (подходит и для старых систем).
Недавно главу Samsung под нажимом властных кругов досрочно выпустили из тюрьмы, где он отбывал срок за подкуп предыдущего президента (президентши) Южной Кореи и прочие дела.
Компания Samsung продолжает утверждать об отсутствии ошибок в их SATA SSD.
Источники:
https://www.phoronix.com/scan.php?page=news_item&px=Samsung-860-870-More-Quirks
https://bugzilla.kernel.org/show_bug.cgi?id=201693
https://bugzilla.kernel.org/show_bug.cgi?id=203475
https://github.com/torvalds/linux/blob/master/drivers/ata/libata-core.c
https://github.com/torvalds/linux/commit/7a8526a5cd51cf5f070310c6c37dd7293334ac49
https://en.wikipedia.org/wiki/List_of_AMD_chipsets
https://linux-hardware.org/?id=ide:samsung-ssd-860-evo-250gb
https://linux-hardware.org/?id=ide:samsung-ssd-860-evo-500gb