-
Notifications
You must be signed in to change notification settings - Fork 261
[LibOS] Filesystem code needs to be rewritten #1803
Comments
I'd like to note that there is no shared and consistent view of the FS across Graphene processes. For example, a parent Graphene process and a child Graphene process will not see new/deleted files from the other process until they actually go and ask the host FS (recall that Graphene e.g. caches directory contents, so if parent listed the directory, then the child created a file in this directory, and parent lists the directory again, the parent won't see the new file). However, implementing such a distributed view of the file system sounds quite complicated. I think we can get away with this by just purging all cached FS metadata in Graphene on each fork/exec. |
One common source of confusion is our I believe we should implement a "God-like" option in Graphene to bind a single mount point to host's
Basically, we need a way to specify the root dir |
No, I don't think we should allow this, sounds like a big footgun :) We should allow mounting all paths inside Graphene (including Ad mounting you described: IMO we should have Linux-like semantics of mounts, that you can stack them and we'll just execute the mount commands from the manifest one by one. This should allow for all possible configurations we may ever need. |
@pwmarcz It would be good to go through the "master list of issues" again and verify which ones were already fixed/became irrelevant. After this we can close this issue. I don't want to transfer this issue to the new Gramine repo since it's a meta-issue which is almost completely fixed at this point. |
Description of the problem
Our old filesystem implementation requires complete rewrite.
dentry
structures.It's hard to implement any new feature for the filesystem without dealing with this issue first.
Related issues
assert failed fs/shim_fs.c:533 dent == dent2
in DEBUG mode only #2052 ("assert failed fs/shim_fs.c:533 dent == dent2
in DEBUG mode only")The text was updated successfully, but these errors were encountered: