Skip to content
Snippets Groups Projects
  1. Sep 08, 2023
  2. Sep 07, 2023
  3. Sep 01, 2023
  4. Aug 31, 2023
  5. Aug 30, 2023
    • Alex Bennée's avatar
      docs/style: permit inline loop variables · 4b77429a
      Alex Bennée authored
      
      I've already wasted enough of my time debugging aliased variables in
      deeply nested loops. While not scattering variable declarations around
      is a good aim I think we can make an exception for stuff used inside a
      loop.
      
      Reviewed-by: default avatarPhilippe Mathieu-Daudé <philmd@linaro.org>
      Reviewed-by: default avatarStefan Hajnoczi <stefanha@redhat.com>
      Acked-by: default avatarMarkus Armbruster <armbru@redhat.com>
      Reviewed-by: default avatarThomas Huth <thuth@redhat.com>
      Reviewed-by: default avatarRichard Henderson <richard.henderson@linaro.org>
      Signed-off-by: default avatarAlex Bennée <alex.bennee@linaro.org>
      Message-Id: <20230829161528.2707696-5-alex.bennee@linaro.org>
      4b77429a
    • Daniel P. Berrangé's avatar
      gitlab: enable ccache for many build jobs · 2f7350cd
      Daniel P. Berrangé authored
      
      The `ccache` tool can be very effective at reducing compilation times
      when re-running pipelines with only minor changes each time. For example
      a fresh 'build-system-fedora' job will typically take 20 minutes on the
      gitlab.com shared runners. With ccache this is reduced to as little as
      6 minutes.
      
      Normally meson would auto-detect existance of ccache in $PATH and use
      it automatically, but the way we wrap meson from configure breaks this,
      as we're passing in an config file with explicitly set compiler paths.
      Thus we need to add $CCACHE_WRAPPERSPATH to the front of $PATH. For
      unknown reasons if doing this in msys though, gcc becomes unable to
      invoke 'cc1' when run from meson. For msys we thus set CC='ccache gcc'
      before invoking 'configure' instead.
      
      A second problem with msys is that cache misses are incredibly
      expensive, so enabling ccache massively slows down the build when
      the cache isn't well populated. This is suspected to be a result of
      the cost of spawning processes under the msys architecture. To deal
      with this we set CCACHE_DEPEND=1 which enables ccache's 'depend_only'
      strategy. This avoids extra spawning of the pre-processor during
      cache misses, with the downside that is it less likely ccache will
      find a cache hit after semantically benign compiler flag changes.
      This is the lesser of two evils, as otherwise we can't use ccache
      at all under msys and remain inside the job time limit.
      
      If people are finding ccache to hurt their pipelines, it can be
      disabled by setting the 'CCACHE_DISABLE=1' env variable against
      their gitlab fork CI settings.
      
      Signed-off-by: default avatarDaniel P. Berrangé <berrange@redhat.com>
      Reviewed-by: default avatarPhilippe Mathieu-Daudé <philmd@linaro.org>
      Message-Id: <20230804111054.281802-2-berrange@redhat.com>
      Signed-off-by: default avatarAlex Bennée <alex.bennee@linaro.org>
      Message-Id: <20230829161528.2707696-2-alex.bennee@linaro.org>
      2f7350cd
  6. Aug 28, 2023
    • Paolo Bonzini's avatar
      Revert "tests: Use separate virtual environment for avocado" · c03f57fd
      Paolo Bonzini authored
      This reverts commit e8e4298f.
      
      ensuregroup allows to specify both the acceptable versions of avocado,
      and a locked version to be used when avocado is not installed as a system
      pacakge.  This lets us install avocado in pyvenv/ using "mkvenv.py" and
      reuse the distro package on Fedora and CentOS Stream (the only distros
      where it's available).
      
      ensuregroup's usage of "(>=..., <=...)" constraints when evaluating
      the distro package, and "==" constraints when installing it from PyPI,
      makes it possible to avoid conflicts between the known-good version and
      a package plugins included in the distro.
      
      This is because package plugins have "==" constraints on the version
      that is included in the distro, and, using "pip install avocado==88.1"
      on a venv that includes system packages will result in an error:
      
         avocado-framework-plugin-varianter-yaml-to-mux 98.0 requires avocado-framework==98.0, but you have avocado-framework 88.1 which is incompatible.
         avocado-framework-plugin-result-html 98.0 requires avocado-framework==98.0, but you have avocado-framework 88.1 which is incompatible.
      
      But at the same time, if the venv does not include a system distribution
      of avocado then we can install a known-good version and stick to LTS
      releases.
      
      Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1663
      
      
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      c03f57fd
  7. Aug 24, 2023
  8. Aug 23, 2023
  9. Aug 08, 2023
  10. Aug 01, 2023
  11. Jul 26, 2023
    • Peter Xu's avatar
      docs/migration: Update postcopy bits · f014880a
      Peter Xu authored
      
      We have postcopy recovery but not reflected in the document, do an update
      for that.
      
      Add a very small section on postcopy preempt.
      
      Touch up the pagemap section, dropping the unsent map because it's already
      been dropped in the source code in commit 1e7cf8c3 ("migration/postcopy:
      unsentmap is not necessary for postcopy").
      
      Touch up the postcopy section to remove "network connection" failures as
      downside, because now it's not fatal and can be recovered.  Suggested by
      Laszlo.
      
      Acked-by: default avatarLaszlo Ersek <lersek@redhat.com>
      Signed-off-by: default avatarPeter Xu <peterx@redhat.com>
      Reviewed-by: default avatarJuan Quintela <quintela@redhat.com>
      Message-ID: <20230706115611.371048-1-peterx@redhat.com>
      Signed-off-by: default avatarJuan Quintela <quintela@redhat.com>
      f014880a
    • Juan Quintela's avatar
      migration: skipped field is really obsolete. · 7b24d326
      Juan Quintela authored
      
      Has return zero for more than 10 years.
      
      Specifically we introduced the field in 1.5.0
      
      commit f1c72795
      Author: Peter Lieven <pl@kamp.de>
      Date:   Tue Mar 26 10:58:37 2013 +0100
      
          migration: do not sent zero pages in bulk stage
      
          during bulk stage of ram migration if a page is a
          zero page do not send it at all.
          the memory at the destination reads as zero anyway.
      
          even if there is an madvise with QEMU_MADV_DONTNEED
          at the target upon receipt of a zero page I have observed
          that the target starts swapping if the memory is overcommitted.
          it seems that the pages are dropped asynchronously.
      
          this patch also updates QMP to return the number of
          skipped pages in MigrationStats.
      
      but removed its usage in 1.5.3
      
      commit 9ef051e5
      Author: Peter Lieven <pl@kamp.de>
      Date:   Mon Jun 10 12:14:19 2013 +0200
      
          Revert "migration: do not sent zero pages in bulk stage"
      
          Not sending zero pages breaks migration if a page is zero
          at the source but not at the destination. This can e.g. happen
          if different BIOS versions are used at source and destination.
          It has also been reported that migration on pseries is completely
          broken with this patch.
      
          This effectively reverts commit f1c72795.
      
      Reviewed-by: default avatarDaniel P. Berrangé <berrange@redhat.com>
      Message-ID: <20230612193344.3796-2-quintela@redhat.com>
      Signed-off-by: default avatarJuan Quintela <quintela@redhat.com>
      7b24d326
  12. Jul 19, 2023
  13. Jul 18, 2023
  14. Jul 10, 2023
  15. Jul 07, 2023
  16. Jul 06, 2023
  17. Jul 04, 2023
    • Yuquan Wang's avatar
      hw/arm/sbsa-ref: use XHCI to replace EHCI · 62c2b876
      Yuquan Wang authored
      
      The current sbsa-ref cannot use EHCI controller which is only
      able to do 32-bit DMA, since sbsa-ref doesn't have RAM below 4GB.
      Hence, this uses XHCI to provide a usb controller with 64-bit
      DMA capablity instead of EHCI.
      
      We bump the platform version to 0.3 with this change.  Although the
      hardware at the USB controller address changes, the firmware and
      Linux can both cope with this -- on an older non-XHCI-aware
      firmware/kernel setup the probe routine simply fails and the guest
      proceeds without any USB.  (This isn't a loss of functionality,
      because the old USB controller never worked in the first place.) So
      we can call this a backwards-compatible change and only bump the
      minor version.
      
      Signed-off-by: default avatarYuquan Wang <wangyuquan1236@phytium.com.cn>
      Message-id: 20230621103847.447508-2-wangyuquan1236@phytium.com.cn
      [PMM: tweaked commit message; add line to docs about what
       changes in platform version 0.3]
      Reviewed-by: default avatarPeter Maydell <peter.maydell@linaro.org>
      Signed-off-by: default avatarPeter Maydell <peter.maydell@linaro.org>
      62c2b876
  18. Jul 03, 2023
  19. Jun 30, 2023
    • Avihai Horon's avatar
      vfio/migration: Add support for switchover ack capability · 745c4291
      Avihai Horon authored
      
      Loading of a VFIO device's data can take a substantial amount of time as
      the device may need to allocate resources, prepare internal data
      structures, etc. This can increase migration downtime, especially for
      VFIO devices with a lot of resources.
      
      To solve this, VFIO migration uAPI defines "initial bytes" as part of
      its precopy data stream. Initial bytes can be used in various ways to
      improve VFIO migration performance. For example, it can be used to
      transfer device metadata to pre-allocate resources in the destination.
      However, for this to work we need to make sure that all initial bytes
      are sent and loaded in the destination before the source VM is stopped.
      
      Use migration switchover ack capability to make sure a VFIO device's
      initial bytes are sent and loaded in the destination before the source
      stops the VM and attempts to complete the migration.
      This can significantly reduce migration downtime for some devices.
      
      Signed-off-by: default avatarAvihai Horon <avihaih@nvidia.com>
      Reviewed-by: default avatarCédric Le Goater <clg@redhat.com>
      Tested-by: default avatarYangHang Liu <yanghliu@redhat.com>
      Acked-by: default avatarAlex Williamson <alex.williamson@redhat.com>
      Signed-off-by: default avatarCédric Le Goater <clg@redhat.com>
      745c4291
Loading