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

Optimizations #626

Open
EtchedPixels opened this issue Jun 10, 2018 · 2 comments
Open

Optimizations #626

EtchedPixels opened this issue Jun 10, 2018 · 2 comments

Comments

@EtchedPixels
Copy link
Owner

Mix of system stuff and guidance needed here

Generically:

  • Hash buffer cache on bigger boxes
  • Avoid cases we double look up buffers
  • Keep a true run queue (and maybe a punishment queue) to speed up the scheduler IRQ path a shade, although it's not actually that hot a path in normal usage
  • Hooks to optimize path walking as an option

Platform Specific

  • Document that adding an optimizing block copies between user<->kernel is a big win so worth doing platform specific usermem for in many cases
  • Do a demo set for the TRS80 model 1 (remembering we'll also need buffer<->user direct copies when the buffers go banked)
@EtchedPixels
Copy link
Owner Author

TRS80 model 1 parts done
Some other usermem optimized cases also done for a few platforms

@EtchedPixels
Copy link
Owner Author

Update:

  • big buffer cache turns out to be a lose anyway (our I/O is relatively fast and we are not heavily multi-user, nor do we have any asynchronous DMA I/O like old minicomputers have)
  • Path and some other walk optimisations are done
  • Copier optimisations done in a nice example form in sbcv2

Scheduler queue TBD

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

No branches or pull requests

1 participant