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