While investigating on cache attacks against x86 Intel processors, I fail to understand why clflush is an unprivileged instruction.
The only use case of clflush I can think of is to flush the previous cache contents before a context switch. But then again, context switches are performed by the OS, which means it wouldn't have any problem even if clflush was a privileged instruction.
So my question is:
Why is clflush an unprivileged instruction? Are there any use cases where it must be unprivileged?