NameDateSize

..23-Mar-202045

args.cH A D23-Mar-20207 KiB

args.hH A D23-Mar-2020691

HakefileH A D23-Mar-20203.4 KiB

hybrid_support.cH A D23-Mar-202010.6 KiB

mem_bench.cH A D23-Mar-20202.8 KiB

mem_bench_2.cH A D23-Mar-20202.6 KiB

mem_bench_3.cH A D23-Mar-20204.6 KiB

mem_bench_4.cH A D23-Mar-20204.6 KiB

mem_bench_5.cH A D23-Mar-20204.9 KiB

mem_bench_6.cH A D23-Mar-20204.7 KiB

mem_serv.cH A D23-Mar-202020.7 KiB

mem_serv.hH A D23-Mar-20204 KiB

memtest_trace.cH A D23-Mar-20202 KiB

memtest_trace.hH A D23-Mar-2020680

menu-mem.lstH A D25-Jul-20191 KiB

no_steal.cH A D23-Mar-20201.3 KiB

README.txtH A D25-Jul-20192.4 KiB

skb.cH A D23-Mar-20205 KiB

skb.hH A D23-Mar-2020603

sleep.cH A D23-Mar-20201.3 KiB

sleep.hH A D23-Mar-2020481

steal.cH A D23-Mar-20208.7 KiB

steal.hH A D23-Mar-2020882

thc_support.cH A D23-Mar-20206.2 KiB

README.txt

1This is the distributed (per core) mem_serv.  
2
3It should be started on one core, and takes arguments 
4telling it how to further proceed.  The possible 
5arguments are:
6
7-m: be a master
8-w: be a worker 
9-a: spawn on all available cores
10-c <list>: spawn on the given list of cores
11-x <list>: don't spawn on the given list of cores
12-n <num>: spawn on a maximum of 'num' cores
13-r <num>: each core should be responsible for <num> bytes of memory
14
15Typically the -w argument is only passed by the master to 
16workers on other cores when spawning them.
17
18The included menu.lst file shows an example of how to start 
19the distributed mem_serv.
20
21Note that this also requires a modified spawnd that knows 
22about mem_serv_dist.
23
24There are also some simple benchmark/test programs included. They all
25perform variations on allocating a bunch of memory.  When run with the
26distributed mem_serv it will use the local mem_serv, when 
27run without it will use the global mem_serv.
28
29Note that there are several alternative implementations of mem_serv_dist.
30- no stealing: this version does not steal ram caps from the other mem_serv's 
31  when a local server runs out of memory.  This means that each core only has
32  access to a limited amount of memory.
33- stealing: this version steals ram caps from other mem_serv's when a local 
34  server runs out of memory.  Each core therefore has potential access to all 
35  the system memory.
36  There are two versions of the stealing mem_serv_dist:
37  + hybrid: uses THC stubs for the stealing. However, it uses traditional 
38    stack-ripped IDC code for starting and running the mem_serv and handling 
39    its events.
40  + thc: uses THC stubs for stealing.  It also uses THC and THC language 
41    extensions for starting and running the mem_serv itself.
42
43The code is structured as follows:
44- mem_serv.c: 
45  contains all the common mem_serv functionlity, shared by the stealing 
46  and non_stealing versions
47- steal.c:
48  contains code specific to the stealing versions.  Since the stealing 
49  versions all use THC stubs, this also contains the thcmain() function.
50- no_steal.c:
51  contains some dummy stubs for the non stealing version.  It also 
52  conatins the main() function for the non stealing version.
53- hybrid_support.c:
54  contains wrapper functions for doing the non-THC IDC and the dispatch loop.
55- thc_support.c:
56  contains wrapper functions for doing THC-based communication and the server 
57  loop.
58