@@ -2,26 +2,27 @@ open Multicore_bench
2
2
open Picos_stdio
3
3
4
4
let run_one ~budgetf ~block_or_nonblock ~n_domains () =
5
- let n_bytes =
6
- match block_or_nonblock with `Block -> 4096 | `Nonblock -> 65536
7
- in
5
+ let block_size = 4096 in
6
+ let n_blocks = match block_or_nonblock with `Block -> 1 | `Nonblock -> 16 in
8
7
9
8
let init _ =
10
9
let inn, out = Unix. pipe ~cloexec: true () in
11
- (inn, out, Bytes. create 1 )
10
+ (inn, out, Bytes. create block_size, Bytes. create 1 )
12
11
in
13
12
let wrap _ _ = Scheduler. run in
14
- let work _ (inn , out , byte ) =
13
+ let work _ (inn , out , block , byte ) =
15
14
begin
16
15
match block_or_nonblock with
17
16
| `Block -> ()
18
17
| `Nonblock -> Unix. set_nonblock inn
19
18
end ;
20
- let n = Unix. write out (Bytes. create n_bytes) 0 n_bytes in
21
- assert (n = n_bytes);
22
- for _ = 1 to n_bytes do
23
- let n : int = Unix. read inn byte 0 1 in
24
- assert (n = 1 )
19
+ for _ = 1 to n_blocks do
20
+ let n = Unix. write out block 0 block_size in
21
+ assert (n = block_size);
22
+ for _ = 1 to block_size do
23
+ let n : int = Unix. read inn byte 0 1 in
24
+ assert (n = 1 )
25
+ done
25
26
done ;
26
27
Unix. close inn;
27
28
Unix. close out
@@ -39,7 +40,9 @@ let run_one ~budgetf ~block_or_nonblock ~n_domains () =
39
40
| `Block -> " blocking read"
40
41
| `Nonblock -> " non-blocking read"
41
42
in
42
- Times. to_thruput_metrics ~n: (n_bytes * n_domains) ~singular ~config times
43
+ Times. to_thruput_metrics
44
+ ~n: (block_size * n_blocks * n_domains)
45
+ ~singular ~config times
43
46
44
47
let run_suite ~budgetf =
45
48
Util. cross [ `Nonblock ; `Block ] [ 1 ; 2 ; 4 ]
0 commit comments