{"type":"rich","version":"1.0","provider_name":"Transistor","provider_url":"https://transistor.fm","author_name":"Oxide and Friends","title":"Virtualizing Time","html":"<iframe width=\"100%\" height=\"180\" frameborder=\"no\" scrolling=\"no\" seamless src=\"https://share.transistor.fm/e/b6e4f21a\"></iframe>","width":"100%","height":180,"duration":3938,"description":"Jordan Hendricks joined Bryan and Adam to talk about her work virtualizing time--particularly challenging when migrating virtual machines from one physical machine to another!\nWe've been hosting a live show weekly on Mondays at 5p for about an hour, and recording them all; here is the recording from June 12th, 2023.\nIn addition to Bryan Cantrill and Adam Leventhal, we were joined by Oxide colleague Jordan Hendricks.\nThe (lightly edited) live chat from the show:\nDanCrossNYC: The TSC ticks at a fixed rate now days, regardless of voltage scaling on the CPU.\njbk: just x86 doesn't provide a consistent want to determine what the rate is\njbk: (I guess some chips will tell you via CPUID, but I've yet to actually encounter such chips)\njbk: some hypervisors will tell you via an MSR\nzorg24: Looks the Linux kernel docs have some documentation on the x86 TSC and PIT https://www.kernel.org/doc/html/next/virt/kvm/x86/timekeeping.html\nDanCrossNYC: CPUID or an MSR, but yeah, most systems sample over a fixed interval (determined by another time source) to figure it out.\njbk: no, versus some other present component that allows you to measure the frequency\nDanCrossNYC: No, the PIT or HPET or something.\njbk: https://src.illumos.org/source/xref/illumos-gate/usr/src/uts/i86pc/os/tscc_pit.c?r=236cb9a8\njbk: is how it uses the PIT\njbk: (the HPET code needs to improve it's accuracy, so it's only used when the PIT isn't there at the moment)\njbk: some Intel NUCs have no PIT\njbk: so HPET is the only option\nbcantrill: https://github.com/illumos/illumos-gate/commit/717646f7112314de3f464bc0b75f034f009c861e\nDanCrossNYC: Two big ones: system maintenance without disturbing guest workloads, and also load balancing across a rack.\n\"Sevan: ah, thanks.\nhttps://github.com/illumos/illumos-gate/blob/717646f7112314de3f464bc0b75f034f009c861e/usr/src/test/bhyve-tests/tests/common/common.c#L166\"\nbcantrill: https://github.com/oxidecomputer/tsc-simulator/tree/master\nDanCrossNYC: The guest may well be running NTP...","thumbnail_url":"https://img.transistorcdn.com/cVYTzMGAZ_7gNn2i7iJYSuWlQOM4wHdJAzEuWrnLo9A/rs:fill:0:0:1/w:400/h:400/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS80OGI3/NjA5NWY4Yjc4NzE0/ZGI5ZmMzZmY4MjFi/YThiYy5wbmc.webp","thumbnail_width":300,"thumbnail_height":300}