HomeFreeBSD

Work around a bug in Linux KVM: the ability to unset referenced and changed

Description

Work around a bug in Linux KVM: the ability to unset referenced and changed
bits in the page table doesn't exist despite these hypervisor calls being
mandatory.

To "fix" this, when asked to clear the bits, don't clear them and don't
return the reference bit. This makes swap work at the expense of performance.
It also results in pmap_ts_referenced() sometimes returning zero when the
page has in fact been referenced. It is not clear to me whether this creates
a problem beyond performance.

In addition to adding a large warning banner if this issue is detected,
I've sent a bug report to the PowerPC KVM list.

Details

Provenance
nwhitehornAuthored on
Parents
rS278943: Don't set the write bit if we're just reading.
Branches
Unknown
Tags
Unknown

Event Timeline