Skip to content

Commit a367416

Browse files
committed
Change to use Picos instead of DLT and DLA
This adds support for cancelation through Picos and removes explicit support for timeouts, which simplifies the library. This basically also means that one can no longer use Kcas without a scheduler.
1 parent 5715181 commit a367416

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

62 files changed

+753
-988
lines changed

bench/bench_accumulator.ml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ let run_one ~budgetf ~n_domains ?(n_ops = 180 * Util.iter_factor) () =
99
let n_ops_todo = Atomic.make n_ops |> Multicore_magic.copy_as_padded in
1010

1111
let init _ = () in
12-
12+
let wrap _ _ action = Scheduler.run action in
1313
let work _ () =
1414
let rec work () =
1515
let n = Util.alloc n_ops_todo in
@@ -34,7 +34,7 @@ let run_one ~budgetf ~n_domains ?(n_ops = 180 * Util.iter_factor) () =
3434
(if n_domains = 1 then "" else "s")
3535
in
3636

37-
Times.record ~budgetf ~n_domains ~init ~work ~after ()
37+
Times.record ~budgetf ~n_domains ~init ~wrap ~work ~after ()
3838
|> Times.to_thruput_metrics ~n:n_ops ~config ~singular:"operation"
3939

4040
let run_suite ~budgetf =

bench/bench_dllist.ml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,10 @@ let run_single ~budgetf ?(n_msgs = 15 * Util.iter_factor) () =
1212
assert (Dllist.is_empty t);
1313
Util.generate_push_and_pop_sequence n_msgs
1414
in
15+
let wrap _ _ action = Scheduler.run action in
1516
let work _ bits = Util.Bits.iter op bits in
1617

17-
Times.record ~budgetf ~n_domains:1 ~init ~work ()
18+
Times.record ~budgetf ~n_domains:1 ~init ~wrap ~work ()
1819
|> Times.to_thruput_metrics ~n:n_msgs ~singular:"message" ~config:"one domain"
1920

2021
let run_one ~budgetf ?(n_adders = 2) ?(n_takers = 2) ?(factor = 1)
@@ -31,6 +32,7 @@ let run_one ~budgetf ?(n_adders = 2) ?(n_takers = 2) ?(factor = 1)
3132
Atomic.set n_msgs_to_take n_msgs;
3233
Atomic.set n_msgs_to_add n_msgs
3334
in
35+
let wrap _ _ action = Scheduler.run action in
3436
let work i () =
3537
if i < n_adders then
3638
let rec work () =
@@ -70,7 +72,7 @@ let run_one ~budgetf ?(n_adders = 2) ?(n_takers = 2) ?(factor = 1)
7072
(format "taker" false n_takers)
7173
in
7274

73-
Times.record ~budgetf ~n_domains ~init ~work ()
75+
Times.record ~budgetf ~n_domains ~init ~wrap ~work ()
7476
|> Times.to_thruput_metrics ~n:n_msgs ~singular:"message" ~config
7577

7678
let run_suite ~budgetf =

bench/bench_hashtbl.ml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ let run_one ~budgetf ~n_domains ?(n_ops = 40 * Util.iter_factor)
2424
Atomic.set n_ops_todo n_ops;
2525
Random.State.make_self_init ()
2626
in
27-
27+
let wrap _ _ action = Scheduler.run action in
2828
let work _ state =
2929
let rec work () =
3030
let n = Util.alloc n_ops_todo in
@@ -56,7 +56,7 @@ let run_one ~budgetf ~n_domains ?(n_ops = 40 * Util.iter_factor)
5656
percent_read
5757
in
5858

59-
Times.record ~budgetf ~n_domains ~init ~work ()
59+
Times.record ~budgetf ~n_domains ~init ~wrap ~work ()
6060
|> Times.to_thruput_metrics ~n:n_ops ~singular:"operation" ~config
6161

6262
let run_suite ~budgetf =

