Mark Kettenis wrote:
> But maybe the default rdtsc() should include the lfence. And then we
> could have rdtsc_unordered() for this cases that don't care about
> ordering.
Right.
But I don't like the word 'order', because it is too vague. There
are layers of ordering, speculation, asyncronous
> Date: Sun, 21 Jun 2020 16:55:56 +0100
> From: Stuart Henderson
>
> On 2020/06/21 18:46, Paul Irofti wrote:
> >
> >
> > În 21 iunie 2020 16:30:43 EEST, Theo de Raadt a scris:
> > >Paul Irofti wrote:
> > >
> > >> If you change the name to rdtsc_ordered(), OK.
> > >
> > >That is a weaker name.
On Sun, Jun 21, 2020 at 04:55:56PM +0100, Stuart Henderson wrote:
> On 2020/06/21 18:46, Paul Irofti wrote:
> >
> >
> > În 21 iunie 2020 16:30:43 EEST, Theo de Raadt a scris:
> > >Paul Irofti wrote:
> > >
> > >> If you change the name to rdtsc_ordered(), OK.
> > >
> > >That is a weaker name.
>
> From: "Theo de Raadt"
> Date: Sun, 21 Jun 2020 07:30:43 -0600
>
> Paul Irofti wrote:
>
> > If you change the name to rdtsc_ordered(), OK.
>
> That is a weaker name.
>
> Ordered in what way, at what level; ordered against what?
>
> This is using a specific pipeline ordering known as lfence.
On 2020/06/21 18:46, Paul Irofti wrote:
>
>
> În 21 iunie 2020 16:30:43 EEST, Theo de Raadt a scris:
> >Paul Irofti wrote:
> >
> >> If you change the name to rdtsc_ordered(), OK.
> >
> >That is a weaker name.
> >
> >Ordered in what way, at what level; ordered against what?
> >
> >This is using
În 21 iunie 2020 16:30:43 EEST, Theo de Raadt a scris:
>Paul Irofti wrote:
>
>> If you change the name to rdtsc_ordered(), OK.
>
>That is a weaker name.
>
>Ordered in what way, at what level; ordered against what?
>
>This is using a specific pipeline ordering known as lfence.
>So it might as w
Paul Irofti wrote:
> If you change the name to rdtsc_ordered(), OK.
That is a weaker name.
Ordered in what way, at what level; ordered against what?
This is using a specific pipeline ordering known as lfence.
So it might as well say lfence. That is the technical name for
that type of ordering
it definitely got better:
cpu0: TSC skew=0 observed drift=0
cpu0: TSC skew=0 observed drift=0
cpu1: TSC skew=51 observed drift=0
cpu2: TSC skew=68 observed drift=0
cpu3: TSC skew=68 observed drift=0
cpu4: TSC skew=0 observed drift=0
cpu5: TSC skew=0 observed drift=0
cpu6: TSC skew=85 observed drif
On Sat, Jun 20, 2020 at 10:02:19PM +0200, Mark Kettenis wrote:
> RDTSC is not a serializing instruction; to make sure we get the TSC
> value corresponding to the position of RDTSC in te instruction stream
> we need a barrier. Linux uses LFENCE on machines where it is
> available. FreeBSD seems to
RDTSC is not a serializing instruction; to make sure we get the TSC
value corresponding to the position of RDTSC in te instruction stream
we need a barrier. Linux uses LFENCE on machines where it is
available. FreeBSD seems to prefer MFENCE for AMD CPUs but uses
LFENCE for Intel CPUs. For now my
10 matches
Mail list logo