<div dir="ltr">Hi,<div><br></div><div>The new release of the Barrelfish is amazing.</div><div>Do you have any publications or relevant papers on the user-space driver management?</div><div><br></div><div>Thanks</div><div>Yuxin</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Mar 23, 2020 at 5:23 AM Lukas Humbel <<a href="mailto:lukas.humbel@inf.ethz.ch">lukas.humbel@inf.ethz.ch</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Dear all,<br>
<br>
We are pleased to announce a new release of the Barrelfish OS.<br>
<br>
The big topics were:<br>
 * User-space driver management, including the unified device queue framework<br>
 * Support for the NXP iMX8X SoC, which also improved overall ARMv8 support<br>
 * Simon Gerber's new memory subsystem<br>
<br>
The new release is available in our git repository [1].<br>
<br>
Cheers,<br>
Lukas <br>
<br>
[1] git://<a href="http://git.barrelfish.org/git/barrelfish" rel="noreferrer" target="_blank">git.barrelfish.org/git/barrelfish</a><br>
<br>
<br>
Adam Turowski (17):<br>
      mlx4: a working driver<br>
      armv8: fixing the Multiboot2 structure<br>
      armv8: adding a missing path<br>
      armv8: another missing path<br>
      Fixing some debug messages<br>
      armv8: adding a missing LMP_FLAG_IDENTIFY flag to invocations<br>
      Merge commit 'dde1627a841d'<br>
      armv8: EFI Barrelfish loader<br>
      armv8: generalizing the interrupt controller<br>
      armv8: initial Raspberry Pi 3 support<br>
      armv8: adding QEMU UBoot machine (qemu_armv8_uboot_*) to harness<br>
      arm: GICs cleanups<br>
      qemu: adding a custom QEMU_EFI.fd to speed up booting<br>
      systime: adding a relative timeout function<br>
      arms: unifying interrupts, timers and platform data<br>
      hpet: adding a missing flounder binding<br>
      hpet: fixing dependencies<br>
<br>
Aya Kayal (3):<br>
      armv8: Fix idcap_identify syscall<br>
      reading characters from lpuart<br>
      serial lpuart driver (reading characters and sending them to the shell)<br>
<br>
Changyeon Jo (5):<br>
      vmkit: add support for Intel Pentium processsor to VMkit<br>
      kaluga: a bug fix for lpc_timer<br>
      kaluga: investigate all arguments to check the module is auto<br>
      vmkit: use new style for guest frame allocation<br>
      vmkit: added delay at VMkit monitor startup to wait required modules<br>
<br>
Daniel Schwyn (76):<br>
      First implementation of new AST for Sockeye parser<br>
      Sockeye: New Parser parses top level structure<br>
      Sockeye: Implement declaration parsing<br>
      Sockeye: Fix natural set model and parsing<br>
      Sockeye: Parse declarations & definition skeletons<br>
      Sockeye: Parse address blocks in accept<br>
      Sockeye: Implement expression parsing<br>
      Sockeye: Implement overlay parsing<br>
      Sockeye: Implement binds parsing<br>
      Sockeye: Implement maps & converts parsing<br>
      Sockeye: Fix qualifed node reference parsing<br>
      Sockeye: Add source position to AST<br>
      Sockeye: Code cleanup in parser<br>
      Sockeye: Move code for compiler v1 to subfolder<br>
      Sockeye: Build symbol table for top level<br>
      Sockeye: Build whole symbol table<br>
      Sockeye: Add back compiler pipeline<br>
      Sockeye: Implement import parsing and resolution<br>
      Sockeye: Build symbol table with imports<br>
      Sockeye: Move files for new compiler to v2 dir<br>
      Sockeye: Move old code to v1, Hakefile for new code<br>
      Sockeye: Fix slice operator<br>
      Sockeye: Do not allow multidimensional quantifiers<br>
      Sockeye: Update technote<br>
      Sockeye: Update technote with checks<br>
      Sockeye: Start implementing checker<br>
      Sockeye: Add files for rest of compiler pipeline<br>
      Sockeye: Add extended syntax example to technote<br>
      Fix extraneous argument in ARMv7 LMP macro<br>
      ARMv7: Map all init frames shareable (coherent)<br>
      hake: Makefile depends on hakefiles again<br>
      armv8: Fix dependencies for building images<br>
      armv8: Fix naming of multiboot functions<br>
      armv8: Remove Grub artefact from multiboot2 header<br>
      armv8: Improve handling of multiboot info<br>
      armv8: Kernel expects core data also on BSP<br>
      armv8: Don't overwrite core data passed by bootloader<br>
      armv8: Start cleaning up static EFI bootloader<br>
      armv8: Add debug output for boot driver on QEMU<br>
      armv8: Fix booting from U-Boot<br>
      armv8: Refactor EFI loader<br>
      armv8: EFI loader now builds fresh kernel page tables<br>
      armv8: EFI loader sets correct memory attributes<br>
      armv8: existing image blob is cleared<br>
      armv8: Fix module relocation for static EFI images<br>
      armv8: Fix include paths in EFI loader<br>
      armv8: Only 3G RAM for U-Boot on QEMU<br>
      armv8: Disable debug prints in boot driver<br>
      Update Hagfish to latest version<br>
      Add lpuart kernel driver<br>
      Add imx8x platform<br>
      Add serial support for imx8x in boot driver<br>
      Strip down imx8x image to boot/CPU driver for now<br>
      Get rid of serial driver assembly in boot_entry<br>
      Fix platform support for imx8x<br>
      Improve lpuart kernel driver<br>
      armv8: Stop debugging imx8x in boot driver<br>
      imx8x: Fix lpuart Mackerel file<br>
      proc_mgmt: Fix race condition<br>
      armv8: Support no access page mappings<br>
      armv8: Fix modify paging flags<br>
      armv8: Pass correct page fault cause<br>
      armv8: Fix abort when disabled handling<br>
      armv8: Improve readability of register restoration code<br>
      libbarrelfish: Store thread state at aligned address<br>
      Benchmarks: Make Appel/Li compile on armv8<br>
      armv7/8: Don't include armv7 headers in shared code<br>
      imx8x: Fix description of usb boot target<br>
      imx8x: Fix description of imx8x platform<br>
      armv8: Remove duplicate armv8 qemu target<br>
      docs: Fix Hakefile comment<br>
      armv8 tools: Static bootloader passes full cmdline<br>
      armv8: Add missing GIC Mackerel devices to Hakefile<br>
      imx8x: Return correct core count in kernel<br>
      imx8x: Add Mackerel definition for GPIO<br>
      imx8x: Better use of U-Boot env variable for boot<br>
<br>
Gerd Zellweger (35):<br>
      Expose stack_top address in thread API.<br>
      Increase sbrk HEAP size.<br>
      Increase sbrk memory size.<br>
      kernel,x86_64: make sure page-mapped page tables are never writeable from user space.<br>
      Example program that can map it's own pagetables RO.<br>
      Trying to map PML4.<br>
      Update vnode-as-page mapping test to work with new vnode_identify().<br>
      Allowing to clear dirty bits from user-space and rewrite page table test<br>
      Added cap invocation that clears the dirty bits.<br>
      Move some invocations into libbarrelfish.<br>
      Dirty bits.<br>
      Fix bug.<br>
      Added base.<br>
      Remove print.<br>
      Save the type of the vnode cap in the user-space vnode struct.<br>
      Fix include error.<br>
      Update test programs for pagetable manipluations.<br>
      Expose sbrk memory objects to interested clients.<br>
      Add some sanity checks to the sbrk functions.<br>
      Added vaddr for frames in pmap.<br>
      Expose offset and base again.<br>
      Serialize additional vnode information.<br>
      Working on a vnode array of the heap.<br>
      Increase vnode list.<br>
      Fix assertion.<br>
      sbrk time measurements.<br>
      Fix assertions with NDEBUG.<br>
      Measure sbrk tickwise.<br>
      kernel,libbarrelfish: Add debug syscall for flushing the TLB.<br>
      Make sure mmap is aligned, use new flags for explicit page-sizes.<br>
      Ability to set page-size to two MiB.<br>
      Modify apple&li to be able to use hugetlbfs.<br>
      COW Benchmark initial commit.<br>
      COW main benchmark.<br>
      Update benchmark with Linux/fork code.<br>
<br>
Github Security Lab (1):<br>
      `vallen` is verified to be less than `len`, therefore, it can never be the case that `vallen >= len + sizeof(rhostname)`.<br>
<br>
Kornilios Kourtis (5):<br>
      import original appel benchmark<br>
      mem_appel: modernize it a bit (misc/whitespace)<br>
      xmpl-cow: add minor note<br>
      mem_appel: initial port to Barrelfish<br>
      kernel: dont print message on user page faults<br>
