LINUX.ORG.RU

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

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

Если коротко и грубо говоря, Esync и Fsync выносят операции синхронизации объектов из wineserver. В отличие от стандартной синхронизации через wineserver, Esync/Fsync могут обрабатывать одновременно несколько объектов.

Разница в том, что Esync использует для этого файловые дескрипторы (eventfd), а Fsync использует системный вызов futex (измененный, с добавленной операцией FUTEX_WAIT_MULTIPLE).

Могу ошибаться, но вроде как-то так. Если хочется подробно, то выше ссылку дали.

Из-за специфики Esync, как правило, нужно настраивать лимиты на файловые дескрипторы в сиcтеме, по умолчанию во многих дистрибутивах слишком маленькое значение (нужно хотя бы 1 миллион). А для Fsync в данный момент нужно использовать патченое ядро, так как в апстрим нужные патчи пока не приняли.

Esync/Fsync почти всегда дают выигрыш в производительности, так что отключать имеет смысл только в конкретных случах.

В некоторых играх файловые дескрипторы текут с включенным Esync, так что какой лимит ни был бы установлен, они все равно в итоге крашатся с характерной ошибкой (например, у меня так было с Grim Dawn и Thronebreaker: The Witcher Tales). Но это далеко не во многих играх встречается.

eventfd: Too many open files
esync: write: Bad file descriptor

С Fsync данной проблемы не наблюдается, так как он не использует файловые дескрипторы.

Исправление Kron4ek, :

Если коротко и грубо говоря, Esync и Fsync выносят операции синхронизации объектов из wineserver. В отличие от стандартной синхронизации через wineserver, Esync/Fsync могут обрабатывать одновременно несколько объектов.

Разница в том, что Esync использует для этого файловые дескрипторы (eventfd), а Fsync использует системный вызов futex (измененный, с добавленной операцией FUTEX_WAIT_MULTIPLE).

Могу ошибаться, но вроде как-то так. Если хочется подробно, то выше ссылку дали.

Из-за специфики Esync, как правило, нужно настраивать лимиты на файловые дескрипторы в сиcтеме, по умолчанию во многих дистрибутивах слишком маленькое значение (нужно хотя бы 1 миллион). А для Fsync в данный момент нужно использовать патченое ядро, так как в апстрим нужные патчи пока не приняли.

Esync/Fsync почти всегда дают выигрыш в производительности, так что отключать имеет смысл только в конкретных случах.

В некоторых играх файловые дескрипторы текут с включенным Esync, так что какой лимит не был бы установлен, они все равно в итоге крашатся с характерной ошибкой (например, у меня так было с Grim Dawn и Thronebreaker: The Witcher Tales). Но это далеко не во многих играх встречается.

eventfd: Too many open files
esync: write: Bad file descriptor

С Fsync данной проблемы не наблюдается, так как он не использует файловые дескрипторы.

Исправление Kron4ek, :

Если коротко и грубо говоря, Esync и Fsync выносят операции синхронизации объектов из wineserver. В отличие от стандартной синхронизации через winserver, Esync/Fsync могут обрабатывать одновременно несколько объектов.

Разница в том, что Esync использует для этого файловые дескрипторы (eventfd), а Fsync использует системный вызов futex (измененный, с добавленной операцией FUTEX_WAIT_MULTIPLE).

Могу ошибаться, но вроде как-то так. Если хочется подробно, то выше ссылку дали.

Из-за специфики Esync, как правило, нужно настраивать лимиты на файловые дескрипторы в сиcтеме, по умолчанию во многих дистрибутивах слишком маленькое значение (нужно хотя бы 1 миллион). А для Fsync в данный момент нужно использовать патченое ядро, так как в апстрим нужные патчи пока не приняли.

Esync/Fsync почти всегда дают выигрыш в производительности, так что отключать имеет смысл только в конкретных случах.

В некоторых играх файловые дескрипторы текут с включенным Esync, так что какой лимит не был бы установлен, они все равно в итоге крашатся с характерной ошибкой (например, у меня так было с Grim Dawn и Thronebreaker: The Witcher Tales). Но это далеко не во многих играх встречается.

eventfd: Too many open files
esync: write: Bad file descriptor

С Fsync данной проблемы не наблюдается, так как он не использует файловые дескрипторы.

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

Если коротко и грубо говоря, Esync и Fsync выносят операции синхронизации объектов из wineserver. В отличие от стандартной синхронизации через winserver, Esync/Fsync могут обрабатывать одновременно несколько объектов.

Разница в том, что Esync использует для этого файловые дескрипторы (eventfd), а Fsync использует системный вызов futex (измененный, с добавленной операцией FUTEX_WAIT_MULTIPLE).

Могу ошибаться, но вроде как-то так. Если хочется подробно, то выше ссылку дали.

Из-за специфики Esync, как правило, нужно настраивать лимиты на файловые дескрипторы в сиcтеме, по умолчанию во многих дистрибутивах слишком маленькое значение (нужно хотя бы 1 миллион). А для Fsync в данный момент нужно использовать патченое ядро, так как в апстрим нужные патчи пока не приняли.

Esync/Fsync почти всегда дают выигрыш в производительности, так что отключать имеет смысл только в конкретных случах.

В некоторых играх файловые дескрипторы текут с включенным Esync, так что какой лимит не был бы установлен, они все равно в итоге крашатся (например, у меня так было с Grim Dawn и Thronebreaker: The Witcher Tales), с Fsync данной проблемы не наблюдается.