Message ID | 20121212213631.GA27694@amt.cnet |
---|---|
State | New |
Headers | show |
Il 12/12/2012 22:36, Marcelo Tosatti ha scritto: > > RTC interrupt reinjection has no known negative effect. Lack of > RTC interrupt reinjection, though, has negative effects: time drift > for Windows guests which use it as a timer source. > > Based on that, enable lost_tick_policy=slew option as default. > > Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com> > > v2: do not change default for older machines types (Paolo Bonzini) > > diff --git a/hw/mc146818rtc.c b/hw/mc146818rtc.c > index c79fca7..c9e007d 100644 > --- a/hw/mc146818rtc.c > +++ b/hw/mc146818rtc.c > @@ -884,7 +884,7 @@ ISADevice *rtc_init(ISABus *bus, int base_year, qemu_irq intercept_irq) > static Property mc146818rtc_properties[] = { > DEFINE_PROP_INT32("base_year", RTCState, base_year, 1980), > DEFINE_PROP_LOSTTICKPOLICY("lost_tick_policy", RTCState, > - lost_tick_policy, LOST_TICK_DISCARD), > + lost_tick_policy, LOST_TICK_SLEW), > DEFINE_PROP_END_OF_LIST(), > }; > > diff --git a/hw/pc_piix.c b/hw/pc_piix.c > index 19e342a..475bb4c 100644 > --- a/hw/pc_piix.c > +++ b/hw/pc_piix.c > @@ -295,6 +295,10 @@ static QEMUMachine pc_machine_v1_4 = { > .driver = "usb-tablet",\ > .property = "usb_version",\ > .value = stringify(1),\ > + },{\ > + .driver = "mc146818rtc",\ > + .property = "lost_tick_policy",\ > + .value = "discard",\ > } > > static QEMUMachine pc_machine_v1_3 = { > Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Il 12/12/2012 22:36, Marcelo Tosatti ha scritto: > > RTC interrupt reinjection has no known negative effect. Lack of > RTC interrupt reinjection, though, has negative effects: time drift > for Windows guests which use it as a timer source. > > Based on that, enable lost_tick_policy=slew option as default. > > Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com> > > v2: do not change default for older machines types (Paolo Bonzini) > > diff --git a/hw/mc146818rtc.c b/hw/mc146818rtc.c > index c79fca7..c9e007d 100644 > --- a/hw/mc146818rtc.c > +++ b/hw/mc146818rtc.c > @@ -884,7 +884,7 @@ ISADevice *rtc_init(ISABus *bus, int base_year, qemu_irq intercept_irq) > static Property mc146818rtc_properties[] = { > DEFINE_PROP_INT32("base_year", RTCState, base_year, 1980), > DEFINE_PROP_LOSTTICKPOLICY("lost_tick_policy", RTCState, > - lost_tick_policy, LOST_TICK_DISCARD), > + lost_tick_policy, LOST_TICK_SLEW), > DEFINE_PROP_END_OF_LIST(), > }; > > diff --git a/hw/pc_piix.c b/hw/pc_piix.c > index 19e342a..475bb4c 100644 > --- a/hw/pc_piix.c > +++ b/hw/pc_piix.c > @@ -295,6 +295,10 @@ static QEMUMachine pc_machine_v1_4 = { > .driver = "usb-tablet",\ > .property = "usb_version",\ > .value = stringify(1),\ > + },{\ > + .driver = "mc146818rtc",\ > + .property = "lost_tick_policy",\ > + .value = "discard",\ > } > > static QEMUMachine pc_machine_v1_3 = { > > Looks like this was never applied. Can you redo it for the new 1.5 machine (compatibility defines are now in hw/pc.h)? Paolo
On Thu, Mar 07, 2013 at 09:25:17AM +0100, Paolo Bonzini wrote: > Il 12/12/2012 22:36, Marcelo Tosatti ha scritto: > > > > RTC interrupt reinjection has no known negative effect. Lack of > > RTC interrupt reinjection, though, has negative effects: time drift > > for Windows guests which use it as a timer source. > > > > Based on that, enable lost_tick_policy=slew option as default. > > > > Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com> > > > > v2: do not change default for older machines types (Paolo Bonzini) > > > > diff --git a/hw/mc146818rtc.c b/hw/mc146818rtc.c > > index c79fca7..c9e007d 100644 > > --- a/hw/mc146818rtc.c > > +++ b/hw/mc146818rtc.c > > @@ -884,7 +884,7 @@ ISADevice *rtc_init(ISABus *bus, int base_year, qemu_irq intercept_irq) > > static Property mc146818rtc_properties[] = { > > DEFINE_PROP_INT32("base_year", RTCState, base_year, 1980), > > DEFINE_PROP_LOSTTICKPOLICY("lost_tick_policy", RTCState, > > - lost_tick_policy, LOST_TICK_DISCARD), > > + lost_tick_policy, LOST_TICK_SLEW), > > DEFINE_PROP_END_OF_LIST(), > > }; > > > > diff --git a/hw/pc_piix.c b/hw/pc_piix.c > > index 19e342a..475bb4c 100644 > > --- a/hw/pc_piix.c > > +++ b/hw/pc_piix.c > > @@ -295,6 +295,10 @@ static QEMUMachine pc_machine_v1_4 = { > > .driver = "usb-tablet",\ > > .property = "usb_version",\ > > .value = stringify(1),\ > > + },{\ > > + .driver = "mc146818rtc",\ > > + .property = "lost_tick_policy",\ > > + .value = "discard",\ > > } > > > > static QEMUMachine pc_machine_v1_3 = { > > > > > > Looks like this was never applied. Can you redo it for the new 1.5 > machine (compatibility defines are now in hw/pc.h)? > > Paolo Anthony mentioned that this http://article.gmane.org/gmane.comp.emulators.qemu/160699 Is the proper way to do it.
Marcelo Tosatti <mtosatti@redhat.com> writes: > On Thu, Mar 07, 2013 at 09:25:17AM +0100, Paolo Bonzini wrote: >> Il 12/12/2012 22:36, Marcelo Tosatti ha scritto: >> > >> > RTC interrupt reinjection has no known negative effect. Lack of >> > RTC interrupt reinjection, though, has negative effects: time drift >> > for Windows guests which use it as a timer source. >> > >> > Based on that, enable lost_tick_policy=slew option as default. >> > >> > Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com> >> > >> > v2: do not change default for older machines types (Paolo Bonzini) >> > >> > diff --git a/hw/mc146818rtc.c b/hw/mc146818rtc.c >> > index c79fca7..c9e007d 100644 >> > --- a/hw/mc146818rtc.c >> > +++ b/hw/mc146818rtc.c >> > @@ -884,7 +884,7 @@ ISADevice *rtc_init(ISABus *bus, int base_year, qemu_irq intercept_irq) >> > static Property mc146818rtc_properties[] = { >> > DEFINE_PROP_INT32("base_year", RTCState, base_year, 1980), >> > DEFINE_PROP_LOSTTICKPOLICY("lost_tick_policy", RTCState, >> > - lost_tick_policy, LOST_TICK_DISCARD), >> > + lost_tick_policy, LOST_TICK_SLEW), >> > DEFINE_PROP_END_OF_LIST(), >> > }; >> > >> > diff --git a/hw/pc_piix.c b/hw/pc_piix.c >> > index 19e342a..475bb4c 100644 >> > --- a/hw/pc_piix.c >> > +++ b/hw/pc_piix.c >> > @@ -295,6 +295,10 @@ static QEMUMachine pc_machine_v1_4 = { >> > .driver = "usb-tablet",\ >> > .property = "usb_version",\ >> > .value = stringify(1),\ >> > + },{\ >> > + .driver = "mc146818rtc",\ >> > + .property = "lost_tick_policy",\ >> > + .value = "discard",\ >> > } >> > >> > static QEMUMachine pc_machine_v1_3 = { >> > >> > >> >> Looks like this was never applied. Can you redo it for the new 1.5 >> machine (compatibility defines are now in hw/pc.h)? >> >> Paolo > > Anthony mentioned that this > > http://article.gmane.org/gmane.comp.emulators.qemu/160699 > > Is the proper way to do it. That breaks too. I don't have a solution but I also don't remember what the exact failures are. I'm planning on running this patch through testing again so I can provide better feedback. Regards, Anthony Liguori
Il 08/03/2013 18:53, Anthony Liguori ha scritto: >> Anthony mentioned that this >> >> http://article.gmane.org/gmane.comp.emulators.qemu/160699 >> >> Is the proper way to do it. > > That breaks too. I don't have a solution but I also don't remember what > the exact failures are. What about a more generic version of that? Adding a priority field to global properties, so that -global can have a higher priority than the default (used by machine types)? Paolo
On Sat, Mar 09, 2013 at 06:44:36AM +0100, Paolo Bonzini wrote: > Il 08/03/2013 18:53, Anthony Liguori ha scritto: > >> Anthony mentioned that this > >> > >> http://article.gmane.org/gmane.comp.emulators.qemu/160699 > >> > >> Is the proper way to do it. > > > > That breaks too. I don't have a solution but I also don't remember what > > the exact failures are. > > What about a more generic version of that? Adding a priority field to > global properties, so that -global can have a higher priority than the > default (used by machine types)? > > Paolo What exactly is the problem with http://lists.gnu.org/archive/html/qemu-devel/2012-12/msg01733.html Again? Should it just be resubmitted ?
Marcelo Tosatti <mtosatti@redhat.com> writes: > On Sat, Mar 09, 2013 at 06:44:36AM +0100, Paolo Bonzini wrote: >> Il 08/03/2013 18:53, Anthony Liguori ha scritto: >> >> Anthony mentioned that this >> >> >> >> http://article.gmane.org/gmane.comp.emulators.qemu/160699 >> >> >> >> Is the proper way to do it. >> > >> > That breaks too. I don't have a solution but I also don't remember what >> > the exact failures are. >> >> What about a more generic version of that? Adding a priority field to >> global properties, so that -global can have a higher priority than the >> default (used by machine types)? >> >> Paolo > > What exactly is the problem with > > http://lists.gnu.org/archive/html/qemu-devel/2012-12/msg01733.html > > Again? Should it just be resubmitted ? Breaks the -rtc option which also uses globals. Try qemu -M pc-1.4 -rtc driftfix=slew Or qemu -M pc-1.4 -rtc-td-hack Regards, Anthony Liguori
diff --git a/hw/mc146818rtc.c b/hw/mc146818rtc.c index c79fca7..c9e007d 100644 --- a/hw/mc146818rtc.c +++ b/hw/mc146818rtc.c @@ -884,7 +884,7 @@ ISADevice *rtc_init(ISABus *bus, int base_year, qemu_irq intercept_irq) static Property mc146818rtc_properties[] = { DEFINE_PROP_INT32("base_year", RTCState, base_year, 1980), DEFINE_PROP_LOSTTICKPOLICY("lost_tick_policy", RTCState, - lost_tick_policy, LOST_TICK_DISCARD), + lost_tick_policy, LOST_TICK_SLEW), DEFINE_PROP_END_OF_LIST(), }; diff --git a/hw/pc_piix.c b/hw/pc_piix.c index 19e342a..475bb4c 100644 --- a/hw/pc_piix.c +++ b/hw/pc_piix.c @@ -295,6 +295,10 @@ static QEMUMachine pc_machine_v1_4 = { .driver = "usb-tablet",\ .property = "usb_version",\ .value = stringify(1),\ + },{\ + .driver = "mc146818rtc",\ + .property = "lost_tick_policy",\ + .value = "discard",\ } static QEMUMachine pc_machine_v1_3 = {
RTC interrupt reinjection has no known negative effect. Lack of RTC interrupt reinjection, though, has negative effects: time drift for Windows guests which use it as a timer source. Based on that, enable lost_tick_policy=slew option as default. Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com> v2: do not change default for older machines types (Paolo Bonzini)