public inbox for kvm@vger.kernel.org
 help / color / mirror / Atom feed
* Re: Use of barriers in pvclock ABI
       [not found] ` <489FE56E.1080707@redhat.com>
@ 2008-08-11 14:15   ` Avi Kivity
       [not found]   ` <5d6222a80808110718i6a600858v7bdb5e08054ebefa@mail.gmail.com>
  1 sibling, 0 replies; 2+ messages in thread
From: Avi Kivity @ 2008-08-11 14:15 UTC (permalink / raw)
  To: Gerd Hoffmann
  Cc: Jeremy Fitzhardinge, Glauber de Oliveira Costa, Marcelo Tosatti,
	Linux Kernel Mailing List, kvm-devel

Gerd Hoffmann wrote:
>   Hi,
>
>   
>> However, the pvclock_clocksource_read() implementation is
>> over-engineered, because it checks for an odd version and uses very
>> strong rmb() barriers (which generates either an "lfence" or "lock add
>> $0, (%esp)").
>>
>> If we're happy to guarantee as an ABI issue that the record will never
>> be updated cross-cpu, then we can make the barriers simply barrier() and
>> just check for (src->version != dst->version).
>>
>> Is that OK with you, or do you want to leave open the possibility of
>> doing cross-cpu time updates?
>>     
>
> Due to the TSC being involved here I don't expect cross-cpu time updates
> will ever happen.  IMHO it is fine to change that.
>
>   

I agree.  And if we ever feel the need, we can allocate a feature bit 
for it.

-- 
error compiling committee.c: too many arguments to function

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: Use of barriers in pvclock ABI
       [not found]   ` <5d6222a80808110718i6a600858v7bdb5e08054ebefa@mail.gmail.com>
@ 2008-08-11 14:35     ` Avi Kivity
  0 siblings, 0 replies; 2+ messages in thread
From: Avi Kivity @ 2008-08-11 14:35 UTC (permalink / raw)
  To: Glauber Costa
  Cc: Gerd Hoffmann, Jeremy Fitzhardinge, Marcelo Tosatti,
	Linux Kernel Mailing List, kvm-devel

Glauber Costa wrote:
> On Mon, Aug 11, 2008 at 4:08 AM, Gerd Hoffmann <kraxel@redhat.com> wrote:
>   
>>  Hi,
>>
>>     
>>> However, the pvclock_clocksource_read() implementation is
>>> over-engineered, because it checks for an odd version and uses very
>>> strong rmb() barriers (which generates either an "lfence" or "lock add
>>> $0, (%esp)").
>>>
>>> If we're happy to guarantee as an ABI issue that the record will never
>>> be updated cross-cpu, then we can make the barriers simply barrier() and
>>> just check for (src->version != dst->version).
>>>
>>> Is that OK with you, or do you want to leave open the possibility of
>>> doing cross-cpu time updates?
>>>       
>> Due to the TSC being involved here I don't expect cross-cpu time updates
>> will ever happen.  IMHO it is fine to change that.
>>     
>
> Okay for guest vcpu, but what about physical cpus?
>
>   
> IIRC, the checks are there, and so strict, to account for the
> possiblity of the vcpu to be migrated to another cpu in the middle of
> the
>   


Migration implies an smp barrier (but not a compiler barrier, of 
course).  As to the the version number oddness check, I don't see how it 
can be necessary.


-- 
error compiling committee.c: too many arguments to function


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2008-08-11 14:35 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <489CA3DA.1090400@goop.org>
     [not found] ` <489FE56E.1080707@redhat.com>
2008-08-11 14:15   ` Use of barriers in pvclock ABI Avi Kivity
     [not found]   ` <5d6222a80808110718i6a600858v7bdb5e08054ebefa@mail.gmail.com>
2008-08-11 14:35     ` Avi Kivity

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox