- Apr 25, 2023
-
-
Add CBQRI controllers to the RISC-V virt machine. The device properties can be fully configured from the command line: $ qemu-system-riscv64 -M virt ... \ -device riscv.cbqri.capacity,mmio_base=0x04828000[,...] -device riscv.cbqri.bandwidth,mmio_base=0x04829000[,...] The mmio_base option is mandatory, the others are optional. Many -device arguments as wanted can be provided as long as their mmio regions don't conflict. To see all possible options: $ qemu-system-riscv64 -device riscv.cbqri.capacity,help riscv.cbqri.capacity options: alloc_op_config_limit=<bool> - (default: true) alloc_op_flush_rcid=<bool> - (default: true) alloc_op_read_limit=<bool> - (default: true) at_code=<bool> - (default: true) at_data=<bool> - (default: true) max_mcids=<uint16> - (default: 256) max_rcids=<uint16> - (default: 64) mmio_base=<uint64> - (default: 0) mon_evt_id_none=<bool> - (default: true) mon_evt_id_occupancy=<bool> - (default: true) mon_op_config_event=<bool> - (default: true) mon_op_read_counter=<bool> - (default: true) ncblks=<uint16> - (default: 16) target=<str> $ qemu-system-riscv64 -device riscv.cbqri.bandwidth,help riscv.cbqri.bandwidth options: alloc_op_config_limit=<bool> - (default: true) alloc_op_read_limit=<bool> - (default: true) at_code=<bool> - (default: true) at_data=<bool> - (default: true) max_mcids=<uint16> - (default: 256) max_rcids=<uint16> - (default: 64) mmio_base=<uint64> - (default: 0) mon_evt_id_none=<bool> - (default: true) mon_evt_id_rdonly_count=<bool> - (default: true) mon_evt_id_rdwr_count=<bool> - (default: true) mon_evt_id_wronly_count=<bool> - (default: true) mon_op_config_event=<bool> - (default: true) mon_op_read_counter=<bool> - (default: true) nbwblks=<uint16> - (default: 1024) target=<str> Boolean options correspond to hardware capabilities that can be disabled Signed-off-by:
Nicolas Pitre <npitre@baylibre.com> Signed-off-by:
Drew Fustini <dfustini@baylibre.com>
-
Build the CBQRI controllers when RISC-V CBQRI is enabled by Kconfig. Signed-off-by:
Nicolas Pitre <npitre@baylibre.com> Signed-off-by:
Drew Fustini <dfustini@baylibre.com>
-
Add boolean property for CBQRI and imply it should be enabled for the RISC-V virt machine. Signed-off-by:
Nicolas Pitre <npitre@baylibre.com> Signed-off-by:
Drew Fustini <dfustini@baylibre.com>
-
Implement a bandwidth controller according to the Capacity and Bandwidth QoS Register Interface (CBQRI) which supports these capabilities: - Number of access types: 2 (code and data) - Usage monitoring operations: CONFIG_EVENT, READ_COUNTER - Event IDs supported: None, Total read/write byte count, Total read byte count, Total write byte count - Bandwidth allocation operations: CONFIG_LIMIT, READ_LIMIT Link: https://github.com/riscv-non-isa/riscv-cbqri/blob/main/riscv-cbqri.pdf Signed-off-by:
Nicolas Pitre <npitre@baylibre.com> Signed-off-by:
Drew Fustini <dfustini@baylibre.com>
-
Implement a capacity controller according to the Capacity and Bandwidth QoS Register Interface (CBQRI) which supports these capabilities: - Number of access types: 2 (code and data) - Usage monitoring operations: CONFIG_EVENT, READ_COUNTER - Event IDs supported: None, Occupancy - Capacity allocation ops: CONFIG_LIMIT, READ_LIMIT, FLUSH_RCID Link: https://github.com/riscv-non-isa/riscv-cbqri/blob/main/riscv-cbqri.pdf Signed-off-by:
Nicolas Pitre <npitre@baylibre.com> Signed-off-by:
Drew Fustini <dfustini@baylibre.com>
-
Define structs to represent the hardware capabilities of capacity and bandwidth controllers according to the RISC-V Capacity and Bandwidth QoS Register Interface (CBQRI). Link: https://github.com/riscv-non-isa/riscv-cbqri/blob/main/riscv-cbqri.pdf Signed-off-by:
Nicolas Pitre <npitre@baylibre.com> Signed-off-by:
Drew Fustini <dfustini@baylibre.com>
-
Implement the sqoscfg CSR defined by the Ssqosid ISA extension (Supervisor-mode Quality of Service ID). The CSR contains two fields: - Resource Control ID (RCID) used determine resource allocation - Monitoring Counter ID (MCID) used to track resource usage The CSR is defined for S-mode but accessing it when V=1 shall cause a virtual instruction exception. Implement this behavior by calling the hmode predicate. Link: https://github.com/riscv-non-isa/riscv-cbqri/blob/main/riscv-cbqri.pdf Signed-off-by:
Kornel Dulęba <mindal@semihalf.com> [dfustini: rebase on v8.0.50, reword commit message] Signed-off-by:
Drew Fustini <dfustini@baylibre.com>
-
- Apr 24, 2023
-
-
https://gitlab.com/juan.quintela/qemuRichard Henderson authored
Migration Pull request Everything that was reviewed since last PULL request: - fix to control flow (eric) - rearrange of hmp commands (juan) - Make capabilities more consistent and coherent (juan) Not all of them reviewed yet, so only the ones reviewed. Later, Juan. PD. I am waiting to finish review of the compression fixes to send them. # -----BEGIN PGP SIGNATURE----- # # iQIzBAABCAAdFiEEGJn/jt6/WMzuA0uC9IfvGFhy1yMFAmRGf0kACgkQ9IfvGFhy # 1yNojRAAhvOZoYRpTizbSo7wOr2TpO4F1R/opWECubBvw3/yTo3ifsVjovRo/nxe # zmCXnY/ykqxskb/OMNyLZQYG4MPT24nyf7dhT3VxcFjTYsaNU59yvJoBtvy7Oq5h # 3Yk0459eKmsP39IXFlAMMRBwX+Hu3aE/8xAAHOowAhkmDkMFYjf7I1Lxpuarbhp+ # k9O5eqdNchG21YUzWXUe4ivAWqZmvzXtkwCp+XJ/KizjIEKgsm8HO1nwm5mtpmnu # SS9Kkf957jYHqK73YXQhUV+iQ0kCVpclBPfZc2KuzudPi/aMG6LEVKfV//z5KIAz # amME/6D1oSBfpgtqoCCPELdNfZOz+ZIa+XJzXlWkuiBDu9yNpUP339EVClmStwFu # 1UAOJIs8VUjPr9zTItgCDjZ17nh4Q0I04aMGuxgQIu82e8CTgS/QrnH2Tr2lUoMO # QLgYAetVIDGVVFAA9Clba4C7AbS5hBeWMnd9Qd4cP93d6Z/C65xUv0a9mI7edpMb # RNbvg73ZZCb6tye25cPSr07VaGTS+TELVMEh9RX3KZrfMTsHfGQ/ZHZv9wqJrQ04 # 0wCidqBIbBk+BN8AtJ9vwqtPpL/Nf/BwDKPiwOVuZHCcrP+veXtlKb00SwNpJwkN # x3Ld4cq22ZLeqO4dMueK16ij0ZpuXsF7jM/ptEvxrw6oxh/6xYQ= # =g5gx # -----END PGP SIGNATURE----- # gpg: Signature made Mon 24 Apr 2023 02:08:25 PM BST # gpg: using RSA key 1899FF8EDEBF58CCEE034B82F487EF185872D723 # gpg: Good signature from "Juan Quintela <quintela@redhat.com>" [undefined] # gpg: aka "Juan Quintela <quintela@trasno.org>" [undefined] # gpg: WARNING: This key is not certified with a trusted signature! # gpg: There is no indication that the signature belongs to the owner. # Primary key fingerprint: 1899 FF8E DEBF 58CC EE03 4B82 F487 EF18 5872 D723 * tag 'migration-20230424-pull-request' of https://gitlab.com/juan.quintela/qemu : (30 commits) migration: Create migrate_max_bandwidth() function migration: Move migrate_postcopy() to options.c migration: Create migrate_cpu_throttle_tailslow() function migration: Create migrate_cpu_throttle_increment() function migration: Create migrate_cpu_throttle_initial() to option.c migration: Move migrate_announce_params() to option.c migration: Create migrate_max_cpu_throttle() migration: Create migrate_checkpoint_delay() migration: Create migrate_throttle_trigger_threshold() migration: Move migrate_use_block_incremental() to option.c migration: Use migrate_max_postcopy_bandwidth() migration: Move parameters functions to option.c migration: Move migrate_cap_set() to options.c migration: Move qmp_migrate_set_capabilities() to options.c migration: Move qmp_query_migrate_capabilities() to options.c migration: Move migrate_caps_check() to options.c migration: Create migrate_rdma_pin_all() function migration: Move migrate_use_return() to options.c migration: Move migrate_use_block() to options.c migration: Move migrate_use_xbzrle() to options.c ... Signed-off-by:
Richard Henderson <richard.henderson@linaro.org>
-
Juan Quintela authored
Signed-off-by:
Juan Quintela <quintela@redhat.com> Reviewed-by:
Fabiano Rosas <farosas@suse.de>
-
Juan Quintela authored
Signed-off-by:
Juan Quintela <quintela@redhat.com> Reviewed-by:
Fabiano Rosas <farosas@suse.de>
-
Juan Quintela authored
Signed-off-by:
Juan Quintela <quintela@redhat.com> Reviewed-by:
Fabiano Rosas <farosas@suse.de>
-
Juan Quintela authored
Signed-off-by:
Juan Quintela <quintela@redhat.com> Reviewed-by:
Fabiano Rosas <farosas@suse.de>
-
Juan Quintela authored
Signed-off-by:
Juan Quintela <quintela@redhat.com> Reviewed-by:
Fabiano Rosas <farosas@suse.de>
-
Juan Quintela authored
Signed-off-by:
Juan Quintela <quintela@redhat.com> Reviewed-by:
Fabiano Rosas <farosas@suse.de> --- Fix extra whitespace (fabiano)
-
Juan Quintela authored
Signed-off-by:
Juan Quintela <quintela@redhat.com> Reviewed-by:
Fabiano Rosas <farosas@suse.de>
-
Juan Quintela authored
Signed-off-by:
Juan Quintela <quintela@redhat.com> Reviewed-by:
Fabiano Rosas <farosas@suse.de>
-
Juan Quintela authored
Signed-off-by:
Juan Quintela <quintela@redhat.com> Reviewed-by:
Fabiano Rosas <farosas@suse.de>
-
Juan Quintela authored
To be consistent with every other parameter, rename to migrate_block_incremental(). Signed-off-by:
Juan Quintela <quintela@redhat.com> Reviewed-by:
Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
-
Juan Quintela authored
Signed-off-by:
Juan Quintela <quintela@redhat.com> Reviewed-by:
Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
-
Juan Quintela authored
Signed-off-by:
Juan Quintela <quintela@redhat.com> Reviewed-by:
Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
-
Juan Quintela authored
Signed-off-by:
Juan Quintela <quintela@redhat.com> Reviewed-by:
Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
-
Juan Quintela authored
Signed-off-by:
Juan Quintela <quintela@redhat.com> Reviewed-by:
Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
-
Juan Quintela authored
Signed-off-by:
Juan Quintela <quintela@redhat.com> Reviewed-by:
Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
-
Juan Quintela authored
Signed-off-by:
Juan Quintela <quintela@redhat.com> Reviewed-by:
Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
-
Juan Quintela authored
Signed-off-by:
Juan Quintela <quintela@redhat.com> Reviewed-by:
Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru> --- Fixed missing space after comma (fabiano)
-
Juan Quintela authored
Once that we are there, we rename the function to migrate_return_path() to be consistent with all other capabilities. Signed-off-by:
Juan Quintela <quintela@redhat.com> Reviewed-by:
Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
-
Juan Quintela authored
Once that we are there, we rename the function to migrate_block() to be consistent with all other capabilities. Signed-off-by:
Juan Quintela <quintela@redhat.com> Reviewed-by:
Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
-
Juan Quintela authored
Once that we are there, we rename the function to migrate_xbzrle() to be consistent with all other capabilities. We change the type to return bool also for consistency. Signed-off-by:
Juan Quintela <quintela@redhat.com> Reviewed-by:
Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
-
Juan Quintela authored
Once that we are there, we rename the function to migrate_zero_copy_send() to be consistent with all other capabilities. We can remove the CONFIG_LINUX guard. We already check that we can't setup this capability in migrate_caps_check(). Signed-off-by:
Juan Quintela <quintela@redhat.com> Reviewed-by:
Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
-
Juan Quintela authored
Once that we are there, we rename the function to migrate_multifd() to be consistent with all other capabilities. Signed-off-by:
Juan Quintela <quintela@redhat.com> Reviewed-by:
Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
-
Juan Quintela authored
Once that we are there, we rename the function to migrate_events() to be consistent with all other capabilities. Signed-off-by:
Juan Quintela <quintela@redhat.com> Reviewed-by:
Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
-
Juan Quintela authored
Once that we are there, we rename the function to migrate_compress() to be consistent with all other capabilities. Signed-off-by:
Juan Quintela <quintela@redhat.com> Reviewed-by:
Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
-
Juan Quintela authored
Once that we are there, we rename the function to migrate_colo() to be consistent with all other capabilities. Signed-off-by:
Juan Quintela <quintela@redhat.com> Reviewed-by:
Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
-
Juan Quintela authored
We move there all capabilities helpers from migration.c. Signed-off-by:
Juan Quintela <quintela@redhat.com> Reviewed-by:
Dr. David Alan Gilbert <dgilbert@redhat.com> --- Following David advise: - looked through the history, capabilities are newer than 2012, so we can remove that bit of the header. - This part is posterior to Anthony. Original Author is Orit. Once there, I put myself. Peter Xu also did quite a bit of work here. Anyone else wants/needs to be there? I didn't search too hard because nobody asked before to be added. What do you think?
-
Juan Quintela authored
And remove the convoluted use of qmp_migrate_set_capabilities() to enable disable MIGRATION_CAPABILITY_BLOCK. Signed-off-by:
Juan Quintela <quintela@redhat.com> Reviewed-by:
Fabiano Rosas <farosas@suse.de>
-
Juan Quintela authored
It has nothing to do with migration, except for the "migrate" in the name of the command. Move it with the rest of the ui commands. Signed-off-by:
Juan Quintela <quintela@redhat.com> Reviewed-by:
Philippe Mathieu-Daudé <philmd@linaro.org>
-
Juan Quintela authored
It is only used there, so we can make it static. Once there, remove spice.h that it is not used. Signed-off-by:
Juan Quintela <quintela@redhat.com> Reviewed-by:
Peter Xu <peterx@redhat.com> Reviewed-by:
Philippe Mathieu-Daudé <philmd@linaro.org> --- fix David Edmonson ui/qemu-spice.h unintended removal
-
Eric Blake authored
No need to declare a temporary variable. Suggested-by:
Juan Quintela <quintela@redhat.com> Fixes: 1df36e8c6289 ("migration: Handle block device inactivation failures better") Signed-off-by:
Eric Blake <eblake@redhat.com> Reviewed-by:
Juan Quintela <quintela@redhat.com> Signed-off-by:
Juan Quintela <quintela@redhat.com>
-
https://gitlab.com/juan.quintela/qemuRichard Henderson authored
Migration Pull request (take 2) Remove the two atomic patches that broke mips32. Please, apply. # -----BEGIN PGP SIGNATURE----- # # iQIzBAABCAAdFiEEGJn/jt6/WMzuA0uC9IfvGFhy1yMFAmRGYTkACgkQ9IfvGFhy # 1yMD5RAApL8bJTMpmkZ8afxG124/CID7fvg/WMp3vOTG/6923XZHfosUwqrCCvzN # 8qfSfOl4P5Gtv1dOU+ZBcgoFS3tj00Ud2YhcZiSVUy5LZPJNJEfv4YzIErDTJq3I # wcv/CgHvK1CKJ5DZ1g9hqnRvw9qYiodDEHS7UxvhGzckFExHps2oWt9nDuEZefKV # XptOX7YDFYmWE87fp8+rQMYGZEN/6Cc7p4HmSt9I11CgLbeaqTpmKuwTv89PU9qV # 7/X9kfoHNsKsVKw5WosEdRvEqhVQbvcCCxq+TGpeQz6d5U2mY7RVxQSNJxXNdD3P # uz7uannx+UhESgzf5GnwOMIcxWD6UMAcDt349IAWFbq5d1QGaXJ9fVVHVJDV1Irl # XHqxkugNMxRVZ8hQy5gSE6UTpeIjkIpSoZGnGS7E/iLMZHZBgv7s5VK21mYxn/QF # F9g3Ewo2lF+kpQ/ZEnQ9mFyCYtqOHOAOLAUa7/6WdGnUMuqQ47Fh+jbb+KdEyCLg # l7yXk2gXAb8SN6957Tlvo9okOB4NzhDPDXgvewAG/1yW4zL9hA+YCMvEvy90N8Be # rRKO7H9YlsW4wKjA//i2YNAbtaZN5+zeAS39m0exYmXA54AMufjWq/a7Ya/ix5Jo # 452LEz5hA4ckXXtP715pKQjqafxWXbHSS1qw9LBfMYr5TEEWC6c= # =JTxg # -----END PGP SIGNATURE----- # gpg: Signature made Mon 24 Apr 2023 12:00:09 PM BST # gpg: using RSA key 1899FF8EDEBF58CCEE034B82F487EF185872D723 # gpg: Good signature from "Juan Quintela <quintela@redhat.com>" [undefined] # gpg: aka "Juan Quintela <quintela@trasno.org>" [undefined] # gpg: WARNING: This key is not certified with a trusted signature! # gpg: There is no indication that the signature belongs to the owner. # Primary key fingerprint: 1899 FF8E DEBF 58CC EE03 4B82 F487 EF18 5872 D723 * tag 'migration-20230420-pull-request' of https://gitlab.com/juan.quintela/qemu : migration: Pass migrate_caps_check() the old and new caps migration: rename enabled_capabilities to capabilities migration/postcopy: Detect file system on dest host vl.c: Create late backends before migration object util/mmap-alloc: qemu_fd_getfs() migration: Handle block device inactivation failures better migration: Rename normal to normal_pages migration: Rename duplicate to zero_pages migration: Make postcopy_requests atomic migration: Make dirty_sync_count atomic migration: Make downtime_bytes atomic migration: Make precopy_bytes atomic migration: Make dirty_sync_missed_zero_copy atomic migration: Make multifd_bytes atomic migration: Update atomic stats out of the mutex migration: Merge ram_counters and ram_atomic_counters migration: remove extra whitespace character for code style Signed-off-by:
Richard Henderson <richard.henderson@linaro.org>
-
Juan Quintela authored
We used to pass the old capabilities array and the new capabilities as a list. Signed-off-by:
Juan Quintela <quintela@redhat.com> Reviewed-by:
Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
-