Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make file open timing a bit more accurate #12945

Merged
merged 11 commits into from
Jul 13, 2020

Conversation

unknownbrackets
Copy link
Collaborator

@unknownbrackets unknownbrackets commented May 22, 2020

I think this will help #6582.

This makes filesystems expose flags indicating UMD/CARD/FLASH to make it easier to deviate timing depending on what's mounted. PBPs are treated as CARD while ISOs are treated as UMD.

Also, I found that PSP OFW allows enabling/disabling the UMD cache, but CFW disables it anyway for homebrew. In the past have seen some timing using JpcspTrace/etc. but gonna need to find a better way...

This mostly aims for the mid-fast end of actual timing metrics. There are some differences from observed reality:

  • If the UMD spins down, Open/OpenAsync could take 1.5s or so, but mainly not found ones (I think it caches the path table even without cache, not sure.)
  • Uses 4ms (low end average of many runs) for UMD open, but it can be as fast as 1.2ms without cache.
  • Didn't have a great way to carefully time with cache.
  • Memory Stick access should get slower (around 0.8ms per path component) for deeper files, but there's also clearly a file table cache that makes this faster after first access.
  • Didn't test nocwd or other less common errors.

-[Unknown]

@unknownbrackets unknownbrackets added this to the v1.11.0 milestone May 22, 2020
@hrydgard
Copy link
Owner

Very nice! This one we'll definitely do after 1.10 though, indeed.

@hrydgard hrydgard merged commit b58ca8a into hrydgard:master Jul 13, 2020
@unknownbrackets unknownbrackets deleted the io-timing branch July 13, 2020 15:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants