]]>
Clarifies how to refcnt with the page cacheBarret Rhoden <brho@cs.berkeley.edu>Mon, 11 Oct 2010 18:43:29 +0000http://akaros.cs.berkeley.edu/gitweb/?p=akaros.git;a=commitdiff;h=83b3cea4d4ce9f74e804272660f73fa0b1c5ecddhttp://akaros.cs.berkeley.edu/gitweb/?p=akaros.git;a=commitdiff;h=83b3cea4d4ce9f74e804272660f73fa0b1c5ecdd
Clarifies how to refcnt with the page cache
Clarifies how to refcnt with the page cache

]]>
Individually manages buffers in the buffer cacheBarret Rhoden <brho@cs.berkeley.edu>Sat, 9 Oct 2010 01:42:42 +0000http://akaros.cs.berkeley.edu/gitweb/?p=akaros.git;a=commitdiff;h=26a0c7b1cd75594960edc3f11855bab0a7cd5380http://akaros.cs.berkeley.edu/gitweb/?p=akaros.git;a=commitdiff;h=26a0c7b1cd75594960edc3f11855bab0a7cd5380
Individually manages buffers in the buffer cache
Individually manages buffers in the buffer cache
Check the docs, expect this to change (issues with refcnting and how we
can rip an individual block out of the buffer cache).
The main point of this is to make sure that PGSIZE worth of buffers are
*not* pulled in at the same time in the blockdev's buffer cache, since
they all are not necessarily metadata blocks.

]]>
Adds sys_mkdir() and sys_rmdir() (XCC)Barret Rhoden <brho@cs.berkeley.edu>Sat, 21 Aug 2010 01:09:25 +0000http://akaros.cs.berkeley.edu/gitweb/?p=akaros.git;a=commitdiff;h=70269f9c3df8282c4f410caff04534078a718956http://akaros.cs.berkeley.edu/gitweb/?p=akaros.git;a=commitdiff;h=70269f9c3df8282c4f410caff04534078a718956
Adds sys_mkdir() and sys_rmdir() (XCC)
Adds sys_mkdir() and sys_rmdir() (XCC)
Rebuild your cross-compiler.
Adds mkdir and rmdir, and has children incref their parent dir's nlink
count. There are races with the nlink, and in general with concurrent
operations on the paths and objects.
Also unifies error handling styles in many of the do_whatever VFS
functions.

]]>
Symlinks!Barret Rhoden <brho@cs.berkeley.edu>Sun, 15 Aug 2010 23:06:48 +0000http://akaros.cs.berkeley.edu/gitweb/?p=akaros.git;a=commitdiff;h=c1c86c413b1f9d8dc62c0cd37683fa222a2bb3dahttp://akaros.cs.berkeley.edu/gitweb/?p=akaros.git;a=commitdiff;h=c1c86c413b1f9d8dc62c0cd37683fa222a2bb3da
Symlinks!
Symlinks!
The VFS can handle them, for the most part. KFS can make them, but not
from the CPIO yet.

]]>
generic_file_write() and file holesBarret Rhoden <brho@cs.berkeley.edu>Mon, 19 Jul 2010 18:31:17 +0000http://akaros.cs.berkeley.edu/gitweb/?p=akaros.git;a=commitdiff;h=5454636e18f6e0c45452a63c0fb18873ad6cb723http://akaros.cs.berkeley.edu/gitweb/?p=akaros.git;a=commitdiff;h=5454636e18f6e0c45452a63c0fb18873ad6cb723
generic_file_write() and file holes
generic_file_write() and file holes
readpage() is supposed to handle hole (use a 0'd page). KFS can handle
extending files and dealing with the holes, though they won't get saved,
which may be an issue once we start evicting from the page cache. Also,
there are no constraints on file sizes or anything like that.

]]>
Page cache for memory mapped filesBarret Rhoden <brho@cs.berkeley.edu>Fri, 16 Jul 2010 20:13:02 +0000http://akaros.cs.berkeley.edu/gitweb/?p=akaros.git;a=commitdiff;h=d2fab12dade227037b3f91503d2fb83fd80eb02ehttp://akaros.cs.berkeley.edu/gitweb/?p=akaros.git;a=commitdiff;h=d2fab12dade227037b3f91503d2fb83fd80eb02e
Page cache for memory mapped files
Page cache for memory mapped files
Ties the radix trees and page maps into the VFS, KFS, and mmap(). Still
lots of little corner cases, it can't block yet, and I bet we're
screwing something up with page refcounting (which will cause memory
leaks).
Big note: this breaks support for appserver-managed files. It had to
happen sooner or later. The memory mapping currently only works for
files through do_mmap, since processes don't know about files yet.

]]>
Initial page cache structuresBarret Rhoden <brho@cs.berkeley.edu>Fri, 9 Jul 2010 22:59:15 +0000http://akaros.cs.berkeley.edu/gitweb/?p=akaros.git;a=commitdiff;h=d6548ac56ee6bb0e695244dff18771a752c6fa19http://akaros.cs.berkeley.edu/gitweb/?p=akaros.git;a=commitdiff;h=d6548ac56ee6bb0e695244dff18771a752c6fa19
Initial page cache structures
Initial page cache structures
Also changed a few things with the struct page and some of its
functions, including making it use atomics (albeit poorly). For now,
don't trust page_incref() and page_decref() to work concurrently.

]]>
kfs_lookup() and parsing directoriesBarret Rhoden <brho@cs.berkeley.edu>Wed, 9 Jun 2010 00:25:20 +0000http://akaros.cs.berkeley.edu/gitweb/?p=akaros.git;a=commitdiff;h=0c63e7c72e4c2acdc5d2eb03eac2f5fa32118d6ehttp://akaros.cs.berkeley.edu/gitweb/?p=akaros.git;a=commitdiff;h=0c63e7c72e4c2acdc5d2eb03eac2f5fa32118d6e
kfs_lookup() and parsing directories
kfs_lookup() and parsing directories
KFS now builds a full tree from a CPIO archive. No support for symlinks
or anything like that yet.