История изменений
Исправление
mv,
(текущая версия)
:
Эм, а зачем тебе свыше 12000 тредов в одной программе?)
В EMCшную бытность один древний кусок кода работал на проприетарной юниксоподобной операционке без юзерспейса (только кернель мод) на древних интеловских процах, где глубоких оптимизаций в пайплайне ещё не было, так что контекст свич с одного кернельного треда на другой был весьма дёшев. Они использовали треды, как зелёные. Потом наступил 2013, новые интелы, код тот в юзерспейсе в линуксе заработал, нагрузки решили отмасштабировать увеличением кол-ва тредов, в итоге тредов стало где-то тыщ 16, ЕМНИП.
Десятки патчей на ядро накладывали, чтобы это шевелилось, там даже у шедулера проблемы были их в адекватное время перебирать.
А ещё в юзерспейсе можно было preemption запретить, установив один лишь бит в памяти, ибо код не был к preemptive модели готов, а кернельщики были лучше, чем товарищи, тот код написавший.
Исправление
mv,
:
Эм, а зачем тебе свыше 12000 тредов в одной программе?)
В EMCшную бытность один древний кусок кода работал на проприетарной юниксоподобной операционке без юзерспейса (только кернель мод) на древних интеловских процах, где глубоких оптимизаций в пайплайне ещё не было, так что контекст свич с одного кернельного треда на другой был весьма дёшев. Они использовали треды, как зелёные. Потом наступил 2013, новые интелы, код тот в юзерспейсе в линуксе заработал, нагрузки решили отмасштабировать увеличением кол-ва тредов, в итоге тредов стало где-то тыщ 16, ЕМНИП.
Десятки патчей на ядро накладывали, чтобы это шевелилось, там даже у шедулера проблемы были их в адекватное время перебирать.
А ещё в юзерспейсе можно было preemption запретить, установив один лишь бит в памяти, ибо кода не был к preemptive модели готов, а кернельщики у нас были лучше, чем товарищи, тот код написавший.
Исходная версия
mv,
:
Эм, а зачем тебе свыше 12000 тредов в одной программе?)
В EMCшную бытность один древний кусок кода работал на проприетарной юниксоподобной операционке без юзерспейса (только кернель мод) на древних интеловских процах, где глубоких оптимизаций в пайплайне ещё не было, так что контекст свич с одного кернельного треда на другой был весьма дёшев. Потом наступил 2013, новые интелы, код тот в юзерспейсе в линуксе заработал, нагрузки решили отмасштабировать увеличением кол-ва тредов, в итоге тредов стало где-то тыщ 16, ЕМНИП.
Десятки патчей на ядро накладывали, чтобы это шевелилось, там даже у шедулера проблемы были их в адекватное время перебирать.
А ещё в юзерспейсе можно было preemption запретить, установив один лишь бит в памяти, ибо кода не был к preemptive модели готов, а кернельщики у нас были лучше, чем товарищи, тот код написавший.