[Barrelfish-users] New Barrelfish Release

Yuxin Ren ryx at gwmail.gwu.edu
Mon Mar 23 12:50:03 CET 2020


Hi,

The new release of the Barrelfish is amazing.
Do you have any publications or relevant papers on the user-space driver
management?

Thanks
Yuxin

On Mon, Mar 23, 2020 at 5:23 AM Lukas Humbel <lukas.humbel at inf.ethz.ch>
wrote:

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


More information about the Barrelfish-users mailing list