#
cb37ca1e |
| 27-Sep-2017 |
Serg Titaevskiy <stitaevskiy@virtuozzo.com> |
vmexit.c: Fix typos in vmexit test-cases list
Some test-case names were different from arguments passing by unittests.cfg. So, these cases didn't PASS really.
Signed-off-by: Serg Titaevskiy <stitae
vmexit.c: Fix typos in vmexit test-cases list
Some test-case names were different from arguments passing by unittests.cfg. So, these cases didn't PASS really.
Signed-off-by: Serg Titaevskiy <stitaevskiy@virtuozzo.com> Message-Id: <1506512498-27529-1-git-send-email-stitaevskiy@virtuozzo.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
show more ...
|
#
cfbd129c |
| 29-Jun-2017 |
Paolo Bonzini <pbonzini@redhat.com> |
vmexit: add tscdeadline benchmarks
This places the preemption timer optimization at ~1200 clock cycles compared to hrtimers (5600 vs. 6800 clock cycles) on a Haswell Xeon processor.
Avoiding the pr
vmexit: add tscdeadline benchmarks
This places the preemption timer optimization at ~1200 clock cycles compared to hrtimers (5600 vs. 6800 clock cycles) on a Haswell Xeon processor.
Avoiding the preemption timer vmexit for immediate LAPIC timer expiration ("tscdeadline_immed") also saves ~1200 clock cycles (2500 vs. 3700).
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
show more ...
|
#
b171c8c0 |
| 13-Jun-2017 |
Andrew Jones <drjones@redhat.com> |
x86/vmexit: apply on_cpus
Signed-off-by: Andrew Jones <drjones@redhat.com> Signed-off-by: Radim Krčmář <rkrcmar@redhat.com>
|
#
fd6aada0 |
| 17-May-2017 |
Radim Krčmář <rkrcmar@redhat.com> |
use %# instead of 0x% in all format strings
It's one character shorter, properly prefixed, and also provides error detection: %#d triggers a warning.
Done with `sed -i 's/0x%/%#/g' **/*.[ch]` to mo
use %# instead of 0x% in all format strings
It's one character shorter, properly prefixed, and also provides error detection: %#d triggers a warning.
Done with `sed -i 's/0x%/%#/g' **/*.[ch]` to motivate the use of %#, existing padding was raised by 2 to account for the counted "0x" (output should be the same).
Signed-off-by: Radim Krčmář <rkrcmar@redhat.com>
show more ...
|
#
78609f0e |
| 28-Feb-2017 |
Alexander Gordeev <agordeev@redhat.com> |
pci: Turn struct pci_dev into device handle for PCI functions
Currently struct pci_dev is used for caching PCI device info used by some functions. This update turns the struct into device handle tha
pci: Turn struct pci_dev into device handle for PCI functions
Currently struct pci_dev is used for caching PCI device info used by some functions. This update turns the struct into device handle that will be used by nearly all existing and future APIs.
As result of this change a pci_dev should be initialized with pci_dev_init() and pci_scan_bars() becomes redundant.
Cc: Thomas Huth <thuth@redhat.com> Cc: Andrew Jones <drjones@redhat.com> Cc: Peter Xu <peterx@redhat.com> Reviewed-by: Andrew Jones <drjones@redhat.com> Signed-off-by: Alexander Gordeev <agordeev@redhat.com> Signed-off-by: Radim Krčmář <rkrcmar@redhat.com>
show more ...
|
#
e954ce23 |
| 12-Dec-2016 |
Peter Xu <peterx@redhat.com> |
pci: provide pci_scan_bars()
Let's provide a more general way to scan PCI bars, rather than read the config registers every time.
Then let x86/vmexit.c leverage pci_scan_bars()
Reviewed-by: Andrew
pci: provide pci_scan_bars()
Let's provide a more general way to scan PCI bars, rather than read the config registers every time.
Then let x86/vmexit.c leverage pci_scan_bars()
Reviewed-by: Andrew Jones <drjones@redhat.com> Signed-off-by: Peter Xu <peterx@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
show more ...
|
#
4d6cefa9 |
| 12-Dec-2016 |
Peter Xu <peterx@redhat.com> |
pci: introduce struct pci_dev
To extend current PCI framework, we need a per-device struct to store device specific information. Time to have a pci_dev struct. Most of the current PCI APIs are conve
pci: introduce struct pci_dev
To extend current PCI framework, we need a per-device struct to store device specific information. Time to have a pci_dev struct. Most of the current PCI APIs are converted to use this pci_dev object as the first argument. Currently it only contains one field "bdf", which is the bdf of current device.
For a few APIs like pci_config_*() ops or pci_find_dev(), I kept the old interface (use PCI BDF value rather than "struct pci_dev") since they can be used in a open context that without any specific PCI device.
Reviewed-by: Andrew Jones <drjones@redhat.com> Signed-off-by: Peter Xu <peterx@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
show more ...
|
#
e0a5cfca |
| 17-Dec-2016 |
Paolo Bonzini <pbonzini@redhat.com> |
vmexit: add self-ipi speed tests
These are designed to test APICv and optimizations of KVM_REQ_EVENT.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
#
647f92c7 |
| 07-Nov-2016 |
Alexander Gordeev <agordeev@redhat.com> |
pci: Add pci_bar_set_addr()
Because the counterpart to pci_bar_set_addr() setter is pci_bar_addr() getter, these names become inconsistent. Rename pci_bar_addr() to pci_bar_get_addr() also to make t
pci: Add pci_bar_set_addr()
Because the counterpart to pci_bar_set_addr() setter is pci_bar_addr() getter, these names become inconsistent. Rename pci_bar_addr() to pci_bar_get_addr() also to make the resulting names conform to each other.
Cc: Thomas Huth <thuth@redhat.com> Cc: Andrew Jones <drjones@redhat.com> Cc: Peter Xu <peterx@redhat.com> Reviewed-by: Andrew Jones <drjones@redhat.com> Signed-off-by: Alexander Gordeev <agordeev@redhat.com> Message-Id: <ce732680ee4989d1b2b26361a2c02d24b8bef37b.1478512824.git.agordeev@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
show more ...
|
#
f1abb07b |
| 06-Jun-2016 |
Alexander Gordeev <agordeev@redhat.com> |
x86: io: Factor out ioremap()
Cc: Andrew Jones <drjones@redhat.com> Cc: Thomas Huth <thuth@redhat.com> Cc: Paolo Bonzini <pbonzini@redhat.com> Cc: Radim Krčmář <rkrcmar@redhat.com> Reviewed-by: Andr
x86: io: Factor out ioremap()
Cc: Andrew Jones <drjones@redhat.com> Cc: Thomas Huth <thuth@redhat.com> Cc: Paolo Bonzini <pbonzini@redhat.com> Cc: Radim Krčmář <rkrcmar@redhat.com> Reviewed-by: Andrew Jones <drjones@redhat.com> Signed-off-by: Alexander Gordeev <agordeev@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
show more ...
|
#
55601383 |
| 06-Jun-2016 |
Alexander Gordeev <agordeev@redhat.com> |
x86: Introduce lib/x86/asm/io.h
Make x86 consistent with other architectures and put IO specific defines to lib/x86/asm/io.h
Cc: Andrew Jones <drjones@redhat.com> Cc: Thomas Huth <thuth@redhat.com>
x86: Introduce lib/x86/asm/io.h
Make x86 consistent with other architectures and put IO specific defines to lib/x86/asm/io.h
Cc: Andrew Jones <drjones@redhat.com> Cc: Thomas Huth <thuth@redhat.com> Cc: Paolo Bonzini <pbonzini@redhat.com> Cc: Radim Krčmář <rkrcmar@redhat.com> Reviewed-by: Andrew Jones <drjones@redhat.com> Signed-off-by: Alexander Gordeev <agordeev@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
show more ...
|
#
d3a8ad49 |
| 18-Jan-2016 |
Andrew Jones <drjones@redhat.com> |
lib/pci: make PCIDEVADDR_INVALID truly invalid
dev addr 0 is valid, just not for the pci-testdev (since the host bridge is already there). So, while it's not a problem, let's "fix" it anyway.
Sugge
lib/pci: make PCIDEVADDR_INVALID truly invalid
dev addr 0 is valid, just not for the pci-testdev (since the host bridge is already there). So, while it's not a problem, let's "fix" it anyway.
Suggested-by: Alexander Gordeev <agordeev@redhat.com> Signed-off-by: Andrew Jones <drjones@redhat.com> Reviewed-by: Radim KrÄmář <rkrcmar@redhat.com> Message-Id: <1453140064-9040-9-git-send-email-drjones@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
show more ...
|
#
289ebf8f |
| 18-Jan-2016 |
Andrew Jones <drjones@redhat.com> |
x86: share pci-testdev hdr in common lib
Signed-off-by: Andrew Jones <drjones@redhat.com> Reviewed-by: Radim KrÄmář <rkrcmar@redhat.com> Message-Id: <1453140064-9040-8-git-send-email-drjones@redh
x86: share pci-testdev hdr in common lib
Signed-off-by: Andrew Jones <drjones@redhat.com> Reviewed-by: Radim KrÄmář <rkrcmar@redhat.com> Message-Id: <1453140064-9040-8-git-send-email-drjones@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
show more ...
|
#
456c55bc |
| 18-Jan-2016 |
Andrew Jones <drjones@redhat.com> |
x86: move x86/pci to the common lib
Also move pci_config_read into asm/pci.h
Signed-off-by: Andrew Jones <drjones@redhat.com> Reviewed-by: Radim KrÄmář <rkrcmar@redhat.com> Message-Id: <14531400
x86: move x86/pci to the common lib
Also move pci_config_read into asm/pci.h
Signed-off-by: Andrew Jones <drjones@redhat.com> Reviewed-by: Radim KrÄmář <rkrcmar@redhat.com> Message-Id: <1453140064-9040-7-git-send-email-drjones@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
show more ...
|
#
f22a66a1 |
| 18-Jan-2016 |
Andrew Jones <drjones@redhat.com> |
x86: use common portio accessors from io.h
x86 code reinvents io*/out* in a few places. To prepare for a common pci driver use the common accessors from io.h in pci.c and vmexit.c. Now we use the co
x86: use common portio accessors from io.h
x86 code reinvents io*/out* in a few places. To prepare for a common pci driver use the common accessors from io.h in pci.c and vmexit.c. Now we use the correct order (value, port) for out* too.
Signed-off-by: Andrew Jones <drjones@redhat.com> Reviewed-by: Radim KrÄmář <rkrcmar@redhat.com> Message-Id: <1453140064-9040-5-git-send-email-drjones@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
show more ...
|
#
a5d12b9f |
| 21-Aug-2015 |
Paolo Bonzini <pbonzini@redhat.com> |
x86: get ACPI port addresses from FADT
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
#
a3d1fb55 |
| 03-Apr-2014 |
Paolo Bonzini <pbonzini@redhat.com> |
x86: move size #defines to processor.h
These are necessary in many testcases that includes hand-written assembly, otherwise they will only run for either 32- or 64-bit.
Signed-off-by: Paolo Bonzini
x86: move size #defines to processor.h
These are necessary in many testcases that includes hand-written assembly, otherwise they will only run for either 32- or 64-bit.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
show more ...
|
#
8a544409 |
| 26-Feb-2014 |
Paolo Bonzini <pbonzini@redhat.com> |
vmexit: add mov-to-dr test
Currently each MOV to a debug register causes a debug exit. Add a testcase to track upcoming improvements.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
#
0b9e64c4 |
| 17-Oct-2013 |
Gleb Natapov <gleb@redhat.com> |
Fix compilation on older compilers.
%d0 constrain is wrong, rely on variable length to choose correct register instead.
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com> Reviewed-by: Michael S. Tsir
Fix compilation on older compilers.
%d0 constrain is wrong, rely on variable length to choose correct register instead.
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Gleb Natapov <gleb@redhat.com>
show more ...
|
#
5292dbf7 |
| 03-Apr-2013 |
Michael S. Tsirkin <mst@redhat.com> |
vmexit: add pci io and memory speed tests
These tests measure speed of mmio and port io exits using the new pci-testdev. Skipped when running on old qemu.
Signed-off-by: Michael S. Tsirkin <mst@red
vmexit: add pci io and memory speed tests
These tests measure speed of mmio and port io exits using the new pci-testdev. Skipped when running on old qemu.
Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Gleb Natapov <gleb@redhat.com>
show more ...
|
#
00bfecaa |
| 13-Dec-2012 |
Paolo Bonzini <pbonzini@redhat.com> |
vmexit: time the number of cycles for simple PIO
This patch adds three scenarios to the vmexit test. Two are very simple PIO cases that are handled in the kernel (reading from and writing to ELCR).
vmexit: time the number of cycles for simple PIO
This patch adds three scenarios to the vmexit test. Two are very simple PIO cases that are handled in the kernel (reading from and writing to ELCR). The other is an unmapped PIO that is handled in userspace.
The difference between the two reading scenarios is roughly the cost of a userspace exit; the existing inl_from_pmtimer test is not precise enough, because the device model has a pretty high cost.
The difference between the kernel read and write is the cost of emulation, because inl_from_kernel goes through the whole emulation stuff while outl does not (it is used for virtio, while the speed of inl matters less).
Example:
vmcall 3898 inl_from_pmtimer 24615 inl_from_qemu 20574 inl_from_kernel 7237 outl_to_kernel 4451
So the cost of exiting to userspace is 13000 cycles on this machine, and the cost of emulation is 3300 cycles.
Suggested-by: Avi Kivity <avi.kivity@gmail.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Gleb Natapov <gleb@redhat.com>
show more ...
|
#
5fecf5d8 |
| 28-Nov-2012 |
Will Auld <will.auld.intel@gmail.com> |
Added tests for ia32_tsc_adjust funtionality.
Added x86/tsc_adjust.c and updated x86/vmexit.c to include timing tests for reading and writing the emulated IA32_TSC_ADJUST msr.
Signed-off-by: Will A
Added tests for ia32_tsc_adjust funtionality.
Added x86/tsc_adjust.c and updated x86/vmexit.c to include timing tests for reading and writing the emulated IA32_TSC_ADJUST msr.
Signed-off-by: Will Auld <will.auld@intel.com> Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
show more ...
|
#
7d641cc5 |
| 06-Jan-2011 |
Avi Kivity <avi@redhat.com> |
vmexit: fix race in joining smp tests
'nr_cpus_done' is not incremented atomically; this has been observed to cause tests to stall. Fix by using a proper atomic increment.
Signed-off-by: Avi Kivit
vmexit: fix race in joining smp tests
'nr_cpus_done' is not incremented atomically; this has been observed to cause tests to stall. Fix by using a proper atomic increment.
Signed-off-by: Avi Kivity <avi@redhat.com>
show more ...
|
#
eda71b28 |
| 19-Dec-2010 |
Avi Kivity <avi@redhat.com> |
vmexit: add ple stress test
This test round-robins executions among all cpus. If overcommitted, it will execute at the rate the host switches vcpu contexts.
Signed-off-by: Avi Kivity <avi@redhat.c
vmexit: add ple stress test
This test round-robins executions among all cpus. If overcommitted, it will execute at the rate the host switches vcpu contexts.
Signed-off-by: Avi Kivity <avi@redhat.com>
show more ...
|
#
0b267183 |
| 19-Dec-2010 |
Avi Kivity <avi@redhat.com> |
vmexit: add support for running a selected set of tests
qemu -device testdev,chardev=log -chardev stdio,id=log \ -kernel vmexit.flat -append 'test1 test2 test3'
will run test1, test2, and
vmexit: add support for running a selected set of tests
qemu -device testdev,chardev=log -chardev stdio,id=log \ -kernel vmexit.flat -append 'test1 test2 test3'
will run test1, test2, and test3, and skip all others.
Signed-off-by: Avi Kivity <avi@redhat.com>
show more ...
|