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, Haldeneggsteig 4, 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