LINUX.ORG.RU

История изменений

Исправление GateKeeper, (текущая версия) :

Ну вот я привел тебе листинги. Возьми второй. Я ни в коем случае не утверждаю, что идут чтение-запись линейно. Но обрати внимание: в кэшах более 6 гиг, причем, это «файловый кэш», т.е. тот, на который в любой момент времени можно забить вообще, высвободить всю память чохом и отдать ее, к примеру, жабке, которая просрет ее гораздо эффективнее. Ибо абсолютная копия всего этого кэша есть на энергонезависимом носителе. Тем не менее, 1 ядро из 4х 5 тактов из 10 тратит на вот это самое «ожидание» при том, что в секунду выполняется каких-то 70 транзакций?

Но при работе с DMA на это тупо НЕТ ВРЕМЕНИ. Потому приходится гонять бесконечный цикл, проверяя, не растормозился-ли этот контроллер, и когда он наконец уяснит свою ТЗ

Вот, помнится, с сетевухами в свое время, решая, как я понимаю, аналогичную проблему, придумали polling technique. Разве с винтами не вариант? И проц отдыхает, и винт, когда нашел, тогда и прислал данные, тем более, если не спросили вовремя и половина запрошенного вылилась мимо переполненного буфера, можно переспросить (пусть кэш винта работает, не зря ж его там уже сотнями метров местами можно насчитать), в отличие от сетевух, особенно ethernet, особенно, если там вообще не IP и тем более не TCP.

Исходная версия GateKeeper, :

Ну вот я привел тебе листинги. Возьми второй. Я ни в коем случае не утверждаю, что идут чтение-запись ленейно. Но обрати внимание: в кэшах более 6 гиг, причем, это «файловый кэш», т.е. тот, на который в любой момент времени можно забить вообще, высвободить всю память чохом и отдать ее, к примеру, жабке, которая просрет ее гораздо эффективнее. Ибо абсолютная копия всего этого кэша есть на энергонезависимом носителе. Тем не менее, 1 ядро из 4х 5 тактов из 10 тратит на вот это самое «ожидание» при том, что в секунду выполняется каких-то 70 транзакций?

Но при работе с DMA на это тупо НЕТ ВРЕМЕНИ. Потому приходится гонять бесконечный цикл, проверяя, не растормозился-ли этот контроллер, и когда он наконец уяснит свою ТЗ

Вот, помнится, с сетевухами в свое время, решая, как я понимаю, аналогичную проблему, придумали polling technique. Разве с винтами не вариант? И проц отдыхает, и винт, когда нашел, тогда и прислал данные, тем более, если не спросили вовремя и половина запрошенного вылилась мимо переполненного буфера, можно переспросить (пусть кэш винта работает, не зря ж его там уже сотнями метров местами можно насчитать), в отличие от сетевух, особенно ethernet, особенно, если там вообще не IP и тем более не TCP.