[Barrelfish-users] new release

Kornilios Kourtis kornilios.kourtis at inf.ethz.ch
Fri Mar 1 13:49:07 CET 2013

Dear all,

We are pleased to announce that we pushed code to the hg.barrelfish.org
repository. As always, you can update your hg repos or download a tarball
with the source code.

The big changes involve the Barrelfish memory management subsystem and
were a part of Simon Gerber's Master's thesis.

In Simon's words:
| The core contribution of those changes is that all memory mappings are
| now tracked by the CPU driver. This is achieved by storing some
| information about each mapping in the capability used to create the
| mapping. The main reason for that is that we can now remove mappings
| when the capabilities that were used to create them are deleted.
| One consequence of that change for user code is that whenever you are
| mapping regions "by hand" (e.g. by requesting a Frame capability and
| calling vspace_map_* functions) you need to make sure that you create a
| copy of the capability in question for each mapping. Additionally you
| need to make sure that you don't cap_destroy() capabilities whose
| mapping you still need (a recent example is the dispatcher frame in the
| domain spanning code).
| Other, more behind-the-scenes changes include the ability to recreate
| the virtual address of a mapping in the CPU driver (e.g. for selective
| TLB shootdowns), a new vnode_{map,unmap,modify_flags} kernel interface
| that allows you to update as many consecutive entries in one page table
| as you wish with one system call, and functionality to inspect (by
| printing) hardware page tables and pmap meta data.
| For all the nitty-gritty details of the changes you can check my
| Master's thesis: http://www.barrelfish.org/gerber-master-vm.pdf

Unfortunately, there is an unresolved issue with on the SCC platform,
which prevents from starting the memory server on the second core.  We
are currently working on resolving this issue, and as soon as we have a
fix we will push it to the tree.

There are also a number of changes by Zaheer, which improve C++
compatibility and allow Barrelfish to be compiled with clang. Be advised,
however, that there are some issues in running a clang-compiled
Barrelfish which are not yet resolved.


Kornilios Kourtis

More information about the Barrelfish-users mailing list