[Qemu-devel] [PATCH 0/5] aspeed/timer: Fix slowdowns in recent Linux

Cédric Le Goater posted 5 patches 5 years, 1 month ago
Test asan failed
Test docker-clang@ubuntu passed
Test docker-mingw@fedora failed
Test checkpatch passed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20190314084235.9887-1-clg@kaod.org
Maintainers: Peter Maydell <peter.maydell@linaro.org>, "Cédric Le Goater" <clg@kaod.org>, Joel Stanley <joel@jms.id.au>, Andrew Jeffery <andrew@aj.id.au>
include/hw/timer/aspeed_timer.h |  1 +
hw/misc/aspeed_scu.c            |  6 +++
hw/timer/aspeed_timer.c         | 81 ++++++++++++++++++++-------------
3 files changed, 57 insertions(+), 31 deletions(-)
[Qemu-devel] [PATCH 0/5] aspeed/timer: Fix slowdowns in recent Linux
Posted by Cédric Le Goater 5 years, 1 month ago
Hello,

This series was initially sent by Andrew on the OpenBMC list :

  https://lists.ozlabs.org/pipermail/openbmc/2019-January/014640.html

We had an issue with the introduction of 4451d3f59f2a
("clocksource/drivers/fttmr010: Fix set_next_event handler") in Linux
where our QEMU Aspeed machine were becoming very slow.

The series' approach is to provide back-pressure and it has shown
significant improvement on the initial behavior which became normal
again.

Sorry for this last minute fix but I think it's worth merging for all
the QEMU Aspeed machine. It's a bit late for QEMU-4.0 so that might be
4.1 material.

Thanks,

C. 

Andrew Jeffery (3):
  aspeed/timer: Status register contains reload for stopped timer
  aspeed/timer: Fix match calculations
  aspeed/timer: Provide back-pressure information for short periods

Christian Svensson (1):
  aspeed/timer: Use signed muldiv for timer resets

Joel Stanley (1):
  aspeed/timer: Fix behaviour running Linux

 include/hw/timer/aspeed_timer.h |  1 +
 hw/misc/aspeed_scu.c            |  6 +++
 hw/timer/aspeed_timer.c         | 81 ++++++++++++++++++++-------------
 3 files changed, 57 insertions(+), 31 deletions(-)

-- 
2.20.1


Re: [Qemu-devel] [PATCH 0/5] aspeed/timer: Fix slowdowns in recent Linux
Posted by no-reply@patchew.org 5 years, 1 month ago
Patchew URL: https://patchew.org/QEMU/20190314084235.9887-1-clg@kaod.org/



Hi,

This series failed the docker-mingw@fedora build test. Please find the testing commands and
their output below. If you have Docker installed, you can probably reproduce it
locally.

=== TEST SCRIPT BEGIN ===
#!/bin/bash
time make docker-test-mingw@fedora SHOW_ENV=1 J=14 NETWORK=1
=== TEST SCRIPT END ===

  CC      migration/xbzrle.o
  CC      migration/postcopy-ram.o
/tmp/qemu-test/src/hw/timer/aspeed_timer.c: In function 'aspeed_timer_set_value':
/tmp/qemu-test/src/hw/timer/aspeed_timer.c:279:19: error: '__int128_t' undeclared (first use in this function); did you mean '__int128'?
                 ((__int128_t)delta * NANOSECONDS_PER_SECOND / rate);
                   ^~~~~~~~~~
                   __int128
/tmp/qemu-test/src/hw/timer/aspeed_timer.c:279:19: note: each undeclared identifier is reported only once for each function it appears in
/tmp/qemu-test/src/hw/timer/aspeed_timer.c:279:30: error: expected ')' before 'delta'
                 ((__int128_t)delta * NANOSECONDS_PER_SECOND / rate);
                 ~            ^~~~~
                              )
/tmp/qemu-test/src/hw/timer/aspeed_timer.c:276:22: error: unused variable 'rate' [-Werror=unused-variable]
             uint32_t rate = calculate_rate(t);
                      ^~~~
/tmp/qemu-test/src/hw/timer/aspeed_timer.c:275:21: error: unused variable 'delta' [-Werror=unused-variable]
             int64_t delta = (int64_t) value - (int64_t) calculate_ticks(t, now);
                     ^~~~~
cc1: all warnings being treated as errors


The full log is available at
http://patchew.org/logs/20190314084235.9887-1-clg@kaod.org/testing.docker-mingw@fedora/?type=message.
---
Email generated automatically by Patchew [http://patchew.org/].
Please send your feedback to patchew-devel@redhat.com
Re: [Qemu-devel] [PATCH 0/5] aspeed/timer: Fix slowdowns in recent Linux
Posted by Cédric Le Goater 5 years, 1 month ago
Hello,

For the time being, we can drop patch 5 from this series. 

Thanks,

C. 

On 3/14/19 9:59 AM, no-reply@patchew.org wrote:
> Patchew URL: https://patchew.org/QEMU/20190314084235.9887-1-clg@kaod.org/
> 
> 
> 
> Hi,
> 
> This series failed the docker-mingw@fedora build test. Please find the testing commands and
> their output below. If you have Docker installed, you can probably reproduce it
> locally.
> 
> === TEST SCRIPT BEGIN ===
> #!/bin/bash
> time make docker-test-mingw@fedora SHOW_ENV=1 J=14 NETWORK=1
> === TEST SCRIPT END ===
> 
>   CC      migration/xbzrle.o
>   CC      migration/postcopy-ram.o
> /tmp/qemu-test/src/hw/timer/aspeed_timer.c: In function 'aspeed_timer_set_value':
> /tmp/qemu-test/src/hw/timer/aspeed_timer.c:279:19: error: '__int128_t' undeclared (first use in this function); did you mean '__int128'?
>                  ((__int128_t)delta * NANOSECONDS_PER_SECOND / rate);
>                    ^~~~~~~~~~
>                    __int128
> /tmp/qemu-test/src/hw/timer/aspeed_timer.c:279:19: note: each undeclared identifier is reported only once for each function it appears in
> /tmp/qemu-test/src/hw/timer/aspeed_timer.c:279:30: error: expected ')' before 'delta'
>                  ((__int128_t)delta * NANOSECONDS_PER_SECOND / rate);
>                  ~            ^~~~~
>                               )
> /tmp/qemu-test/src/hw/timer/aspeed_timer.c:276:22: error: unused variable 'rate' [-Werror=unused-variable]
>              uint32_t rate = calculate_rate(t);
>                       ^~~~
> /tmp/qemu-test/src/hw/timer/aspeed_timer.c:275:21: error: unused variable 'delta' [-Werror=unused-variable]
>              int64_t delta = (int64_t) value - (int64_t) calculate_ticks(t, now);
>                      ^~~~~
> cc1: all warnings being treated as errors
> 
> 
> The full log is available at
> http://patchew.org/logs/20190314084235.9887-1-clg@kaod.org/testing.docker-mingw@fedora/?type=message.
> ---
> Email generated automatically by Patchew [http://patchew.org/].
> Please send your feedback to patchew-devel@redhat.com
> 


Re: [Qemu-devel] [PATCH 0/5] aspeed/timer: Fix slowdowns in recent Linux
Posted by Christian Svensson via Qemu-devel 5 years, 1 month ago
Hi,

My apologies, I don't know how I missed those warnings.
I'll create a new patch.

- Chris


On Thu, Mar 14, 2019 at 10:06 AM Cédric Le Goater <clg@kaod.org> wrote:

> Hello,
>
> For the time being, we can drop patch 5 from this series.
>
> Thanks,
>
> C.
>
> On 3/14/19 9:59 AM, no-reply@patchew.org wrote:
> > Patchew URL:
> https://patchew.org/QEMU/20190314084235.9887-1-clg@kaod.org/
> >
> >
> >
> > Hi,
> >
> > This series failed the docker-mingw@fedora build test. Please find the
> testing commands and
> > their output below. If you have Docker installed, you can probably
> reproduce it
> > locally.
> >
> > === TEST SCRIPT BEGIN ===
> > #!/bin/bash
> > time make docker-test-mingw@fedora SHOW_ENV=1 J=14 NETWORK=1
> > === TEST SCRIPT END ===
> >
> >   CC      migration/xbzrle.o
> >   CC      migration/postcopy-ram.o
> > /tmp/qemu-test/src/hw/timer/aspeed_timer.c: In function
> 'aspeed_timer_set_value':
> > /tmp/qemu-test/src/hw/timer/aspeed_timer.c:279:19: error: '__int128_t'
> undeclared (first use in this function); did you mean '__int128'?
> >                  ((__int128_t)delta * NANOSECONDS_PER_SECOND / rate);
> >                    ^~~~~~~~~~
> >                    __int128
> > /tmp/qemu-test/src/hw/timer/aspeed_timer.c:279:19: note: each undeclared
> identifier is reported only once for each function it appears in
> > /tmp/qemu-test/src/hw/timer/aspeed_timer.c:279:30: error: expected ')'
> before 'delta'
> >                  ((__int128_t)delta * NANOSECONDS_PER_SECOND / rate);
> >                  ~            ^~~~~
> >                               )
> > /tmp/qemu-test/src/hw/timer/aspeed_timer.c:276:22: error: unused
> variable 'rate' [-Werror=unused-variable]
> >              uint32_t rate = calculate_rate(t);
> >                       ^~~~
> > /tmp/qemu-test/src/hw/timer/aspeed_timer.c:275:21: error: unused
> variable 'delta' [-Werror=unused-variable]
> >              int64_t delta = (int64_t) value - (int64_t)
> calculate_ticks(t, now);
> >                      ^~~~~
> > cc1: all warnings being treated as errors
> >
> >
> > The full log is available at
> >
> http://patchew.org/logs/20190314084235.9887-1-clg@kaod.org/testing.docker-mingw@fedora/?type=message
> .
> > ---
> > Email generated automatically by Patchew [http://patchew.org/].
> > Please send your feedback to patchew-devel@redhat.com
> >
>
>