Go to file
Alberto Garcia 76f4afb40f throttle: Add throttle group support
The throttle group support use a cooperative round robin scheduling
algorithm.

The principles of the algorithm are simple:
- Each BDS of the group is used as a token in a circular way.
- The active BDS computes if a wait must be done and arms the right
  timer.
- If a wait must be done the token timer will be armed so the token
  will become the next active BDS.

Signed-off-by: Alberto Garcia <berto@igalia.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Message-id: f0082a86f3ac01c46170f7eafe2101a92e8fde39.1433779731.git.berto@igalia.com
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
2015-06-12 14:00:00 +01:00
audio audio: Don't free hw resources until after hw backend is stopped 2014-12-22 23:12:25 +00:00
backends Extend TPM TIS interface to support TPM 2 2015-05-31 20:29:02 +02:00
block throttle: Add throttle group support 2015-06-12 14:00:00 +01:00
bsd-user target-i386: use memory API to implement SMRAM 2015-06-05 17:36:39 +02:00
default-configs ACPI: split CONFIG_ACPI into 4 pieces 2015-05-29 11:28:59 +01:00
disas cris: remove unused cris_cond15 declarations 2015-03-19 11:11:55 +03:00
docs fw_cfg: insert fw_cfg file blobs via qemu cmdline 2015-06-10 08:06:46 +02:00
dtc@65cc4d2748 dtc: Update dtc / libfdt submodule to version 1.4.0 2015-06-03 23:56:49 +02:00
fpu target-s390x: define default NaN values 2015-06-05 01:37:58 +02:00
fsdev Fix typos in comments 2015-03-19 11:30:37 +03:00
gdb-xml gdb-xml: Include XML for s390 vector registers 2015-05-27 17:52:03 +02:00
hw pc, acpi, virtio 2015-06-11 15:33:38 +01:00
include throttle: Add throttle group support 2015-06-12 14:00:00 +01:00
libcacard libcacard: do not use full paths for include files in the same dir 2015-04-30 16:05:48 +03:00
libdecnumber libdecnumber: Fix warnings from smatch (missing static, boolean operations) 2014-08-24 13:21:06 +04:00
linux-headers pc, acpi, virtio 2015-06-11 15:33:38 +01:00
linux-user target-i386: use memory API to implement SMRAM 2015-06-05 17:36:39 +02:00
migration migration: Add qmp commands to set and query parameters 2015-05-07 18:31:53 +02:00
net vhost-user: Improve -netdev/netdev_add/-net/... error reporting 2015-06-09 07:40:24 +02:00
pc-bios Makefile.target: set icon for binary file on Mac OS X 2015-05-19 09:11:17 +01:00
pixman@87eea99e44 pixman: update internal copy to pixman-0.32.6 2014-09-15 08:14:19 +02:00
po po: fix conflict with %.mo rule in rules.mak 2014-09-26 13:35:08 +02:00
qapi throttle: Add throttle group support 2015-06-12 14:00:00 +01:00
qga qapi: Use 'struct' instead of 'type' in schema 2015-05-05 18:39:01 +02:00
qobject json-parser: Accept 'null' in QMP 2015-05-11 08:59:07 -04:00
qom qom: add object_property_add_const_link 2015-06-05 17:36:39 +02:00
roms pseries: Update SLOF firmware image to qemu-slof-20150313 2015-03-25 22:49:45 +01:00
scripts virtio-input: add linux/input.h 2015-05-29 10:30:06 +02:00
slirp slirp: udp: fix NULL pointer dereference because of uninitialized socket 2014-09-23 19:15:05 +01:00
stubs monitor: Change return type of monitor_cur_is_qmp() to bool 2015-06-02 10:07:16 +02:00
target-alpha Revert "target-alpha: Add vector implementation for CMPBGE" 2015-05-22 12:30:13 +01:00
target-arm target-arm: Remove v8_ prefix from names of non-v8-specific cpreg arrays 2015-06-02 15:32:43 +01:00
target-cris cris: remove unused cris_cond15 declarations 2015-03-19 11:11:55 +03:00
target-i386 target-i386: use memory API to implement SMRAM 2015-06-05 17:36:39 +02:00
target-lm32 tcg: Change translator-side labels to a pointer 2015-03-13 12:28:18 -07:00
target-m68k tcg: Change translator-side labels to a pointer 2015-03-13 12:28:18 -07:00
target-microblaze microblaze: cpu: Delete MMAP_SHIFT definition 2015-06-03 14:21:23 +03:00
target-mips kvm: introduce kvm_arch_msi_data_to_gsi 2015-06-02 14:56:25 +01:00
target-moxie target-moxie: Fix warnings from Sparse (one-bit signed bitfield) 2015-03-19 11:11:55 +03:00
target-openrisc openrisc: cpu: Remove unused cpu_get_pc 2015-04-30 16:06:18 +03:00
target-ppc Patch queue for ppc - 2015-06-03 2015-06-04 14:04:14 +01:00
target-s390x s390x/virtio-ccw: migration and virtio for 2.4 2015-06-09 11:07:41 +01:00
target-sh4 tcg: Change translator-side labels to a pointer 2015-03-13 12:28:18 -07:00
target-sparc tcg: Change translator-side labels to a pointer 2015-03-13 12:28:18 -07:00
target-tricore target-tricore: fix BOL_ST_H_LONGOFF using ld 2015-05-30 16:49:19 +02:00
target-unicore32 tcg: Change translator-side labels to a pointer 2015-03-13 12:28:18 -07:00
target-xtensa tcg: Change translator-side labels to a pointer 2015-03-13 12:28:18 -07:00
tcg tcg/optimize: rename tcg_constant_folding 2015-06-09 07:00:56 -07:00
tests throttle: Add throttle group infrastructure tests 2015-06-12 14:00:00 +01:00
trace Remove superfluous '\n' around error_report() 2015-03-10 08:15:33 +03:00
ui sdl2: fix crash in handle_windowevent() when restoring the screen size 2015-06-11 14:40:25 +01:00
util throttle: Extract timers from ThrottleState into a separate structure 2015-06-12 14:00:00 +01:00
.exrc qemu: add .exrc 2012-09-07 09:02:44 +03:00
.gitignore gitignore: Ignore more .pod files. 2015-04-04 09:45:59 +03:00
.gitmodules PPC: Add u-boot firmware for e500 2014-06-16 13:24:35 +02:00
.mailmap Update mailmap 2013-09-05 09:40:31 -05:00
.travis.yml .travis.yml: Add "--enable-modules" 2015-01-26 12:27:05 +01:00
accel.c accel: Create accel object when initializing machine 2014-10-09 15:36:14 +02:00
aio-posix.c AioContext: acquire/release AioContext during aio_poll 2015-04-28 15:36:08 +02:00
aio-win32.c AioContext: acquire/release AioContext during aio_poll 2015-04-28 15:36:08 +02:00
arch_init.c migration: move dirty bitmap sync to ram_addr.h 2015-06-05 17:10:00 +02:00
async.c Revert "iothread: release iothread around aio_poll" 2015-06-12 13:58:33 +01:00
balloon.c balloon: improve error msg when adding second device 2015-04-24 14:18:05 -04:00
block.c throttle: Add throttle group support 2015-06-12 14:00:00 +01:00
blockdev-nbd.c nbd: Fix up comment after commit e140177 2015-03-25 13:38:07 +01:00
blockdev.c throttle: Add throttle group support 2015-06-12 14:00:00 +01:00
blockjob.c blockjob: Allow nested pause 2015-04-28 15:36:09 +02:00
bootdevice.c misc: fix typos in copyright declaration 2015-03-26 14:21:43 +01:00
bt-host.c sysemu: avoid proliferation of include/ subdirectories 2013-04-15 18:19:25 +02:00
bt-vhci.c sysemu: avoid proliferation of include/ subdirectories 2013-04-15 18:19:25 +02:00
Changelog Use qemu-project.org domain name 2013-10-11 09:34:56 -07:00
CODING_STYLE CODING_STYLE: Section about conditional statement 2014-08-15 18:54:06 +04:00
configure Patch queue for ppc - 2015-06-03 2015-06-04 14:04:14 +01:00
COPYING
COPYING.LIB
coroutine-gthread.c glib-compat.h: add new thread API emulation on top of pre-2.31 API 2014-06-10 07:44:01 +02:00
coroutine-sigaltstack.c coroutine-sigaltstack: Change jmp_buf to sigjmp_buf 2014-11-11 11:07:55 +03:00
coroutine-ucontext.c coroutine-ucontext: use __thread 2015-01-13 13:43:28 +00:00
coroutine-win32.c coroutine-win32.c: Add noinline attribute to work around gcc bug 2014-06-26 14:08:14 +01:00
cpu-exec.c - vhost-scsi: add bootindex property 2015-02-24 13:58:18 +00:00
cpus.c icount: print a warning if there is no more deadline in sleep=no mode 2015-06-05 17:10:00 +02:00
cputlb.c memory: replace cpu_physical_memory_reset_dirty() with test-and-clear 2015-06-05 17:10:00 +02:00
device_tree.c device-tree: Make a common-obj 2015-06-03 14:21:24 +03:00
device-hotplug.c pci-hotplug-old: Has been dead for five major releases, bury 2015-03-01 12:37:54 +01:00
disas.c monitor: QEMU Monitor Instruction Disassembly Incorrect for PowerPC LE Mode 2014-06-16 13:24:26 +02:00
dma-helpers.c range: remove useless inclusions 2015-04-30 16:05:48 +03:00
dump.c dump: Fix dump-guest-memory termination and use-after-close 2014-11-02 10:04:34 +03:00
exec.c memory: replace cpu_physical_memory_reset_dirty() with test-and-clear 2015-06-05 17:10:00 +02:00
gdbstub.c Revert "gdbstub: Do not kill target in system emulation mode" 2015-05-28 16:57:35 +01:00
HACKING HACKING: Document vaddr type usage 2013-07-23 02:41:31 +02:00
hmp-commands.hx monitor: Use trad. command interface for HMP pcie_aer_inject_error 2015-06-02 09:59:13 +02:00
hmp.c throttle: Add throttle group support 2015-06-12 14:00:00 +01:00
hmp.h monitor: Use traditional command interface for HMP device_add 2015-06-02 09:59:13 +02:00
iohandler.c iohandler.c: Properly initialize sigaction struct 2014-05-24 00:07:29 +04:00
ioport.c - miscellaneous cleanups for TCG (Emilio) and NBD (Bogdan) 2015-04-30 12:04:11 +01:00
iothread.c Revert "iothread: release iothread around aio_poll" 2015-06-12 13:58:33 +01:00
kvm-all.c kvm: remove special handling of DIRTY_MEMORY_MIGRATION in the dirty log mask 2015-06-05 17:09:59 +02:00
kvm-stub.c pc: kvm: check if KVM has free memory slots to avoid abort() 2014-11-23 12:11:29 +02:00
LICENSE vfio: move hw/misc/vfio.c to hw/vfio/pci.c Move vfio.h into include/hw/vfio 2014-12-19 15:24:06 -07:00
main-loop.c Revert "main-loop.c: Handle SIGINT, SIGHUP and SIGTERM synchronously" 2014-10-27 15:05:09 +00:00
MAINTAINERS Add David Gibson for sPAPR in MAINTAINERS file 2015-06-03 23:56:55 +02:00
Makefile arch_init: Drop target-x86_64.conf 2015-06-02 15:15:52 -03:00
Makefile.objs device-tree: Make a common-obj 2015-06-03 14:21:24 +03:00
Makefile.target Makefile.target: set master BUILD_DIR 2015-06-05 17:09:58 +02:00
memory_mapping.c Add skip_dump flag to ignore memory region during dump 2014-10-31 11:29:01 +01:00
memory.c memory: use mr->ram_addr in "is this RAM?" assertions 2015-06-05 17:10:00 +02:00
module-common.c module: implement module loading 2014-02-20 13:14:18 +01:00
monitor.c monitor: Fix QMP ABI breakage around "id" 2015-06-08 12:12:11 +01:00
nbd.c qemu-nbd: only send a limited number of errno codes on the wire 2015-05-08 14:45:11 +02:00
numa.c QemuOpts: Convert qemu_opts_foreach() to Error 2015-06-09 07:37:37 +02:00
os-posix.c rcu: do not create thread in pthread_atfork callback 2015-04-01 10:06:38 +02:00
os-win32.c pidfile: stop making pidfile error a special case 2014-11-02 10:04:34 +03:00
page_cache.c xbzrle: rebuild the cache_is_cached function 2015-01-15 17:49:43 +05:30
qapi-schema.json monitor: Convert client_migrate_info to QAPI 2015-06-02 09:59:13 +02:00
qdev-monitor.c QemuOpts: Convert qemu_opt_foreach() to Error 2015-06-09 07:40:23 +02:00
qdict-test-data.txt
qemu-bridge-helper.c qemu-bridge-helper: Fix fd leak in main() 2014-06-27 10:39:10 +02:00
qemu-char.c qemu-char: remove unused list node from FDCharDriver 2015-04-30 16:05:49 +03:00
qemu-coroutine-io.c coroutine-io: Return -errno in case of error 2015-03-18 12:07:21 +01:00
qemu-coroutine-lock.c coroutine: remove unnecessary parentheses in qemu_co_queue_empty 2015-04-30 16:05:49 +03:00
qemu-coroutine-sleep.c coroutine: Drop co_sleep_ns 2014-08-29 10:46:58 +01:00
qemu-coroutine.c coroutine: Clean up qemu_coroutine_enter() 2015-03-09 11:11:59 +01:00
qemu-doc.texi raw-posix: Deprecate host floppy passthrough 2015-03-19 11:43:02 +01:00
qemu-img-cmds.hx qemu-img: Add progress output for amend 2014-11-03 11:41:48 +00:00
qemu-img.c util: move read_password method out of qemu-img into osdep/oslib 2015-05-22 17:08:01 +02:00
qemu-img.texi qemu-img: Add progress output for amend 2014-11-03 11:41:48 +00:00
qemu-io-cmds.c qemu-io: Use getopt() correctly 2015-05-22 17:08:01 +02:00
qemu-io.c qemu-io: prompt for encryption keys when required 2015-05-22 17:08:01 +02:00
qemu-log.c qemu-log: Correct help text of 'log cpu_reset' 2015-02-10 09:27:20 +03:00
qemu-nbd.c qemu-nbd: Switch to qemu_set_fd_handler 2015-06-05 17:09:58 +02:00
qemu-nbd.texi nbd: Miscellaneous typo fixes. 2014-05-24 00:07:29 +04:00
qemu-options-wrapper.h vl.c: In qemu -h output, only print options for the arch we are running as 2011-12-19 10:27:33 -06:00
qemu-options.h
qemu-options.hx throttle: Add throttle group support 2015-06-12 14:00:00 +01:00
qemu-seccomp.c seccomp: add mlockall to whitelist 2015-01-23 14:07:08 +01:00
qemu-tech.texi qemu-tech.texi: update implemented xtensa features list 2012-11-29 13:00:52 -06:00
qemu-timer.c qemu-timer.c: Trim list of included headers 2015-01-26 18:15:54 +00:00
qemu.nsi nsis: Improved support for parallel installation of 32 and 64 bit code 2013-11-07 07:02:44 +01:00
qemu.sasl sasl: Avoid 'Could not find keytab file' in syslog 2014-03-15 13:54:18 +04:00
qjson.c QJSON: Use OBJECT_CHECK 2015-05-11 08:59:07 -04:00
qmp-commands.hx throttle: Add throttle group support 2015-06-12 14:00:00 +01:00
qmp.c qapi: Drop inline nested struct in query-version 2015-05-05 18:39:02 +02:00
qtest.c qtest: pre-buffer hex nibs 2015-05-22 15:58:22 -04:00
README Use qemu-project.org domain name 2013-10-11 09:34:56 -07:00
rules.mak rules.mak: Force CFLAGS for all objects in DSO 2015-05-08 14:45:11 +02:00
savevm.c error: Replace error_report() & error_free() with error_report_err() 2015-03-19 11:11:55 +03:00
softmmu_template.h tcg: Add MO_ALIGN, MO_UNALN 2015-05-14 12:15:18 -07:00
spice-qemu-char.c spice: fix spice_chr_add_watch() pre-condition 2015-05-29 09:56:01 +02:00
tcg-runtime.c tcg: Push tcg-runtime routines into exec/helper-* 2014-05-28 09:33:54 -07:00
tci.c tcg: Mask TCGMemOp appropriately for indexing 2015-06-09 06:35:29 -07:00
thread-pool.c thread-pool: clean up thread_pool_completion_bh() 2015-04-28 15:36:09 +02:00
thunk.c exec: move include files to include/exec/ 2012-12-19 08:31:31 +01:00
tpm.c QemuOpts: Convert qemu_opts_foreach() to Error 2015-06-09 07:37:37 +02:00
trace-events stdvga: factor out mmio subregion init 2015-06-10 18:13:58 +01:00
translate-all.c translate-all: make less of tb_invalidate_phys_page_range depend on is_cpu_write_access 2015-06-05 17:09:59 +02:00
translate-all.h translate-all: remove unnecessary argument to tb_invalidate_phys_range 2015-06-05 17:09:59 +02:00
user-exec.c exec: move functions to translate-all.h 2015-06-05 17:09:59 +02:00
VERSION Open 2.4 development tree 2015-04-25 22:05:07 +01:00
version.rc Use qemu-project.org domain name 2013-10-11 09:34:56 -07:00
vl.c fw_cfg: insert fw_cfg file blobs via qemu cmdline 2015-06-10 08:06:46 +02:00
xen-common-stub.c accel: Move Xen registration code to xen-common.c 2014-10-04 08:59:15 +02:00
xen-common.c accel: Pass MachineState object to accel init functions 2014-10-09 12:57:10 +02:00
xen-hvm-stub.c xen: Remove xen_cmos_set_s3_resume() 2015-03-10 08:15:33 +03:00
xen-hvm.c memory: prepare for multiple bits in the dirty log mask 2015-06-05 17:09:59 +02:00
xen-mapcache.c xen: add a lock for the mapcache 2015-01-20 14:24:17 +00:00

Read the documentation in qemu-doc.html or on http://wiki.qemu-project.org

- QEMU team