Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • R redoxfs
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 6
    • Issues 6
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 5
    • Merge requests 5
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Container Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • redox-osredox-os
  • redoxfs
  • Merge requests
  • !35

fmap support

  • Review changes

  • Download
  • Email patches
  • Plain diff
Merged jD91mZM2 requested to merge jD91mZM2/redoxfs:master into master Jun 17, 2018
  • Overview 1
  • Commits 2
  • Pipelines 0
  • Changes 3

Adds basic fmap support to redoxfs. Work in progress PR to make sure I'm not doing things completely incorrectly so I don't waste more days on this approach if so.

Basic idea:

  • Read file to buffer
  • Write file back to buffer on fsync

Limitations:

  • There is a max amount of fmaps that can be open. This is because the memory can't reallocate - old references would be invalidated.
  • Fmaps are shared, but only if their offsets/lengths fit within a previous fmap's (rounded to the page size). This is once again because nothing can be reallocated and therefore invalidated.
  • Because they aren't always shared, it's unspecified which copy they will share with.
  • Fmaps are not synced on funmap. This would be doable once the kernel sends a scheme event for that.

Current Limitations (that can be fixed sort of):

  • Files are only written to with an explicit fsync. This could be fixed with some sort of timer or something idk

This example now works

Edited Jun 18, 2018 by jD91mZM2
Assignee
Assign to
Reviewers
Request review from
Time tracking
Source branch: master