The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"В состав Glibc включено исправление уязвимости в memcpy, под..."
Отправлено Zenitur, 17-Июл-20 11:55 
Вот вам развёрнутое чтение на этот счёт. https://avva.livejournal.com/2323823.html В дополнение к нему, опишу своё видение проблемы. Хоть и не являюсь программистом, но прочитал разные мнения в разных источниках. Итак, есть memcpy(), низкоуровневый вызов, который нужно выполнять _быстро_. Если выполнить поиск по коммитам в GIT-репозитории Glibc, можно увидеть, как вызов улучшали SIMD-инструкциями, начиная ещё с MMX. Компания Intel отправила патч, добавляющий оптимизацию и для SSE4 тоже. Но оптимизация оказалась не эффективной при традиционном порядке байт, поэтому патч пробует и обратный порядок тоже, чтобы достичь ускорение.

При этом вызовом memcpy() всегда и на всех платформах пользовались только в традиционном порядке байт. Стандарт молчит о порядке байт, поэтому все поступали так потому, что такова традиция. Патч, добавляющий оптимизацию SSE4, был первым разом, когда порядок байт развернули. Когда пользователи начали жаловаться, Дреппер сказал "если стандарт молчит, значит порядок может быть любым". Он настаивал на том, что проблема проявляется только во флеше, и нигде больше - а флеш проприетарен, значит дефективен, а значит так им и надо. Ему и проблемы из других проектов приводили в пример, и цитаты из фундаментальных книг по программированию - но Дреппер всё равно вёл себя, как asshole.

P.S. В openSUSE в то время проблему решили патчем glibc-disable-backward-memcpy.diff, потом ситуацию всё же разрулили в апстриме, и патч убрали. Странно что в апстриме рассматривали разные способы решить проблему - вплоть до алиаса memcpy() вокруг memmove() - но никак не "вернуть всё как было". А разве можно допустить, чтобы оптимизация на SSE4 не показала прирост в бенчмарках? Что же тогда, пользоваться SSE3, который уже не модный?

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
  Введите код, изображенный на картинке: КОД
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру