Message ID | 20210901211412.4171835-6-rananta@google.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | KVM: arm64: selftests: Introduce arch_timer selftest | expand |
On Wed, Sep 01, 2021 at 09:14:05PM +0000, Raghavendra Rao Ananta wrote: > Add udelay() support to generate a delay in the guest. > > The routines are derived and simplified from kernel's > arch/arm64/lib/delay.c. > > Signed-off-by: Raghavendra Rao Ananta <rananta@google.com> > --- > .../selftests/kvm/include/aarch64/delay.h | 25 +++++++++++++++++++ > 1 file changed, 25 insertions(+) > create mode 100644 tools/testing/selftests/kvm/include/aarch64/delay.h > Reviewed-by: Andrew Jones <drjones@redhat.com>
On Wed, Sep 1, 2021 at 2:14 PM Raghavendra Rao Ananta <rananta@google.com> wrote: > > Add udelay() support to generate a delay in the guest. > > The routines are derived and simplified from kernel's > arch/arm64/lib/delay.c. > > Signed-off-by: Raghavendra Rao Ananta <rananta@google.com> > --- > .../selftests/kvm/include/aarch64/delay.h | 25 +++++++++++++++++++ > 1 file changed, 25 insertions(+) > create mode 100644 tools/testing/selftests/kvm/include/aarch64/delay.h > Reviewed-by: Oliver Upton <oupton@google.com>
diff --git a/tools/testing/selftests/kvm/include/aarch64/delay.h b/tools/testing/selftests/kvm/include/aarch64/delay.h new file mode 100644 index 000000000000..329e4f5079ea --- /dev/null +++ b/tools/testing/selftests/kvm/include/aarch64/delay.h @@ -0,0 +1,25 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +/* + * ARM simple delay routines + */ + +#ifndef SELFTEST_KVM_ARM_DELAY_H +#define SELFTEST_KVM_ARM_DELAY_H + +#include "arch_timer.h" + +static inline void __delay(uint64_t cycles) +{ + enum arch_timer timer = VIRTUAL; + uint64_t start = timer_get_cntct(timer); + + while ((timer_get_cntct(timer) - start) < cycles) + cpu_relax(); +} + +static inline void udelay(unsigned long usec) +{ + __delay(usec_to_cycles(usec)); +} + +#endif /* SELFTEST_KVM_ARM_DELAY_H */
Add udelay() support to generate a delay in the guest. The routines are derived and simplified from kernel's arch/arm64/lib/delay.c. Signed-off-by: Raghavendra Rao Ananta <rananta@google.com> --- .../selftests/kvm/include/aarch64/delay.h | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 tools/testing/selftests/kvm/include/aarch64/delay.h