LINUX.ORG.RU

Как бы повоздействовать на ЕСС-память, чтобы посмотреть как оно ошибки исправляет?

 ,


1

3

Собственно, правильно, когда концепция построения защитных устройств предполагает какие-то средства для проверки того, что защита работает. Пример, из области электротехники - если у нас есть УЗО (устройство защитного отключения), то у него есть специальная кнопочка для проверки. По нормам эту кнопочку надо нажимать то ли раз месяц то ли в три.

А на ЕСС-памяти такой кнопочки нету. И как ее проверять правильно? Вот приехала мне с алика материнка+хеон+память есс-шная. Гоняю ее, и второй день edac-util --report=full выдает все по нулям. И кто знает, может это фикция, китайцы ж такие… Может ошибки были а все по нулям. А может не фикция но просто в биосе что-то недонастроено. Но может и не было ошибок. Собственно, с чего им быть, если мемтест их ненаходит…

И тут хочется такую фичу, что ты говоришь что-то типа edac-util сделай мне тут 50 корректируемых ошибок, или что-то в этом роде, чтобы можно было понаблюдать за работой всего этого механизма.

Ответ на: комментарий от token_polyak

о, спасибо. Нашел дальше по ссылкам, утилиты называются mce-test, mce-inject, mcelog. А так же модуль mce_inject.

Запустить это все навскидку не вышло - надо доки читать. Отправной точкой, насколько я понял, является mce-test

А CONFIG_EDAC_AMD64_ERROR_INJECTION относится к другому чипсету, похоже что. Для xeon 2680v4 идет модуль sb_edac, а модуль amd64_edac_mod - он для амд идет, похоже что. По крайней мере, так утверждает чат гпт. И при попытке загрузить amd64_edac_mod оно ругается - «ERROR: could not insert ‘amd64_edac_mod’: No such device», так что похоже, что гпт прав.

chabapok
() автор топика
Ответ на: комментарий от vbr

запустил… А его правильней на одном ядре запускать, или на всех? Или на всех считая гипертрединовые за отдельные ядра?

Как вообще его правильно гонять? Оно сделало 300 итераций (минут 5..10 работало) и мне поднадоело. Прожка не отвалилась, что говорит о том, что она не нашла ошибок. Остановил. Имеет ли смысл например на ночь ее запустить?

Счетчики все еще по нулям. То ли не считает - то ли не глючит. То ли неправильно получает их.

$ edac-util --report=full
mc0:noinfo:all:UE:0
mc0:noinfo:all:CE:0
mc1:noinfo:all:UE:0
mc1:noinfo:all:CE:0

Ничего отличного от этого вывода я ни разу не наблюдал.

Щас буду разбираться с mce-test.

На счет разогнать, включить сварочный аппарат и тд. Это все может и да, но мне не очень это нравится, т.к. помимо памяти есть еще агрегаты, которые могут заглючить, причем навсегда. А мне ж именно память надо протестить. Поэтому сварочный аппарат это хорошо, но нужно что-то более нежное. :) Можно, опять же, феном подогревать, но такой способ не видится мне достаточно нежным.

chabapok
() автор топика
Ответ на: комментарий от vel

думал о фене. Стремно как-то.

mce-test как-то работает. Там в нем много тестов каких то, в том числе взаимоисключающих, таких, которым надо то ли отключать модули - то ли делать особое ядро. Пока этим не занимался. Запустил - оно потестило-потестило, понаписывало логов… Какие-то тесты прошлись, какие-то пофейлились…

Типичный фрагмент лога (весь лог 11метров):

[ 4243.869613] Injecting memory failure for pfn 0x73302b at process virtual address 0x7f4410ae4000
[ 4243.869626] MCE: Killing page-poisoning:13136 due to hardware memory corruption fault at 7f4410ae4000
[ 4243.869632] Memory failure: 0x5d9edf: recovery action for dirty LRU page: Recovered
[ 4243.869695] MCE: Killing page-poisoning:13137 due to hardware memory corruption fault at 7f4410ae4000
[ 4243.869790] Memory failure: 0x73302b: recovery action for dirty LRU page: Recovered
[ 4243.869869] MCE: Killing page-poisoning:13138 due to hardware memory corruption fault at 7f4410ae4000
[ 4243.870271] Injecting memory failure for pfn 0x756398 at process virtual address 0x7f4410ae4000
[ 4243.870450] Memory failure: 0x756398: recovery action for dirty LRU page: Recovered
[ 4243.870592] MCE: Killing page-poisoning:13140 due to hardware memory corruption fault at 7f4410ae4000
[ 4243.870615] Injecting memory failure for pfn 0x672b0e at process virtual address 0x7f4410ae4000
[ 4243.870618] Injecting memory failure for pfn 0x6bfccd at process virtual address 0x7f4410ae4000
[ 4243.870637] Injecting memory failure for pfn 0x625e6e at process virtual address 0x7f4410ae4000
[ 4243.870784] Memory failure: 0x6bfccd: recovery action for dirty LRU page: Recovered
[ 4243.870852] Injecting memory failure for pfn 0x5ae516 at process virtual address 0x7f4410ae4000
[ 4243.870871] Memory failure: 0x672b0e: recovery action for dirty LRU page: Recovered

Понаписывало такого очень много. Как видно, оно что-то рекаверит, наверное это и есть работа ЕСС, предположительно. Вроде и работает - вроде и не работает. Однозначного ответа у меня нет. И непонятно, что должно проходится, а что нет.

testcase              result 
--------------------  ----------
APEI-INJ              FAIL
ERST-INJ              FAIL
PFA                   FAIL
HWPOISON-SOFT         PASS
HWPOISON-HARD         PASS
HWPOISON-HUGEPAGE     PASS
HWPOISON-THP          PASS
BSP                   FAIL
STRESS-HWPOISON-SOFT  PASS
STRESS-HWPOISON-HARD  FAIL

Но для первых трех тестов нужны какие-то модули, которых не оказалось. То есть на самом деле там не Fail, а тест не запускался. Может, если подшаманить, их и получится завести. Хотя комплект стоил на алике со всеми скидками менее 100$, и за такие деньги странно, что оно впринципе как-то работает.

Оно как-то вышло сложно все. Я хотел чтоб прям внесли ошибку - и ХОБА - какой-то счетчик сделал +1. А получилось куча тестов, которые непонятно что и непонятно как делают. Что-то явно делало, что-то явно исправляло. А например, для последнего теста написано, что там такой стрессовый стресс, что просто афанареть, и он полностью никогда не проходится - но вопрос в количестве фейлов. При этом,у меня 1140 tests failed, 0 tests pass - что явно говорит о полном его провале.

А те счетчики, которые я думал будут считать (edac-util --report=full), как были по нулям - так и стоят. Непонятно. Есть еще, кстати, прожка в репозиториях убунты - rasdaemon, вроде более новая чем edac_util+mce-inject. Но насколько я понял, принципиально это то же самое.

chabapok
() автор топика
Последнее исправление: chabapok (всего исправлений: 1)
Ответ на: комментарий от anonymous

правильный датчик дыма разобрать, и вперёд

Да, интересно, если несколько кусочков гранита разместить почти вплотную возле планок памяти, будет ли эффект?

greenman ★★★★★
()
Последнее исправление: greenman (всего исправлений: 1)
Ответ на: комментарий от anonymous

вообще-то с точностью до наоборот. не-ЕСС память обычно разогнана вусмерть, и из нее вендор выжал все чтобы циферки на шильдике красивые были, но при этом винда не крашилась (как минимум - не часто крашилась). а вот ЕСС - работает соответственно заявленным в даташите на чипы таймингам. пушо иначе - даже редкие сбои типа раз в месяц будут фиксироваться, и память будет возвращаться на замену по гарантии….

NiTr0 ★★★★★
()
Ответ на: комментарий от NiTr0

У тебя логика напрочь отвалилась. Серверная память как раз ближе к отбраковке, потому что она не вывозит разгон. Накинуть 400 MT/s, и с большой вероятностью посыплются ошибки. Ей же не требуется работать за пределами спецификации.

даже редкие сбои типа раз в месяц будут фиксироваться, и память будет возвращаться на замену по гарантии

Серверную память и так неплохо возвращают, вёдрами.

anonymous
()
Ответ на: комментарий от greenman

Есть rasdaemon - https://github.com/mchehab/rasdaemon там внизу описано, как ошибки инжектить.

Но ему нужно ядро собранное с CONFIG_EDAC_DEBUG, а в хубунте ядро без этой опции идет. Пока не собирал.

несколько кусочков гранита

А гранит граниту - рознь. У меня во дворе лежат куски гранита, на трещотку на базе сбм-20 никак не воздействуют. Найти злой камушек в наших краях, это еще надо постараться. Но вообще обычно корпус микросхемы является неплохой защитой. Я плох в физике частиц, но насколько я себе представляю, бетта, влетевшая в корпус микросхемы и движущаяся в нем, преодолевает сопротивление сопоставимое с тем, как если корпус микросхемы рассматривать как резистор, и пытаться пропустить через него ток. Энергии там нужны сопоставимые, и тепловыделение сопоставимое будет. Гранит и подобная мелочь вряд ли добьет через корпус. Иначе на пляжах Рио..Гуарапари все телефоны, часы, камеры глючили бы. Но ничего подобного не наблюдается. Это его нужно засунуть в ускоритель электронов, тогда может быть.

chabapok
() автор топика
Последнее исправление: chabapok (всего исправлений: 1)
Ответ на: комментарий от greenman

интересно, если несколько кусочков гранита разместить почти вплотную возле планок памяти, будет ли эффект?

Нет. Вот, в радоновой среде… Есть бюджетный вариант - ловчорритовый рудник на кольском полуострове.

tiinn ★★★★★
()
Ответ на: комментарий от chabapok

Найти злой камушек в наших краях, это еще надо постараться.

Попросить у знакомых аргонщиков «на погонять» торированный электрод по нержавейке типа WT-20 (красный хвостовик, встречается повсеместно), либо ещё лучше WT-30 (жёлтый) или WT-40 (оранжевый, редкость). Или купить в любом магазине для сварщиков — цена вопроса менее 500р. Или расковырять ксеноновую лампу — там электроды тоже обычно торированные.

https://www.youtube.com/watch?v=e3fi6uyyrEs

Я плох в физике частиц

Тогда лучше не надо. :)

anonymous
()

В нете есть статьи и статистика по работе ecc памяти в крупных ДЦ - фейсбучных, майкрософтовских, гугловских. Лень искать новее, древняя статистика например тут:

http://www.cs.toronto.edu/~bianca/papers/sigmetrics09.pdf

https://users.ece.cmu.edu/~omutlu/pub/memory-errors-at-facebook_dsn15.pdf

https://habr.com/ru/articles/171407/

Короче, суть такова: то, что важно для дц - на одиночном компе вам придется наблюдать и собирать статистику очень долго, речь идет о величинах от нескольких единиц до нескольких сотен корректируемых ошибок на сервер в месяц. Хотите ускорить процесс - посмотрите по ссылкам от чего зависит количество ошибок - от возраста чипов, от интенсивности загрузки памяти и тд.

vaddd ★☆
()
Последнее исправление: vaddd (всего исправлений: 1)
Ответ на: комментарий от vaddd

от нескольких единиц до нескольких сотен корректируемых ошибок на сервер в месяц

Это если они есть. В норме ошибок нет. У меня тут буквально годы статистики и один сервер.

anonymous
()
Ответ на: комментарий от vaddd

Ну вот в качестве tl;dr открыл ссылку на хабр:

Исследование показало, что примерно каждый третий сервер (или 8% модулей памяти) в наблюдаемых датацентрах на протяжении 2,5 лет исследования встречался со сбоем в оперативной памяти.

«Всего» восемь процентов, не 99 или 100, как можно предположить по твоей формулировке, где «от» больше нуля.

На моём сервере базы данных, активность постоянная, но в среднем не самая высокая.

anonymous
()
Ответ на: комментарий от anonymous

Исследование показало, что примерно каждый третий сервер (или 8% модулей памяти) в наблюдаемых датацентрах на протяжении 2,5 лет исследования встречался со сбоем в оперативной памяти.

«Всего» восемь процентов, не 99 или 100, как можно предположить по твоей формулировке, где «от» больше нуля.

Вот если бы еще понять формулировку целиком )

«Across the entire fleet, 8.2% of all DIMMs are affected by correctable errors and an average DIMM experiences nearly 4000 correctable errors per year.»

На первый взгляд это значит - сбоят не все, но те, что сбоят - сбоят по 4000 * 100/8.2 раз в год. Так? Если это так - сбойность памяти гораздо больше зависит от качества чипов, чем от условий эксплуатации, с большинством подобных сбоев есс справляется

ps. Судя по этой фразе, так и есть:

«For all platforms, the top 20% of DIMMs with errors make up over 94% of all observed errors. For Platform C and D, the dis- tribution is even more skewed, with the top 20% of DIMMs comprising more than 99.6% of all errors.»

То есть, среди полноценно эксплуатируемых планок, 8-20% планок обеспечивают подавляющее большинство ошибок, остальные почти не сбоят. Прикольно. Интересно, как изменилось это соотношение на новых модулях памяти

vaddd ★☆
()
Ответ на: комментарий от vaddd

8.2% of all DIMMs are affected by correctable errors

8.2% от всех модулей в принципе страдали от ошибок. Вообще немало, конечно.

average DIMM experiences nearly 4000 correctable errors per year

Вот здесь неясно, но рискну предположить, что поделили все ошибки на количество модулей — как исправных, так и сбойных, потому что не сказано что-то типа «average faulty DIMM».

Врать не буду, гугловскую пдфку хоть и читал полностью, но давно, и перечитывать не хочу.

anonymous
()
Ответ на: комментарий от vaddd

Интересно, как изменилось это соотношение на новых модулях памяти

В PDF фейсбука вывод: становится хуже. On-die ECC в DDR5 как бы намекает, что на новых техпроцессах нормой становится отличное от нуля количество ошибок.

anonymous
()
Ответ на: комментарий от anonymous

потому что не сказано что-то типа «average faulty DIMM»

Они и не относят их к faulty, как бывает с харддисками. Видимо эти 8-20% планок проходят контроль качества, все тесты, а 4000 среднестатистических сбоев в год - проблема владельца.

Прикольные результаты статистики конечно

vaddd ★☆
()
Ответ на: комментарий от anonymous

нет, с точностью до наоборот. десктопная память таки работает за пределами спецификаций чипов. особенно - всякая «оверклокерская», с радиаторами и т.п.

производитель плашек закупает мини-партию чипов, печет с ними плашки, проверяет что чипы вывозят по частотам-таймингам, задирает напряжения, после чего если по цене вышло дешевле имеющегося аналога/частоты вышли лучше - зашивает JEDEC тайминги и XMP/AMP профили в SPD, и пускает новую модель памяти в производство.

исключение - разве что память от производителей чипов, там частоты строго по спецификации.

сомневаетесь? берете плашку, качаете даташит на чипы, и смотрите… хотя сейчас с даташитами туговато, почти все под NDA…

NiTr0 ★★★★★
()
Ответ на: комментарий от anonymous

разгонные плашки уже разогнаны с завода. и «отборные» чипы или «не отборные» - пофиг, выше заводских заявленных попугаев они не особо погонятся, да и на заводских частотах-таймингах им достаточно чтобы сбои были реже чем раз в пару суток.

ECC память - работает строго по JEDEC, и строго согласно заявленных производителем чипов таймингов. пушо сбои видны, в отличие от не-ЕСС…

NiTr0 ★★★★★
()
Ответ на: комментарий от chabapok

Гуглится ещё такое, https://www.eztest.com.tw/download/downloadfile/2/1.htm типа специальные переходники, обрезающие часть линий, чтобы делать из ECC плашки обычную и ECC без части линий данных. Типа каждый модуль памяти поочерёдно вставлять в один и другой переходник и прогонять тест.

Или припаивать к модулю какой-нибудь ключ, чтобы можно было по нажатию кнопочки что-то делать с одной из DQ-линий...

mky ★★★★★
()

А на ЕСС-памяти такой кнопочки нету. И как ее проверять правильно?

Вижу тема не решена, еще не получилось проверить? Есть возможность разогнать или увеличить тайминг обновления заряда? Чуть разгони память или тайминги измени чтоб заряд ячеек обновлялся реже тогда точно посыпятся ошибки.

V1KT0P ★★
()
Ответ на: комментарий от anonymous

чипы стоят из одной партии. и работают на таймингах из даташита. работают стабильно, да.

в отличие от оверклоцкерских плашек, которые погнаны в хвост и в гриву с завода. и которые часто хрен погонишь выше паспортных значений.

и да, хрен кто на заводе будет отбирать чипы… а кое-кто - напаяет откровенное говно, наклеит гламурный радиатор и напарит счастливому хомяку. как делала в свое время OCZ…

NiTr0 ★★★★★
()
Ответ на: комментарий от NiTr0

чипы стоят из одной партии

Не значит что они одинокового качества. И нет такой гарантии.

работают на таймингах из даташита

По jedec? Речь про разгон.

погнаны в хвост и в гриву с завода

Потому, что это там возможно. А на зелёнке - как карта ляжет.

хрен погонишь выше паспортных

Паспортные всё равно лучше jedec. И зависит от чипов.

хрен кто на заводе будет отбирать чипы

Отбирают, точно так же как процы и флэш.

anonymous
()
Ответ на: комментарий от anonymous

По jedec? Речь про разгон.

ну так погонятся по таймингам/чачстотам легко.

а вот магазинные на 100500МГц искаропки - выше этих 100500МГц не факт что заведутся.

Потому, что это там возможно. А на зелёнке - как карта ляжет.

так вот выше ХМР они обычно хрен погонятся уже. выжато все соки из них уже с завода :)

Паспортные всё равно лучше jedec. И зависит от чипов.

так речь же о разгоне сверх паспортных, не? потому предразогнанное с завода и не гонится выше паспортного обычно.

Отбирают, точно так же как процы и флэш.

никто каждый кристалл не проверяет, ни у процов ни у флэши. быстрый тест провели (исправный/неисправный) максимум, во всех режимах никто не гоняет. потом - выбирают несколько десятков из партии (максимум несколько %) - и их проверяют, на основе их и маркируют всю партию.

так что никто военную приемку для чипов памяти (которые куда дешевле процов) тоже не делает, да.

NiTr0 ★★★★★
()
Ответ на: комментарий от anonymous

Были когда-то OEM Samsung B-die с высоким шансом хорошего разгона. Их ещё хитрожопые сотрудники магазинов любили перебирать для личного пользования. Но это скорее исключение, давно про такое не слышал.

anonymous
()
Ответ на: комментарий от anonymous

На b-die как раз большой разброс по качеству чипов. Потому вместо них позже стали советовать более поздние ревизии чипов micron и hynix, потому что там разброс по качеству меньше. Но для топового разгона отборный b-die действительно лучше.

anonymous
()

Значит, что я тут выяснил.

Например, memtest86 pro умеет ECC injection. Но, во-первых, его должно поддерживать железо, во-вторых, биос. В-третьих, в биосе оно должно быть разрешено.

huananzhi QD4 хорошая материнка, но все же это ультра-бюджетный сегмент для нищебродов. Вообще говоря, удивительно, что на такой серверная память вообще поддерживается. По сути, это уже чудеса. Но по принципу «чем черт не шутит» я конечно попытался включить этот режим в биосе. Там довольно много всего - но ничего похожего на «enable ecc injection/poison» не нашлось. Если такой пункт и есть, то называется он неузнаваемо. Включить не удалось.

chabapok
() автор топика
Ответ на: комментарий от chabapok

Вообще говоря, удивительно, что на такой серверная память вообще поддерживается.

А что тут удивительного? Эти платы сделаны именно под списанные серверные Xeon, и соответственно работают только с регистровой памятью. Не уверен, что тут много вариантов.

anonymous
()