8 years agoReduced the RPC timeout period release2012-01-30
pravin [Sun, 29 Jan 2012 15:08:34 +0000]
Reduced the RPC timeout period

8 years agoFixed the webserver freezing problem by using nonblocking event dispatch
pravin [Fri, 27 Jan 2012 12:37:48 +0000]
Fixed the webserver freezing problem by using nonblocking event dispatch

8 years agoFixed the problem of netd crashing when ran from different core than driver.
pravin [Fri, 27 Jan 2012 01:57:45 +0000]
Fixed the problem of netd crashing when ran from different core than driver.
The problem was non-initialized variables in contmng.c
Also, some cleanup is done in contmnt.c

8 years agofix heap memory reclamation bug which usually manifested as an apparent out-of-memory...
Andrew Baumann [Wed, 25 Jan 2012 23:26:43 +0000]
fix heap memory reclamation bug which usually manifested as an apparent out-of-memory condition in spawnd

8 years agoump: fix possible corruption/deadlock sending zero-length buffers
Andrew Baumann [Wed, 25 Jan 2012 17:30:28 +0000]
ump: fix possible corruption/deadlock sending zero-length buffers

This fixes a problem reported by Zeus Gómez Marmolejo where a
zero-length buffer was silently dropped (while reporting success) if
the send channel was full when sending the first fragment.

8 years agomultihop: correctly NUL-terminate strings on delivery
Andrew Baumann [Wed, 25 Jan 2012 00:16:49 +0000]
multihop: correctly NUL-terminate strings on delivery

it irks me a bit that this backend didn't build on the existing msgbuf code and backend :(

8 years agoharness: report exceptions to the debug log as well as in testlog.txt for the webserv...
Andrew Baumann [Tue, 24 Jan 2012 17:08:54 +0000]
harness: report exceptions to the debug log as well as in testlog.txt for the webserver tests

8 years agosimplify out-of-band cap transfer to avoid asynchronously reporting errors back to...
Andrew Baumann [Mon, 23 Jan 2012 21:32:56 +0000]
simplify out-of-band cap transfer to avoid asynchronously reporting errors back to the sender

