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