[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v1 1/4] xen/riscv: introduce preinit_xen_time()
On 24.03.2025 16:29, Oleksii Kurochko wrote: > > On 3/20/25 8:36 AM, Jan Beulich wrote: >> On 19.03.2025 18:29, Oleksii Kurochko wrote: >>> On 3/17/25 4:24 PM, Jan Beulich wrote: >>>> On 11.03.2025 17:19, Oleksii Kurochko wrote: >>>>> --- /dev/null >>>>> +++ b/xen/arch/riscv/time.c >>>>> @@ -0,0 +1,38 @@ >>>>> +#include <xen/device_tree.h> >>>>> +#include <xen/init.h> >>>>> +#include <xen/lib.h> >>>>> +#include <xen/sections.h> >>>>> + >>>>> +unsigned long __ro_after_init cpu_khz; /* CPU clock frequency in kHz. */ >>>>> +unsigned long __read_mostly boot_count; >>>> Why not also __ro_after_init? And what is this variable actually needed >>>> for? Common code doesn't use it, so a better name (describing what it >>>> really holds) might be desirable, even if this then means not being in >>>> sync with Arm code. >>> To calculate more accurate amount of time since boot. >> Okay. But how does the name of the variable reflect that? I.e. what it >> is that the count of is being stored? The only meaning I could associate >> to a variable of this name is the number of boot cycles a system went >> through. I.e. nothing that an OS (or hypervisor) would normally count. > > But an OS (or hypervisor) doesn't count it, they initialize a variable > once (in my case, it was named as boot_count) and then just subtract it from > get_cycles() to get time relative to this variable (so since Xen boot) and not > since power on as nothing guarantee (at least, I can't find that in the > RISC-V spec) > that after power on the value in CSR_TIME will start from 0 what could lead to > some issues, if my understanding is correct, such as if on SoC A timer starts > from > let it be 1000 and on SoC B timer value starts from 5000 then all > measurements will be > incorrect as Xen will think that for SoC B it was spent more time then for > SoC A. > > What do you think if boot_count will be renamed to xen_start_time or > {initial_}boot_time? Something like that, yes. Whether "time" in there is unambiguous enough I'm not sure. "cycles" or "clock_cycles" or some such may help. I don't really want to restrict you in what name you choose, just so long as the name reflects the purpose in good enough a way. Jan
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |