1##########################################################################
2Copyright (c) 2013-2014, University of Washington.
3All rights reserved.
4
5This file is distributed under the terms in the attached LICENSE file.
6If you do not find this file, copies can be found by writing to:
7ETH Zurich D-INFK, Universitaetstrasse 6, CH-8092 Zurich. Attn: Systems Group.
8##########################################################################
9
10Arrakis README Supplement
11--------------------------------
12
13This version of Arrakis is a fork of Barrelfish release
142014-03-11. Arrakis contains many additions and fixes to the vanilla
15Barrelfish tree, notably:
16
17 * Boot directly via QEMU Multiboot support, instead of GRUB
18 * Arrakis domains: These run in guest ring 0, hardware-virtualized
19 * Parallel hake
20 * SR-IOV support
21 * Fixes to PCI bus enumeration
22 * Can use BIOS preset values to configure PCI (like Linux)
23 * Driver for 82599 virtual function
24 * More POSIX support, in particular pthreads, epoll, and sockets
25 * Intel performance monitoring counters support
26 * Arranet, the Arrakis network stack
27 * Support for advanced 82599 features, like weighted round-robin
28   scheduling and rate limiting
29 * TenaciousD, a persistent data structure library
30 * libstorage, a storage HAL
31 * Intel MegaRAID device driver
32 * Intel VT-d (IOMMU) driver
33
34Arrakis likely also contains bugs not present in Barrelfish. In some
35cases, there is likely to be some debug code left in this release,
36which might impact your experience. Don't despair! Just comment out
37suspicious-looking code and see if it makes Arrakis work for
38you. Unfortunately, we do not have the man or machine power to test
39Arrakis as extensively as the Barrelfish releases.
40
41We make an effort to back-port our changes to Barrelfish periodically,
42by which time they will have stabilized and tested on the broad range
43of machines that Barrelfish is usually expected to run on.
44
45.. _Arrakis: http://arrakis.cs.washington.edu/
46
47Supported PC hardware
48--------------------------------
49
50Arrakis has been tested on the following PC hardware:
51
52 * Dell PowerEdge R520 servers in x86-64 mode. Our server consists of
53   a 6-core Intel Xeon E5-2430 (Sandy Bridge) system at 2.2 GHz clock
54   frequency with 4GB of RAM. The tested peripherals are:
55
56   - Intel X520 dual-port 10Gb Ethernet adapter
57   - Intel MegaRAID RS3DC040 RAID controller
58
59Required Tools
60--------------------------------
61
62In addition to the tools required by Barrelfish, Arrakis requires the following:
63
64 * GHC Control.Parallel.Strategies library
65
66Building
67--------------------------------
68
69The build process (including required tools) is unchanged from
70Barrelfish. Please refer to the README file for instructions.
71
72Installing and Booting
73--------------------------------
74
75Installation and booting is also unchanged from Barrelfish and
76explained in the README file.
77
78A number of commandline options to system daemons and device drivers
79have been added:
80
81 * pci now supports an "skb_bridge_program=" option, to set which SKB
82   program to use to configure PCI bridges. "bridge_bios" will use the
83   BIOS preset values and might be preferable on some systems.
84
85 * pci now supports the "numvfs=" option to set the number of virtual
86   functions to configure (for every device that supports them).
87
88 * VT-d related commandline options have been added and are explained
89   in usr/acpi/README_VTD.
90
91 * The 82599 physical function driver supports a range of options to
92   configure advanced NIC features. "tx_rate[x]=y" is used to limit
93   the transmit rate of virtual function x to y
94   Mbps. credit_refill[x]=y" is used to set the number of credits for
95   weighted round-robin scheduling of queue x to y.
96
97 * The 82599 virtual function driver accepts an option "vf=x" to
98   configure the virtual function number to use.
99