mbox series

[v3,0/4] Fix and improve core RTC function and documentation

Message ID cover.1539846575.git.artem.k.pisarenko@gmail.com
Headers show
Series Fix and improve core RTC function and documentation | expand

Message

Artem Pisarenko Oct. 18, 2018, 7:12 a.m. UTC
Modifications are motivated by bug https://bugs.launchpad.net/qemu/+bug/1797033 I've encountered recently.

Trying to fix it and analyzing its effect on all use cases (not covered in bug report) revealed much deeper problems.
This is my first patch to QEMU and I'm not sure whether the way I addressed them is proper.
They definitely require either modifications to current implementation (breaking compability), or adding clarifications to user documentation. I've tried to find compromise.
Changes I propose are driven mostly by my interpretation of user documentation and comments in code, rather than by existing implementation.

I've splitted patches in a way that at least some of them may be accepted. Following subsets are make sense on their own:
- 1
- 1,2,3

I limited refactoring only to vl.c, although it leads to reworking of all hw/* rtc models which have unreasonable duplications of actions performed by vl.c.
I'm sure such kind of rework will reveal more hidden bugs/features, but so far I've had enough (it's a long story how muсh effort and pain cost me to find that tricky bug above).
I suppose just to draw attention of relevant hw/* maintainers.


v3 changes:
 - commit messages rewritten/shortened/wrapped to match patch requirements
 - fixed minor typo
v2 changes:
 - fixed compiler warning caused non-debug build fail


Artem Pisarenko (4):
  vl: improve/fix documentation related to RTC function
  vl: refactor -rtc option references
  Fixes RTC bug with base datetime shifts in clock=vm
  vl,qapi: offset calculation in RTC_CHANGE event reverted

 qapi/misc.json  |   3 +-
 qemu-options.hx |  14 +++++---
 vl.c            | 105 +++++++++++++++++++++++++++++++++++++-------------------
 3 files changed, 80 insertions(+), 42 deletions(-)

Comments

Paolo Bonzini Oct. 18, 2018, 2:47 p.m. UTC | #1
On 18/10/2018 09:12, Artem Pisarenko wrote:
> Modifications are motivated by bug https://bugs.launchpad.net/qemu/+bug/1797033 I've encountered recently.
> 
> Trying to fix it and analyzing its effect on all use cases (not covered in bug report) revealed much deeper problems.
> This is my first patch to QEMU and I'm not sure whether the way I addressed them is proper.
> They definitely require either modifications to current implementation (breaking compability), or adding clarifications to user documentation. I've tried to find compromise.
> Changes I propose are driven mostly by my interpretation of user documentation and comments in code, rather than by existing implementation.
> 
> I've splitted patches in a way that at least some of them may be accepted. Following subsets are make sense on their own:
> - 1
> - 1,2,3
> 
> I limited refactoring only to vl.c, although it leads to reworking of all hw/* rtc models which have unreasonable duplications of actions performed by vl.c.
> I'm sure such kind of rework will reveal more hidden bugs/features, but so far I've had enough (it's a long story how muсh effort and pain cost me to find that tricky bug above).
> I suppose just to draw attention of relevant hw/* maintainers.

Queued, thanks.

As a start of future refactoring, would you mind moving all this code to
hw/timer/rtc.c or rtc.c?  It was somewaht generic before, but now it's
very tied to -rtc.

Paolo

> 
> v3 changes:
>  - commit messages rewritten/shortened/wrapped to match patch requirements
>  - fixed minor typo
> v2 changes:
>  - fixed compiler warning caused non-debug build fail
> 
> 
> Artem Pisarenko (4):
>   vl: improve/fix documentation related to RTC function
>   vl: refactor -rtc option references
>   Fixes RTC bug with base datetime shifts in clock=vm
>   vl,qapi: offset calculation in RTC_CHANGE event reverted
> 
>  qapi/misc.json  |   3 +-
>  qemu-options.hx |  14 +++++---
>  vl.c            | 105 +++++++++++++++++++++++++++++++++++++-------------------
>  3 files changed, 80 insertions(+), 42 deletions(-)
>
Artem Pisarenko Oct. 19, 2018, 5:24 a.m. UTC | #2
> As a start of future refactoring, would you mind moving all this code to
> hw/timer/rtc.c or rtc.c?  It was somewaht generic before, but now it's
> very tied to -rtc.

Yes, sure.