<br>
Lukas Humbel (216):<br>
      Starting the Prolog backend for sockeye2<br>
      Sockeye: Improving on Prolog output<br>
      Sockeye: instantiating modules with (no outputs yet)<br>
      Sockeye: Handle output nodes<br>
      Sockeye: Update technote<br>
      Sockeye: Forall quantifier<br>
      Sockeye: technote example<br>
      Sockeye: cleanup<br>
      Sockeye: Simple x86 model with runtime manipulation<br>
      Sockeye: Add address properties to address blocks<br>
      Sockeye: Add resolve function<br>
      Sockeye: Make PL queries treat node overlay correctly<br>
      Merge branch 'sockeye' into virtualfunction<br>
      Sockeye: load x86 decoding net on kaluga start<br>
      Sockeye: Add region query to decoding_net2<br>
      Sockeye: Make real world resolve region work<br>
      Sockeye: Reserver certain regions and allocate free ones<br>
      Sockeye: Add some logic for block remappable and generate PTs from it<br>
      Sockeye: Working on region route<br>
      Sockeye: First version of common buffer query working<br>
      Sockeye: Speedup and cleanup<br>
      Start of integrating the model supported memory allocator<br>
      iommu: add nodeid to getvmconfig call<br>
      iommu_client: Pass nodeids to mem_serv<br>
      Sockeye: Initialize DRAM with available memory<br>
      mem_serv: Move allocate_common into iommu_client<br>
      Sockeye: Correct order for initialization<br>
      Sockeye: Mark regions in use<br>
      Sockeye: adapting towards iommu_client interface<br>
      iommu: Use queries to determine buffer<br>
      Merge branch 'virtualfunction' of ssh://<a href="http://code.systems.ethz.ch:8006/diffusion/BFI/barrelfish" rel="noreferrer" target="_blank">code.systems.ethz.ch:8006/diffusion/BFI/barrelfish</a> into virtualfunction<br>
      iommu: fix alloc_root_vnodeslot<br>
      iommu: make driverkit work without an iommu<br>
      Sockeye: Support destination ID in alloc_common query<br>
      Sockeye: Fix output<br>
      Sockeye: Start with explicit state decoding net<br>
      Sockeye: Working on next iteration of the prolog<br>
      Sockeye: Add state to more variables<br>
      Sockeye: add region_region_intersection<br>
      Sockeye: Make decoding_net representation one dimensional<br>
      Sockeye: Porting PCI bars to new decoding net<br>
      Sockeye: decoding step with overlapping regions<br>
      Sockeye: Integrate new decode step into routing<br>
      Sockeye: Routing for consecutive blocks<br>
      Sockeye: Next iteration<br>
      Sockeye: Add some more stuff to new file<br>
      Sockeye: Add translate for reconfigurable nodes<br>
      Sockeye: Add configurable translate<br>
      Sockeye: Add routing<br>
      Sockeye: Decoding net allocate free range<br>
      Sockeye: Update region_alloc<br>
      Sockeye: Add alloc and alias frontend queries<br>
      Sockeye: Add BF interface support for new decoding net<br>
      Bridge programming: Speedup<br>
      Sockeye: Support variable observer count in prolog<br>
      Merge branch 'virtualfunction' of ssh://<a href="http://code.systems.ethz.ch:8006/diffusion/BFI/barrelfish" rel="noreferrer" target="_blank">code.systems.ethz.ch:8006/diffusion/BFI/barrelfish</a> into virtualfunction<br>
      Integrate new model queries<br>
      Integrate new model interface part 2<br>
      Sockeye: Prolog fixing<br>
      Retry on oct_mset and cleanup some model instantiations<br>
      Fix bridge_bios programming method<br>
      Sockeye: Make offset smaller pagesize. Allocation speed<br>
      Merge branch 'virtualfunction' of ssh://<a href="http://code.systems.ethz.ch:8006/diffusion/BFI/barrelfish" rel="noreferrer" target="_blank">code.systems.ethz.ch:8006/diffusion/BFI/barrelfish</a> into virtualfunction<br>
      Fix SKB query syntax, add decoding_net debugging<br>
      Sockeye: Remove structs from prolog<br>
      driverkit: better handling of node ids<br>
      Sockeye: Allow vspace alloc in other foreign nodes<br>
      driverkit: 1G align allocations so that mem serv can always handle the request<br>
      Sockeye: Remove state file fixup<br>
      Sockeye: Remove state file fixup 2<br>
      Sockeye: "optimize" search order<br>
      Merge branch 'virtualfunction' of ssh://<a href="http://code.systems.ethz.ch:8006/diffusion/BFI/barrelfish" rel="noreferrer" target="_blank">code.systems.ethz.ch:8006/diffusion/BFI/barrelfish</a> into virtualfunction<br>
      Sockeye: Add Xeon Phi<br>
      Sockeye: Mark pci vaddr in use.<br>
      Sockeye: Fix PCI vaddr in use.<br>
      Sockeye: Make it work for xeon phi + xeon_phi alias query<br>
      Sockeye: Integrate Xeon Phi address translation query<br>
      Use debug print in assertion failure<br>
      Hack: Only add interesting PCI model nodes<br>
      Sockeye: Fix new state representation<br>
      Sockeye: More fixes for new state encoding<br>
      Sockeye: Fix for new state<br>
      Sockeye: More fixes for new state<br>
      Sockeye: Try to start DRAM at 16GB + various fixes<br>
      Sockeye: Fix knc hwmodel query<br>
      Sockeye: Translate blocks that are a subset of translateable blocks<br>
      Make hwmodel work somewhat<br>
      Sockeye: Respect in_use in intermediate route steps<br>
      DMA: integrate hwmodel conversion into more places<br>
      Sockeye: Fix numbers. translate (no conf) respect sub-blocks<br>
      Remove hack<br>
      Sockeye: Make bars start at 0<br>
      Sockeye: correct bar addressses<br>
      Try if optimizations get in our way<br>
      More fixes<br>
      Revert some tries<br>
      revert some tries<br>
      Sockeye: Add reverse resolve wrap query<br>
      Sockeye: Add reverse resolve func<br>
      Sockeye: move xeon phi special cases to xeon_phi hwmodel<br>
      Sockeye: Debug print hwmodel queries<br>
      Sockeye: Print all the model queries<br>
      Sockeye: Another try<br>
      Sockeye: Speed optimizations<br>
      Sockeye: Integrate queries<br>
      Sockeye: Remove hardcoded xeon phi hack. Add XPHI DMA node<br>
      Merge branch 'virtualfunction' of ssh://<a href="http://code.systems.ethz.ch:8006/diffusion/BFI/barrelfish" rel="noreferrer" target="_blank">code.systems.ethz.ch:8006/diffusion/BFI/barrelfish</a> into virtualfunction<br>
      Sockeye: capture more queries in debug output<br>
      Sockeye: Speedup<br>
      Sockeye: Again, make things go fast(er).<br>
      Start with re-work<br>
      flattening<br>
      Sockeye: Add alloc<br>
      Sockeye: Cleanup, move asserts out into support<br>
      Sockeye: Implement map<br>
      Merge branch 'virtualfunction' of ssh://<a href="http://code.systems.ethz.ch:8006/diffusion/BFI/barrelfish" rel="noreferrer" target="_blank">code.systems.ethz.ch:8006/diffusion/BFI/barrelfish</a> into virtualfunction<br>
      Sockeye: Add tests<br>
      Sockeye: Multiple conf nodes<br>
      Sockeye: Resolve Dst first in map command<br>
      adapt query wrappers<br>
      Sockeye: fix add_pci support<br>
      Sockeye: add add_process test<br>
      Sockeye: Don't use negative numbers for empty region<br>
      Sockeye: correct xeon phi defs<br>
      Sockeye: process overlay pcibus, not dram<br>
      Sockeye: Add Benchmarks<br>
      Fix prolog<br>
      Sockeye: Remove backtracking point in decrement avail<br>
      socs: correct knc sockeye<br>
      Sockeye: Remove bt points in sockeye<br>
      Sockeye: Fix state_remove bug and tests<br>
      Sockeye: Add test wrapper function<br>
      Sockeye: Benchmarks<br>
      add some VM functions<br>
      Sockeye: Add free<br>
      Fix for parsing with p2i<br>
      Sockeye: Start with unmap<br>
      bar programming fixes<br>
      Fix p2i error<br>
      Sockeye: towards unmap<br>
      Sockeye: Bugfix<br>
      Sockeye: Implement unmap<br>
      Sockeye: make add_pci respect new map assumptions<br>
      Sockeye: More unmap integration<br>
      virtualfunction: fix kaluga build for armv8<br>
      Merge branch 'master' into virtualfunction<br>
      Sockeye: quick fix for generating documentation<br>
      README adapt to u18.04 and general update<br>
      hpet source code cleanup<br>
      hpet: remove race, clean kaluga start_hpet<br>
      HPET: Work on modularized hpet driver<br>
      HPET: starting simple comp module<br>
      hpet two part driver<br>
      HPET fixups<br>
      Merge branch 'hpet_driver'<br>
      hpet: dependencies to domain<br>
      armv7: Move distributor driver to userspace<br>
      armv7: enable timer in kernel<br>
      armv7: Correct name PL130 to PL390<br>
      ARM: Fix kernel IRQ debug printf<br>
      Turn serial driver into module and fix userspace GIC<br>
      armv7: remove gic dist debug<br>
      armv7: dist and serial: fix races<br>
      remove debug prints<br>
      turn serial pc16550d into module<br>
      armv7: Enable serial driver on pandaboard<br>
      armv7: Disable CPU reading cpu count from GIC<br>
      Merge branch 'armv7_irq_debug'<br>
      hake: correct lib dependencies on linking<br>
      armv8: fix boot into qemu with make target<br>
      Merge branch 'master' of ssh://<a href="http://code.systems.ethz.ch:8006/diffusion/BFI/barrelfish" rel="noreferrer" target="_blank">code.systems.ethz.ch:8006/diffusion/BFI/barrelfish</a><br>
      hake: enable library dependencies on all platforms<br>
      hake: Make proper use of lib dependencies<br>
      hake: Ensure correct symbols get linked<br>
      pci: add missing flounder dependency<br>
      import Sven's barebones system<br>
      armv8: Remove debug printf<br>
      armv8: Fix mem_alloc on matching caps in init<br>
      armv8: add proc_mgmt to menu lst<br>
      sockeye: Import LISA backend<br>
      sockeye: Import barebones.soc file and add hake rule<br>
      serial: Fix armv7<br>
      hake: Two pass to minimize memory consumption<br>
      hake: Generate PL database with driverdomain/modules<br>
      armv8: Improve readme<br>
      Merge branch 'hake_deps'<br>
      Fix irqtest build<br>
      flounder: Type generation correct dependencies<br>
      harness: add nice make targets for testsets<br>
      pmap: Fix lookup function and add test for it<br>
      imx8x: add some more modules in menu.lst<br>
      imx8x: Add boot target<br>
      update copyright notice<br>
      armv7: To support domain spanning, use different vregion per core<br>
      harness: add imx8x_local machine and some start for rackmount imx8x<br>
      imx8x: Add rack mounted colibris to harness<br>
      imx8x: Hack kaluga to pass startup, and add startd<br>
      armv8: Start with all interrupts disabled<br>
      hpet: fix dependencies<br>
      imx8x: Fixup serial driver<br>
      armv8: fix duplicate platform_get_timer_interrupt<br>
      armv8: Implement wait_for_interrupt<br>
      imx8x: Remove hacks from serial_lpuart driver<br>
      armv8: Port irq cap invocations<br>
      armv8: implement user space irq routing + lpuart interrupt<br>
      armv8: remove kernel printfs<br>
      armv8: fix compilation on other platforms<br>
      armv8: increase kcb size to accomodate vector table<br>
      imx8x: Boot second core<br>
      imx8x: Enable cores 3 and 4<br>
      armv8: Cleanup kernel messages<br>
      armv7: Fix for kaluga changes<br>
      imx8x: Add domains to harness<br>
      imx8x: uSDHC driver<br>
      armv8: Initialize systime_frequency for init process<br>
      readme: add NXP iMX8X to supported platforms<br>
<br>
Moritz Hoffmann (6):<br>
      add virt_addr and page_table_frame to vnode pointing to locally mapped page table<br>
      add base vaddr to alloc_vnode function<br>
      Fix sbrk call in usr/tests/pagetable<br>
      Fix syntax error in vmx_vmkit.c<br>
      Implement binary search in memobj_append protect.<br>
      Fix offset calculation in memobj append<br>
<br>
Oleg Godunok (1):<br>
      Arrakis with Intel virtualization extensions.<br>
<br>
Rana Afifi (2):<br>
      HPET Driver which now can configure FSB interrupts and receive them<br>
      Driver can now trigger and receive interrupts through FSB and I/O APIC mapping<br>
<br>
Reto Achermann (409):<br>
      updating memory primitives benchmark<br>
      increasing maximum possible heap size<br>
      adding gups benchmark<br>
      adapting GUPS to run on linux<br>
      adding distinct printf labels to distinguish which gups is running<br>
      libbarrelfish: towards support for demand paging<br>
      libdemandpaging: initial commit with basic functinality and access to dirty bits"<br>
      libbench: adding avg and stdev to output<br>
      libdemandpaging: cleanup and adding of measurements<br>
      libdemandpaging: fixing assert with NDEBUG<br>
      libdemandpaging: add test for full page writes and verification, disable debug output<br>
      libdemandpaging: fix wrong cnode size<br>
      libdemandpaging: adding functionality to add/remove frames from region<br>
      drivers/iommu: adding framework for the iommu driver<br>
      driverkit: don't panic on returned error<br>
      acip: adding parser for the DMAR table<br>
      hwrecords: adding iommu and rootbridge records<br>
      kaluga: register for iommu events<br>
      vtd: adding extended descriptors<br>
      hwrecords: fix misformatted record<br>
      drivers/iommu: remove unneeded code from the template stub<br>
      kaluga: calling watch for iommu after pci devices are initialized<br>
      devs/vtd: fix compilation<br>
      libdriverkit: properly return error code when attaching a new driver<br>
      acpi: parse the madt table and disable vt-d inside acpi<br>
      iommu: adding module to the list of modules to be built<br>
      devices: reformatting of VTd device spec<br>
      caps: adding capability definitions for the Intel VT-d IOMMU root and context tables<br>
      Kaluga: obtainign cap from ACPI when starting the IOMMU driver<br>
      iommu: adding root and context table management code<br>
      iommu: adding iotlb management code<br>
      iommu: refactor driver structure and introduce domains<br>
      hwrecords: fix in formatting for iommu<br>
      iommu: adding driver to the list of drivers<br>
      acpi: fixing bugs when parsing dmar table<br>
      devices: extending VT-d register descriptions<br>
      acpi: adapt old VTd code to the new definitions<br>
      iommu: moving vtd commands to separate header file<br>
      iommu: parsing of capabilities<br>
      acpi: don't compile vtd code anymore<br>
      devices: merge VTd with VTd_IOTLB device definitions<br>
      iommu: using different debugging macro for first level tables<br>
      iommu: proper parsing of the two capability registers<br>
      iommu: removing todo from the VT-d driver<br>
      acpi: rework DMAR parsing, adding comments and futher todos<br>
      acpi: remove references to vt-d header<br>
      acpi: rework parsing of device scopes<br>
      iommu: remove references to old vtd_iotlb device headers<br>
      iommu: adding comments to the struct declarations of VT-d<br>
      merging master branch into feature branch<br>
      caps: adding a new capability type for devices<br>
      errnos: remove chips error definitions<br>
      caps: adding invocation handlers for the new captypes to the cpudriver<br>
      monitor: hand kaluga the device manager capability<br>
      kaluga: adding barrier for when PCI bridges are programmed<br>
      if: adding iommu service rpc interface<br>
      driverkit: adding function to push arguments<br>
      numa: adding numa aware allocation for RAM caps<br>
      driverkit: starting with iommu client and server<br>
      iommo: using libnuma for allocations, skb queries and cleanup<br>
      iommu: adding notion of a devices<br>
      iommu: moving service implementation to iommu driver<br>
      skb: adapting query for obtaining dmar devices<br>
      acpi: include iommu idx in SKB records<br>
      caps: change information encoded in the device cap<br>
      iommu: creating generic device management functions and service implementations<br>
      errnos: change VTD_* to IOMMU_*<br>
      iommu: adding generic handling of devices<br>
      acpi: adding generic iommu() facts to the skb<br>
      Merge remote-tracking branch 'origin/master' into virtualfunction<br>
      acpi: remove the VT-d interface and replace it with the generic iommu interface<br>
      kaluga: allow starting of multiple IOMMU drivers<br>
      hwrecords: defining the IOMMU types as a actual type<br>
      dma: adding stubs for the dma driver domain for the new driver framework<br>
      dma: adding generic queue manager<br>
      qmng: adding queue manager client interface<br>
      pci: remove unused device_mapping.h header this is in the SKB<br>
      devidcaps: pass all arguemnts to the kernel to fill the cap<br>
      pci: remove endpoint creation and add deviceid cap<br>
      driverkit: fixing potential memory leaksand adding support for argcn<br>
      pci: adding missing function prototoype<br>
      iommu: don't fail when there is no proximity information available<br>
      driverkit: adding functions to extract the caps from the argcn<br>
      dma: towards support for IOMMUs<br>
      driverkit: actually return the correct cap<br>
      iommu: missing implementations of mapping context table & debug output<br>
      ioat: converting driver to the driver framework<br>
      caps: properly setting the VT-d domain id<br>
      kaluga: using driverkit defined slots<br>
      iommu: more debugging output<br>
      skb: fill out right module for the ioat dma driver<br>
      driverkit: actually freeing slot when init fails<br>
      skb: setting coreoffset to 0 for ioat driver<br>
      ioat: driver module improvements and selftest<br>
      iommu: make sure to obtain the include all segment<br>
      skb: adding missing device ids and correcting module for the Xeon Phi<br>
      Merge branch 'virtualfunction' of ssh://<a href="http://code.systems.ethz.ch:8006/source/barrelfish" rel="noreferrer" target="_blank">code.systems.ethz.ch:8006/source/barrelfish</a> into virtualfunction<br>
      ioatdma: adding missing flounder defs and move header to C file<br>
      iommu: using macros for debug output, disabling some debug output<br>
      caps: adding endpoint cap type for UMP endpoints<br>
      flounder: towards support for endpoint capabilities<br>
      acpi: use debug macro for printfs when parsing dmar table<br>
      libbarrelfish: removing unintentionally added includes<br>
      flounder: adding test domain for endpoint caps<br>
      test/endpoints: actually use the right argcn creation function<br>
      flounder: working support for LMP endpoints<br>
      tests: bug fixes in the endpoint test<br>
      libbarrelfish: adding endpoint related LMP functions<br>
      tests/endpoints: make the test sequential LMP and UMP<br>
      flounder: towards support for UMP endpoint caps<br>
      caps: implementing support to identify and map endpoint caps<br>
      flounder: actually setting the connect handlers on both, bind and create endpoints<br>
      flounder: adding missed changes to unbreak compilation<br>
      flounder: implementing support to pass caps over UMP connection for endpoints<br>
      vtd: implementing various cache invalidation functions<br>
      monitor: use the creation of endpoints functionality for the RPC server<br>
      monitor: don't overwrite monitor state with connection information<br>
      monitor: support for registering revoke notifications<br>
      monitor: remove unused code from the revoke notify<br>
      iommu: towards the new interface<br>
      driverkit: adding the new interface defs for the iommu client<br>
      iommu: adding new interface<br>
      iommu: start implementing client iterface<br>
      caps: returning bits as uint8 instead of size_t<br>
      iommu: adding functions to set and get the default client<br>
      iommu: implement map/unmap/modify low-level interface<br>
      iommu: reformatting in a few places<br>
      iommu: moving functions and mark them as todo<br>
      iommu: towards managing mappings in the client<br>
      iommu: starting with vnode managemnt code<br>
      iommu: implement the client side tracking of mappings<br>
      iommu: refactor common code into a library and service sub functions<br>
      iommu: towards implementation of the iommu service<br>
      iommu: fix build<br>
      iommu: started refactoring the iommu driver to the new interface<br>
      iommu: start implementing the device creation upon request<br>
      iommu: setting up devices and cache flushes<br>
      iommu: adding some more debug outputs and use of macros<br>
      iommu: fix bug in assertion<br>
      iommu: allow iotlb invalidations all the time<br>
      pci: actually returning with the right message so RPCs can proceed<br>
      iommu: adding flags to the mmap() call<br>
      libdma: use libdriverkit for memory management<br>
      iommu: adding function to unmap() mempry<br>
      dma: change of ioat device init functions signature<br>
      iommu: fix compilation<br>
      iommu: implementation of cap retype<br>
      iommu: adding new lines to debug outputs<br>
      iommu: fix possible null-pointer deref<br>
      iommu: retype with the correct object size<br>
      iommu: fix domain creation to not fail when there are domains available<br>
      dma: actually use the right client to call for iommu present<br>
      iommu: bug fixes and debug output in the iommu client library<br>
      iommu: allocating slot for the mapping cap<br>
      iommu: passing of mapping flags and varioius bugfixes in the mapping code<br>
      iommu: handling of map/unmap in the device to enable tlb flushes of the iommu<br>
      driverkit: don't try to connect to endpoint if device setup fails<br>
      libdma: make it work with the driverkit dma buffer management<br>
      caps: handling minting caprights for all caps<br>
      paging: don't use devicetlbs for the iommu context tables<br>
      dma: fixing confusion with library names<br>
      iommu: preliminary support for mapping more than one page at once<br>
      iommu: adding changes to the headers<br>
      iommu: fix assertion to allow exact page size<br>
      iommu: bugfixes in the mapping code<br>
      iommu: passing count to the iommu driver<br>
      iommu: do allocations depending on whether the iommu is enabled or not<br>
      iommu: check if state is set before accessing the fields<br>
      caps: enforce caprights when map/unmap<br>
      xeonphi: towards driver framework<br>
      iommu: us the right pagetable flags for mapping<br>
      ioat: passing the iommu client to the test function<br>
      iommu: ability to set the default iommu client<br>
      kaluga: start the xeon phi with the new driver domain<br>
      xeon phi: initialization with the driver framework<br>
      driverkit/iommu: don't free slots when doing RPCs<br>
      pci/kauga: actually delete the caps not just free the slots<br>
      pci: remove acpi bindings<br>
      kaluga: don't free slot which is freed in driverkit<br>
      pciclient: actually delete the capabilities not just delete the slot:<br>
      pci: return the found index when query suceeds<br>
      tests: importing the xeon phi test as the hardware model test<br>
      driverkit: use the macros for printfs<br>
      iommu: addig an iommu id<br>
      fixing a Hakefile<br>
      cpudriver: remove a debug printf<br>
      iommu: print the iommu id when creating a device<br>
      hwmodels: adding outline of offload use case<br>
      kaluga: check if an element if returned from the list<br>
      hwmodel: implementation of host side of the test<br>
      hwmodels: adding desired destination node id<br>
      hwmodel: almost complete implementaton of hte text case<br>
      xeonphi: implement some RPCs for the paper<br>
      xeonphi: adapt the initialization to the new framework<br>
      xeonphi: prepare to setup up the iomu<br>
      xeonphi: implement the dma requets and factor out the translate function<br>
      hwmodels: adding separate file in the driver kit to handle queries<br>
      xeon phi: skipping initializaton of the second card for now<br>
      xeonphi: make the interphi channel to be large page sized<br>
      caps: adding pasid when doing frame identify<br>
      xeonphi: hwmodel stub function implementation<br>
      tftp: don't reuse the buffer when the packet hasn't sent yet<br>
      platforms: adding the common modules to the K1OM target<br>
      flounder: calling the connect callback when a bind requst comes in<br>
      xeonphi: towards support for model based allocations<br>
      driverkit: make devaddr a genpadr<br>
      flounder: adding allocate rpc definitions to the xeon phi interfaces<br>
      k1om: the xeon phi does not support clflush instructions<br>
      dma: passing the iommu client when creating the dma device<br>
      hwmodels: update the offload scenario<br>
      xeonphi: make the serial part of the phi struct<br>
      xeonphi: poll all cards that are present<br>
      xeonphi: implementation of memalloc interphi calls<br>
      xeonphi: explicit passing of state and implemntation of memalloc rpc sevice<br>
      driverkit: don't use the model for now, and directly allocate frames<br>
      libxeonphi: update header<br>
      ioat: retry when the channel initialization failes<br>
      netsocketserver: don't use polling<br>
      sockeye: make addresses one dimensional and explicit state passing<br>
      sockeye: also pass the state when instantiating the modules<br>
      sockeye: fix ste number prpagation<br>
      sockeye: adding support for block configurable mappings<br>
      socs: updating hakefile<br>
      decodingnet: remove the loop and simplify parsing<br>
      decnet: replace structs with normal predicates<br>
      Sockeye: don't use the internal state predicates as they use cut<br>
      Merge branch 'virtualfunction' of ssh://<a href="http://code.systems.ethz.ch:8006/source/barrelfish" rel="noreferrer" target="_blank">code.systems.ethz.ch:8006/source/barrelfish</a> into virtualfunction<br>
      skb: measure the execution of the queries<br>
      skb: starting device drivers on different cores<br>
      monitor: return NULL_CAP on error<br>
      sockeye: don't use low memory regions when allocating vspace<br>
      kaluga: orchestrate the boot up process differently & fix endpoint creation<br>
      libbarrelfish: use the default send flags when passing local endpoint to monitor<br>
      skb: correct time with the skb query time measure<br>
      driverkit: provide some more debug information in the iommu client<br>
      netsocketserver: enable the polling again<br>
      libnet: attempt to make the polling a bit more efficient<br>
      netsocketserver: yield if there is nothing on the wire<br>
      netsockets: don't loop forever, have an upper bound<br>
      e1000: make the periodic event to trigger every 50us<br>
      xeonphi: use the model to allocate memory<br>
      sockeye: separate the state lists<br>
      sbrk: fixing bug with the goffset calculation and using large pages<br>
      sockeye: update to the new state interface<br>
      skb: increae memory to 128M<br>
      sockeye: call assert inside the init function of the decoding net<br>
      sockeye: fix missing comma in parser<br>
      sockeye: update xeon phi description<br>
      sockeye: don't use bits and use range instead<br>
      xeonphi: print ranges instead of bits<br>
      xeonphi: stub implementation of the config changes<br>
      driverkit: adding optino to map at fixed address<br>
      libdma: use provided convert function when setup descriptors<br>
      hwmodel: remove constraint of 1G alignment<br>
      tests/offload: printing the allocation size<br>
      sockeye: don't print the hex values as parsing doesn't work with those<br>
      tests/offload: use the ram node id not the numanode:0<br>
      libdma; disable debugging again<br>
      Merge branch 'virtualfunction' of ssh://<a href="http://code.systems.ethz.ch:8006/source/barrelfish" rel="noreferrer" target="_blank">code.systems.ethz.ch:8006/source/barrelfish</a> into virtualfunction<br>
      memserv: adding hack for the OSDI18 paper<br>
      hwmodels: use the correct query<br>
      hwmodels: make the testcase working<br>
      sockeye: reorganize queries and the support<br>
      iommu: enable the use of the entire address space<br>
      iommu: using the right offsets into the page tables<br>
      sockeye: use the new assert wrappers for static state<br>
      decoding net: make the fail case more visible<br>
      decoding net: update the state predicates to use less resolution<br>
      decoding net: some formatting changes<br>
      decoding net: update the initialization function<br>
      decoding net: implement state remove suffix<br>
      iommu: use the new prolog interface<br>
      driverkit: don't pass state when query for node id<br>
      decoding net use retract instead of state remove<br>
      Merge branch 'virtualfunction' of ssh://<a href="http://code.systems.ethz.ch:8006/source/barrelfish" rel="noreferrer" target="_blank">code.systems.ethz.ch:8006/source/barrelfish</a> into virtualfunction<br>
      decoding net: bug fixes in the adding of MMU state<br>
      decoding net: remove some debug prints<br>
      decoding net: remove another writeln() to match expected parsing format<br>
      xeon_phi: connect to the skb when the domain is started<br>
      decoding net: fix singleton variable<br>
      pci: load the decoding net file instead of use module<br>
      decoding net: update free and slots when asserting configurable nodes<br>
      decoding net: use the full vspace to initialize the slots<br>
      libnet: don't print in event loop<br>
      decoding net: restrict block to be of size 0<br>
      decoding net: reserve just the first 20 PML4 slots, not 512x20 slots<br>
      decoding net: don't return vpn/ppn use the addresses instead<br>
      libdriverkit: make it work with the new model<br>
      xeon_phi: uadapt to the driverkit changes<br>
      libdriverkit: adding missing header file changes<br>
      decoding net: reserve the first 4G of the xeon phi<br>
      hwmodels: adapt to the changed decoding net interface<br>
      memserv: fix in print out for OSDI hack<br>
      decodingnet: use current bar values<br>
      pci: add the decoding net nodes after the configuration<br>
      decoding net: some fixes and correct calculation of the end address<br>
      socs: use explicit ranges in the Sockeye definitions<br>
      Merge branch 'virtualfunction' of ssh://<a href="http://code.systems.ethz.ch:8006/source/barrelfish" rel="noreferrer" target="_blank">code.systems.ethz.ch:8006/source/barrelfish</a> into virtualfunction<br>
      hwmodel: make it work with the new queries<br>
      pci: adding all model nodes in the end<br>
      Merge branch 'virtualfunction' of ssh://<a href="http://code.systems.ethz.ch:8006/source/barrelfish" rel="noreferrer" target="_blank">code.systems.ethz.ch:8006/source/barrelfish</a> into virtualfunction<br>
      libdma: implementaiton of a small benchmark for the OSDI paper<br>
      decoding net: don't use existing node enum<br>
      iommu: remove debug output<br>
      dma: make the compl status 2M<br>
      dma: make the error print buffer bigger<br>
      dma: reduce the buffer size<br>
      decoding net: enable the ioat dma devices<br>
      mvas: adding kernel support for raw vnode copy<br>
      tools/arm_boot: clear out structs before use<br>
      tools/usbboot: replace deprecated set_debug with set_option<br>
      update tools/usbboot to use the right way to ennable debug<br>
      replacing umlaute and fixing address in headers Haldeneggsteig -> Universitaetsstrasse<br>
      lib/introute: fixing missing flounder defs in Hakefile<br>
      integration of ARM FastModels into Hake<br>
      hake: change path of the fast models to /home/netos<br>
      adding gitlab-ci.yml to check for non-signed off commits<br>
      FIXUP: adding gitlab-ci.yml to check for non-signed off commits<br>
      gitlab-ci: require new commits to be signed off to pass the test<br>
      Merge branch 'master' of gitlab.inf.ethz.ch:OU-ROSCOE/barrelfish/barrelfish-internal-master<br>
      gitlab-ci: adding test to compile hake<br>
      gitlab-ci: adding basic compilation tests for x86_64, ARMv8 and ARMv7<br>
      hake: adding flags to just run hake, without initial dependencies<br>
      gitlab-ci: using moderate parallelism for running builds<br>
      gitlab-ci: adding cleanup job<br>
      gitlab-ci: store the build log on failure<br>
      gitlab-ci: adding test that there are no unmerged files<br>
      update README<br>
      harness: fixing non-exhaustive pater for simjobs function<br>
      sockeye: fix non-exhaustive pattern in case error<br>
      driverkit/serial: adding missing dependencies to Hakefiles<br>
      harness: adding driverdomain_pl390 to armv7 modules<br>
      tests/proc_mgmt: fix nullpointer bug<br>
      libdriverkit: initialize pointer to l3 vnode in iommu client<br>
      harness: increase the default test timeout<br>
      proc_mgnt: check if there's a pending client before dereference pointer<br>
      tests/mt_waitset: increase the number of thread pointers<br>
      tools/harness: name the qemu instances consistently<br>
      scalebench: print the path of the xml report<br>
      tests/capops: use directy identify as frame_identify requres mappable cap<br>
      tests/capops: fix other occurences of frame_identify<br>
      tests/twolevel_cspace: fix use of frame_identify on ram cap<br>
      tests/capops: actually use the passed capability, fix frame_identify in twolevel layout test<br>
      qemu-wrapper: increase memory sizes<br>
      libbarrelfish: increase heapsizes for 64-bit platforms<br>
      hake: increase memory for armv7 platforms to 2GB<br>
      tests/malloc: reduce maximum memory size on 32-bit platforms<br>
      tests/nmk: fix compilation for armv8<br>
      libbarrelfish: pass the fault type int he first argument<br>
      tests/malloc: just malloc 256MB for 32-bit machines<br>
      vfs: disable megaraid for standard vfs library<br>
      tests/span: adding printfs to see progress<br>
      tests/prog_mgmt: don't hardcode architecture specific path<br>
      libbarrelfish: setting arch specific fields when creating new dispatchers<br>
      harness: adding int_route to armv7 platforms<br>
      coreboot: fail when trying to reboot/stop a core on non-x86 architecture<br>
      harness: adding serial domains to the harness images on ARMv7<br>
      armv8: vnode invocation modify flags takes 4 arguments<br>
      armv8: fix calculations of required slabs for mappings<br>
      armv7: fixing calculations of required slabs for mappings<br>
      tests/malloc: increase allocation size<br>
      tests/malloc: reducing malloc size to 128MB for now<br>
      x86_64: fail or attempt to map page-tables read/write<br>
      armv8: work around to set the page-table flags<br>
      cpudriver: get the mapping size for armv8 mappings<br>
      armv8: actually passing the flags argument<br>
      armv8: expect the right number of arguments in the modify mapping invocation<br>
      tests/nkm: towards supporting armv8<br>
      fugu: new error code if the attempted map operation had insufficient rights<br>
      tools/harness: adding name parameter to qemu machine<br>
      harness: increasing test timeout<br>
      armv7: adding rdtscp() alias to make benchmark compile<br>
      lib/devif: use barrier definitions from barrelfish's atomic.h<br>
      armv8: enable compilations of various network drivers<br>
      tests/devif: don't test networking for armv7<br>
      qemu: enable KVM for x86_64 platforms<br>
      armv8: actually pass the faulting address<br>
      test/lrpc_fpu: make it compile for armv7 and armv8<br>
      test/mtwaitset: disable local core spawning on arm platforms<br>
      tests/skb_cap_storage: workaround to get it to work on armv7<br>
      skb: remove test apps as they don't really test the SKB<br>
      drivesr/virtio: remove empty files<br>
      x86_64: make all targets compile<br>
      libcxx: ubdate libunwind<br>
      hake: adding cpudrivers to the _All target<br>
      libcompiler-rt: update to newest version from github repo<br>
      drivers/uhci: remove not-implemented UHCI driver<br>
      armv8: make all defined target compile (ARMV8_All)<br>
      libc: adding missing _setjmp.S to armv8 sources<br>
      cxx: adding tests for libunwind<br>
      libcxx: update to support armv8<br>
      libc:adding missing definitions to nl_types.h<br>
      libcxx: enable tests for armv8<br>
      armv8: fix signed / unsigned comparison warning<br>
      libcompiler-rt: fix compilation for armv7<br>
      hake: remove x86_32 architecture<br>
      arm: fix signed/unsigned compare in header<br>
      libcompiler-rt: adding missing files to the arm target<br>
      fix uses of cycles_t throughout the tree<br>
      Hakefiles: remove x86_32 from architectures<br>
      armv7: fix compilation of the ARMV7_All target<br>
      libthc: adding back removed _thc_schedulecont assembly function<br>
      libcxx: list the source files explicitly<br>
      adding clang-format spec<br>
      updating .clang-format file<br>
      tweaks to clang-format<br>
      clant-format; allow two empty lines<br>
      clang-format: tweak penalty when assignment gets broken to newline<br>
      clang-format: reduce penalty for excess characters<br>
<br>
Roni Häcki (335):<br>
      e10k: devif backend make compile with debug flags<br>
      e10k: convert driver to new framework<br>
      e10k: main for driver domain<br>
      kaluga: changed start function for e10k to new framework<br>
      acpi: removed force vtd_off flag<br>
      e10k: driver remove unused files<br>
      pci: fixed bug ...<br>
      e10k: PF interrupt setup using new framework<br>
      e10k: change to new iommu checks instead of vtd<br>
      skb: added module name to driver facts<br>
      e10k: virtual function module<br>
      kernel: handle devid cap invoke correctly<br>
      Merge branch 'virtualfunction' of ssh://<a href="http://code.systems.ethz.ch:8006/source/barrelfish" rel="noreferrer" target="_blank">code.systems.ethz.ch:8006/source/barrelfish</a> into virtualfunction<br>
      skb: device db allow multiple instances of e10k_vf<br>
      e10k: moving devif backend to driver folder<br>
      kaluga: starting e10k PF and VF driver correctly<br>
      e10k: storing e10k VF resources<br>
      e10k: working again until trying to do a DHCP<br>
      libnet: net_queue fixed assertion for e10k_queue<br>
      e10k: working including DHCP<br>
      net_socket_server: added flag to change from interrupt driver to polling mode<br>
      pci: refactoring of SR-IOV<br>
      iommu: added missing dependency<br>
      kaluga: changed driver startup conditions<br>
      pci: start SR-IOV virtual functions on demand<br>
      e10k: start VF from PF driver<br>
      kaluga: when starting PCI add endpoint to kaluga to arguments<br>
      pci: added missing dependency<br>
      pci: kaluga requests PCI endpoints to add at startup of drivers<br>
      pci: client add method to connect using endpoint cap<br>
      kaluga: correctyl initalized pci endpoint cap<br>
      pci: enabling VFs using channel setup by endpoint cap<br>
      pci: request vf bar caps through pci endpoint connection<br>
      e10k: request VF regs using PCI endpoint cap<br>
      e10k: fixed gettinv VF bar caps.<br>
      kaluga: generalized naming of endpoint requesting interface<br>
      kaluga: hand off endpoint to itself to driver it starts<br>
      driverkit: added missing functions<br>
      kaluga: fixed bug when reusing driver domain<br>
      driverkit: getting an endpoint from a driver integrated in framework<br>
      driverkit: adapted driver to new framework with get_ep call<br>
      solarflare: removed FreeBSD code base<br>
      Platforms: removed sfxge from platforms file<br>
      solarflare: removed unsued header file<br>
      kaluga: hand over ep to driver when starting net_socket_server<br>
      libnet: added starting network stack with endpoint to driver<br>
      e10k: devif backend can use endpoint cap to connect to PF driver<br>
      kaluga: some cleanup regarding kaluga channel setup<br>
      libnet: changed devif backend of NICs so they can initalize with endpoint caps<br>
      skb: device db fixed bug with e1000<br>
      PCI: added possiblity to request PCI endpoint specifically for IOMMU<br>
      iommu: implemented request for iommu endpoint<br>
      pci: channel to iommu setup<br>
      driverkit: renamed devid cap to iommu cap<br>
      kaluga: requesting iommu endpoint cap for device drivers<br>
      pci: added method to requires "starting package" for a VF.<br>
      e10k_vf: change to new way to aquire resources from PCI<br>
      pci: make compile again using debug flags<br>
      iommuclient: if cl client is NULL do normal allocs<br>
      e10k: changed memory allocation to new iommu framework<br>
      pci_client: rpc received into wrong cap<br>
      pci: forwarding iommu cap correctly<br>
      iommu_client: properly return error in driverkit_iommu_mmap_cl() when failing<br>
      libnet: initalize cardname to avoid null pointer when connecting using endpoint<br>
      libnet: added setup of net_filter connection using endpoint<br>
      e10k: use new framework to allocate descriptor ring memory<br>
      libnet: changed buffer allocation to new framework<br>
      libnet: netbufs set vbase correctly<br>
      e10k: do not map device registers using framework<br>
      kaluga: removed some hardcoded values for e10k_vf<br>
      e10k: fixed descriptor ring buffer length<br>
      pci: fail gracefully if there is no iommu<br>
      kaluga: gracefully handle if iommu is not present<br>
      pci: better error handling in case there is no iommu<br>
      iommu_client: make compile with debug flags<br>
      kaluga: start pci with all iommu endpoints<br>
      kaluga: request endpoint when at least one iommu driver is started<br>
      libnet: fixed queue creation flags<br>
      e1000: driver core hint to 0<br>
      e1000: change driver to match new allocation framework<br>
      pci: removed unecessary printf<br>
      iommu_client: do not free cap slot after failure of setting root<br>
      e10k: PF and VF timeout when link does not come up<br>
      Merge branch 'virtualfunction' of ssh://<a href="http://code.systems.ethz.ch:8006/source/barrelfish" rel="noreferrer" target="_blank">code.systems.ethz.ch:8006/source/barrelfish</a> into virtualfunction<br>
      pci_client: added functionality to query this connections device info (when connection setup using EP cap)<br>
      iommu_client: removed some inline from function headers<br>
      iommu_client: flag to disable usage of model for allocation<br>
      e1000: working with new allocation framework using iommu<br>
      sockey: x86_iommu filed upated for PCI<br>
      Sockeye: remove PCI bars from generated code<br>
      decoding_net: add pci bar nodes<br>
      Sockeye: decoding_net2 only add non IO bars for now<br>
      skb: bridge program add procedure bar<br>
      PCI: add decoding net nodes for PCI bars<br>
      skb: bridge programming root bridge window fix<br>
      bridge programming: remove unneccessary output.<br>
      acpi: insert fixed memory range for iommu into skb<br>
      bridge program: take into account 32 bit limitations<br>
      bridge programming: added constraint on bridge for nonprefetchable part<br>
      bridge programming: fixed integer_list problem<br>
      pci: parsing bridge program output correctly<br>
      pci: fixed bar allocating with bridge_page algorithm<br>
      pci: add fake bridge so bridge programming takes VFs into account<br>
      bridge programming: correctly limit addr range for non prefetchable bridge<br>
      bridge programming: adding missing dynamic fact bar<br>
      e1000: simulating inerrupts using periodic events<br>
      bridge programming: some fixes<br>
      pci: reduce number of MAX vfs to 16 for now.<br>
      bridge programming: shift higher addresses that fail with distintive to 0 and back.<br>
      bridge programming: correctly shifting bridge windows for addr > 10'000'000<br>
      decoding net: removing filter for PCI device<br>
      bridge programming: towards decoding net as output<br>
      decoding net: fixed compile error<br>
      decoding net: benchmarking xeon phi usecase and printing it to stdout<br>
      bridge programming: shifting bridges and bars merged<br>
      pci: disable VFs if we do not add argument on menu.lst<br>
      pci: fixed case when bridges are not programmed (size = 0)<br>
      bridge programming: fixed some bugs in bridge/device address shifting when addr > 10'000'000*4096<br>
      bridge programming: added testcase setup<br>
      pci: fixed skb bridge programming return values parsing<br>
      bridge programming: building decoding net as PCI hierarchy<br>
      Merge branch 'master' into virtualfunction<br>
      e10k: fixed e10k_queue (merge was wrong)<br>
      e10k: removed #define from queue header file<br>
      e10k: removed duplicated DEBUG message<br>
      kaluga: several checks for setup when iommu is not enabled<br>
      dec_net: iommu_enabled not defined when iommu not enabled<br>
      e1000: fixed case when IOMMU is not enabled<br>
      iommu_client: more checks if endpoint is invalid<br>
      e1000: devif backend handle case when there is no IOMMU endpoint<br>
      libnet: e10k fallback to non virtualized queue when init fails<br>
      driverkit: check for iommu in skb when iommu client not initialized<br>
      e10k: check if VT-d is enabled when VF is requested<br>
      iommu_client: fixed bug when client is not initalized<br>
      e10k: fixed VF case when IOMMU EP is not valid<br>
      e10k: devif backend fixed handing over caps in non VF case<br>
      e10k: fixed non VF case memory allocation for rings/tx hwb and some cleanup<br>
      pci: added notification when SR-IOV init is skipped when iommu not enabled<br>
      iommu client: fixed return value of iommu_present function<br>
      dec_net: removed dynamic definition iommu_enabled<br>
      e10k: removed old code that gained resources not from PCI<br>
      e10k: correctly compute VF number to queue number<br>
      e10k: cleanup of local and remote RPC for requesting a VF<br>
      iommu client: fixed mmap when client struct is NULL<br>
      iommu_client: mmap returing wrong cap<br>
      e10k: removing helper function (e10k_helper.c) since iommu_mmap now does the same<br>
      e10k: net_filter interface adding non rpc message passing functions<br>
      e10k: create net_filter ep on driver side<br>
      e10k: devif backend get net filter ep<br>
      e10k: removed unneeded debugging statement<br>
      e10k: txhwb seems to behave weird sometimes, disable it for now<br>
      e10k: correctly checking when setting up devq with endpoint<br>
      libnet: using EP to set up networking queues net filter connection<br>
      solarflare: changed to new driverkit interface<br>
      libnet: net_queue correctly return error for sfn5122f queue<br>
      skb: define facts as dynamic if they might never be in the database but are queried<br>
      solarflare: setup filter ep on driver and devif backend<br>
      libnet: setting uf netfilter interface for sfn5122f<br>
      UDP queue: fixed setting up queue using endpoints<br>
      queue_service: rough skeleton for serivce<br>
      queue_service: adding coreid to requests<br>
      mem_serv: disable OSDI hack for now<br>
      e1000: make irq test compile again<br>
      skb: adding module parameter to irq test device database<br>
      devif_test: fix compilation<br>
      xeon phi: compile module only on x86<br>
      driverkit: split library into two parts: generic and iommu part<br>
      armv7: make armv7 compile again on VF branch<br>
      xeon phi: check if iommu endpoint is valid<br>
      omap44xx: change init of drivers to new function signature<br>
      schedsim: fixed compilation<br>
      skb: reduce stack size to be able to run in QEMU<br>
      iommu client: add missing dependencies for xeon phi<br>
      e10k: create correct net_filter interface endpoint (LMP/UMP)<br>
      xeon phi: fixing some bugs when running withouth HW model<br>
      vmkit: fixing test<br>
      iommu client: remove unsued values<br>
      skb: disable printing out benchmark values for certain queries.<br>
      libbarrelfish: vnode_create fixed for ARMv7 (reverted back)<br>
      kaluga: do not query decoding net when loading it failed<br>
      multihop test: cap destroy let's the code get stuck<br>
      iommu: further check when DMAR failed to read<br>
      acpi: fixed compilation<br>
      kaluga: fixed compilation with debug flags<br>
      acpi: revert previous change to handling parsing DMAR failure<br>
      queue_service: adding client library<br>
      queue_service: adding way to get an ep from the queue service itself<br>
      queue_service: adding libary dependecny to libnet and kaluga<br>
      xeonphi: small fixes<br>
      driverkit: fixed bug in ddomain service<br>
      pci: set bios bridge program as default<br>
      pci: handle decoding net loading failure more gracefully<br>
      kaluga: new style driver arguments remove redundancy<br>
      pci: fixed small compilation error<br>
      xeonphi: smpt correct phys address for cases with/withouth IOMMU<br>
      driverkit: small fix in ddomain service<br>
      xeon phi: correctly polling different xeon phis<br>
      xeon phi: move HW MODEL flag to public header as DMA library also needs it<br>
      lib dma: fixed xeon phi case when not using HW model<br>
      xeonphi: fixed case with multiple xeon phi cards<br>
      kaluga: queue servicei init implemented<br>
      queue_service: fixed typo in name of function<br>
      kaluga: implemented adding EPs to queue service<br>
      descq: implemented descq setup using endpoint cap<br>
      descq: removed unneeded argument for queue creation<br>
      descq: creating endpoint from exporting end<br>
      kaluga: added missing dependencies non X86 builds<br>
      descq: fixed wrong ordered arguments<br>
      driverkit: disable HW model debug output<br>
      harness: devif test IDC removed some uneeded modules<br>
      devif_test: extended to test setting up descq using endpoint<br>
      devif_test: added flounder interface for devif_test<br>
      kaluga: better startup synchronization with acpi/pci<br>
      devif_test: adding test if to Hakefile<br>
      e10k: fixed state allocation of net_filter connection withouth ep<br>
      multihop: fixed test<br>
      devif: e10k backendcorrectly handle create without EP<br>
      e10k: add debuging header file to e10k_phy.c<br>
      harness: multihop test update processing function<br>
      netsocket: init from endpoint<br>
      net_queue: removed unnecessary printf<br>
      net_sockets: move defines to seperate header file<br>
      net_sockets: implemented library of net_sockets server<br>
      e1000: correct chack for setup with endpoint<br>
      e1000: also setup RPC tables<br>
      kaluga: start net_socket_server as driver module<br>
      e1000: remove unused dependecies<br>
      driverkit: ddomain service/client correctly send/receive argument strings<br>
      queue_service: fixed small bug in client.<br>
      net_socket_server: add normal vtbl so that calls don't run into NULL function pointer<br>
      iommu: added missing dependency<br>
      net socket: default init using queue service<br>
      driverkit: correctly free cap slot when failing to get EP<br>
      net sockets: default init now uses endpoints and queue service<br>
      tftp & vfs: properly return error when init of network stack fails<br>
      queue service: client move slot alloc for ep out of function<br>
      queue service: server return NULL_CAP if lookup fails<br>
      netsocker server: remove debug_printf when requesting EP<br>
      libnet: library uses net_socket_server for default init<br>
      libnet: installing filter only works when there are HW filters<br>
      tftp: fixed compilation error<br>
      devif: removing pci dependency from network card backends<br>
      queue_service: fixed name comparison<br>
      net: fixed default init case using net_socket_server<br>
      net sockets: fixed comparing names<br>
      xeon phi: init networking in driver domain to avoid redundancy<br>
      net sockets: prevent double initialization<br>
      webserver: using networking_init instead of net_sockets_init<br>
      flounder: generate endpoint type header file<br>
      LMP: added iftype to endpoint caps<br>
      flounder: fixed bug in endpoint type header file generation<br>
      flounder: creating LMP endpoints with iftype<br>
      flounder: if type header generation bugfix<br>
      lmp: comment out debug_printf<br>
      kernel: add invocation to set iftype of endpoint (for x86_64)<br>
      LMP: change to invocation to setting endpoint iftype<br>
      kernel: adding invoke_endpoint syscalls to armv7 + armv8<br>
      flounder: generate endpoint type header for multiple architectures<br>
      tommath: fixed harness tess getting confisued about finish string<br>
      UMP: added endpoint creation with iftype<br>
      flounder: UMP endpoint creation now also sets flounder iftype<br>
      LMP: endpoint identify working for both ARMv7 and X86_64<br>
      ARMv7: syscall endpoint invoke fixed<br>
      devif: extended udp queue test to also measure time taken for enq/deq of NIC queue<br>
      libnet: net queue add some benchmarking code<br>
      e10k: added benchmarking queue more detailed<br>
      solarflare: more detailed benchmarking for the queue<br>
      devq: renamed benchmarking define<br>
      devif: udp queue test enable benchmarking by default<br>
      e10k: added missing memory barrier after writing descriptor<br>
      devif: ip queue header benchmark flag fixed<br>
      Devq: small optimizations of slow path.<br>
      Devq: added some benchmarks/tests<br>
      Merge branch 'virtualfunction'<br>
      Devq: fixed idc test<br>
      Sockeye: remove dependency to Text.Pretty.Simp<br>
      e10k: enabled dca by default<br>
      libnet: adding iftype lookup to net_queue<br>
      e10k: enable some features (DCA, TX HW writeback)<br>
      hpet: removed generated headers from hpet.h<br>
      nfs: increased max read size<br>
      e10k: enabling advanced descriptors again<br>
      flounder: generate if type header file correctly<br>
      flounder: types generation removed some unnecessary printfs<br>
      kaluga: corrected ifdef to right value<br>
      e1000: correct computation of RX/TX ring size<br>
      driverkit: iommu client implement disabling model<br>
      kaluga: correctly adding core id to endpoint service.<br>
      iommu: removed frame_identify which is only used for debugging<br>
      iommu: added missing newline to command line output<br>
      kaluga: adding correct core for getting driver endpoints<br>
      kaluga: removing debug define from in start_hpet.c<br>
      e1000: more useful debug output for tx/rx ring memory<br>
      skb: setting core hint for e1000 to o<br>
      driverkit: adding flag defintion (but commented out)<br>
      driverkit: iommu client small fix when model is disabled<br>
      iommu: removed a cache invalidate that makes problems on vacherin<br>
      libnet: fix empty string test<br>
      net_socket_server: fixing part so that mlx4 works again<br>
      kaluga: fixing mlx4 driver starting<br>
      imx8: skeletton for enet driver<br>
      imx8x: kaluga starting enet driver<br>
      imx8: adding part of NIC dev file<br>
      imx8x: NIC up to init of multicast filter<br>
      imx8x: enet adding more registers<br>
      imx8x: enet driver adding queue skeletton + rest of init<br>
      imx8x: enet driver add descriptor status constants<br>
      imx8x: enet first attempt at receiving a packet<br>
      enet: adding MDIO protocol methods<br>
      enet: some cleanup. PHY seems to work including autonegotiation<br>
      enet: some more fixes. RX queue no longer shuts down but still does not receive packets.<br>
      enet: implmented TX functions. Card resets bits but does not send yet<br>
      enet: small fix that finally fixed send/recv<br>
      enet: fix wrap around of recv queue<br>
      enet: split queue code into library<br>
      enet: some cleanup<br>
      enet: add toggle for debug output<br>
      imx8: skeletton for enet driver<br>
      imx8x: kaluga starting enet driver<br>
      imx8: adding part of NIC dev file<br>
      imx8x: NIC up to init of multicast filter<br>
      imx8x: enet adding more registers<br>
      imx8x: enet driver adding queue skeletton + rest of init<br>
      imx8x: enet driver add descriptor status constants<br>
      imx8x: enet first attempt at receiving a packet<br>
      enet: adding MDIO protocol methods<br>
      enet: some cleanup. PHY seems to work including autonegotiation<br>
      enet: some more fixes. RX queue no longer shuts down but still does not receive packets.<br>
      enet: implmented TX functions. Card resets bits but does not send yet<br>
      enet: small fix that finally fixed send/recv<br>
      enet: fix wrap around of recv queue<br>
      enet: split queue code into library<br>
      enet: some cleanup<br>
      enet: add toggle for debug output<br>
      Merge branch 'master' of gitlab.inf.ethz.ch:haeckir/barrelfish-internal-master<br>
