[Barrelfish-users] New Barrelfish Release

Simon Gerber simon.gerber at inf.ethz.ch
Fri Jun 10 13:06:39 CEST 2016

Dear all,

We are pleased to announce a new release of the Barrelfish OS. Along with
various bug fixes, this release includes an overhaul to Barrelfish's
capability system, improvements to the IRQ handling to provide better
foundations for interrupt allocation and routing and an updated version of the
ECLiPSe CLP complete with support for big integers.

The capability system overhaul introduces range capabilities for memory
regions.  These range capabilities remove the power-of-two restriction on
region size and the necessity of always retyping all of a source capability
when wanting to create a capability to a subregion of the source region.  The
user-facing impact has been kept minimal and there are some subsystems that
still expose the old power-of-two only interface, most notably the memory

As always, you can get the latest version by cloning or pulling from our
git repository [1].

-- Simon

[1] git://git.barrelfish.org/git/barrelfish

Adam Turowski (1):
      Adding an option to warn about comparisions that are always true or false.

David Cock (7):
      ARMv8 tech report
      Rerun pdflatex in more cases.
      ARMv8 report looking good up to S3.1
      ARMv8 report S4.1 (user-space threading)
      ARMv8 report is content complete.
      ARMv8 report formatting fixups.
      ARMv8 report bib fixes

Lukas Humbel (36):
      IRQ: cap stubs
      IRQ: Started on the local/driver side. Not a working state.
      IRQ: rename pci interface get_cap to get_bar_cap. remove (soon to be) unnecessary device_init params
      IRQ: dont pass nirqs
      IRQ: work in progress on receiving side
      IRQ: getting pci_client closer to using new interface
      IRQ: added IRQVector cap
      IRQ: changed kernel to use irq_dest_cap table with IRQVector caps
      Added ACPI_SERVICE_DEBUG to Config.hs.template
      IRQ: Making the code actually work. ACPI interface
      IRQ: added irq source capability and make the inthandler setup use it
      IRQ: Found bug, added assertion
      IRQ: Now using (again) a table of ep caps for dispatch and a bitmap for allocations.
      IRQ: refactoring caps names
      IRQ: ARM invocations added
      IRQ: added invocations to x86_32
      IRQ: added support to X86_32 kernel
      IRQ: bugfix (no index variable shadow)
      lpc_timer: Fix for multiple clients
      IRQ: Correctly setup pci device interrupts
      T89: Better ACPI debug output
      T89: Added a test to test PCI interrupts using e1000 card
      T89: Discover PCI IRQ Routing tables using correct bus number.
      T89: Discover and disable all PCI link devices on boot.
      T89: Dont swizzle pins when doing the PIN lookup.
      T89: irqtest output improved
      T89: Add irqtest to harness
      GMP: Add escaping to CC argument. Allows to use compiler prefixes in Tools.hs (such as ccache/distcc)
      ACPI/PCI: Improved output
      T89: ACPI path names can be longer than 16 chars.
      T89: Improve irqtest
      T89: Revert irq_routing.pl to swizzling one
      T89: Make missing ACPI bridge entry non fatal.
      Add appenzeller to machines with broken bridge programming
      T89: Reverting (again) the first version of the routing algorithm

Michael Quigley (1):
      Bug fix for thc_async

