Skip to content

Commit 657e5a2

Browse files
Eric Holkgraydon
Eric Holk
authored andcommitted
Renamed what's left of rust_dom to rust_scheduler
1 parent 02f6645 commit 657e5a2

23 files changed

+303
-321
lines changed

mk/rt.mk

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ RUNTIME_CS := rt/sync/timer.cpp \
1010
rt/rust_run_program.cpp \
1111
rt/rust_crate_cache.cpp \
1212
rt/rust_comm.cpp \
13-
rt/rust_dom.cpp \
13+
rt/rust_scheduler.cpp \
1414
rt/rust_task.cpp \
1515
rt/rust_task_list.cpp \
1616
rt/rust_proxy.cpp \
@@ -37,7 +37,7 @@ RUNTIME_HDR := rt/globals.h \
3737
rt/rust_util.h \
3838
rt/rust_chan.h \
3939
rt/rust_port.h \
40-
rt/rust_dom.h \
40+
rt/rust_scheduler.h \
4141
rt/rust_task.h \
4242
rt/rust_task_list.h \
4343
rt/rust_proxy.h \

src/rt/circular_buffer.cpp

Lines changed: 35 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -5,34 +5,34 @@
55
#include "rust_internal.h"
66

77
circular_buffer::circular_buffer(rust_task *task, size_t unit_sz) :
8-
dom(task->dom),
8+
sched(task->sched),
99
task(task),
1010
unit_sz(unit_sz),
1111
_buffer_sz(initial_size()),
1212
_next(0),
1313
_unread(0),
1414
_buffer((uint8_t *)task->malloc(_buffer_sz)) {
1515

16-
A(dom, unit_sz, "Unit size must be larger than zero.");
16+
A(sched, unit_sz, "Unit size must be larger than zero.");
1717

18-
DLOG(dom, mem, "new circular_buffer(buffer_sz=%d, unread=%d)"
18+
DLOG(sched, mem, "new circular_buffer(buffer_sz=%d, unread=%d)"
1919
"-> circular_buffer=0x%" PRIxPTR,
2020
_buffer_sz, _unread, this);
2121

22-
A(dom, _buffer, "Failed to allocate buffer.");
22+
A(sched, _buffer, "Failed to allocate buffer.");
2323
}
2424

2525
circular_buffer::~circular_buffer() {
26-
DLOG(dom, mem, "~circular_buffer 0x%" PRIxPTR, this);
27-
I(dom, _buffer);
28-
W(dom, _unread == 0,
26+
DLOG(sched, mem, "~circular_buffer 0x%" PRIxPTR, this);
27+
I(sched, _buffer);
28+
W(sched, _unread == 0,
2929
"freeing circular_buffer with %d unread bytes", _unread);
3030
task->free(_buffer);
3131
}
3232

3333
size_t
3434
circular_buffer::initial_size() {
35-
I(dom, unit_sz > 0);
35+
I(sched, unit_sz > 0);
3636
return INITIAL_CIRCULAR_BUFFER_SIZE_IN_UNITS * unit_sz;
3737
}
3838

@@ -41,8 +41,8 @@ circular_buffer::initial_size() {
4141
*/
4242
void
4343
circular_buffer::transfer(void *dst) {
44-
I(dom, dst);
45-
I(dom, _unread <= _buffer_sz);
44+
I(sched, dst);
45+
I(sched, _unread <= _buffer_sz);
4646

4747
uint8_t *ptr = (uint8_t *) dst;
4848

@@ -54,13 +54,13 @@ circular_buffer::transfer(void *dst) {
5454
} else {
5555
head_sz = _buffer_sz - _next;
5656
}
57-
I(dom, _next + head_sz <= _buffer_sz);
57+
I(sched, _next + head_sz <= _buffer_sz);
5858
memcpy(ptr, _buffer + _next, head_sz);
5959

6060
// Then copy any other items from the beginning of the buffer
61-
I(dom, _unread >= head_sz);
61+
I(sched, _unread >= head_sz);
6262
size_t tail_sz = _unread - head_sz;
63-
I(dom, head_sz + tail_sz <= _buffer_sz);
63+
I(sched, head_sz + tail_sz <= _buffer_sz);
6464
memcpy(ptr + head_sz, _buffer, tail_sz);
6565
}
6666

@@ -70,37 +70,37 @@ circular_buffer::transfer(void *dst) {
7070
*/
7171
void
7272
circular_buffer::enqueue(void *src) {
73-
I(dom, src);
74-
I(dom, _unread <= _buffer_sz);
75-
I(dom, _buffer);
73+
I(sched, src);
74+
I(sched, _unread <= _buffer_sz);
75+
I(sched, _buffer);
7676

7777
// Grow if necessary.
7878
if (_unread == _buffer_sz) {
7979
grow();
8080
}
8181

82-
DLOG(dom, mem, "circular_buffer enqueue "
82+
DLOG(sched, mem, "circular_buffer enqueue "
8383
"unread: %d, next: %d, buffer_sz: %d, unit_sz: %d",
8484
_unread, _next, _buffer_sz, unit_sz);
8585

86-
I(dom, _unread < _buffer_sz);
87-
I(dom, _unread + unit_sz <= _buffer_sz);
86+
I(sched, _unread < _buffer_sz);
87+
I(sched, _unread + unit_sz <= _buffer_sz);
8888

8989
// Copy data
9090
size_t dst_idx = _next + _unread;
91-
I(dom, dst_idx >= _buffer_sz || dst_idx + unit_sz <= _buffer_sz);
91+
I(sched, dst_idx >= _buffer_sz || dst_idx + unit_sz <= _buffer_sz);
9292
if (dst_idx >= _buffer_sz) {
9393
dst_idx -= _buffer_sz;
9494

95-
I(dom, _next >= unit_sz);
96-
I(dom, dst_idx <= _next - unit_sz);
95+
I(sched, _next >= unit_sz);
96+
I(sched, dst_idx <= _next - unit_sz);
9797
}
9898

99-
I(dom, dst_idx + unit_sz <= _buffer_sz);
99+
I(sched, dst_idx + unit_sz <= _buffer_sz);
100100
memcpy(&_buffer[dst_idx], src, unit_sz);
101101
_unread += unit_sz;
102102

103-
DLOG(dom, mem, "circular_buffer pushed data at index: %d", dst_idx);
103+
DLOG(sched, mem, "circular_buffer pushed data at index: %d", dst_idx);
104104
}
105105

106106
/**
@@ -110,21 +110,21 @@ circular_buffer::enqueue(void *src) {
110110
*/
111111
void
112112
circular_buffer::dequeue(void *dst) {
113-
I(dom, unit_sz > 0);
114-
I(dom, _unread >= unit_sz);
115-
I(dom, _unread <= _buffer_sz);
116-
I(dom, _buffer);
113+
I(sched, unit_sz > 0);
114+
I(sched, _unread >= unit_sz);
115+
I(sched, _unread <= _buffer_sz);
116+
I(sched, _buffer);
117117

118-
DLOG(dom, mem,
118+
DLOG(sched, mem,
119119
"circular_buffer dequeue "
120120
"unread: %d, next: %d, buffer_sz: %d, unit_sz: %d",
121121
_unread, _next, _buffer_sz, unit_sz);
122122

123-
I(dom, _next + unit_sz <= _buffer_sz);
123+
I(sched, _next + unit_sz <= _buffer_sz);
124124
if (dst != NULL) {
125125
memcpy(dst, &_buffer[_next], unit_sz);
126126
}
127-
DLOG(dom, mem, "shifted data from index %d", _next);
127+
DLOG(sched, mem, "shifted data from index %d", _next);
128128
_unread -= unit_sz;
129129
_next += unit_sz;
130130
if (_next == _buffer_sz) {
@@ -140,8 +140,8 @@ circular_buffer::dequeue(void *dst) {
140140
void
141141
circular_buffer::grow() {
142142
size_t new_buffer_sz = _buffer_sz * 2;
143-
I(dom, new_buffer_sz <= MAX_CIRCULAR_BUFFER_SIZE);
144-
DLOG(dom, mem, "circular_buffer is growing to %d bytes", new_buffer_sz);
143+
I(sched, new_buffer_sz <= MAX_CIRCULAR_BUFFER_SIZE);
144+
DLOG(sched, mem, "circular_buffer is growing to %d bytes", new_buffer_sz);
145145
void *new_buffer = task->malloc(new_buffer_sz);
146146
transfer(new_buffer);
147147
task->free(_buffer);
@@ -153,8 +153,8 @@ circular_buffer::grow() {
153153
void
154154
circular_buffer::shrink() {
155155
size_t new_buffer_sz = _buffer_sz / 2;
156-
I(dom, initial_size() <= new_buffer_sz);
157-
DLOG(dom, mem, "circular_buffer is shrinking to %d bytes", new_buffer_sz);
156+
I(sched, initial_size() <= new_buffer_sz);
157+
DLOG(sched, mem, "circular_buffer is shrinking to %d bytes", new_buffer_sz);
158158
void *new_buffer = task->malloc(new_buffer_sz);
159159
transfer(new_buffer);
160160
task->free(_buffer);

src/rt/circular_buffer.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ circular_buffer : public task_owned<circular_buffer> {
1010
static const size_t INITIAL_CIRCULAR_BUFFER_SIZE_IN_UNITS = 8;
1111
static const size_t MAX_CIRCULAR_BUFFER_SIZE = 1 << 24;
1212

13-
rust_dom *dom;
13+
rust_scheduler *sched;
1414

1515
public:
1616
rust_task *task;

src/rt/rust.cpp

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -39,13 +39,13 @@ command_line_args : public kernel_owned<command_line_args>
3939
size_t vec_fill = sizeof(rust_str *) * argc;
4040
size_t vec_alloc = next_power_of_two(sizeof(rust_vec) + vec_fill);
4141
void *mem = kernel->malloc(vec_alloc);
42-
args = new (mem) rust_vec(task->dom, vec_alloc, 0, NULL);
42+
args = new (mem) rust_vec(task->sched, vec_alloc, 0, NULL);
4343
rust_str **strs = (rust_str**) &args->data[0];
4444
for (int i = 0; i < argc; ++i) {
4545
size_t str_fill = strlen(argv[i]) + 1;
4646
size_t str_alloc = next_power_of_two(sizeof(rust_str) + str_fill);
4747
mem = kernel->malloc(str_alloc);
48-
strs[i] = new (mem) rust_str(task->dom, str_alloc, str_fill,
48+
strs[i] = new (mem) rust_str(task->sched, str_alloc, str_fill,
4949
(uint8_t const *)argv[i]);
5050
}
5151
args->fill = vec_fill;
@@ -98,21 +98,21 @@ rust_start(uintptr_t main_fn, int argc, char **argv, void* crate_map) {
9898
rust_srv *srv = new rust_srv();
9999
rust_kernel *kernel = new rust_kernel(srv);
100100
kernel->start();
101-
rust_dom *dom = kernel->get_domain();
101+
rust_scheduler *sched = kernel->get_scheduler();
102102
command_line_args *args
103-
= new (kernel) command_line_args(dom->root_task, argc, argv);
103+
= new (kernel) command_line_args(sched->root_task, argc, argv);
104104

105-
DLOG(dom, dom, "startup: %d args in 0x%" PRIxPTR,
105+
DLOG(sched, dom, "startup: %d args in 0x%" PRIxPTR,
106106
args->argc, (uintptr_t)args->args);
107107
for (int i = 0; i < args->argc; i++) {
108-
DLOG(dom, dom, "startup: arg[%d] = '%s'", i, args->argv[i]);
108+
DLOG(sched, dom, "startup: arg[%d] = '%s'", i, args->argv[i]);
109109
}
110110

111-
dom->root_task->start(main_fn, (uintptr_t)args->args);
111+
sched->root_task->start(main_fn, (uintptr_t)args->args);
112112

113113
int num_threads = get_num_threads();
114114

115-
DLOG(dom, dom, "Using %d worker threads.", num_threads);
115+
DLOG(sched, dom, "Using %d worker threads.", num_threads);
116116

117117
int ret = kernel->start_task_threads(num_threads);
118118
delete args;

src/rt/rust_builtin.cpp

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010
extern "C" CDECL rust_str*
1111
last_os_error(rust_task *task) {
12-
rust_dom *dom = task->dom;
12+
rust_scheduler *sched = task->sched;
1313
LOG(task, task, "last_os_error()");
1414

1515
#if defined(__WIN32__)
@@ -47,7 +47,7 @@ last_os_error(rust_task *task) {
4747
task->fail(1);
4848
return NULL;
4949
}
50-
rust_str *st = new (mem) rust_str(dom, alloc, fill, (const uint8_t *)buf);
50+
rust_str *st = new (mem) rust_str(sched, alloc, fill, (const uint8_t *)buf);
5151

5252
#ifdef __WIN32__
5353
LocalFree((HLOCAL)buf);
@@ -57,7 +57,7 @@ last_os_error(rust_task *task) {
5757

5858
extern "C" CDECL rust_str *
5959
rust_getcwd(rust_task *task) {
60-
rust_dom *dom = task->dom;
60+
rust_scheduler *sched = task->sched;
6161
LOG(task, task, "rust_getcwd()");
6262

6363
char cbuf[BUF_BYTES];
@@ -80,7 +80,7 @@ rust_getcwd(rust_task *task) {
8080
}
8181

8282
rust_str *st;
83-
st = new (mem) rust_str(dom, alloc, fill, (const uint8_t *)cbuf);
83+
st = new (mem) rust_str(sched, alloc, fill, (const uint8_t *)cbuf);
8484

8585
return st;
8686
}
@@ -124,7 +124,7 @@ unsupervise(rust_task *task) {
124124
extern "C" CDECL rust_vec*
125125
vec_alloc(rust_task *task, type_desc *t, type_desc *elem_t, size_t n_elts)
126126
{
127-
rust_dom *dom = task->dom;
127+
rust_scheduler *sched = task->sched;
128128
LOG(task, mem, "vec_alloc %" PRIdPTR " elements of size %" PRIdPTR,
129129
n_elts, elem_t->size);
130130
size_t fill = n_elts * elem_t->size;
@@ -134,7 +134,7 @@ vec_alloc(rust_task *task, type_desc *t, type_desc *elem_t, size_t n_elts)
134134
task->fail(4);
135135
return NULL;
136136
}
137-
rust_vec *vec = new (mem) rust_vec(dom, alloc, 0, NULL);
137+
rust_vec *vec = new (mem) rust_vec(sched, alloc, 0, NULL);
138138
return vec;
139139
}
140140

@@ -198,11 +198,11 @@ vec_alloc_with_data(rust_task *task,
198198
size_t elt_size,
199199
void *d)
200200
{
201-
rust_dom *dom = task->dom;
201+
rust_scheduler *sched = task->sched;
202202
size_t alloc = next_power_of_two(sizeof(rust_vec) + (n_elts * elt_size));
203203
void *mem = task->malloc(alloc, memory_region::LOCAL);
204204
if (!mem) return NULL;
205-
return new (mem) rust_vec(dom, alloc, fill * elt_size, (uint8_t*)d);
205+
return new (mem) rust_vec(sched, alloc, fill * elt_size, (uint8_t*)d);
206206
}
207207

208208
extern "C" CDECL rust_vec*
@@ -355,13 +355,13 @@ str_from_buf(rust_task *task, char *buf, unsigned int len) {
355355
extern "C" CDECL void *
356356
rand_new(rust_task *task)
357357
{
358-
rust_dom *dom = task->dom;
358+
rust_scheduler *sched = task->sched;
359359
randctx *rctx = (randctx *) task->malloc(sizeof(randctx));
360360
if (!rctx) {
361361
task->fail(1);
362362
return NULL;
363363
}
364-
isaac_init(dom, rctx);
364+
isaac_init(sched, rctx);
365365
return rctx;
366366
}
367367

src/rt/rust_chan.cpp

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ rust_chan::rust_chan(rust_task *task,
2222
rust_chan::~rust_chan() {
2323
LOG(task, comm, "del rust_chan(task=0x%" PRIxPTR ")", (uintptr_t) this);
2424

25-
A(task->dom, is_associated() == false,
25+
A(task->sched, is_associated() == false,
2626
"Channel must be disassociated before being freed.");
2727
--task->ref_count;
2828
}
@@ -49,7 +49,7 @@ bool rust_chan::is_associated() {
4949
* Unlink this channel from its associated port.
5050
*/
5151
void rust_chan::disassociate() {
52-
A(task->dom, is_associated(), "Channel must be associated with a port.");
52+
A(task->sched, is_associated(), "Channel must be associated with a port.");
5353

5454
if (port->is_proxy() == false) {
5555
LOG(task, task,
@@ -69,14 +69,14 @@ void rust_chan::disassociate() {
6969
void rust_chan::send(void *sptr) {
7070
buffer.enqueue(sptr);
7171

72-
rust_dom *dom = task->dom;
72+
rust_scheduler *sched = task->sched;
7373
if (!is_associated()) {
74-
W(dom, is_associated(),
74+
W(sched, is_associated(),
7575
"rust_chan::transmit with no associated port.");
7676
return;
7777
}
7878

79-
A(dom, !buffer.is_empty(),
79+
A(sched, !buffer.is_empty(),
8080
"rust_chan::transmit with nothing to send.");
8181

8282
if (port->is_proxy()) {
@@ -86,7 +86,7 @@ void rust_chan::send(void *sptr) {
8686
} else {
8787
rust_port *target_port = port->referent();
8888
if (target_port->task->blocked_on(target_port)) {
89-
DLOG(dom, comm, "dequeued in rendezvous_ptr");
89+
DLOG(sched, comm, "dequeued in rendezvous_ptr");
9090
buffer.dequeue(target_port->task->rendezvous_ptr);
9191
target_port->task->rendezvous_ptr = 0;
9292
target_port->task->wakeup(target_port);

0 commit comments

Comments
 (0)