1. A method, comprising: detecting, by a processing device executing a hypervisor on a host machine, a protection fault at the hypervisor, the protection fault caused by a guest of the hypervisor attempting to write to an address marked as valid and read-only in a host page table entry at the hypervisor, the address associated with memory-mapped input-output (MMIO) for a virtual device of the guest; referencing, by the processing device, a MMIO data structure of the hypervisor with the address that caused the protection fault; identifying, by the processing device, the virtual device and a MMIO-based instruction mapped to the address in the MMIO data structure at the hypervisor; and executing, by the processing device, the MMIO instruction at the hypervisor on behalf of the guest.