Скорость работы с IDE дисками

Drive subsystem, filesystem drivers
  • Примерные результаты для нового ядра

    File size 374 mb
    tmp -> hdd (fat32) - 9 с.
    hdd (fat32) -> tmp - 9.5 с.
    hdd (NTFS) -> tmp - 9.3 с.

    P.S. Для старого ядра нормально проверить не получилось, т.к. регулярно вылетали ошибки чтения. Но результаты там скакали неплозо, а тут вроде как стабильно.
    P.S2 Может быть посмотришь код FSpeed, если метод реализованный там тебя удовлетворит, то будет гораздо легче проводить тесты, да и результаты будут точнее.
    to infinity and beyond
  • Идеальных синтетических тестов не бывает, потому их результаты зовут "попугаями". А про tmpdisk я как-то не подумал - это отличный метод тестирования.

    Результаты хорошие, но странные. Я решил проблему на уровне драйвера, но идентичную проблему должны были создавать старые вызовы в файловых системах. Наверно, жёсткий диск продолжает чтение в свой кэш, пока не поступит новая команда. Но Марио сделал кэширование, значит скорость была низкая. Возможно, это зависит от прошивки конкретного диска.

    Неплохо бы проверить диски постарше. У меня 500 Гб, однопластинный (поколение 2 Тб). punk_joker, у тебя какой?
  • Pathoswithin wrote: Неплохо бы проверить диски постарше. У меня 500 Гб, однопластинный (поколение 2 Тб). punk_joker, у тебя какой?
    ST500LM012 HN-M500MBB ATA Device
    Spoiler:Manufacturer Seagate
    Heads 16
    Cylinders 60,801
    Tracks 15,504,255
    Sectors 976,768,065
    SATA type SATA-III 6.0Gb/s
    Device type Fixed
    ATA Standard ATA8-ACS
    Serial Number S2ZYJ9FD801501
    Firmware Version Number 2BA30001
    LBA Size 48-bit LBA
    Power On Count 2761 times
    Power On Time 274.2 days
    Speed 5400 RPM
    Features S.M.A.R.T., APM, AAM, NCQ
    Max. Transfer Mode SATA III 6.0Gb/s
    Used Transfer Mode SATA II 3.0Gb/s
    Interface SATA
    Capacity 465 GB
    Real size 500,107,862,016 bytes
    RAID Type None
    to infinity and beyond
  • punk_joker, как ты расширил tmpdisk? он у меня вообще не позволяет вручную вводить размер...
  • kiv wrote:punk_joker, как ты расширил tmpdisk? он у меня вообще не позволяет вручную вводить размер...
    запуск с параметром a[numer]s[size in mb]
    /sys/tmpdisk a1s512
    Проблему с вводом при тестировании и сам заметил, вечером гляну в чем проблема.
    to infinity and beyond
  • Ладно, наверно кроме punk_joker скорость замерять никто не будет. В текущей сборке получается 40 Мб/с. Но с новыми функциями немного быстрее. Более того, при CACHE_LEGACY_READ_SIZE = 1 скорость чтения жёсткого диска всё-таки падает до 10 Мб/с, а чтение с флешки, внезапно, гораздо медленней.
    CleverMouse, проверь FAT с новым чтением. Кажется, переход на новые функции тоже часть твоего Великого Плана? viewtopic.php?f=31&t=3056&start=60#p61697
  • чтение с флешки, внезапно, гораздо медленней.
    Ещё бы. На шине USB2 передача 512 байт и 4K занимает одинаковое время, а именно, один микрофрейм = 1/8 миллисекунды. Учитывая, что в силу особенностей протокола для флешки нужен ещё минимум один микрофрейм на служебный пакет, при посекторном чтении скорость чисто теоретически не может быть больше 2Mb/s.
    Кажется, переход на новые функции тоже часть твоего Великого Плана?
    Да. Я посмотрю.
    Сделаем мир лучше!
  • Pathoswithin wrote:проверь FAT с новым чтением
    Если в середине нефрагментированного файла оказывается битый сектор, то функция возвращает правильный статус 11 = device error, но 0 в качестве числа прочитанных байт. В принципе, некритично. В остальном вроде работает.
    Сделаем мир лучше!
  • Как ты такое тестируешь? Да, в таком случае вообще ничего не читалось.
  • Если операция чтения выполнилась не полностью, её успешное начало всё равно игнорируется.
    Pathoswithin wrote:Как ты такое тестируешь?
    Я в некоторый момент переделывала fat.inc на текущую схему дисковых устройств, тогда и тест делала. fat.inc вполне можно подключить в прикладной программе Windows - проблемы только с прямыми in/out в get_{date,time}_for_file, которые исправляются макросредствами fasm - подсунув вместо fs_read* и fs_write* реализации, где в том числе нетрудно симулировать ошибки. Отлаживать программу Windows существенно проще, чем ядро в ring-0.
    Сделаем мир лучше!
  • fat.inc - r5578
    Сделаем мир лучше!
  • Pathoswithin
    В VMware перестали определяться IDE диски.
  • VMware это виртуалка? Интересно, из принципиальных отличий только отсутствие LBA28. Можешь попробовать этот viewtopic.php?f=31&t=2609&start=15
  • Ядро от 19 июня работает отлично.
  • Who is online

    Users browsing this forum: No registered users and 1 guest