LINUX.ORG.RU

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

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

почему кэш один на-всё-про-всё? <...> почему не сделали квоты относительно каждого блочного устройства?

Спроси.

если мы предполагаем что — да(!) — один кэш на-всё-про-всё — и якобы это не баг (не недоработка)

Это недоработка. Просто всем, как водится, пофиг.

например Файловый Магнагер зная что может всё испортить должен постоянно делать fsync(fd) после каждого деятка мегобайта копируемого файла? разве нет?

Ну, вообще в таком случае всё равно остаётся проблема трешинга чистого кэша. Но близко. Не знаю, каков полностью правильный способ копировать файлы в линуксе, но да, его никто не соблюдает (хинт: потому что он ни хера не очевидный). Наверное, fadvise(POSIX_FADV_SEQUENTIAL) + fadvise(POSIX_FADV_NOREUSE) + fdatasync() + fadvise(POSIX_FADV_DONTNEED). Но из этих как минимум про NOREUSE явно сказано, что это no-op, так что я вообще хз.

(если некую проблему отказывается решать ядро, разве это не автоматически-обозначает что теперь это становится обязанностью прикладных программ?)

И да, и нет. С одной стороны, ядро уже даёт по этому поводу какой-то API, поэтому прикладные программы должны бы его юзать. А с другой стороны, ядро должно давать адекватный API, а не такой, который могут правильно использовать только три с половиной гика, при этом предварительно перечитав половину manpages, заглянув в исходники ядра и посоветовавшись с мейнтейнером подсистемы.

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

почему кэш один на-всё-про-всё? <...> почему не сделали квоты относительно каждого блочного устройства?

Спроси.

если мы предполагаем что — да(!) — один кэш на-всё-про-всё — и якобы это не баг (не недоработка)

Это недоработка. Просто всем, как водится, пофиг.

например Файловый Магнагер зная что может всё испортить должен постоянно делать fsync(fd) после каждого деятка мегобайта копируемого файла? разве нет?

Ну, вообще в таком случае всё равно остаётся проблема трешинга чистого кэша. Но близко. Не знаю, каков полностью правильный способ копировать файлы в линуксе, но да, его никто не соблюдает (хинт: потому что он ни хера не очевидный). Наверное, fadvise(POSIX_FADV_SEQUENTIAL) + fadvise(POSIX_FADV_NOREUSE) + fdatasync() + fadvise(POSIX_FADV_DONTNEED). Но из этих как минимум про NOREUSE явно сказано, что это no-op, так что я вообще хз.

(если некую проблему отказывается решать ядро, разве это не автоматически-обозначает что теперь это становится обязанностью прикладных программ?)

И да, и нет. С одной стороны, операционные системы потому и появились, что все задолбались реализовывать в прикладных программах одни и те же вещи. А с другой стороны, ядро должно давать адекватный API, а не такой, который могут правильно использовать только три с половиной гика, при этом предварительно перечитав половину manpages, заглянув в исходники ядра и посоветовавшись с мейнтейнером подсистемы.

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

почему кэш один на-всё-про-всё? <...> почему не сделали квоты относительно каждого блочного устройства?

Спроси.

если мы предполагаем что — да(!) — один кэш на-всё-про-всё — и якобы это не баг (не недоработка)

Это недоработка. Просто всем, как водится, пофиг.

например Файловый Магнагер зная что может всё испортить должен постоянно делать fsync(fd) после каждого деятка мегобайта копируемого файла? разве нет?

Ну, вообще в таком случае всё равно остаётся проблема трешинга чистого кэша. Но близко. Не знаю, каков полностью правильный способ копировать файлы в линуксе, но да, его никто не соблюдает (хинт: потому что он ни хера не очевидный). Наверное, fadvise(POSIX_FADV_SEQUENTIAL) + fadvise(POSIX_FADV_NOREUSE) + fdatasync() + fadvise(POSIX_FADV_DONTNEED). Но из этих как минимум про NOREUSE явно сказано, что это no-op, так что я вообще хз.

(если некую проблему отказывается решать ядро, разве это не автоматически-обозначает что теперь это становится обязанностью прикладных программ?)

И да, и нет. С одной стороны, операционные системы потоу и появились, что все задолбались реализовывать в прикладных программах одни и те же вещи. А с другой стороны, ядро должно давать адекватный API, а не такой, который могут правильно использовать только три с половиной гика, при этом предварительно перечитав половину manpages, заглянув в исходники ядра и посоветовавшись с мейнтейнером подсистемы.

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

почему кэш один на-всё-про-всё? <...> почему не сделали квоты относительно каждого блочного устройства?

Спроси.

если мы предполагаем что — да(!) — один кэш на-всё-про-всё — и якобы это не баг (не недоработка)

Это недоработка. Просто всем, как водится, пофиг.

например Файловый Магнагер зная что может всё испортить должен постоянно делать fsync(fd) после каждого деятка мегобайта копируемого файла? разве нет?

Ну, вообще в таком случае всё равно остаётся проблема трешинга чистого кэша. Но близко. Не знаю, каков полностью правильный способ копировать файлы в линуксе, но да, его никто не соблюдает (хинт: потому что он ни хера не очевидный). Наверное, fadvise(POSIX_FADV_SEQUENTIAL) + fadvise(POSIX_FADV_NOREUSE) + fdatasync() + fadvise(POSIX_FADV_DONTNEED). Но из этих как минимум про NOREUSE явно сказано, что это no-op.

(если некую проблему отказывается решать ядро, разве это не автоматически-обозначает что теперь это становится обязанностью прикладных программ?)

И да, и нет.

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

почему кэш один на-всё-про-всё? <...> почему не сделали квоты относительно каждого блочного устройства?

Спроси.

если мы предполагаем что — да(!) — один кэш на-всё-про-всё — и якобы это не баг (не недоработка)

Это недоработка. Просто всем, как водится, пофиг.

например Файловый Магнагер зная что может всё испортить должен постоянно делать fsync(fd) после каждого деятка мегобайта копируемого файла? разве нет?

Ну, вообще в таком случае всё равно остаётся проблема трешинга чистого кэша. Но близко. Не знаю, каков полностью правильный способ копировать файлы в линуксе, но да, его никто не соблюдает (хинт: потому что он ни хера не очевидный). Наверное, fadvise(POSIX_FADV_SEQUENTIAL) + fdatasync() + fadvise(POSIX_FADV_DONTNEED).

(если некую проблему отказывается решать ядро, разве это не автоматически-обозначает что теперь это становится обязанностью прикладных программ?)

И да, и нет.

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

почему кэш один на-всё-про-всё? <...> почему не сделали квоты относительно каждого блочного устройства?

Спроси.

если мы предполагаем что — да(!) — один кэш на-всё-про-всё — и якобы это не баг (не недоработка)

Это недоработка. Просто всем, как водится, пофиг.

например Файловый Магнагер зная что может всё испортить должен постоянно делать fsync(fd) после каждого деятка мегобайта копируемого файла? разве нет?

Ну, вообще в таком случае всё равно остаётся проблема трешинга чистого кэша. Но близко. Не знаю, каков полностью правильный способ копировать файлы в линуксе, но да, его никто не соблюдает (хинт: потому что он ни хера не очевидный). Наверное, fadvise(POSIX_FADV_SEQUENTIAL) + fdatasync() + fadvise(FADV_DONTNEED).

(если некую проблему отказывается решать ядро, разве это не автоматически-обозначает что теперь это становится обязанностью прикладных программ?)

И да, и нет.

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

почему кэш один на-всё-про-всё? <...> почему не сделали квоты относительно каждого блочного устройства?

Спроси.

если мы предполагаем что — да(!) — один кэш на-всё-про-всё — и якобы это не баг (не недоработка)

Это недоработка. Просто всем, как водится, пофиг.

например Файловый Магнагер зная что может всё испортить должен постоянно делать fsync(fd) после каждого деятка мегобайта копируемого файла? разве нет?

Ну, вообще в таком случае всё равно остаётся проблема трешинга чистого кэша. Но близко. Не знаю, каков полностью правильный способ копировать файлы в линуксе, но да, его никто не соблюдает (хинт: потому что он ни хера не очевидный). Наверное, fdatasync() + fadvise(FADV_DONTNEED).

(если некую проблему отказывается решать ядро, разве это не автоматически-обозначает что теперь это становится обязанностью прикладных программ?)

И да, и нет.

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

почему кэш один на-всё-про-всё? <...> почему не сделали квоты относительно каждого блочного устройства?

Спроси.

если мы предполагаем что — да(!) — один кэш на-всё-про-всё — и якобы это не баг (не недоработка)

Это недоработка. Просто всем, как водится, пофиг.

например Файловый Магнагер зная что может всё испортить должен постоянно делать fsync(fd) после каждого деятка мегобайта копируемого файла? разве нет?

Ну, вообще в таком случае всё равно остаётся проблема трешинга чистого кэша. Но близко. Не знаю, каков полностью правильный способ копировать файлы в линуксе, но да, его никто не соблюдает. Наверное, fdatasync() + fadvise(FADV_DONTNEED).

(если некую проблему отказывается решать ядро, разве это не автоматически-обозначает что теперь это становится обязанностью прикладных программ?)

И да, и нет.