Ошибка в драйвере ISST для Linux на 10% понижает производительность iXeon Scalable

Discussion in 'Мировые новости. Обсуждения.' started by alexzir, 18 Jun 2021.

  1. alexzir

    alexzir Well-Known Member

    Joined:
    29 Oct 2019
    Messages:
    388
    Likes Received:
    1,479
    Reputations:
    21

    Технология Speed Select, созданная Intel для повышения производительности серверных процессоров в различных задачах, в ряде случаев замедляет их. Производительность падает более чем на 10% по вине неправильного драйвера для Linux. Проблема локализована, и один из инженеров Intel подготовил патч, устраняющий ее.

    Полезная технология оказалась вредителем
    Современные серверные процессоры Intel могут не обеспечивать свою максимальную производительность из-за неправильной работы заложенной в них технологии Speed Select (Intel Speed Select Technology, ISST). Она сама по себе предназначена для повышения скорости выполнения процессором тех или иных задач, но на деле приносит больше вреда, чем пользы.

    Как пишет портал Neowin, активация ISST в ряде конфигураций может снижать производительность процессора более чем на 10%.

    Speed Select была представлена Intel одновременно с анонсом новой линейки серверных процессоров Xeon Scalable второго поколения в апреле 2019 г. Эта технология позволяет отключать часть ядер процессора (в Xeon Scalable второго поколения их число может доходить до 56) и повышать частоты оставшихся ядер. Такое решение позволяет CPU работать эффективнее в задачах, в которых не задействуется большое число ядер, но при этом не перегреваться. Также за счет Speed Select можно сократить энергопотребление всего сервера, например, в ночное время, когда от него требуется выполнение только базовых задач. Поддержка ISST реализована в микрокоде процессора и выполняется его блоком управления питанием (Power Control Unit, PCU).

    Где кроется проблема
    Некорректную работу технологии ISST обнаружил Шринивас Пандрувада (Srinivas Pandruvada) один из инженеров Intel. Он отметил, что проблема кроется в драйвере ISST для Linux. Общедоступных сведений о том, когда и кем в него вносились последние изменения, отсутствуют.

    [​IMG]
    Проблема с Speed Select затрагивает все процессоры с ее поддержкой
    «Выяснилось, что некоторые из тестов высокой производительности проводят больше времени в ядре в зависимости от того, какой пакет ЦП они выполняют. Разница значительна, и результаты тестов различаются более чем на 10%. Эти тесты регулируют класс обслуживания для повышения производительности параллельных потоков. Это изменение класса обслуживания вызывает доступ к области MMIO PCI-устройств Intel Speed Select в зависимости от того, какой пакет ЦП они выполняют», – сообщил Шринивас Пандрувада.

    Со слов инженера, этот маппинг от процессора к PCI-устройству использует стандартный интерфейс Linux PCI «pci_get_domain_bus_and_slot ()». Иначе говоря, доступ к нужному устройству на шине PCI для процессора реализован через их последовательный перебор. Поскольку в некоторых конфигурациях может быть более 100 PCI-устройств, подобный алгоритм поиска нужного устройства при активированной Speed Select может замедлить работу всей системы.

    Патч не за горами
    Шринивас Пандрувада нашел способ исправить недочет драйвера ISST для Linux. По его словам, информация, для получения которой нынешняя версия драйвера каждый раз проводит линейный поиск, может кэшироваться одновременно со считыванием номера шины для процессора. «Таким образом, во время выполнения можно использовать кэшированную информацию. Это значительно улучшает производительность этих тестов», - сказал инженер.

    [​IMG]
    Инженер Intel нашел выход из ситуации с Speed Select
    Пандрувада подготовил патч, исправляющий недочет в Linux-драйвере. С его слов, исправление небольшое, однако пока неизвестно, когда Intel начнет его распространение.

     
    Suicide likes this.
Loading...