RE: [PATCH v4 1/2] RISC-V: Probe for unaligned access speed

From: David Laight
Date: Thu Sep 14 2023 - 04:47:08 EST


From: Geert Uytterhoeven
> Sent: 14 September 2023 08:33
...
> > > rzfive:
> > > cpu0: Ratio of byte access time to unaligned word access is
> > > 1.05, unaligned accesses are fast
> >
> > Hrm, I'm a little surprised to be seeing this number come out so close
> > to 1. If you reboot a few times, what kind of variance do you get on
> > this?
>
> Rock-solid at 1.05 (even with increased resolution: 1.05853 on 3 tries)

Would that match zero overhead unless the access crosses a
cache line boundary?
(I can't remember whether the test is using increasing addresses.)

...
> > > vexriscv/orangecrab:
> > >
> > > cpu0: Ratio of byte access time to unaligned word access is
> > > 0.00, unaligned accesses are slow
>
> cpu0: Ratio of byte access time to unaligned word access is 0.00417,
> unaligned accesses are slow
>
> > > I am a bit surprised by the near-zero values. Are these expected?
> >
> > This could be expected, if firmware is trapping the unaligned accesses
> > and coming out >100x slower than a native access. If you're interested
> > in getting a little more resolution, you could try to print a few more
> > decimal places with something like (sorry gmail mangles the whitespace
> > on this):

I'd expect one of three possible values:
- 1.0x: Basically zero cost except for cache line/page boundaries.
- ~2: Hardware does two reads and merges the values.
- >100: Trap fixed up in software.

I'd think the '2' case could be considered fast.
You only need to time one access to see if it was a fault.

David

-
Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK
Registration No: 1397386 (Wales)