Moritz Hoffmann (70):
      Squashed 'usr/eclipseclp/' content from commit f5ce146
      Merge commit 'a036c989e56a595268f21b830de60af7fc0f433a' as 'usr/eclipseclp'
      eclipseclp/Kernel: start with default config.h
      eclipseclp/Shm: add default config.h
      eclipseclp/Kernel: Add Hakefile
      acpi: main(), check skb_client_connect return value
      eclipseclp: update Hakefiles
      eclipseclp: Fix array overflow bug
      eclipseclp: update config.h
      eclipseclp/sepia: initialize vfs on Barrelfish
      eclipseclp/Shm: add config.h
      eclipseclp: Source changes to satisfy compiler.
      skb: eclipseclp deprecated flush(1) in favor of flush(output).
      skb: improve debugging
      kaluga: Fix string formatting in debug code.
      acpi: Use USER_PANIC_ERR instead of assert.
      skb: Update Hakefile to link skb against new eclipseclp.
      posixcompat/sysconf: Print warning when executing unknown sysconf command.
      eclipseclp/icparc: use system regex implementation instead of local.
      Barrelfish: Update copyright notice in README.
      posixcompat/sysconf: Update copyright.
      acpi: Update some copyrights.
      kaluga/driver_startup.c: Add missing copyright notice.
      skb: Update copyright notices.
      skb: Disable debugging.
      eclipseclp: Update copyright notice.
      platforms: Update copyright notice.
      eclipseclp: Disable bash debugging for mkcpio.
      eclipseclp + toosl: Rename eclipse_kernel_ramfs to eclipseclp_ramfs.
      skb: Use new Shm library.
      gmp: Add Hakefile.
      eclipseclp: Link against gmp.
      skb: Link against gmp.
      hake: Add compiler function to RuleDefs.
      eclipseclp: Extract SIZEOF_* definitions into header file.
      eclipseclp: Prepare for x86_32 and arm
      skb/measurement: Correct dependency on schema/cpuid.h
      gmp: Generalize Hakefile not to have non-portable dependencies.
      eclipseclp: Transfer old flags.
      eclipseclp: Correct dependency on gmp.
      eclipseclp/Shm: Use sizes.h instead of defining sizes in Hakefile.
      eclipseclp/Shm: Assemble lock.S to enable x86_32 compilation.
      menu.lst: Include eclipseclp_ramfs.cpio.gz
      Merge branch 'eclipseclp'
      harness/spantest: Fix imports. Fixes T217.
      gmp: Add missing architecture translations.
      compiler-rt: Define __ARM_EABI__ on 32-bit arm targets.
      compiler-rt: Exclude *vfp files from build on arm.
      compiler-rt: Initialize variables to avoid GCC complaining.
      hake: Remove -lgcc on arm targets. Add compiler-rt to stdLibs.
      gmp: Rework Hakefile to allow cross-compilation.
      eclipseclp, gmp: do not build on armv5
      hake: Remove libgcc dependency from kernel. Use compiler-rt instead.
      hake: Remove libgcc from standard libs.
      gmp: Improve CFLAGS sanitization be only removing link group from CFLAGS after configure.
      symbolic_targets: cleanup cpio archives.
      drivers/xeon_phi: Do not depend on if/monitor_defs.h.
      hake: Add Abs RuleToken to refer to resources using their absolute path.
      gmp: Refactor to produce rules instead of directly evaluating to strings.
      hake: Remove unused definitions in Makefile.
      compiler-rt: Do not compile arm/sync_fetch_and_* and arm/switch* on armv5.
      compiler-rt: fix path for armv7 assembly files
      hake: Add rules to get external dependencies.
      hake: Remove 'abs' special tree and replace it by 'cache'
      harness: Fix Config.hs generation by including cache_dir.
      hake: Change default cache dir to $HOME/.cache/barrelfish.
      hake: Show --cachedir option in help. Add --help argument.
      compiler-rt: Move Hakefiles from root directory down the tree.
      compiler-rt: Do not assemble MMX instructions on k1om.

Reto Achermann (3):
      making K1OM_Full build again
      fixing undefined global in spantest-exit. closes T220
      libgmp: remove dependency to libbarrelfish

Simon Gerber (81):
      T191: change PhysAddr, RAM, Frame, DevFrame and VNode_* cap types to have size in bytes
      T191: x86_64: frame_identify returns size in bytes
      eclipseclp: add sizes.h definitions for aarch64
      Cleanup bugs exposed by -Wtype-limits.
      x86_32: fix nonsense comparisons
      hake: thc: make <ifn>_thc.c depend on <ifn>_defs.h
      x86_64: irq vector allocation: simplify looping over KCBs and fix loop to check in right kcb
      scalebench: add option to produce junit xml output
      harness: fix code that generates TestCase objects
      harness: xml file now called report.xml
      harness: testcase output: join output lines instead of dumping array repr
      harness: xml: fix stdout processing and ordering of debug output in main()
      harness: fix output preprocessing
      harness: produce xml output (if requested) on early exit
      harness: xml: do not use <build>.<machine> as class name
      harness: xml: put class name back in to make result listing look less dumb
      harness: replace non-printable characters in output using unicode()
      harness: split up compiler-rt tests in more testcases
      harness: Fix error reporting
      harness: fix error reporting some more
      harness: fix error reporting
      harness: dynamically generate "enough" compiler-rt test cases
      armv7-m: fix missing bits in posixcompat, compiler-rt, and Config.hs.template
      harness: Remove x86_32 from buildarchs for x86_64 ethz machines.
      armv7-m: port mapping capability changes
      Squashed changes of e89aa91..6ca6bdf (master as of 2016-04-18).
      T191: Implement prototype for new retype
      harness,qemu wrapper: Make harness use qemu wrapper script for x86_64
      qemu-wrapper: Fix typo in default hd file
      T191: fix wrong command in invoke_cnode_retype2, and add some more output in kernel code
      Implement identify command for ObjType_RAM
      T191: add testing for new retype code; not complete
      T191: fix test output to describe tests more accurately. Not all implemented yet
      T191: simple range check to allow non-overlapping retypes from same region; updated test retype2.0
      T191: Fix missed renaming of test
      T191: retype2: more testing of simple success cases
      T191: fix simple test
      T191: fix retype2 for overlapping requests + tests for overlap
      T191: comment arg dumping for retype2 and add comment about retype + copies of src
      T191: add tests delete+retype and misaligned size and offset
      T191: rearrange check in kernel, do easy checks first; check that we cannot create objects larger than source
      T191: fix missing arg in cap_retype2()
      T191: fix wrong error
      T191: call invoke_cnode_retype2 with count = 0 from cap_retype()
      T191: update monitor capops retype
      Fix cap tracing static assert
      T191: write multi retype test and add test_retype2 in platforms/Hakefile
      T191: Fix zeroing for !(type == Frame)
      T191: add warning about use of old retype
      T191: minor changes to retype2 test output
      T191: remove old caps_retype() code from kernel
      T191: kernel: add debug prints about zeroing
      T191: change all of user space to call new retype directly; turn off count = 0 behaviour in kernel
      T191: T231: rename caps_create->caps_create_old and caps_create2->caps_create
      T191: T231: caps_create_new() now takes region and object size in bytes
      T191: User space works again with reduced set of provided capabilities.
      T191: python script to generate dot file to plot mdb from output of mdb_dump_all_the_things()
      T191: x86_64: refactor retype2 back to retype
      T191: rename testsuite from caps_next to capops
      T191: aarch64: implement invocations and related changes for range capabilities
      T191: cleanup comments and some TODOs
      vspace_pinned_alloc: dump errors so that we get full error stack
      harness: add build type for armv7 gem5+debug symbols
      T191: aarch64: fix monitor invoke_retype
      T191: armv7: refactor code to use range retype and bytes-based identify
      gem5: Fix menu.lst.arm_gem5_mc to set mmap to 256MB starting at 0x0.
      T191: remove commented-out cap splitting in caps_create_to_cnode
      T191: init: use mm_add_multi in initialize_ram_alloc()
      kernel: paging_generic: compile_vaddr: handle case where we find something that is not a VNode properly
      T191: x86_64: make it compile again
      T191: xeon_phi: Update driver to use new API and minor fixes in driver
      Remove unneeded printk() in kernel/startup.c
      T242: handle FLOUNDER_ERR_TX_BUSY in usr/monitor/capops/copy.c
      T242: handle FLOUNDER_ERR_TX_BUSY for all capops
      T238: change kernel to use new vnode_objsize() when appropriate
      T238: fix vnode_objsize() to not use BASE_PAGE_SIZE but 4096
      T238: fix renaming mistake
      Merge branch 'caps_next'
      harness: fix buildall target to be configurable on a per-machine basis
      irqtest: fix frame_identity init
      Merge GitHub PR1.

More information about the Barrelfish-users mailing list