Как стать автором
Обновить

Для накопителей Samsung SSD SATA серий 860 и 870 разработчики ядра Linux наконец-то выпустили исправления

Время на прочтение3 мин
Количество просмотров20K

Вопреки заявлениям рекламщиков Самсунга инженеры оной не только не исправили в 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

https://linux-hardware.org/?id=ide:samsung-ssd-860-evo-1tb

https://linux-hardware.org/?probe=5a21d12b42

Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
Коснулись ли Вас упомянутые ошибки?
6.57% Да18
41.24% Нет113
39.78% Не знаю109
12.41% Пофиг34
Проголосовали 274 пользователя. Воздержались 43 пользователя.
Теги:
Хабы:
Всего голосов 42: ↑20 и ↓22+2
Комментарии34

Публикации

Истории

Работа

Ближайшие события

15 – 16 ноября
IT-конференция Merge Skolkovo
Москва
22 – 24 ноября
Хакатон «AgroCode Hack Genetics'24»
Онлайн
28 ноября
Конференция «TechRec: ITHR CAMPUS»
МоскваОнлайн
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань