>- Original Message -
>From: "Ingo Molnar"
>To: "Don Zickus"
>Cc: a...@linux-foundation.org, kvm@vger.kernel.org, pbonz...@redhat.com,
>mi...@redhat.com, "LKML" , "Ulrich >Obergfell"
>, "Andrew Jones"
>Se
> - Original Message -
> From: "Andrew Jones"
> To: linux-ker...@vger.kernel.org, kvm@vger.kernel.org
> Cc: uober...@redhat.com, dzic...@redhat.com, pbonz...@redhat.com,
> a...@linux-foundation.org, mi...@redhat.com
> Sent: Thursday, July 24, 2014 12:13:30 PM
> Subject: [PATCH 2/3] watchd
>- Original Message -
>From: "Paolo Bonzini"
>To: "Ulrich Obergfell"
>Cc: "Andrew Jones" , linux-ker...@vger.kernel.org,
>kvm@vger.kernel.org, dzic...@redhat.com, a...@linux-foundation.org,
>>mi...@redhat.com
>Sent: Thursday, July
>- Original Message -
>From: "Paolo Bonzini"
>To: "Ulrich Obergfell"
>Cc: "Andrew Jones" , linux-ker...@vger.kernel.org,
>kvm@vger.kernel.org, dzic...@redhat.com, a...@linux-foundation.org,
>>mi...@redhat.com
>Sent: Thursday, July
> - Original Message -
> From: "Paolo Bonzini"
> To: "Andrew Jones" , linux-ker...@vger.kernel.org,
> kvm@vger.kernel.org
> Cc: uober...@redhat.com, dzic...@redhat.com, a...@linux-foundation.org,
> mi...@redhat.com
> Sent: Thursday, July 24, 2014 12:46:11 PM
> Subject: Re: [PATCH 2/3] wa
> From: "Xiao Guangrong"
> To: "Ulrich Obergfell" , kvm@vger.kernel.org
> Cc: pbonz...@redhat.com
> Sent: Monday, May 5, 2014 9:10:19 AM
> Subject: Re: [PATCH 0/1] KVM: x86: improve the usability of the 'kvm_pio'
> tracepoint
>
> On 05/02
al 0x507
qemu-kvm-23216 [001] 15211.994155: kvm_pio: pio_write
at 0xcf8 size 4 count 1 val 0x80003004
qemu-kvm-23216 [001] 15211.994161: kvm_pio: pio_read
at 0xcfe size 2 count 1 val 0x10
Ulrich Obergfell (1):
improve the usability o
, and the value is included in the
trace record ('val'). If 'count' is greater than one, this is indicated
by the string "(...)" in the trace output.
Signed-off-by: Ulrich Obergfell
---
arch/x86/kvm/trace.h | 20
arch/x86/kvm/x86.c | 4 ++--
2 file
ng virtual machine time
intermittently pass slower and faster than real time (depending on
the guest's time keeping algorithm). Compensation is disabled by
default and can be enabled for guests where this behaviour may be
acceptable.
Signed-off-by: Ulrich Obergfell
---
h
driftfix is a 'bit type' property. Compensation of delayed callbacks
and coalesced interrupts can be enabled with the command line option
-global hpet.driftfix=on
driftfix is 'off' (disabled) by default.
Signed-off-by: Ulrich Obergfell
---
hw/hpet.c |3 +++
ck coalesced IRQs for periodic, clock providing devices becomes
available.
Signed-off-by: Ulrich Obergfell
---
hw/hpet.c | 13 +++--
1 files changed, 11 insertions(+), 2 deletions(-)
diff --git a/hw/hpet.c b/hw/hpet.c
index dba9370..0428290 100644
--- a/hw/hpet.c
+++ b/hw/hpet.c
@@ -1
/gmane.comp.emulators.kvm.devel/69328
Changes since version 4:
Added comments to patch part 3 and part 5. No changes in the actual code.
Please review and please comment.
Regards,
Uli
Ulrich Obergfell (5):
hpet 'driftfix': add hooks required to detect coalesced interrupts
(x86 apic on
The new fields in HPETTimer are covered by a separate VMStateDescription
which is a subsection of 'vmstate_hpet_timer'. They are only migrated if
-global hpet.driftfix=on
Signed-off-by: Ulrich Obergfell
---
hw/hpet.c | 42 ++
1 files c
place the stubs with apic_get_irq_delivered() and
apic_reset_irq_delivered().
This change can be replaced if a generic feedback infrastructure to
track coalesced IRQs for periodic, clock providing devices becomes
available.
Signed-off-by: Ulrich Obergfell
---
hw/apic.c |4 ++
Hi Zachary,
1. re.:
>> +static void hpet_timer_driftfix_reset(HPETTimer *t)
>> +{
>> +if (t->state->driftfix&& timer_is_periodic(t)) {
>> +t->ticks_not_accounted = t->prev_period = t->period;
>>
>
> This is rather confusing. Clearly, ticks_not_accounted isn't actually
> ticks n
driftfix is a 'bit type' property. Compensation of delayed callbacks
and coalesced interrupts can be enabled with the command line option
-global hpet.driftfix=on
driftfix is 'off' (disabled) by default.
Signed-off-by: Ulrich Obergfell
---
hw/hpet.c |3 +++
ng virtual machine time
intermittently pass slower and faster than real time (depending on
the guest's time keeping algorithm). Compensation is disabled by
default and can be enabled for guests where this behaviour may be
acceptable.
Signed-off-by: Ulrich Obergfell
---
h
ck coalesced IRQs for periodic, clock providing devices becomes
available.
Signed-off-by: Ulrich Obergfell
---
hw/hpet.c | 13 +++--
1 files changed, 11 insertions(+), 2 deletions(-)
diff --git a/hw/hpet.c b/hw/hpet.c
index 7ab6e62..e57c654 100644
--- a/hw/hpet.c
+++ b/hw/hpet.c
@@ -1
The new fields in HPETTimer are covered by a separate VMStateDescription
which is a subsection of 'vmstate_hpet_timer'. They are only migrated if
-global hpet.driftfix=on
Signed-off-by: Ulrich Obergfell
---
hw/hpet.c | 33 +
1 files changed, 33
place the stubs with apic_get_irq_delivered() and
apic_reset_irq_delivered().
This change can be replaced if a generic feedback infrastructure to
track coalesced IRQs for periodic, clock providing devices becomes
available.
Signed-off-by: Ulrich Obergfell
---
hw/apic.c |4 ++
in the Timer N Configuration and Capabilities Register.
Please review and please comment.
Regards,
Uli
Ulrich Obergfell (5):
hpet 'driftfix': add hooks required to detect coalesced interrupts
(x86 apic only)
hpet 'driftfix': add driftfix property to HPETSta
Hi Marcelo,
> Other than that, shouldnt reset accounting variables to init state on
> write to GLOBAL_ENABLE_CFG / writes to main counter?
I'd suggest to initialize/reset the driftfix-related fields in the
'HPETTimer' structure (including the backlog of unaccounted ticks)
in the following situa
Hi Marcelo,
> Whats prev_period for, since in practice the period will not change
> between interrupts (OS programs comparator once, or perhaps twice
> during bootup) ?
'prev_period' is needed if a guest o/s changes the comparator period
'on the fly' (without stopping and restarting the timer).
> On 2011-04-28 20:51, Blue Swirl wrote:
>> On Thu, Apr 28, 2011 at 5:24 PM, Ulrich Obergfell wrote:
>>> 'target_get_irq_delivered' and 'target_reset_irq_delivered' contain
>>> entry addresses of functions that are utilized by update_irq() to
>>
driftfix is a 'bit type' property. Compensation of delayed callbacks
and coalesced interrupts can be enabled with the command line option
-global hpet.driftfix=on
driftfix is 'off' (disabled) by default.
Signed-off-by: Ulrich Obergfell
---
hw/hpet.c |3 +++
ck coalesced IRQs for periodic, clock providing devices becomes
available.
Signed-off-by: Ulrich Obergfell
---
hw/hpet.c | 15 +--
1 files changed, 13 insertions(+), 2 deletions(-)
diff --git a/hw/hpet.c b/hw/hpet.c
index 7ab6e62..35466ae 100644
--- a/hw/hpet.c
+++ b/hw/hpet
The new fields in HPETTimer are covered by a separate VMStateDescription
which is a subsection of 'vmstate_hpet_timer'. They are only migrated if
-global hpet.driftfix=on
Signed-off-by: Ulrich Obergfell
---
hw/hpet.c | 33 +
1 files changed, 33
please comment.
Regards,
Uli
Ulrich Obergfell (5):
hpet 'driftfix': add hooks required to detect coalesced interrupts
(x86 apic only)
hpet 'driftfix': add driftfix property to HPETState and DeviceInfo
hpet 'driftfix': add fields to HPETTimer and VMStateDescr
rastructure to
track coalesced IRQs for periodic, clock providing devices becomes
available.
Signed-off-by: Ulrich Obergfell
---
hw/apic.c |4
sysemu.h |3 +++
vl.c |3 +++
3 files changed, 10 insertions(+), 0 deletions(-)
diff --git a/hw/apic.c b/hw/apic.c
index a45b57f..eb0
ng virtual machine time
intermittently pass slower and faster than real time (depending on
the guest's time keeping algorithm). Compensation is disabled by
default and can be enabled for guests where this behaviour may be
acceptable.
Signed-off-by: Ulrich Obergfell
---
h
>> vmstate_hpet_timer = {
>> VMSTATE_UINT64(fsb, HPETTimer),
>> VMSTATE_UINT64(period, HPETTimer),
>> VMSTATE_UINT8(wrap_flag, HPETTimer),
>> + VMSTATE_UINT64_V(saved_period, HPETTimer, 3),
>> + VMSTATE_UINT64_V(ticks_not_accounted, HPETTimer, 3),
>> + VMSTATE_UINT32_
>> typedef struct HPETState {
>> @@ -248,7 +253,7 @@ static int hpet_post_load(void *opaque, int
>> version_id)
>>
>> static const VMStateDescription vmstate_hpet_timer = {
>> .name = "hpet_timer",
>> - .version_id = 1,
>> + .version_id = 3,
>
> Why jump from 1 to 3?
>
>> .minimum
Signed-off-by: Ulrich Obergfell
---
hw/hpet.c | 14 --
1 files changed, 12 insertions(+), 2 deletions(-)
diff --git a/hw/hpet.c b/hw/hpet.c
index 45847ed..c150da5 100644
--- a/hw/hpet.c
+++ b/hw/hpet.c
@@ -55,6 +55,11 @@ typedef struct HPETTimer { /* timers */
uint8_t
update_irq() uses a similar method as in 'rtc_td_hack' to detect
coalesced interrupts. The function entry addresses are retrieved
from 'target_get_irq_delivered' and 'target_reset_irq_delivered'.
Signed-off-by: Ulrich Obergfell
---
hw/hpet.c | 15 ++
driftfix is a 'bit type' property. Compensation of delayed callbacks
and coalesced interrupts can be enabled with the command line option
-global hpet.driftfix=on
driftfix is 'off' (disabled) by default.
Signed-off-by: Ulrich Obergfell
---
hw/hpet.c |3 +++
guest's
time keeping algorithm). Compensation is disabled by default and can
be enabled for guests where this behaviour is acceptable.
Signed-off-by: Ulrich Obergfell
---
hw/hpet.c | 58 +-
1 files changed, 57 insertions(+), 1 deletions(-)
'target_get_irq_delivered' and 'target_reset_irq_delivered' contain
entry addresses of functions that are utilized by update_irq() to
detect coalesced interrupts. apic code loads these pointers during
initialization.
Signed-off-by: Ulrich Obergfell
---
hw/apic.c |4 ++
ect' when the guest o/s modifies the
comparator register value.
Please review and please comment.
Regards,
Uli
Ulrich Obergfell (5):
hpet 'driftfix': add hooks required to detect coalesced interrupts
(x86 apic only)
hpet 'driftfix': add driftfix property to HPETSt
>> Part 3 of the patch implements the following options for the
>> 'configure' script.
>>
>> --disable-hpet-driftfix
>> --enable-hpet-driftfix
>
> I see no benefit in this configurability. Just make the driftfix
> unconditionally available, runtime-disabled by default for now until it
> matured a
>> Part 1 of the patch implements the following QEMU command line option.
>>
>> -hpet [device=none|present][,driftfix=none|slew]
>
> Just define driftfix as property of the hpet device. That way it can be
> controlled both globally (-global hpet.driftfix=...) and per hpet block
> (once we support
Part 3 of the patch implements the following options for the 'configure' script.
--disable-hpet-driftfix
--enable-hpet-driftfix
Signed-off-by: Ulrich Obergfell
diff -up ./configure.orig3 ./configure
--- ./configure.orig3 2011-02-18 22:48:06.0 +0100
+++ ./configure 2011-0
interrupt per interval. If further interrupts are lost
while compensation is still in progress, the rate is increased. A limit
is imposed on the rate and on the 'backlog' of lost interrupts that are
to be injected.
Signed-off-by: Ulrich Obergfell
diff -up ./hw/apic.c.orig2 ./hw/apic.
Part 1 of the patch implements the following QEMU command line option.
-hpet [device=none|present][,driftfix=none|slew]
Signed-off-by: Ulrich Obergfell
diff -up ./qemu-config.c.orig1 ./qemu-config.c
--- ./qemu-config.c.orig1 2011-02-18 22:48:06.0 +0100
+++ ./qemu-config.c
Hi,
By the beginning of February I posted an RFC regarding an approach to
alleviate time drift with HPET periodic timers.
Ref.: http://article.gmane.org/gmane.comp.emulators.kvm.devel/67346
http://lists.gnu.org/archive/html/qemu-devel/2011-02/msg00327.html
During the discussion it became
On 02/03/2011 9:07 PM, Anthony Liguori wrote:
> On 02/03/2011 09:28 AM, Jan Kiszka wrote:
>> On 2011-02-03 14:43, Ulrich Obergfell wrote:
...
>>> This is an RFC through which I would like to get feedback on how the
>>> idea of a patch to compensate those lost i
Anthony,
in reply to:
> My point is that there's really low hanging fruit and while for some
> curious reason I don't actually see this patch, I believe that a patch
> like this probably can help us quite a lot in the short term.
I've sent the patch in two separate emails:
- code part 1 (intro
code part 2
---
Implements compensation of lost interrupts for HPET periodic timers.
diff -up ./hw/hpet.c.orig2 ./hw/hpet.c
--- ./hw/hpet.c.orig2 2011-01-21 23:34:47.0 +0100
+++ ./hw/hpet.c 2011-02-01 19:20:24.619247214 +0100
@@ -41,6 +41,13 @@
#define HPET_MSI_SUPPORT
code part 1
---
Introduces the '-hpet [device=none|present][,driftfix=none|slew]' option.
diff -up ./qemu-config.c.orig1 ./qemu-config.c
--- ./qemu-config.c.orig1 2011-01-21 23:34:47.0 +0100
+++ ./qemu-config.c 2011-02-01 19:38:26.665250920 +0100
@@ -255,6 +255,21 @@
Hi,
I am observing severe backward time drift in a MS Windows Vista(tm)
guest running on a Fedora 14 KVM host. I can reproduce the problem
with the following steps:
1. Use 'vncviewer' to connect to the guest's desktop.
2. Click on the menu title bar of a window on the guest's desktop.
3. Move th
- "Anthony Liguori" wrote:
> On 12/14/2010 06:09 AM, Ulrich Obergfell wrote:
[...]
> > Parts 1 thru 4 of this RFC contain experimental source code which
> > I recently used to investigate the performance benefit. In a Linux
> > guest, I was running a progr
- "Avi Kivity" wrote:
> On 12/14/2010 03:40 PM, Glauber Costa wrote:
> > >
> > > What is the motivation for this? Are there any important guests that
> > > use the pmtimer?
> > Avi,
> >
> > All older RHEL and Windows, for example, would benefit for this.
>
> They only benefit from it bec
experimental code part 4 (qemu userspace)
-
This code introduces the new qemu command line option '-kvm-pmtmr'.
qemu only creates and configures in-kernel PM Timer if this option
is specified on the command line.
diff -up ./qemu-kvm.c.orig4 ./qemu-kvm.c
experimental code part 3 (qemu userspace)
-
This code utlizes the new ioctl commands introduced by code part 2.
The KVM_CREATE_PMTMR ioctl command is simply called once when a virtual
machine is being created. However, calling KVM_CONFIGURE_PMTMR is more
experimental code part 2 (KVM kernel)
-
This code introduces two new ioctl commands KVM_CREATE_PMTMR and
KVM_CONFIGURE_PMTMR plus the new capability KVM_CAP_PMTMR to the
ioctl infrastructure of the KVM kernel. This code utilizes some
helper functions introduce
experimental code part 1 (KVM kernel)
-
This code introduces the actual emulation of the PM Timer register
plus some helper functions to create and configure the in-kernel
PM Timer. The emulation utilizes the 'kvm_io_bus' infrastructure.
diff -up ./arch/x86
Hi,
This is an RFC through which I would like to get feedback on how the
idea of in-kernel PM Timer would be received.
The current implementation of PM Timer emulation is 'heavy-weight'
because the code resides in qemu userspace. Guest operating systems
that use PM Timer as a clock source (for e
56 matches
Mail list logo