usb manager: converted spawn_program call to new cap based interface
[barrelfish] / README_ARRAKIS
1 ##########################################################################
2 Copyright (c) 2013-2014, University of Washington.
3 All rights reserved.
4
5 This file is distributed under the terms in the attached LICENSE file.
6 If you do not find this file, copies can be found by writing to:
7 ETH Zurich D-INFK, Haldeneggsteig 4, CH-8092 Zurich. Attn: Systems Group.
8 ##########################################################################
9
10 Arrakis README Supplement
11 --------------------------------
12
13 This version of Arrakis is a fork of Barrelfish release
14 2014-03-11. Arrakis contains many additions and fixes to the vanilla
15 Barrelfish 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
34 Arrakis likely also contains bugs not present in Barrelfish. In some
35 cases, there is likely to be some debug code left in this release,
36 which might impact your experience. Don't despair! Just comment out
37 suspicious-looking code and see if it makes Arrakis work for
38 you. Unfortunately, we do not have the man or machine power to test
39 Arrakis as extensively as the Barrelfish releases.
40
41 We make an effort to back-port our changes to Barrelfish periodically,
42 by which time they will have stabilized and tested on the broad range
43 of machines that Barrelfish is usually expected to run on.
44
45 .. _Arrakis: http://arrakis.cs.washington.edu/
46
47 Supported PC hardware
48 --------------------------------
49
50 Arrakis 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
59 Required Tools
60 --------------------------------
61
62 In addition to the tools required by Barrelfish, Arrakis requires the following:
63
64  * GHC Control.Parallel.Strategies library
65
66 Building
67 --------------------------------
68
69 The build process (including required tools) is unchanged from
70 Barrelfish. Please refer to the README file for instructions.
71
72 Installing and Booting
73 --------------------------------
74
75 Installation and booting is also unchanged from Barrelfish and
76 explained in the README file.
77
78 A number of commandline options to system daemons and device drivers
79 have 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.