aboutsummaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
Diffstat (limited to 'arch')
-rwxr-xr-xarch/riscv64/conf/initbin3600 -> 3648 bytes
-rw-r--r--arch/riscv64/conf/init.c7
-rw-r--r--arch/riscv64/conf/initrdbin4096 -> 4096 bytes
3 files changed, 6 insertions, 1 deletions
diff --git a/arch/riscv64/conf/init b/arch/riscv64/conf/init
index c77c048..76de753 100755
--- a/arch/riscv64/conf/init
+++ b/arch/riscv64/conf/init
Binary files differ
diff --git a/arch/riscv64/conf/init.c b/arch/riscv64/conf/init.c
index b2f4024..8177992 100644
--- a/arch/riscv64/conf/init.c
+++ b/arch/riscv64/conf/init.c
@@ -256,6 +256,8 @@ void callback(long status, long tid, long d0, long d1, long d2, long d3)
#define csr_read(csr, \
res) __asm__ volatile ("csrr %0, " csr : "=r" (res) :: "memory")
+#define CSR_CYCLE "0xc00"
+
void _start()
{
sys_noop();
@@ -264,17 +266,20 @@ void _start()
uint64_t second = sys_timebase();
print_value("Timebase", second);
- uint64_t n = 0, i, start;
+ uint64_t n = 0, i, start, cn, cstart, cend;
start = i = sys_ticks();
print_value("Start ticks", start);
+ csr_read(CSR_CYCLE, cstart);
while (i < start + second) {
i = sys_ticks();
n++;
}
+ csr_read(CSR_CYCLE, cend);
print_value("End ticks", i);
print_value("Syscalls per second", n);
+ print_value("Executed cycles per second", cend - cstart);
puts("Setting callback...");
sys_ipc_server(callback);
diff --git a/arch/riscv64/conf/initrd b/arch/riscv64/conf/initrd
index fb6f525..e4d76a2 100644
--- a/arch/riscv64/conf/initrd
+++ b/arch/riscv64/conf/initrd
Binary files differ