As discussed on the mailing list (10.01.2012 "Proposed change to
out-of-band cap transfer"), this change changes the semantics so that
an error in delivery of the cap is reported to the receiver (rather
than asynchronously to the sender) along with a NULL capref. This
simplifies the implementation within the monitor, and results in saner
error handling on both sides.

8 years agomerge
Andrew Baumann [Mon, 23 Jan 2012 19:04:51 +0000]

8 years agoremove support for Beehive
Andrew Baumann [Mon, 23 Jan 2012 19:04:15 +0000]
remove support for Beehive

see the mailing list discussion at the end of December 2011 for motivation

8 years agoARM fixes for spawnd
Andrew Baumann [Mon, 23 Jan 2012 17:09:25 +0000]
ARM fixes for spawnd

 * add missing kernel invocation
 * pass dummy arg to mappings_from_cmdline()

8 years agorouting_setup: make obvious to the compiler that err is always set
Kornilios Kourtis [Mon, 23 Jan 2012 15:35:46 +0000]
routing_setup: make obvious to the compiler that err is always set

8 years agoimplement ump_chan_destroy / ump_endpoint_destroy
Andrew Baumann [Fri, 20 Jan 2012 22:32:03 +0000]
implement ump_chan_destroy / ump_endpoint_destroy

This is not nearly the same as binding teardown, but it allows a
failed UMP bind attempt to continue and fallback to trying multihop.

8 years agofof: fix pdf creation from lhs
Kornilios Kourtis [Fri, 20 Jan 2012 13:47:35 +0000]
fof: fix pdf creation from lhs

(at least on my machine)

8 years agomerged with tip
Andrew Baumann [Thu, 19 Jan 2012 16:12:22 +0000]
merged with tip

8 years agoflounder/ump: fix early ack race which was causing message corruption
Andrew Baumann [Wed, 18 Jan 2012 19:23:34 +0000]
flounder/ump: fix early ack race which was causing message corruption

The old receive logic incorrectly sent a forced ack when required for
a newly-received message before copying the message payload from the
channel. This allowed the sender to overwrite that message before it
was read.

8 years agoflounder/ump: fix inconsistent variable name / meaning in support code
Andrew Baumann [Wed, 18 Jan 2012 19:20:59 +0000]
flounder/ump: fix inconsistent variable name / meaning in support code

"sent_id" was supposed to be the next sequence number to be sent, but
I think "next_id" is much saner...  moreover, it started from zero,
which meant that the ack logic was inconsistent wrt received acks

8 years agoqemu < 0.14 does not support ahci. Update README.
Simon Gerber [Wed, 18 Jan 2012 09:35:34 +0000]
qemu < 0.14 does not support ahci. Update README.

8 years agostop fixing the start address of the data section (for user programs) on x86_64
Andrew Baumann [Tue, 17 Jan 2012 19:31:21 +0000]
stop fixing the start address of the data section (for user programs) on x86_64

This is somewhat experimental. I don't remember why we did this in the
first place (it was when we still used CMake), but the current system
seems to cope fine without it. It's necessary, because with our
current huge text sections (all those static libraries), it's quite
easy for text and data to collide.

8 years agoICC compilation fixes
Andrew Baumann [Tue, 17 Jan 2012 19:06:07 +0000]
ICC compilation fixes

8 years agooops, I was a bit confused about flounder semantics for array lengths vs byte lengths
Andrew Baumann [Thu, 12 Jan 2012 23:18:03 +0000]
oops, I was a bit confused about flounder semantics for array lengths vs byte lengths

(this is all moot for a byte-sized coreid_t, but I expect that to change!!)

8 years agoimprovements/clean-up to multihop routing table management
Andrew Baumann [Thu, 12 Jan 2012 22:48:48 +0000]
improvements/clean-up to multihop routing table management

 * remove pointless ack messages from monitor back to route_setup
 * general cleanup of rts.c internal logic
 * added functionality to grow the routing table through a given
   forwarding core through a new set of cores (this is an initial
   kludge for very simple heterogeneous setups like MIC)
 * removed assumption of num_cores - 1 == max_coreid from monitor
   (it's still present in route_setup)

(this is a short-term improvement to the existing code; it doesn't
fix any of the real issues we identified on the mailing list)

8 years agodon't rely on true and false being sane macros in #if (0 and 1 seem safer!)
Andrew Baumann [Thu, 12 Jan 2012 22:44:02 +0000]
don't rely on true and false being sane macros in #if (0 and 1 seem safer!)

8 years agorts: re-indent to 4-space indents; whitespace changes only
Andrew Baumann [Thu, 12 Jan 2012 19:30:41 +0000]
rts: re-indent to 4-space indents; whitespace changes only

8 years agodoc/015-disk-driver-arch: add missing images
Simon Gerber [Thu, 12 Jan 2012 17:10:40 +0000]
doc/015-disk-driver-arch: add missing images

8 years agoahci: rewrite vfs_fat_conv.c
Simon Gerber [Thu, 12 Jan 2012 17:10:32 +0000]
ahci: rewrite vfs_fat_conv.c

8 years agodon't block on the serial binding if you never initiated it
Andrew Baumann [Wed, 11 Jan 2012 18:09:19 +0000]
don't block on the serial binding if you never initiated it

also added a comment indicating why I think blocking here is the wrong thing to do

8 years agomerged
Andrew Baumann [Wed, 11 Jan 2012 18:05:30 +0000]

8 years agoclean up and add some flexbility to mapping of APIC IDs and core IDs
Andrew Baumann [Wed, 11 Jan 2012 17:10:45 +0000]
clean up and add some flexbility to mapping of APIC IDs and core IDs

 * introduced kernel boot parameter to control the core ID for the BSP
   (on x86, where it was always zero)
 * introduced spawnd parameter to allow all core IDs to start from an offset
   (I'm using this for boot on MIC)
 * added monitor API to query the local core's APIC ID (some drivers might need it)
 * fixed some kernel paths that were needlessly reading the APIC ID out of the
   APIC all the time

8 years agoahci: fix flounder backend to print error values correctly
Kornilios Kourtis [Wed, 11 Jan 2012 13:57:43 +0000]
ahci: fix flounder backend to print error values correctly

8 years agoahci: remove casting from genvaddrr_t to (void *) and vice versa
Kornilios Kourtis [Wed, 11 Jan 2012 12:55:14 +0000]
ahci: remove casting from genvaddrr_t to (void *) and vice versa

compiler warns about this, and  I think it has a point.

8 years agoahci: use PRIxPTR for printing errval_t
Kornilios Kourtis [Wed, 11 Jan 2012 12:42:43 +0000]
ahci: use PRIxPTR for printing errval_t

Note: Fugu documentation seems to claim that errval_t is uint64_t. However, it
defines it as uintptr_t.

8 years agoremove large unreferenced/unused track_frames structure from dispatcher
Andrew Baumann [Tue, 10 Jan 2012 22:41:25 +0000]
remove large unreferenced/unused track_frames structure from dispatcher

8 years agodocument <pci/mem.h> a little better
Andrew Baumann [Tue, 10 Jan 2012 22:40:25 +0000]
document <pci/mem.h> a little better

8 years agoAdded AHCI driver (ahcid), AHCI user-space library (libahci), AHCI Flounder backend...
Simon Gerber [Tue, 10 Jan 2012 12:09:11 +0000]
Added AHCI driver (ahcid), AHCI user-space library (libahci), AHCI Flounder backend, block device file system (in libvfs), and various tests and benchmarks for the above.
Source: Distributed Systems Lab: A Messaging Interface to Disks (Manuel Stocker, Mark Nevill, Simon Gerber).

8 years agoAdded possibility of running bibtex for tech notes.
Simon Gerber [Tue, 10 Jan 2012 12:00:38 +0000]
Added possibility of running bibtex for tech notes.

8 years agoterminal.c: Added event_dispatch on the default waitset
Simon Gerber [Tue, 10 Jan 2012 12:00:32 +0000]
terminal.c: Added event_dispatch on the default waitset
 in terminal_want_stdin() to allow serial_bind to

8 years agoAdded do { ... } while(0) around USER_PANIC_ERR macro.
Simon Gerber [Tue, 10 Jan 2012 12:00:09 +0000]
Added do { ... } while(0) around USER_PANIC_ERR macro.

8 years agoflounder: fix "Irrefutable pattern failed for pattern" with more meaningful runtime...
Andrew Baumann [Tue, 3 Jan 2012 18:48:05 +0000]
flounder: fix "Irrefutable pattern failed for pattern" with more meaningful runtime error messages

8 years agohake: make flounderExtraDefs imply flounderDefs for a given interface
Andrew Baumann [Fri, 30 Dec 2011 18:26:28 +0000]
hake: make flounderExtraDefs imply flounderDefs for a given interface

IMO this makes sense, since the extended interfaces (RPC) always
depend on including the base ones, and it's cleaner than adding the
base interface to each Hakefile.

8 years agoadded some missing dependencies on the monitor_blocking interface
Andrew Baumann [Fri, 30 Dec 2011 17:01:17 +0000]
added some missing dependencies on the monitor_blocking interface

8 years agofix beehive and scc builds of monitor (missing from previous change)
Andrew Baumann [Fri, 30 Dec 2011 00:00:16 +0000]
fix beehive and scc builds of monitor (missing from previous change)

8 years agogeneral cleanup of monitor internals
Andrew Baumann [Thu, 29 Dec 2011 22:52:23 +0000]
general cleanup of monitor internals

 * start to abtract management of bindings to other monitors
   (in preparation for multihop support)

 * move code out of header files -- if the inlining is such a big
   win, we can put it back later, but it seemed excessive

 * fix a lot of irritating misnamed variables and
   fields: most "closure" objects, and a lot of "st" pointers,
   were in fact pointers to bindings

 * deprecated num_cores_request message

 * removed pingpong code from intermon interface

 * removed some dead code

there should be no changes to runtime behaviour or APIs/interfaces
outside the monitor

rename : usr/monitor/iref.h => usr/monitor/iref.c

8 years agolibmm: if asked to allocate more memory than we are configured to store, return a...
Andrew Baumann [Thu, 29 Dec 2011 22:33:30 +0000]
libmm: if asked to allocate more memory than we are configured to store, return a reasonable error code rather than dying on an internal assertion later

8 years agolimit pre-allocated trace buffers to the first 64 cores
Andrew Baumann [Thu, 29 Dec 2011 22:29:31 +0000]
limit pre-allocated trace buffers to the first 64 cores

Since increasing MAX_CPUS, tracing code which tries to allocate a
buffer for every possible core was running out of memory early in
boot. This is a kludgy quick fix; better ones include:

 * allocating the memory either in the kernel before starting init, or
   later when the memory server is up
 * allocating a trace buffer for a core dynamically when that core boots

8 years agoremove bogus get_input_signal stuff which seems to be left over from paper deadline...
Andrew Baumann [Thu, 29 Dec 2011 22:22:48 +0000]
remove bogus get_input_signal stuff which seems to be left over from paper deadline hacking

8 years agouse typedefs in multihop code
Andrew Baumann [Wed, 28 Dec 2011 18:57:29 +0000]
use typedefs in multihop code

8 years agorename MAX_CPUS to MAX_COREID, and increase it to 254 (to match an 8-bit coreid_t)
Andrew Baumann [Tue, 27 Dec 2011 23:49:55 +0000]
rename MAX_CPUS to MAX_COREID, and increase it to 254 (to match an 8-bit coreid_t)

 * Kludged around the limitations of coremask_t enough to keep rcap_db_null compiling.
 * Removed the config option that allowed users to lower it. this
   doesn't make much sense any more, unless we are going in for really
   silly compile-time optimisations. This change requires updating

8 years agomerge
Andrew Baumann [Tue, 27 Dec 2011 19:30:34 +0000]

8 years agoRemove old routing/group communication library.
Andrew Baumann [Tue, 27 Dec 2011 19:19:57 +0000]
Remove old routing/group communication library.

As discussed briefly on the list (22.{02,12}.2011), the library was
unused since early this year, and has been deprecated because it:
 * is unable to interface to flounder/THC
 * assumes that a set of core IDs can be expressed in a single-word bitmap
 * doesn't work on machines with large (> 32?) numbers of cores (but
   this is probably just a bug?)

Since we have the new multihop code in the tree, and seem to have
decided that this is an architectural dead-end, I'm removing this code
in the interest of least confusion as we start building functionality
on the new multihop code.

The one major side-effect of this change is that it is no longer
possible to compile the non-NULL remote cap management database
implementations (rcap_db_central, rcap_db_twopc). The code remains in
the tree for future resurrection, however.

8 years agoremove stale/unused group communication interfaces
Andrew Baumann [Tue, 27 Dec 2011 18:12:38 +0000]
remove stale/unused group communication interfaces

8 years agoremove dead code that was there to support the previous IDC system
Andrew Baumann [Wed, 21 Dec 2011 23:56:25 +0000]
remove dead code that was there to support the previous IDC system

8 years agoMinor fix: non-existent variable was linked in eMAC driver
pravin [Wed, 21 Dec 2011 03:43:06 +0000]
Minor fix: non-existent variable was linked in eMAC driver

8 years agoFixed small error which was missed for scc_qemu case
pravin [Wed, 21 Dec 2011 03:20:15 +0000]
Fixed small error which was missed for scc_qemu case

8 years agoDisabled the SCC Fastcopy code which was breaking the SCC qemu build test
pravin [Wed, 21 Dec 2011 03:04:15 +0000]
Disabled the SCC Fastcopy code which was breaking the SCC qemu build test

8 years agoRemoved the debug print which occurs only on high load
pravin [Wed, 21 Dec 2011 02:32:55 +0000]
Removed the debug print which occurs only on high load

8 years agoSmall fix in rtl8029 driver due to the merge
pravin [Wed, 21 Dec 2011 02:03:40 +0000]
Small fix in rtl8029 driver due to the merge

8 years agoMerge
pravin [Wed, 21 Dec 2011 01:38:48 +0000]

8 years agoRemoved the use of disp_name() from debugging in procon.c to avoid compilation
pravin [Wed, 21 Dec 2011 01:02:50 +0000]
Removed the use of disp_name() from debugging in procon.c to avoid compilation

8 years agoFixed the issue with loading large files over NFS.
pravin [Wed, 21 Dec 2011 00:56:08 +0000]
Fixed the issue with loading large files over NFS.
The problem was mainly due to the way notifications from the driver were
handled by the application.  Now, every notification from driver triggers
both handle_tx_done and handle_incoming_packets.

The NFS is still slow, but most probably due to the use of inefficient pbuf

8 years agomove bootinfo request messages to monitor's RPC interface; introduce flounderExtraDefs
Andrew Baumann [Tue, 20 Dec 2011 22:40:02 +0000]
move bootinfo request messages to monitor's RPC interface; introduce flounderExtraDefs

flounderExtraDefs fixes the problem of needing a dependency on the
header files for an RPC interface, without causing the code for that
interface to be generated (e.g. because it is already part of

8 years agotrivial update to misleading comments
Andrew Baumann [Tue, 20 Dec 2011 22:37:44 +0000]
trivial update to misleading comments

8 years agoFixed missing format specifier which failed builds on 32-bit architectures.
Mothy [Tue, 20 Dec 2011 15:11:23 +0000]
Fixed missing format specifier which failed builds on 32-bit architectures.

8 years agoMoved current page counter to be static to the select function.
Mothy [Tue, 20 Dec 2011 13:02:21 +0000]
Moved current page counter to be static to the select function.

8 years agoSmall fix to remove the usage of assert from cache.c
pravin [Tue, 20 Dec 2011 00:45:51 +0000]
Small fix to remove the usage of assert from cache.c

8 years agoFixed some compilation problems and modified the use of functions
pravin [Mon, 19 Dec 2011 18:04:33 +0000]
Fixed some compilation problems and modified the use of functions
inside asserts as asserts are not compiled in production level deployments
(harness deployments)

8 years agoPorted RTL driver to Mackerel shift driver - but not yet tested.
Mothy [Mon, 19 Dec 2011 14:02:33 +0000]
Ported RTL driver to Mackerel shift driver - but not yet tested.

8 years agoMerge
pravin [Mon, 19 Dec 2011 10:02:19 +0000]

8 years agoMinor changes to get net_throughput working
pravin [Mon, 19 Dec 2011 09:59:04 +0000]
Minor changes to get net_throughput working

8 years agoRemoved most of the debugging code which was breaking the compilation for arm
pravin [Thu, 15 Dec 2011 22:18:15 +0000]
Removed most of the debugging code which was breaking the compilation for arm

8 years agoMinor changes
pravin [Thu, 15 Dec 2011 16:48:32 +0000]
Minor changes
udp_test.c now take test type as parameter over command line
Minor cleanup in contmng.c

8 years agoFixed acpi code to use new Mackerel driver.
Mothy [Wed, 14 Dec 2011 16:17:33 +0000]
Fixed acpi code to use new Mackerel driver.

8 years agoConverted the pic and xapic drivers to use the Mackerel shift driver syntax.
Mothy [Tue, 13 Dec 2011 14:20:53 +0000]
Converted the pic and xapic drivers to use the Mackerel shift driver syntax.

8 years agoMackerel now allows "noaddr" registers, which can model co-processors, etc.
Mothy [Mon, 12 Dec 2011 16:03:18 +0000]
Mackerel now allows "noaddr" registers, which can model co-processors, etc.
This allows considerable cleanup in the x86 code; 32-bit on the way soon.
Redundant ia32_spaces header, since this was not used.
Documented extensions to Mackerel syntax.

8 years agoFixed long-standing 64-bit constants bug, by dropping C enumerations in favor of...
Mothy [Fri, 9 Dec 2011 16:53:58 +0000]
Fixed long-standing 64-bit constants bug, by dropping C enumerations in favor of CPP macros.
Updated documentation.

8 years agoRemoved a per-file print from webserver to reduce the console output
pravin [Thu, 8 Dec 2011 09:03:56 +0000]
Removed a per-file print from webserver to reduce the console output

8 years agoFixed bad Mackerel dependency due to file renaming.
Mothy [Wed, 7 Dec 2011 20:07:07 +0000]
Fixed bad Mackerel dependency due to file renaming.

8 years agoFixed weird crashing bug.
Mothy [Wed, 7 Dec 2011 16:25:20 +0000]
Fixed weird crashing bug.

rename : devices/ => devices/

8 years agoCleaned up the debug print statement to reduce the noise in boot process.
pravin [Wed, 7 Dec 2011 00:27:38 +0000]
Cleaned up the debug print statement to reduce the noise in boot process.

8 years agoFixed the performance bug. Now incoming traffic is working at hardware speed
pravin [Tue, 6 Dec 2011 23:36:42 +0000]
Fixed the performance bug.  Now incoming traffic is working at hardware speed

8 years agoHalf working state. For some reasons, RX benchmark is working very fast (but
pravin [Mon, 5 Dec 2011 23:37:28 +0000]
Half working state.  For some reasons, RX benchmark is working very fast (but
incorrect).  Can't figure out why.

8 years agoMinor improvements to speedup the RX benchmark, added more code
pravin [Mon, 5 Dec 2011 23:26:06 +0000]
Minor improvements to speedup the RX benchmark, added more code
for measurements.

8 years agoChanges to get RX benchmark working.
pravin [Mon, 5 Dec 2011 22:20:52 +0000]
Changes to get RX benchmark working.
There are lot of small changes in this commit and also extra code for debugging
and performance evaluation which will be cleaned in future versions.

8 years agolib/c: fix return value for snprintf (following c99)
Zellweger Gerd [Thu, 24 Nov 2011 10:22:47 +0000]
lib/c: fix return value for snprintf (following c99)

extra : rebase_source : 0c22dde48e0de011d00a4d000dce1722a784d5f4

8 years agomerge
Mothy [Wed, 23 Nov 2011 13:32:14 +0000]

8 years agocommented out webserver benchmarking code
pravin [Wed, 16 Nov 2011 10:54:53 +0000]
commented out webserver benchmarking code

8 years agoCode refactoring: split the idc_barrelfish.c in lwip into two files and creating
pravin [Wed, 16 Nov 2011 09:30:49 +0000]
Code refactoring: split the idc_barrelfish.c in lwip into two files and creating
new idc_net_control.c with all the code related to talking with netd service

8 years agoPrecursor to the factoring of ide_barrelfish.c
pravin [Mon, 14 Nov 2011 18:09:15 +0000]
Precursor to the factoring of ide_barrelfish.c
Just rearranged the code as per functionality.
Next step is to put them in separate files

8 years agoFactored out some more code from ethersrv.c into ethersrv_support.*
pravin [Mon, 14 Nov 2011 17:44:51 +0000]
Factored out some more code from ethersrv.c into ethersrv_support.*

8 years agoMoved most of the benchmarking code out from ethersrv as well
pravin [Mon, 14 Nov 2011 16:11:01 +0000]
Moved most of the benchmarking code out from ethersrv as well

8 years agoAdded netbench related files that I forgot to add before
pravin [Mon, 14 Nov 2011 15:32:28 +0000]
Added netbench related files that I forgot to add before

8 years agoMoved the network benchmarking code from lwip/init.* into contmng/netbench.*
pravin [Mon, 14 Nov 2011 14:50:15 +0000]
Moved the network benchmarking code from lwip/init.* into contmng/netbench.*
Still to move the code from the driver part ethersrv.c

8 years agoCleaned up the ether.if and removed the unused code
pravin [Sun, 13 Nov 2011 18:39:54 +0000]
Cleaned up the ether.if and removed the unused code

8 years agoRefactoring of code:
pravin [Sun, 13 Nov 2011 18:12:03 +0000]
Refactoring of code:
Added ethersrv_ctl.c to separate out the code dealing with ether_ctl.if
Removed vnic_service.c which was not in use anyways.

8 years agoMerge [Sun, 13 Nov 2011 15:49:56 +0000]

8 years agoFixed the problem of random retransmits happening in send path.
pravin [Sun, 13 Nov 2011 15:41:13 +0000]
Fixed the problem of random retransmits happening in send path.
The problem was in the way tx_notify was handled and the assumption that
hardware might return notification out-of-order.

8 years agoadding a tag for release 2011-11-10
Stefan Kästle [Fri, 11 Nov 2011 13:33:00 +0000]
adding a tag for release 2011-11-10

8 years agoadding a tag for release 2011-09-02
Stefan Kästle [Fri, 11 Nov 2011 13:32:12 +0000]
adding a tag for release 2011-09-02

8 years agomerge
Mothy [Wed, 9 Nov 2011 13:45:46 +0000]

8 years agoFixed several serious Mackerel bugs (including access to fields in datatypes larger...
Mothy [Wed, 9 Nov 2011 13:45:40 +0000]
Fixed several serious Mackerel bugs (including access to fields in datatypes larger than 64 bits)
Added support for register types to be constant types.
Converted ia32_dev to the Shift driver rather than the old Bitfield driver.