Skip to content
Snippets Groups Projects
  1. Nov 02, 2021
  2. Nov 01, 2021
  3. Oct 29, 2021
  4. Oct 23, 2021
  5. Oct 21, 2021
  6. Oct 20, 2021
  7. Oct 15, 2021
  8. Oct 13, 2021
  9. Oct 02, 2021
    • David Hildenbrand's avatar
      softmmu/memory_mapping: optimize for RamDiscardManager sections · cb83ba8c
      David Hildenbrand authored
      
      virtio-mem logically plugs/unplugs memory within a sparse memory region
      and notifies via the RamDiscardManager interface when parts become
      plugged (populated) or unplugged (discarded).
      
      Currently, we end up (via the two users)
      1) zeroing all logically unplugged/discarded memory during TPM resets.
      2) reading all logically unplugged/discarded memory when dumping, to
         figure out the content is zero.
      
      1) is always bad, because we assume unplugged memory stays discarded
         (and is already implicitly zero).
      2) isn't that bad with anonymous memory, we end up reading the zero
         page (slow and unnecessary, though). However, once we use some
         file-backed memory (future use case), even reading will populate memory.
      
      Let's cut out all parts marked as not-populated (discarded) via the
      RamDiscardManager. As virtio-mem is the single user, this now means that
      logically unplugged memory ranges will no longer be included in the
      dump, which results in smaller dump files and faster dumping.
      
      virtio-mem has a minimum granularity of 1 MiB (and the default is usually
      2 MiB). Theoretically, we can see quite some fragmentation, in practice
      we won't have it completely fragmented in 1 MiB pieces. Still, we might
      end up with many physical ranges.
      
      Both, the ELF format and kdump seem to be ready to support many
      individual ranges (e.g., for ELF it seems to be UINT32_MAX, kdump has a
      linear bitmap).
      
      Reviewed-by: default avatarPeter Xu <peterx@redhat.com>
      Cc: Marc-André Lureau <marcandre.lureau@redhat.com>
      Cc: Paolo Bonzini <pbonzini@redhat.com>
      Cc: "Michael S. Tsirkin" <mst@redhat.com>
      Cc: Eduardo Habkost <ehabkost@redhat.com>
      Cc: Alex Williamson <alex.williamson@redhat.com>
      Cc: Dr. David Alan Gilbert <dgilbert@redhat.com>
      Cc: Igor Mammedov <imammedo@redhat.com>
      Cc: Claudio Fontana <cfontana@suse.de>
      Cc: Thomas Huth <thuth@redhat.com>
      Cc: "Alex Bennée" <alex.bennee@linaro.org>
      Cc: Peter Xu <peterx@redhat.com>
      Cc: Laurent Vivier <lvivier@redhat.com>
      Cc: Stefan Berger <stefanb@linux.ibm.com>
      Signed-off-by: default avatarDavid Hildenbrand <david@redhat.com>
      Message-Id: <20210727082545.17934-5-david@redhat.com>
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      cb83ba8c
    • David Hildenbrand's avatar
      softmmu/memory_mapping: factor out adding physical memory ranges · 3513bb1b
      David Hildenbrand authored
      
      Let's factor out adding a MemoryRegionSection to the list, to be reused in
      RamDiscardManager context next.
      
      Reviewed-by: default avatarStefan Berger <stefanb@linux.ibm.com>
      Reviewed-by: default avatarPeter Xu <peterx@redhat.com>
      Cc: Marc-André Lureau <marcandre.lureau@redhat.com>
      Cc: Paolo Bonzini <pbonzini@redhat.com>
      Cc: "Michael S. Tsirkin" <mst@redhat.com>
      Cc: Eduardo Habkost <ehabkost@redhat.com>
      Cc: Alex Williamson <alex.williamson@redhat.com>
      Cc: Dr. David Alan Gilbert <dgilbert@redhat.com>
      Cc: Igor Mammedov <imammedo@redhat.com>
      Cc: Claudio Fontana <cfontana@suse.de>
      Cc: Thomas Huth <thuth@redhat.com>
      Cc: "Alex Bennée" <alex.bennee@linaro.org>
      Cc: Peter Xu <peterx@redhat.com>
      Cc: Laurent Vivier <lvivier@redhat.com>
      Cc: Stefan Berger <stefanb@linux.ibm.com>
      Signed-off-by: default avatarDavid Hildenbrand <david@redhat.com>
      Message-Id: <20210727082545.17934-4-david@redhat.com>
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      3513bb1b
    • David Hildenbrand's avatar
      softmmu/memory_mapping: never merge ranges accross memory regions · 602f8ea7
      David Hildenbrand authored
      
      Let's make sure to not merge when different memory regions are involved.
      Unlikely, but theoretically possible.
      
      Acked-by: default avatarStefan Berger <stefanb@linux.ibm.com>
      Reviewed-by: default avatarPeter Xu <peterx@redhat.com>
      Cc: Marc-André Lureau <marcandre.lureau@redhat.com>
      Cc: Paolo Bonzini <pbonzini@redhat.com>
      Cc: "Michael S. Tsirkin" <mst@redhat.com>
      Cc: Eduardo Habkost <ehabkost@redhat.com>
      Cc: Alex Williamson <alex.williamson@redhat.com>
      Cc: Dr. David Alan Gilbert <dgilbert@redhat.com>
      Cc: Igor Mammedov <imammedo@redhat.com>
      Cc: Claudio Fontana <cfontana@suse.de>
      Cc: Thomas Huth <thuth@redhat.com>
      Cc: "Alex Bennée" <alex.bennee@linaro.org>
      Cc: Peter Xu <peterx@redhat.com>
      Cc: Laurent Vivier <lvivier@redhat.com>
      Cc: Stefan Berger <stefanb@linux.ibm.com>
      Signed-off-by: default avatarDavid Hildenbrand <david@redhat.com>
      Message-Id: <20210727082545.17934-3-david@redhat.com>
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      602f8ea7
  10. Sep 30, 2021
  11. Sep 13, 2021
    • Peter Maydell's avatar
      qdev: Support marking individual buses as 'full' · 1518562b
      Peter Maydell authored
      
      By default, QEMU will allow devices to be plugged into a bus up to
      the bus class's device count limit.  If the user creates a device on
      the command line or via the monitor and doesn't explicitly specify
      the bus to plug it in, QEMU will plug it into the first non-full bus
      that it finds.
      
      This is fine in most cases, but some machines have multiple buses of
      a given type, some of which are dedicated to on-board devices and
      some of which have an externally exposed connector for user-pluggable
      devices. One example is I2C buses.
      
      Provide a new function qbus_mark_full() so that a machine model can
      mark this kind of "internal only" bus as 'full' after it has created
      all the devices that should be plugged into that bus. The "find a
      non-full bus" algorithm will then skip the internal-only bus when
      looking for a place to plug in user-created devices.
      
      Signed-off-by: default avatarPeter Maydell <peter.maydell@linaro.org>
      Reviewed-by: default avatarRichard Henderson <richard.henderson@linaro.org>
      Message-id: 20210903151435.22379-2-peter.maydell@linaro.org
      1518562b
  12. Sep 06, 2021
    • Thomas Huth's avatar
      softmmu/vl: Deprecate the -sdl and -curses option · 6695e4c0
      Thomas Huth authored
      
      It's not that much complicated to type "-display sdl" or "-display curses",
      so we should not clutter our main option name space with such simple
      wrapper options and rather present the users with a concise interface
      instead. Thus let's deprecate the "-sdl" and "-curses" wrapper options now.
      
      Message-Id: <20210825092023.81396-4-thuth@redhat.com>
      Reviewed-by: default avatarGerd Hoffmann <kraxel@redhat.com>
      Acked-by: default avatarPeter Krempa <pkrempa@redhat.com>
      Signed-off-by: default avatarThomas Huth <thuth@redhat.com>
      6695e4c0
    • Thomas Huth's avatar
      softmmu/vl: Deprecate the old grab options · d46156fd
      Thomas Huth authored
      
      The alt_grab and ctrl_grab parameter of the -display sdl option prevent
      the QAPIfication of the "sdl" part of the -display option, so we should
      eventually remove them. And since this feature is also rather niche anyway,
      we should not clutter the top-level option list with these, so let's
      also deprecate the "-alt-grab" and the "-ctrl-grab" options while we're
      at it.
      
      Once the deprecation period of "alt_grab" and "ctrl_grab" is over, we
      then can finally switch the -display sdl option to use QAPI internally,
      too.
      
      Message-Id: <20210825092023.81396-3-thuth@redhat.com>
      Reviewed-by: default avatarGerd Hoffmann <kraxel@redhat.com>
      Acked-by: default avatarPeter Krempa <pkrempa@redhat.com>
      Signed-off-by: default avatarThomas Huth <thuth@redhat.com>
      d46156fd
    • Thomas Huth's avatar
      softmmu/vl: Add a "grab-mod" parameter to the -display sdl option · 8e8e844b
      Thomas Huth authored
      
      The -display sdl option is not using QAPI internally yet, and uses hand-
      crafted parsing instead (see parse_display() in vl.c), which is quite
      ugly, since most of the other code is using the QAPIfied DisplayOption
      already. Unfortunately, the "alt_grab" and "ctrl_grab" use underscores in
      their names which has recently been forbidden in new QAPI code, so
      a straight conversion is not possible. While we could add some exceptions
      to the QAPI schema parser for this, the way these parameters have been
      designed was maybe a bad idea anyway: First, it's not possible to enable
      both parameters at the same time, thus instead of two boolean parameters
      it would be better to have only one multi-choice parameter instead.
      Second, the naming is also somewhat unfortunate since the "alt_grab"
      parameter is not about the ALT key, but rather about the left SHIFT key
      that has to be used additionally when the parameter is enabled.
      
      So instead of trying to QAPIfy "alt_grab" and "ctrl_grab", let's rather
      introduce an alternative to these parameters instead, a new parameter
      called "grab-mod" which can either be set to "lshift-lctrl-lalt" or to
      "rctrl". In case we ever want to support additional modes later, we can
      then also simply extend the list of supported strings here.
      
      Message-Id: <20210825092023.81396-2-thuth@redhat.com>
      Reviewed-by: default avatarGerd Hoffmann <kraxel@redhat.com>
      Signed-off-by: default avatarThomas Huth <thuth@redhat.com>
      8e8e844b
  13. Aug 26, 2021
  14. Aug 17, 2021
  15. Jul 30, 2021
    • Paolo Bonzini's avatar
      vl: stop recording -smp in QemuOpts · e4383ca2
      Paolo Bonzini authored
      
      -readconfig is still recording SMP options in QemuOpts instead of
      using machine_opts_dict.  This means that SMP options from -readconfig
      are ignored.
      
      Just stop using QemuOpts for -smp, making it return false for
      is_qemuopts_group.  Configuration files will merge the values in
      machine_opts_dict using the new function machine_merge_property.
      
      At the same time, fix -mem-prealloc which looked at QemuOpts to find the
      number of guest CPUs, which it used as the default number of preallocation
      threads.
      
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      e4383ca2
    • Paolo Bonzini's avatar
      vl: introduce machine_merge_property · a3c2f128
      Paolo Bonzini authored
      
      It will be used to parse smp-opts config groups from configuration
      files.  The point to note is that it does not steal a reference
      from the caller.  This is better because this function will be called
      from qemu_config_foreach's callback; qemu_config_foreach does not cede
      its reference to the qdict to the callback, and wants to free it.  To
      balance that extra reference, machine_parse_property_opt now needs
      a qobject_unref.
      
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      a3c2f128
  16. Jul 27, 2021
  17. Jul 22, 2021
Loading