226 Commits

Author SHA1 Message Date
a90768c1d4 Add partial support for the breakdown model
For now only Runtime and Task breakdown trees are implemented. The Idle
state is not decomposed.
2023-04-06 15:33:15 +00:00
6b8099b6af Make the emulator extensible 2023-04-06 15:33:15 +00:00
35872354e0 Speedup the sort module
Improvements:

- Don't propagate values if they didn't change
- Use custom sort algorithm to speedup the sorting
- Allocate a contiguous array of channel outputs
2023-04-06 15:33:15 +00:00
1909d8106c Allow the select channel as input in a mux
Required to implement the tr channel in the breakdown model. See
https://pm.bsc.es/gitlab/rarias/ovni/-/issues/101
2023-04-06 15:33:15 +00:00
c624374cc8 Allow mux to specify the default value
Will be written to the output when the selection function returns NULL
as the selected input.
2023-04-06 15:33:15 +00:00
920866d8af Print remaining time with 0.1 second precision 2023-04-06 15:33:15 +00:00
4b053b9a38 Clear average line and increase elapsed precision 2023-04-06 15:33:15 +00:00
4f440c5104 Add some debug messages 2023-04-06 15:33:15 +00:00
f3bcdeccd1 Move chan_read() to a inline function in chan.h 2023-04-06 15:33:15 +00:00
43fa556fa9 Enable debug messages with -d
Allows the user to easily enable debug messages, which are the only way
to debug problems with channels.
2023-04-06 15:33:15 +00:00
31f24a2a55 Add breakdown option 2023-04-06 15:33:15 +00:00
029e185c6c Reserve first 1000 values for states
The task type hash starts at 1000, so we don't collide with states.
2023-04-06 15:33:15 +00:00
70b29b6459 Add sort channel module
Sorts the N input values and writes them in the N outputs in order.
2023-04-06 15:33:15 +00:00
a4ce0e2a1e Add Idle view in Nanos6 2023-04-06 15:33:15 +00:00
5c5f9f0f1a Use int64_t to represent the offset
Using size_t causes undefined behavior when the number is negative.
2023-04-05 12:47:36 +02:00
34a823f36d Fix ovnisort check operation
The stream_step() function will return 1 when reaching the end of the
stream, making the check return non-zero in each stream, even if all the
events have a monotonically increasing clock.
2023-03-24 12:08:45 +00:00
3d8e2000fd Don't use err() for non-error messages 2023-03-24 12:08:45 +00:00
f35741bac7 Allow setting the lock back limit in ovnisort 2023-03-24 12:08:45 +00:00
d86d5fec5f Fix overflow error for value_nextbuf 2023-03-24 12:08:45 +00:00
7f63d1e048 Remove unused thread_select_any() function 2023-03-24 12:08:45 +00:00
0041738578 Add optimization comment in stream_cmp 2023-03-24 12:08:45 +00:00
266b1638d4 Count the number of physical CPUs too 2023-03-24 12:08:45 +00:00
2c09e40c44 Use info() for information messages
Prefix err() messages with "ERROR:" too.
2023-03-24 12:08:45 +00:00
76efd7c216 Add FIXME notice in mux select chan_dirty() 2023-03-24 12:08:45 +00:00
ddbb7dd9f4 Add include-what-you-use
Adds forwards declarations in headers and includes all headers in
sources, even if they are found by transitive includes.
2023-03-24 12:08:45 +00:00
e471df9c1a Add ovniemu version 2023-03-24 12:08:45 +00:00
740d8b0d4b Only allow one rank per host in ovnisync 2023-03-24 12:08:45 +00:00
f22d9084ba Ensure all looms have at least one CPU 2023-03-24 12:08:45 +00:00
3d957f444c Only ignore clock table on ENOENT 2023-03-24 12:08:45 +00:00
648411c686 Remove trailing new line in err() and die() 2023-03-24 12:08:45 +00:00
3f44be9f2f Include path.h for loom.c 2023-03-24 12:08:45 +00:00
91957b4ed6 Remove commented code in loom.c 2023-03-24 12:08:45 +00:00
9a0d0df33d Use path_has_prefix in loom.c 2023-03-24 12:08:45 +00:00
7772541f7d Remove commented code in emu_stat.c 2023-03-24 12:08:45 +00:00
ad88e25278 Remove track mode argument from cpu_get_th_chan() 2023-03-24 12:08:45 +00:00
9a4a4a0005 Remove bay_remove() 2023-03-24 12:08:45 +00:00
5a03fd49e9 Remove function prefix from err() 2023-03-24 12:08:45 +00:00
9cb752e102 Emit warning when cfg directory exists 2023-03-24 12:08:45 +00:00
2e91d29ae9 Check fwrite return value 2023-03-24 12:08:45 +00:00
9304e84262 Fix spaces in ovni/setup.c 2023-03-24 12:08:45 +00:00
2be46393e1 Merge process_ev into model_ovni_event 2023-03-24 12:08:45 +00:00
06c250500c Warn when median burst time exceeds 100 ns 2023-03-24 12:08:45 +00:00
7b0d446b02 Add payload size checks for affinity events 2023-03-24 12:08:45 +00:00
9b209fab20 Remove spaces from kernel/setup.c 2023-03-24 12:08:45 +00:00
5556c521a0 Simplify context switch logic 2023-03-24 12:08:45 +00:00
74f253b575 Ignore Nanos6 progress events 2023-03-24 12:08:45 +00:00
96cfd6247e Remove switch in prv emit 2023-03-24 12:08:45 +00:00
9de0b18db2 Merge is_dup condition 2023-03-24 12:08:45 +00:00
38ebc3afce Protect return value with USE_RET 2023-03-24 12:08:45 +00:00
9572d79f72 Remove PRV_SKIPNULL flag 2023-03-24 12:08:45 +00:00