<br>
Simon Gerber (427):<br>
      x86: add compiler memory barrier to rdtsc inline assembly<br>
      examples: Updated README.txt to reflect changes to platforms/Hakefile<br>
      kernel: caps_retype: check offset into source based on requested destination cap<br>
      bfscope_nfs: properly signal dump_done when not dumping anything<br>
      kernel,x86_64: print rsp,rbp when taking kernel fault<br>
      monitor: comment out printfs in bfscope code<br>
      fix harness reprocess and fix armv7 build<br>
      bfscope: Explicitly add monitor flounder interface<br>
      omap44xx,usb: add host of missing mackerel files to hakefile<br>
      tools/arm_boot: make compile with usual set of compiler warnings + -Werror<br>
      libbarrelfish: pmap: add function to calculate memory and cap slot usage of pmap<br>
      libbarrelfish: pmap: add function to calculate memory and cap slot usage of pmap<br>
      libbarrelfish: pmap: count slots for frames backing slab allocator in stats<br>
      libbarrelfish: pmap: count slots for frames backing slab allocator in stats<br>
      pmap: x86_64: add trace points for key functions<br>
      pmap: x86_64: add trace points for key functions<br>
      fish: Add builtin for pmap resource measurement of fish<br>
      fish: Add builtin for pmap resource measurement of fish<br>
      posixcompat: add errno-like construction to propagate barrelfish errors through POSIX layer<br>
      posixcompat: add errno-like construction to propagate barrelfish errors through POSIX layer<br>
      posixcompat: Implement mprotect()<br>
      posixcompat: Implement mprotect()<br>
      libc/sys: implement mmap() for anonymous mappings and implement munmap().<br>
      libc/sys: implement mmap() for anonymous mappings and implement munmap().<br>
      tracing: add extra error for coreid out of range for tracing<br>
      tracing: add extra error for coreid out of range for tracing<br>
      fugu: implement err_pop(), to pop errcode_t off errval_t stack.<br>
      fugu: implement err_pop(), to pop errcode_t off errval_t stack.<br>
      libbarrelfish: pinned: count slab refills<br>
      libbarrelfish: pinned: count slab refills<br>
      kernel: x86_64: remove LOG_INFO level output when trying to map over existing entry<br>
      kernel: x86_64: remove LOG_INFO level output when trying to map over existing entry<br>
      distops benchmark framework, and initial bits of delete benchmark<br>
      distops benchmark framework, and initial bits of delete benchmark<br>
      Implement get_mdb_size() debug syscall<br>
      Implement get_mdb_size() debug syscall<br>
      More distops benchmarking<br>
      More distops benchmarking<br>
      distops_bench: Add delete last w/ remote copies benchmark<br>
      distops_bench: Add delete last w/ remote copies benchmark<br>
      fixup implement get_mdb_size(): kernel: add debug_get_mdb_size() in sys_debug.h<br>
      fixup implement get_mdb_size(): kernel: add debug_get_mdb_size() in sys_debug.h<br>
      bench_distops: add revoke() without remote copies benchmark<br>
      bench_distops: add revoke() without remote copies benchmark<br>
      kernel: capabilities: remove printk() on is_retypeable failure<br>
      kernel: capabilities: remove printk() on is_retypeable failure<br>
      distops_bench: revoke with remote copies<br>
      distops_bench: revoke with remote copies<br>
      distops_bench: add benchmark for revoking a remote copy<br>
      distops_bench: add benchmark for revoking a remote copy<br>
      bench_distops: add flounder interface definition<br>
      bench_distops: add flounder interface definition<br>
      bench_distops: add local retype benchmarks<br>
      bench_distops: add local retype benchmarks<br>
      distops_bench: add retype with remote non-overlapping descendants<br>
      distops_bench: add retype with remote non-overlapping descendants<br>
      kernel: caps_mark_revoke: correctly handle case where there are only descendants on a core<br>
      kernel: caps_mark_revoke: correctly handle case where there are only descendants on a core<br>
      kernel: caps_mark_revoke: we never have to go backwards when marking descendants<br>
      kernel: caps_mark_revoke: we never have to go backwards when marking descendants<br>
      distops_bench: delete cnode with contents but contents have no remote relations<br>
      distops_bench: delete cnode with contents but contents have no remote relations<br>
      monitor: capops: delete: do not use state after freeing it<br>
      monitor: capops: delete: do not use state after freeing it<br>
      distops_bench: fix #ifdef for warning about missing NDEBUG preprocessor flag<br>
      distops_bench: fix #ifdef for warning about missing NDEBUG preprocessor flag<br>
      distops_bench: add second variation of delete cnode benchmark<br>
      distops_bench: add second variation of delete cnode benchmark<br>
      distops_bench: change delete foreign copy to use power of two increments<br>
      distops_bench: change delete foreign copy to use power of two increments<br>
      distops_bench: harness: add test framework and test case for delete foreign copy<br>
      distops_bench: harness: add test framework and test case for delete foreign copy<br>
      kernel,libbf: implement noop invocation on Objtype_RAM<br>
      kernel,libbf: implement noop invocation on Objtype_RAM<br>
      distops_bench: add noop invocation benchmark<br>
      distops_bench: add noop invocation benchmark<br>
      harness: distops_bench: also dump processed data in files<br>
      harness: distops_bench: also dump processed data in files<br>
      distops_bench: harmonize towards factors of two mdb sizes<br>
      distops_bench: harmonize towards factors of two mdb sizes<br>
      distops_bench: harness: add test cases for all the distops benchmarks<br>
      distops_bench: harness: add test cases for all the distops benchmarks<br>
      harness: distopsbench: limit y axis for delete last copy with remotes and fix timeout for cnode vary<br>
      harness: distopsbench: limit y axis for delete last copy with remotes and fix timeout for cnode vary<br>
      harness: distops_bench: cleanup plotting code to handle arbitrary node ids and deduplicate test classes<br>
      harness: distops_bench: cleanup plotting code to handle arbitrary node ids and deduplicate test classes<br>
      distops_bench: unify on 256-65536 cap copies, update file descriptions<br>
      distops_bench: unify on 256-65536 cap copies, update file descriptions<br>
      distops_bench: revoke_no_remote flaky, not sure why<br>
      distops_bench: revoke_no_remote flaky, not sure why<br>
      distops_bench: Implement single-core variant of revoke_no_remote<br>
      distops_bench: Implement single-core variant of revoke_no_remote<br>
      distops_bench: add runner for single-core benchmarks to allow them to be run sequentially on a number of cores<br>
      distops_bench: add runner for single-core benchmarks to allow them to be run sequentially on a number of cores<br>
      distops_benchmark: update harness revoke_no_remote test to use standalone version<br>
      distops_benchmark: update harness revoke_no_remote test to use standalone version<br>
      distops_bench: delete cnode with occupied slots: fix #slots occupied in code and update ylim for boxplot<br>
      distops_bench: delete cnode with occupied slots: fix #slots occupied in code and update ylim for boxplot<br>
      distops_bench: correctly label x-axis for delete cnode<br>
      distops_bench: correctly label x-axis for delete cnode<br>
      platforms/Hakefile: add e1000_net_sockets_server<br>
      platforms/Hakefile: add e1000_net_sockets_server<br>
      monitor: capops: add TRACE-points in delete<br>
      monitor: capops: add TRACE-points in delete<br>
      monitor: hardcode trace_control() stuff<br>
      monitor: hardcode trace_control() stuff<br>
      hake: Add opt-in list for libraries in addLibraries that need add extra include directories<br>
      hake: Add opt-in list for libraries in addLibraries that need add extra include directories<br>
      distops_bench: main: comment out spammy printf in unicast_cmd()<br>
      distops_bench: main: comment out spammy printf in unicast_cmd()<br>
      distops_bench: hardcoded changes to delete_last_remote for tracing run<br>
      distops_bench: hardcoded changes to delete_last_remote for tracing run<br>
      Revert "monitor: hardcode trace_control() stuff"<br>
      Revert "monitor: hardcode trace_control() stuff"<br>
      pyaquarium: initial check-in; demo.py is currently parsing subsys_capops traces<br>
      pyaquarium: initial check-in; demo.py is currently parsing subsys_capops traces<br>
      monitor: tracing: add more info to trace points<br>
      monitor: tracing: add more info to trace points<br>
      pyaquarium: more work on processing capops_delete traces<br>
      pyaquarium: more work on processing capops_delete traces<br>
      distops_bench: delete_last_remote: add trace points, start/stop tracing<br>
      distops_bench: delete_last_remote: add trace points, start/stop tracing<br>
      platforms/Hakefile: add section with programs from usr/examples<br>
      platforms/Hakefile: add section with programs from usr/examples<br>
      distops_bench: cleanup node naming/handling in benchmarks<br>
      distops_bench: cleanup node naming/handling in benchmarks<br>
      platforms/Hakefile: remove uncommited example programs from list<br>
      platforms/Hakefile: remove uncommited example programs from list<br>
      distops_bench: add harness case for deleting local copy<br>
      distops_bench: add harness case for deleting local copy<br>
      kernel,mdb: add trace points on caps_delete() path<br>
      kernel,mdb: add trace points on caps_delete() path<br>
      distops_bench: really fix node naming<br>
      distops_bench: really fix node naming<br>
      pyaquarium: rename demo to reflect what it does<br>
      pyaquarium: rename demo to reflect what it does<br>
      pyaquarium: do not use Min_timestamp data as it gets reset after each call to trace_dump()<br>
      pyaquarium: do not use Min_timestamp data as it gets reset after each call to trace_dump()<br>
      kernel,mdb: cleanup delete tracing<br>
      kernel,mdb: cleanup delete tracing<br>
      distops_bench: instrument delete local copy<br>
      distops_bench: instrument delete local copy<br>
      kernel: cap_delete: remove #ifdef around trace_seqnum<br>
      kernel: cap_delete: remove #ifdef around trace_seqnum<br>
      mdbbench: update for SG thesis plotting<br>
      mdbbench: update for SG thesis plotting<br>
      fix harness reprocess and fix armv7 build<br>
      fix harness reprocess and fix armv7 build<br>
      Add mdb operation counts to calculate scores for different implementations<br>
      Add mdb operation counts to calculate scores for different implementations<br>
      distops_bench: generate flounder bindings for standalone binaries<br>
      distops_bench: generate flounder bindings for standalone binaries<br>
      Update platforms/Hakefile<br>
      Update platforms/Hakefile<br>
      distops_bench: update standalone runner to use new procmgmt<br>
      distops_bench: update standalone runner to use new procmgmt<br>
      harness: make reprocess.py a bit smarter, add command line args for sourcedir, builddir and buildarch<br>
      harness: make reprocess.py a bit smarter, add command line args for sourcedir, builddir and buildarch<br>
      distops_bench: Add new harness test for generating latency breakdown data<br>
      distops_bench: Add new harness test for generating latency breakdown data<br>
      distops_bench: make tracing better integrated in C code<br>
      distops_bench: make tracing better integrated in C code<br>
      distops_bench: add TRACE-points in all benchmarks<br>
      distops_bench: add TRACE-points in all benchmarks<br>
      distops_bench: harness: add breakdown delete foreign bench<br>
      distops_bench: harness: add breakdown delete foreign bench<br>
      distops_bench: harness: remove checking by event_order list order<br>
      distops_bench: harness: remove checking by event_order list order<br>
      distops_bench: Add harness tests for trace data for delete_last{,_remote} and add extra trace points in monitor<br>
      distops_bench: Add harness tests for trace data for delete_last{,_remote} and add extra trace points in monitor<br>
      monitor: add TRACE-points to delete stepping<br>
      monitor: add TRACE-points to delete stepping<br>
      monitor: add TRACE-points to capops_revoke()<br>
      monitor: add TRACE-points to capops_revoke()<br>
      monitor: add TRACE-points to capops_retype()<br>
      monitor: add TRACE-points to capops_retype()<br>
      distops_bench: revoke: use USER_REVOKE_{CALL,RESP} around calls to cap_revoke()<br>
      distops_bench: revoke: use USER_REVOKE_{CALL,RESP} around calls to cap_revoke()<br>
      distops_bench: revoke: use USER_RETYPE_{CALL,RESP} around calls to cap_retype()<br>
      distops_bench: revoke: use USER_RETYPE_{CALL,RESP} around calls to cap_retype()<br>
      monitor: add extra trace points between revoke phases<br>
      monitor: add extra trace points between revoke phases<br>
      harness: cleanup distops trace parsing and add test class for revoke_no_remote<br>
      harness: cleanup distops trace parsing and add test class for revoke_no_remote<br>
      kernel,retype: add TRACE-points<br>
      kernel,retype: add TRACE-points<br>
      distops_bench,harness: Improve breakdown tests<br>
      distops_bench,harness: Improve breakdown tests<br>
      monitor,capops: improve revoke + retype TRACE-points<br>
      monitor,capops: improve revoke + retype TRACE-points<br>
      libbf,retype: add TRACE-points around actual monitor RPC<br>
      libbf,retype: add TRACE-points around actual monitor RPC<br>
      monitor,capops: guard root cnode copy deletions in retype to make sure we never try to delete the same capref twice<br>
      monitor,capops: guard root cnode copy deletions in retype to make sure we never try to delete the same capref twice<br>
      capops: retype: if src and dest root cnode are identical only send one copy to monitor<br>
      capops: retype: if src and dest root cnode are identical only send one copy to monitor<br>
      libbarrelfish: add explicit TRACE-points around capop RPCs<br>
      libbarrelfish: add explicit TRACE-points around capop RPCs<br>
      distops_bench: add TRACE-points + harness test for delete_cnode<br>
      distops_bench: add TRACE-points + harness test for delete_cnode<br>
      distops_bench: fix wrong #ifdef in tracing init<br>
      distops_bench: fix wrong #ifdef in tracing init<br>
      distops_bench: fix and simplify distops benchmarking, produce row results for later plotting<br>
      distops_bench: fix and simplify distops benchmarking, produce row results for later plotting<br>
      distops_bench: wrap trace_flush to make it no-op when compiled without tracing support<br>
      distops_bench: wrap trace_flush to make it no-op when compiled without tracing support<br>
      distops_bench: fix delete cnode vary slots<br>
      distops_bench: fix delete cnode vary slots<br>
      Add comment in move_request__rx_handler()<br>
      Add comment in move_request__rx_handler()<br>
      kernel: print rw, dirty and accessed bits when dumping page tables.<br>
      T73: make Appel benchmark use new modify_flags.<br>
      T73: Added option to use direct invocations in Appel benchmark.<br>
      T73: Add more Hake targets for Appel benchmark and change #rounds to 1000.<br>
      T77: Implement selective TLB flushing hint for modify_flags.<br>
      Reintroduce computed selective flush in modify flags<br>
      T80: implement "append-only" memobj and use for sbrk().<br>
      T80: add asserts in pmap modify_flags().<br>
      T80: Implement protect on arbtrary ranges.<br>
      x86_64: T80: implement array-backed pmap.<br>
      Add protect pagefaults test<br>
      T80: x86_64: make pmap region bigger.<br>
      Add pmap datastructure define in hake.<br>
      fix arrakis vmx merge errors and add missing file.<br>
      Minor fixes.<br>
      T81: nested paging test program skeleton (copied from hellotest).<br>
      T81: Fix copyright notice in nested_paging_test.<br>
      T81: implement simple test that maps a 1G page without kernel interaction.<br>
      libbarrelfish,pmap: default to selective assisted flushing when debug global enabled<br>
      T81: factored out nested paging management code.<br>
      T82: checkpoint. Guest domain up. Need to implement hypervisor service.<br>
      T82: implement dynamic EPT mapping.<br>
      arrakis: convert EPT mapping code to use new vnode & mapping API<br>
      T82: 1G ept.<br>
      T82: make EPT translations cacheable + do not reload EPTP when it is unchanged.<br>
      T82: small improvements; do not needlessly context switch in cpu driver; pre-set a/d flags in ept.<br>
      Appel-Li benchmark: update code to match new system implementation.<br>
      T82: fix unintended code duplication and messed-up ifdefs in arrakismon.<br>
      libbarrelfish, pmap: update create_pts_pinned() to new mapping capabilities API<br>
      libbarrelfish,memobj_append: update to frame id with bytes<br>
      libbarrelfish,pmap: deduplicate has_vnodes() for linked list and array pmap implementations<br>
      fixup checkpoint commit<br>
      libbarrelfish,x86,pmap: move static initial slab buffer out of struct pmap_x86.<br>
      Merge distops benchmarking into memory system branch<br>
      Merge memory paper code into memory system branch<br>
      Refactor cowbench<br>
      T166: initial skeletons for pmap-based copy-on-write<br>
      T166: implement lazy-cow init<br>
      T166: implement sketch of exception handler<br>
      T166: add naive measurements for pmap-based cow_init<br>
      T166: cowbench: Add user_panic for release mode; measure init+setup individually<br>
      T166: fix cowbench to work with array-based pmap<br>
      T166: refactor code into clone_vnode (user-space part)<br>
      checkpoint cow_get_ptable<br>
      T166: implement cloning of pte pages using spacejmp vnode_inherit<br>
      T167: implement simple microbenchmark that writes 10% of region uniformly at random.<br>
      Add cowbench to platforms/Hakefile<br>
      T167: improvements to copy-on-write benchmark.<br>
      Merge copy-on-write benchmark into memory system branch.<br>
      libbarrelfish: threads: add thread_exited() query<br>
      T168: modify system to be more/less verbose about pagefaults.<br>
      disable printk for dropped ram caps<br>
      Fix VA layout so that thread slabs are <4GB<br>
      libbarrelfish: x86_64: pmap: Fix slab refilling using fixed allocator<br>
      posixcompat: vfs_fd: fix debug printf formats<br>
      kernel: fix remaining merge errors in vspace management code<br>
      kernel: add debug printf in vnode_inherit handler<br>
      libbarrelfish: correctly initialize all shadow page tables to be marked not cloned<br>
      cowbench: update to new vspace and capability APIs<br>
      libbf,redis: make pmap->refill_slabs take a number of slabs to allocate<br>
      kernel: update copy_remap invocation implementation to use mapping caps<br>
      kernel: paging_copy_remap: add offset to dest addr for memcpy<br>
      pmap_array: have separate slab allocator for child arrays<br>
      pmap_array: update child array slab refilling<br>
      pmap_cow: properly handle page cloning<br>
      kernel,x86_64: Add assertion about mapping cap type<br>
      kernel,x86_64: allow dump of page tables around provided virtual address<br>
      pmap: set next pointer in vnode to null when using PMAP_ARRAY<br>
      libbarrelfish,threads: print core and thread id when exception undeliverable<br>
      libbarrelfish: slab_alloc(): zero slab that we're returning to caller<br>
      libbarrelfish: slot allocators: allocate more metadata space for allocators<br>
      fixup ->next zeroing<br>
      libbarrelfish: cnode_create_l2: add DEBUG_ERR on slot_alloc_root() error<br>
      libbarrelfish: dispatch: gracefully handle NULL pointers in assert_print<br>
      libbarrelfish: dispatch: print coreid when warning about unhandled page faults<br>
      libbarrelfish: debug: print error code when debug_cap_identify() fails<br>
      libbarrelfish,x86_64,pmap: add commented out debug prints in refill_slabs()<br>
      Use new frame identity format in ram_alloc for arrakis<br>
      tracing: trace_reset_buffer: fail when trace_buffer_va == NULL.<br>
      libbarrelfish: fix old-style capaddrs in invocation wrappers<br>
      kernel: fix sys_copy_remap() declaration<br>
      x86_64: libbarrelfish: pmap: create_pts_pinned: change vnode slab refilling to new API<br>
      libbarrelfish,pmap: improve slab refilling code<br>
      libbarrelfish: pmap: move initial slab buffers back into struct pmap_x86.<br>
      T384: x86_64: change shadow page tables to have dedicated cnodes for mapping caps<br>
      T383: add test which checks that vnode_inherit cannot create ptes which survive cap_delete() on mapped cap<br>
      init: add check in mymm_alloc() to catch recursive calls<br>
      T383: Add comment about needing to create mapping caps in vnode_inherit invocation handler<br>
      T383: vnode_inherit: create mapping caps for cloned ptes<br>
      kernel,paging_generic: clean up create_mapping_cap()<br>
      monitor: capops: initialize delete stepping in BSP monitor before going into event loop<br>
      libbbarrelfish: x86: pmap: remove_empty_vnodes: remove slot_free() on mapping slots<br>
      libbarrelfish: x86: pmap: serialise/deserialise: handle mapping caps.<br>
      libbarrelfish: slab_grow: add informative output when called with very small buffer.<br>
      libbarrelfish: pmap: x86: refill ptslabs when deserializing, if PMAP_ARRAY is enabled.<br>
      libbarrelfish: pmap: x86_64: adjust slabs required formulas<br>
      libbarrelfish: x86_64: pmap: instrumentation to debug corner cases in slab refilling<br>
      libbarrelfish: pmap: x86_64: add debug flag to enable slab refill debugging on per-application basis<br>
      kernel: paging_generic: page_mappings_unmap: print debug info when compile_vaddr() returns unexpected error<br>
      Cleanup code + fix appel li for current BF<br>
      harness: add appel li test cases<br>
      kernel: x86_64: fix offset calculation in page_mappings_modify_flags<br>
      kernel: x86_64: print raw values of large and huge page ptes<br>
      kernel,libbarrelfish: implement general purpose direct cap_identify<br>
      harness: appel-li: run tests on core 4 if possible, machine.ncores() - 1 otherwise<br>
      x86_64: make sure the Barrelfish-internal CACHE_LINE_SIZE definition does not clash with the one in machine/param.h<br>
      kernel,x86_64: mask write flag on page table when it is mapped as data page<br>
      libbarrelfish,x86_64,pmap: add facility for applications to get array of leaf shadow page tables.<br>
      Merge upstream (including changes for ubuntu 18.04) into memory system branch<br>
      libbarrelfish,debug: properly print x86_64 EPT mapping caps<br>
      posixcompat: sbrk: add comment about using a memobj_append.<br>
      kernel,x86_64: vnode_inherit: fix call to create_mapping_cap<br>
      libbarrelfish: libarrakis: link against cap_predicates<br>
      T167: add preprocessor error if cowbench compiled with PMAP_LL.<br>
      capabilities: fix static asserts after merge<br>
      update cow pf handlers to new function signature<br>
      harness: distops tests: make distops tests prefix-distinguishable from distops bench<br>
      harness: distops_bench: make matplotlib dependency optional<br>
      harness: distopsbreakdown: remove errant print of options.<br>
      harness: compiler-rt: refactor test builder to make tests with <=25 test cases each.<br>
      libbarrelfish: heap: explicitly store and propagate heap pagesize instead of relying on heap alignment to infer pagesize<br>
      hake: Main.hs: properly concatenate paths in makeFlounderTypesArch.<br>
      armv7: make compile<br>
      libbarrelfish: armv7: pmap: use explicit mapping cnodes for non-root vnode mappings<br>
      libbarrelfish: x86_64: cleanup commented-out cnode allocation for mapping cnodes<br>
      armv8: make compile<br>
      libbarrelfish: armv8: pmap: implement alignment in determine_addr<br>
      libbarrelfish: pmap: prepare for deduplicating shadow page table walking<br>
      libbarrelfish: armv8: pmap: switch to fixed mapping cnodes.<br>
      libbarrelfish: armv8: pmap: add comment about PTABLE_SIZE semantic difference to x86_64.<br>
      platform definitions: make PTABLE_ENTRIES an arch-independent alias for #entries in a pagetable (for x86_64 and aarch64).<br>
      libbarrelfish: pmap: factor out shadow page traversal for x86_64 and armv8<br>
      x86_64,armv8: fix unified pmap walking and pmap_array implementation for aarch64.<br>
      x86_64: fix clashing #defines for X86_64_PTABLE_ENTRIES<br>
      libbarrelfish: pmap: factor out slab refilling from x86_64 and aarch64<br>
      libbarrelfish: control pmap datastructure header through Hakefile<br>
      libbarrelfish: pmap: define pmap_foreach_child.<br>
      libbarrelfish: pmap: Move set_mapping_cap() to pmap_priv.h and use in x86_64.<br>
      libbarrelfish: Delete pmap datastructure public headers, they got moved to lib/barrelfish/include.<br>
      libbarrelfish: unified pmap: do not include unified pmap code in armv7 builds.<br>
      libbarrelfish: unified pmap: refactor slab refilling.<br>
      libbf: use cap_direct_identify for frame_identify and co and replace calls to debug_cap_identify where appropriate<br>
      kernel,armv8: move offsets constants to target/armv8/offsets_target.h<br>
      harness: distops: rename tests back to old scheme and rename benchmarks to bench_distops_*<br>
      libbarrelfish: unified pmap: define pmap_ds_child_t type to remove more #ifdefs<br>
      libbarrelfish, cowbench: move pmap_vnode_mgmt definition into public header<br>
      libarrakis: fix Hakefile to include pmap_ds sources<br>
      kernel: implement access_ok() to check user pointer validity<br>
      libbarrelfish: pmap_array: pmap_vnode_insert_child: store child for each entry it covers.<br>
      libbarrelfish: pmap: do_single_map: only insert child after new vnode fully initialized<br>
      barrelfish: x86: pmap: refactor struct vnode.<br>
      x86: adapt applications to use new struct vnode layout<br>
      libbarrelfish: armv8: pmap: update for new struct vnode layout<br>
      x86_64: fix tests/pagetable to use new struct vnode layout<br>
      libbarrelfish: pmap-ll: fix pmap_foreach_child() macro<br>
      libbarrelfish: move (de-)serialisation out of x86 specific code. Use in aarch64 also.<br>
      harness: rename distops breakdown benchmarks to bench_distops_breakdown_*.<br>
      libbarrelfish: Hakefile: libarrakis: build pmap_serialise.c<br>
      hake: Fix include directories for ARMv8 kernel linker script<br>
      release builds: fix compiler errors on armv8<br>
      libbarrelfish: pmap slab mgmt:  move initial regions for slab allocators into core state.<br>
      k1om: add missing libbarrelfish Hakefile stuff and missing #define<br>
      libbarrelfish: pmap datastructures: hard-select linked-list pmap for armv7<br>
      cowbench: use new pmap vnode mgmt data layout<br>
      kernel,monitor: implement reclaiming of previously dropped ram caps.<br>
      Comment about uartX.out_file for armv7 FVP.<br>
      harness: interactive tests: give console a couple seconds after starting so we avoid test-relevant output being garbled<br>
      libbarrelfish: early cn allocator: move state to ram_alloc_state<br>
      kernel: x86_64: vmkit: handle_dispatcher_setup_guest: save guest root pt address in dcb->vspace and dcb->guest_desc.vspace.<br>
      libbarrelfish: hide mapping cnodes behind #define<br>
      libbarrelfish: actually free mapping cap slots when not using mapping cnodes<br>
      harness: mark tests as finished on kernel panics<br>
      monitor: RAM reclamation: enqueue first sweep with 10ms delay (down from 1s).<br>
      pci: add missing newline in debug output<br>
      kernel: caps_reclaim_ram: zero reclaimed ram slot in KCB.<br>
      kernel: cap_delete: clean up delete list handling.<br>
      libbarrelfish: pmap_array: pmap_refill_slabs: refill vnode slabs again after refilling ptslabs<br>
      harness,tests: add malloc() test with different buffer sizes<br>
      libbarrelfish: pmap serialisation: global mapping cnodes: allocate mapping cnodes in deserialise()  when GLOBAL_MCN is set<br>
      Early cnode allocation: only provide 64 16kB RAM caps per domain for early cnode allocator<br>
      monitor: armv8: add missing DEBUG_INVOCATION statement in invoke_monitor_is_retypeable<br>
      boot: armv8: reduce ARMV8_CORE_DATA_PAGES to 1100 (from 1500).<br>
      kernel: armv8: add missing invocation handler for KernelCmd_Is_retypeable<br>
      tests: distops_delete: use arch-independent invocation to test presence of cap<br>
      kernel: armv7: paging_is_region_valid: add parentheses around bitwise ops for readability<br>
      kernel: access_ok: properly check that buffer is in user space<br>
      libbarrelfish: Refactor Hakefile to allow building multiple versions of libbf with different #defines<br>
      hake: Add new options parameter libraryOs which allows applications to select which libOs to link against<br>
      memtest: add new application build which links against barrelfish_mcn instead of barrelfish<br>
      libbarrelfish: Hakefile: aarch64: move assembly source to arch_assembly<br>
      libbarrelfish: Hakefile: fully unify build commands.<br>
      hake: Use Args.addCFlags and Args.libraryOs to implement arrakisapplication<br>
      libbarrelfish: Hakefile: rewrite to use Args subtype<br>
      libbarrelfish: endpoints: refactor to make EP management invocations unnecessary.<br>
      Remove invoke_frame_identify, replaced with frame_identify().<br>
      libbarrelfish: implement vnode_identify using cap_identify<br>
      libbarrelfish: reimplement deviceid_identify using cap_identify.<br>
      kernel: only allow sys_identify_cap() when target is L1 CNode<br>
      libbarrelfish: Add comment why we still need KCB identify<br>
      kernel,libbarrelfish: Remove Frame identify and Vnode identify invocation handlers and commands<br>
      hake: cxx: Add libraryOs lib to optCxxLibs<br>
      hake: Rewrite libraryOs selection to be more robust.<br>
      harness: add memtest variants which link against all available library os implementations.<br>
      hake: add Args.addCFlags of libraryOs to extraCxxFlags<br>
      libbarrelfish: only include hyper interface if building libarrakis<br>
      libmdb: remove unnecessary library dependency on libbarrelfish<br>
      asmoffsets: add #define PMAP_ARRAY to avoid error.<br>
      hamlet: user_cap_predicates.c: only include static_assert.h and barrelfish_kpi/capabilities.h instead of barrelfish/barrelfish.h<br>
      libbarrelfish: pmap_ll: remove debug printf which uses too many __builtin_return_address() for armv8<br>
      acpi, kaluga: Add missing newlines in debug printfs<br>
      hake: libraryOs flag: use Config.<libraryOsConfig> when building the library OS itself instead of repeating the flags in the Hakefile<br>
      hake,libbarrelfish: simplify libraryOs definition<br>
      docs: hake: Update technote to briefly describe library OS selection<br>
      Merge branch 'memory_system'<br>
      libmultiboot: remove unused variable "buf"<br>
      libbarrelfish: heap: correctly determine number of page to allocate in internal morecore<br>
      dispatcher: remove DISPATCHER_FRAME_BITS, and redefine DISPATCHER_FRAME_SIZE as 512kB.<br>
<br>
Stefan Kaestle (2):<br>
      GUPS: make GUPS run within DUNE<br>
      gups: modified benchmark to use 2M pages<br>
<br>
Timothy Roscoe (2):<br>
      Added documentation for ARMv8 booting<br>
      Added boot target and qemu support for U-Boot on ARMv8<br>
<br>
-- <br>
Lukas Humbel<br>
<br>
<br>
_______________________________________________<br>
Barrelfish-users mailing list<br>
<a href="mailto:Barrelfish-users@lists.inf.ethz.ch" target="_blank">Barrelfish-users@lists.inf.ethz.ch</a><br>
<a href="https://lists.inf.ethz.ch/mailman/listinfo/barrelfish-users" rel="noreferrer" target="_blank">https://lists.inf.ethz.ch/mailman/listinfo/barrelfish-users</a><br>
</blockquote></div>