<div dir="ltr">Hi.<div><br></div><div>When there is not enough memory for QXL driver, it will send a OOM message to spice sever to release some memory. And then the function handle_dev_oom, which in server/red_worker.c will be called. In this function, there is a line of code: worker->qxl->st->qif->flush_resources(worker->qxl), which called the function interface_flush_resources(QXLInstance *sin), which in the hw/qxl.c (qemu's code). And finally call qxl_push_free_res to flush all QXLPCIDevice, which set the dirty flag to whole memory.</div><div><br></div><div>I'm wonder that I just release a part of memory, but why set all memory to dirty? That means flush a whole memory?  Could anyone tell me the mechanism of it? Thanks :)</div></div>