[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v7 1/5] x86: allow reading MSR_IA32_TSC with XENPF_resource_op
>>> On 27.01.15 at 07:13, <chao.p.peng@xxxxxxxxxxxxxxx> wrote: > Memory bandwidth monitoring requires system time information returned > along with the monitoring counter to verify the correctness of the > counter value and to calculate the time elapsed between two samplings. > > Add MSR_IA32_TSC to the read path and it returns scaled system time(ns) > instead of raw timestamp to elimanate the needs to convert. The return > time is obfuscated with booting random to eliminate the potential abuse > of it. RESOURCE_ACCESS_MAX_ENTRIES is also increased to 3 so MSR_IA32_TSC > can be used. ... together with an MSR write/read operation pair. > @@ -133,10 +135,39 @@ static void resource_access(void *info) > switch ( entry->u.cmd ) > { > case XEN_RESOURCE_OP_MSR_READ: > - ret = rdmsr_safe(entry->idx, entry->val); > + if ( unlikely(entry->idx == MSR_IA32_TSC) ) > + { > + /* Return obfuscated scaled time instead of raw timestamp */ > + entry->val = get_s_time_fixed(tsc) + boot_random; I think obfuscating the low 32 bits is pretty pointless. I'd rather see you use SECONDS(boot_random) here, or even SECONDS(boot_random) [-+^] boot_random. Jan _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |