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(-)
>