-
- Ну дык в параллель же. Это сколько ж лишних доступов к памяти идёт потому, что ветвилка решила, что «программа может захотеть»? Каждый if(), которым вы проверяете, не пора ли честь знать, оказывается, выдирает из драма неположенный кусок памяти. Николай Коровин(275 знак., 06.01.2018 01:19)
- Я не настолько хорошо представляю внутреннюю кухню современных процов, чтобы придти к определенному выводу. Возможно кэш TLB не обладает достаточным количеством портов на чтение или шину имеет не той разрядности или еще какая причина не позволяет LightElf(62 знак., 06.01.2018 01:29)
- Видимо, дело в застсарелой привычке к разделению труда. Модуль доступа к памяти не знает что делает АЛУ. Потому видит чтение и прется за данными без стеснения если время позволяет. Типа вдруг понадобится. - ASDFS(06.01.2018 01:28)
- Да просто разные люди делали разные части проца. Разделение труда, узкая специализация. К пуговицам претензии есть? - LightElf(06.01.2018 21:52 - 22:00)
- Там проблема в другом. Кэшь плюс механизмы предсказания ветвлений и спекулятивное выполнение кода. - mse homjak(06.01.2018 22:52)
- Именно это я и говорю.
Пуговицы пришиты крепкоКэшь работает?Не оторвешьРаботает. Ветвления предсказываются? Предсказываются. Код спекулятивно выполняется? Выполняется. Исключения защиты происходят? Происходят. А что все вместе LightElf(46 знак., 07.01.2018 14:57)- Ну, проблема-то, как раз явная. Косячит ММУ. Исключение генерится не в момент доступа к "запрещённой" памяти, а только в момент доступа к ветке по ветвлению, когда уже всё. - mse homjak(07.01.2018 15:00)
- MMU как раз работает абсолютно правильно - исключение происходит именно в момент, когда юзерский код "лезет куды нельзя". А когда "куды нельзя" лезет не юзерский код, а "спекулятивный исполнитель на пару с предсказателем", то с чего исключение-то? - LightElf(07.01.2018 15:14)
- Ну как... Юзерский код полез "нитуда". Какая разница, спекулятивно или нет? Физический доступ кода юзера к защищённой памяти состоялся. А мы об этом узнаём только когда нас выкинет на предсказанную ветку. - mse homjak(07.01.2018 16:30)
- Юзерский код никуда не полез. Это проц ошибся, взяв не те значения что определяет код а те что ему померещились. Потому исключения на спекулятивном исполнении быть не может. - ASDFS(07.01.2018 16:42)
- Ибо предсказатель может ошибиться, а если исключения будут по факту выполнения ошибочно предсказанного кода -- это никуда не годится. - fk0(07.01.2018 15:58)
- Почему? Если юзверев код лезет куда не надо(даже спекулятивно, какая разница?), значит этот код надо блокировать, именно, при физическом контакте с защищённой памятью. Или останавливать спекулятивное выполнение ветки, ожидая прямого попадания. mse homjak(33 знак., 07.01.2018 16:34)
- "Или останавливать спекулятивное выполнение ветки, ожидая прямого попадания." Вот. AMD-шники утверждают что у них именно так и потому Meltdown на AMD не проходит. - LightElf(07.01.2018 17:09)
Хеее :) Славься, хитрая АМДшья жопа :)Обманули!!! Так где, в итоге, более-менее честный список подверженных AMD? - Николай Коровин(09.01.2018 20:01 - 28.01.2018 20:30)- Имана! - mse homjak(08.01.2018 10:11)
- Код абсолютно корректен. Но если в коде есть указатель, то он физически может адресовать любую память. А при спекулятивном исполнении проц фактически может волюнтаристски присвоить указателю любое значение. С твоей точки зрения это означает ASDFS(53 знак., 07.01.2018 16:44)
- "Или останавливать спекулятивное выполнение ветки, ожидая прямого попадания." Вот. AMD-шники утверждают что у них именно так и потому Meltdown на AMD не проходит. - LightElf(07.01.2018 17:09)
- Почему? Если юзверев код лезет куда не надо(даже спекулятивно, какая разница?), значит этот код надо блокировать, именно, при физическом контакте с защищённой памятью. Или останавливать спекулятивное выполнение ветки, ожидая прямого попадания. mse homjak(33 знак., 07.01.2018 16:34)
- Ну как... Юзерский код полез "нитуда". Какая разница, спекулятивно или нет? Физический доступ кода юзера к защищённой памяти состоялся. А мы об этом узнаём только когда нас выкинет на предсказанную ветку. - mse homjak(07.01.2018 16:30)
- MMU как раз работает абсолютно правильно - исключение происходит именно в момент, когда юзерский код "лезет куды нельзя". А когда "куды нельзя" лезет не юзерский код, а "спекулятивный исполнитель на пару с предсказателем", то с чего исключение-то? - LightElf(07.01.2018 15:14)
- Ну, проблема-то, как раз явная. Косячит ММУ. Исключение генерится не в момент доступа к "запрещённой" памяти, а только в момент доступа к ветке по ветвлению, когда уже всё. - mse homjak(07.01.2018 15:00)
- Именно это я и говорю.
- Там проблема в другом. Кэшь плюс механизмы предсказания ветвлений и спекулятивное выполнение кода. - mse homjak(06.01.2018 22:52)
- Да просто разные люди делали разные части проца. Разделение труда, узкая специализация. К пуговицам претензии есть? - LightElf(06.01.2018 21:52 - 22:00)
- Что наводит на мысль. Если секьюрити отъедает мипсы, то можно сделать два режима работы или даже две разные модели проца: быстрый-быстрый и безопасный-безопасный. Отдел маркетинга будет в восторге. Конечно, если скорость можно измерить, то про SciFi(72 знак., 06.01.2018 01:14)
- Что наводит на еще более глубокую мысль. Кто сказал, что процессоры, поставляемые госструктурам США и то, что мы покуппаем - это одни и те же x86? Всего-то кучку битиков поменять в OTP - зато сколько кайфа! - Evgeny_CD(06.01.2018 01:19)
- Просто загрузить разный микрокод - и вуаля. - LightElf(06.01.2018 01:24)
- Это грубо, и обнаружить несложно - BIOS можно ведь выпаять и бинарно сравнить. А такой изящный баг сколько прятался-то.... - Evgeny_CD(06.01.2018 01:26)
- Современный писюк - это такое нагромождение чего-то с чем-то, что там есть приблизительно 100500 возможностей сделать вот это вот. В общем, эти спекуляции малоинтересны. - SciFi(06.01.2018 01:31)
- Выпаять БИОС на компе "специально для Пентагона"? - LightElf(06.01.2018 01:30)
- Это грубо, и обнаружить несложно - BIOS можно ведь выпаять и бинарно сравнить. А такой изящный баг сколько прятался-то.... - Evgeny_CD(06.01.2018 01:26)
- Просто загрузить разный микрокод - и вуаля. - LightElf(06.01.2018 01:24)
- Что наводит на еще более глубокую мысль. Кто сказал, что процессоры, поставляемые госструктурам США и то, что мы покуппаем - это одни и те же x86? Всего-то кучку битиков поменять в OTP - зато сколько кайфа! - Evgeny_CD(06.01.2018 01:19)
- Ну дык в параллель же. Это сколько ж лишних доступов к памяти идёт потому, что ветвилка решила, что «программа может захотеть»? Каждый if(), которым вы проверяете, не пора ли честь знать, оказывается, выдирает из драма неположенный кусок памяти. Николай Коровин(275 знак., 06.01.2018 01:19)