3 ms·
Usually they break rr by either blocking access to the hardware PMU entirely (e.g. on AWS, any instance that shares a CPU socket with other instances; on Azure/
by roca 6y ago
Usually they break rr by either blocking access to the hardware PMU entirely (e.g. on AWS, any instance that shares a CPU socket with other instances; on Azure/GCP, everywhere AFAIK), or by introducing subtle errors into the virtualized performance counter values that rr depends on (e.g. VMWare: https://robert.ocallahan.org/2015/11/rr-in-vmware-solved.html https://robert.ocallahan.org/2015/11/rr-in-vmware-solved.htm..., Xen: https://lists.xen.org/archives/html/xen-devel/2017-07/msg02242.html https://lists.xen.org/archives/html/xen-devel/2017-07/msg022...).
Another feature rr benefits from is CPUID faulting, which is not virtualized by any of the major cloud providers (though Linux KVM does virtualize it): https://patchwork.kernel.org/project/kvm/patch/20161101013749.4003-8-khuey@kylehuey.com/ https://patchwork.kernel.org/project/kvm/patch/2016110101374.... That'd be "nice to have" but we can live without it.