bench/bench_mvar.ml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ let run_one ~budgetf ?(n_adders = 2) ?(blocking_add = false) ?(n_takers = 2)
1111
let n_msgs_to_add = Atomic.make n_msgs |> Multicore_magic.copy_as_padded in
1212

1313
let init _ = () in
14+
let wrap _ _ action = Scheduler.run action in
1415
let work i () =
1516
if i < n_adders then
1617
if blocking_add then
@@ -79,7 +80,7 @@ let run_one ~budgetf ?(n_adders = 2) ?(blocking_add = false) ?(n_takers = 2)
7980
(format "taker" blocking_take n_takers)
8081
in
8182

82-
Times.record ~budgetf ~n_domains ~init ~work ~after ()
83+
Times.record ~budgetf ~n_domains ~init ~wrap ~work ~after ()
8384
|> Times.to_thruput_metrics ~n:n_msgs ~singular:"message" ~config
8485

8586
let run_suite ~budgetf =

bench/bench_parallel_cmp.ml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ let run_one ~budgetf ~n_domains ?(n_ops = 50 * Util.iter_factor) () =
1111
let n_ops_todo = Atomic.make n_ops |> Multicore_magic.copy_as_padded in
1212

1313
let init i = Array.unsafe_get xs i in
14-
14+
let wrap _ _ action = Scheduler.run action in
1515
let work _ x =
1616
let tx1 ~xt =
1717
let a = Xt.get ~xt a in
@@ -41,7 +41,7 @@ let run_one ~budgetf ~n_domains ?(n_ops = 50 * Util.iter_factor) () =
4141
Printf.sprintf "%d worker%s" n_domains (if n_domains = 1 then "" else "s")
4242
in
4343

44-
Times.record ~budgetf ~n_domains ~init ~work ~after ()
44+
Times.record ~budgetf ~n_domains ~init ~wrap ~work ~after ()
4545
|> Times.to_thruput_metrics ~n:n_ops ~singular:"transaction" ~config
4646

4747
let run_suite ~budgetf =

bench/bench_queue.ml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,10 @@ let run_one_domain ~budgetf ?(n_msgs = 50 * Util.iter_factor) () =
1010
assert (Queue.is_empty t);
1111
Util.generate_push_and_pop_sequence n_msgs
1212
in
13+
let wrap _ _ action = Scheduler.run action in
1314
let work _ bits = Util.Bits.iter op bits in
1415

15-
Times.record ~budgetf ~n_domains:1 ~init ~work ()
16+
Times.record ~budgetf ~n_domains:1 ~init ~wrap ~work ()
1617
|> Times.to_thruput_metrics ~n:n_msgs ~singular:"message" ~config:"one domain"
1718

1819
let run_one ~budgetf ?(n_adders = 2) ?(blocking_add = false) ?(n_takers = 2)
@@ -29,6 +30,7 @@ let run_one ~budgetf ?(n_adders = 2) ?(blocking_add = false) ?(n_takers = 2)
2930
Atomic.set n_msgs_to_take n_msgs;
3031
Atomic.set n_msgs_to_add n_msgs
3132
in
33+
let wrap _ _ action = Scheduler.run action in
3234
let work i () =
3335
if i < n_adders then
3436
let rec work () =
@@ -79,7 +81,7 @@ let run_one ~budgetf ?(n_adders = 2) ?(blocking_add = false) ?(n_takers = 2)
7981
(format "taker" blocking_take n_takers)
8082
in
8183

82-
Times.record ~budgetf ~n_domains ~init ~work ()
84+
Times.record ~budgetf ~n_domains ~init ~wrap ~work ()
8385
|> Times.to_thruput_metrics ~n:n_msgs ~singular:"message" ~config
8486

8587
let run_suite ~budgetf =

bench/bench_stack.ml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,10 @@ let run_one_domain ~budgetf ?(n_msgs = 50 * Util.iter_factor) () =
1010
assert (Stack.is_empty t);
1111
Util.generate_push_and_pop_sequence n_msgs
1212
in
13+
let wrap _ _ action = Scheduler.run action in
1314
let work _ bits = Util.Bits.iter op bits in
1415

15-
Times.record ~budgetf ~n_domains:1 ~init ~work ()
16+
Times.record ~budgetf ~n_domains:1 ~init ~wrap ~work ()
1617
|> Times.to_thruput_metrics ~n:n_msgs ~singular:"message" ~config:"one domain"
1718

1819
let run_one ~budgetf ?(n_adders = 2) ?(blocking_add = false) ?(n_takers = 2)
@@ -29,6 +30,7 @@ let run_one ~budgetf ?(n_adders = 2) ?(blocking_add = false) ?(n_takers = 2)
2930
Atomic.set n_msgs_to_take n_msgs;
3031
Atomic.set n_msgs_to_add n_msgs
3132
in
33+
let wrap _ _ action = Scheduler.run action in
3234
let work i () =
3335
if i < n_adders then
3436
let rec work () =
@@ -79,7 +81,7 @@ let run_one ~budgetf ?(n_adders = 2) ?(blocking_add = false) ?(n_takers = 2)
7981
(format "taker" blocking_take n_takers)
8082
in
8183

82-
Times.record ~budgetf ~n_domains ~init ~work ()
84+
Times.record ~budgetf ~n_domains ~init ~wrap ~work ()
8385
|> Times.to_thruput_metrics ~n:n_msgs ~singular:"message" ~config
8486

8587
let run_suite ~budgetf =

bench/bench_xt.ml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ let run_one ~budgetf ?(n_locs = 2)
1515
in
1616

1717
let init _ = () in
18+
let wrap _ _ action = Scheduler.run action in
1819
let work _ () =
1920
let rec loop i =
2021
if i > 0 then begin
@@ -27,7 +28,7 @@ let run_one ~budgetf ?(n_locs = 2)
2728

2829
let config = Printf.sprintf "%d loc tx" n_locs in
2930

30-
Times.record ~budgetf ~n_domains:1 ~init ~work ()
31+
Times.record ~budgetf ~n_domains:1 ~init ~wrap ~work ()
3132
|> Times.to_thruput_metrics ~n:n_iter ~singular:"transaction" ~config
3233

3334
let run_suite ~budgetf =

bench/bench_xt_ro.ml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ let run_one ~budgetf ?(n_locs = 2)
1515
in
1616

1717
let init _ = () in
18+
let wrap _ _ action = Scheduler.run action in
1819
let work _ () =
1920
let rec loop i =
2021
if i > 0 then begin
@@ -27,7 +28,7 @@ let run_one ~budgetf ?(n_locs = 2)
2728

2829
let config = Printf.sprintf "%d loc tx" n_locs in
2930

30-
Times.record ~budgetf ~n_domains:1 ~init ~work ()
31+
Times.record ~budgetf ~n_domains:1 ~init ~wrap ~work ()
3132
|> Times.to_thruput_metrics ~n:n_iter ~singular:"transaction" ~config
3233

3334
let run_suite ~budgetf =

bench/dune

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ let () =
1414
(action
1515
(run %{test} -brief))
1616
(libraries
17+
scheduler
1718
kcas_data
1819
multicore-bench
1920
backoff

doc/dune

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,4 @@
55
(package kcas_data))
66
(enabled_if
77
(>= %{ocaml_version} 5.0.0))
8-
(files gkmz-with-read-only-cmp-ops.md scheduler-interop.md))
8+
(files gkmz-with-read-only-cmp-ops.md))

doc/scheduler-interop.md

Lines changed: 0 additions & 178 deletions
This file was deleted.

dune

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
(mdx
2-
(package kcas_data)
3-
(deps
4-
(package kcas)
5-
(package kcas_data))
6-
(libraries domain_shims)
7-
(files README.md))
1+
;(mdx
2+
; (package kcas_data)
3+
; (deps
4+
; (package kcas)
5+
; (package kcas_data))
6+
; (libraries domain_shims)
7+
; (files README.md))

0 commit comments

Comments
 (0)