On Wed, May 18, 2022, Vitaly Kuznetsov wrote:
Sean Christopherson [off-list ref] writes:
quoted
On Wed, May 18, 2022, Vitaly Kuznetsov wrote:
quoted
Maxim Levitsky [off-list ref] writes:
quoted
Or if using kfifo, then it can contain plain u64 items, which is even more natural.
In the next version I switch to fifo and get rid of 'flush_all' entries
but instead of a boolean I use a 'magic' value of '-1' in GVA. This way
we don't need to synchronize with the reader and add any special
handling for the flag.
Isn't -1 theoretically possible? Or is wrapping not allowed? E.g. requesting a
flush for address=0xfffffffffffff000, count = 0xfff will yield -1 and doesn't
create any illegal addresses in the process.
Such an error would just lead to KVM flushing the whole guest address
space instead of flushing 4096 pages starting with 0xfffffffffffff000
but over-flushing is always architecturally correct, isn't it?
Oh, duh. Yeah, flushing everything is totally ok. Maybe just add a comment above
the #define for the magic value calling out that corner case and why it's ok?