summary refs log tree commit diff stats
path: root/results/classifier/gemma3:12b/performance/1783422
blob: 8d2d75d542cbbc1b98466bb57ebf3b03f41bd39a (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
qemu_clock_get_ns does not take into account icount_time_shift

Hello,

If you check the qemu/util/qemu-timer.c you will find the following function:

597: int64_t qemu_clock_get_ns(QEMUClockType type)
598: {
....
602:    switch (type) {
....
606:    case QEMU_CLOCK_VIRTUAL:
607:        if (use_icount) {
608:            return cpu_get_icount(); 


Now on line 606, in case we requested QEMU_CLOCK_VIRTUAL, and we are using icount, the value of cpu_get_icount(); will be returned.

However if I understand correctly, in order to convert icount to ns, you must use take into account the icount shift -- as defined in the documentation: "The virtual cpu will execute one instruction every 2^N ns of virtual time.".

Therefor, the correct value to return would be cpu_icount_to_ns(cpu_get_icount()), where cpu_icount_to_ns is defined in cpus.c:

296: int64_t cpu_icount_to_ns(int64_t icount)
297: {
298:    return icount << icount_time_shift;
299: }

Best Regards,
Humberto "SilverOne" Carvalho