Zachary Amsden wrote:> Jeremy Fitzhardinge wrote:
>> Zachary Amsden wrote:
>>> I removed sync_core from paravirt ops (it is always a raw cpuid in
>>> all cases). I didn't want to touch Jeremy's patch 020 and
cause
>>> sync problems for him, so I haven't removed it there.
>> It wouldn't necessarily be cpuid on an hvm guest.
>
> Yes, CPUID could be more heavyweight there, but do you anticipate it
> moving into any fast paths?
>
> And why do you need a serialization barrier at all? Speculative
> execution is only dangerous if you have potential conflicting memory
> types such that you can cache and then writeback regions of memory
> which should be uncached. But that is a bug anyway, and should be
> fixed up by properly setting the MTRRs for I/O space. Or workarounds
> for processor bugs. The only real user (other than this patch) is the
> Intel microcode update driver. Memory serialization is sufficient in
> all other cases on x86.
One could imagine someone wanting to use it in a timing loop or
something, and a 100x or 1000x slowdown might ruin their day.
But it's not really all that important. I don't really see a good
reason to not have a separate sync_core operation, but we can always add
it later if needed.
The bigger immediate issue is that we seem to be having an emerging
tools compatibility problem; all those Index: lines you added will get
removed when I refresh the patch. I'm using the mercurial mq extension,
as is Rusty, and Chris is using a combination of mq and quilt. What are
you using? Why can't it deal with the patches?
J