Skip to content
Snippets Groups Projects
  1. Jun 29, 2021
  2. Jun 15, 2021
    • David Hildenbrand's avatar
      memory: Introduce RAM_NORESERVE and wire it up in qemu_ram_mmap() · 8dbe22c6
      David Hildenbrand authored
      
      Let's introduce RAM_NORESERVE, allowing mmap'ing with MAP_NORESERVE. The
      new flag has the following semantics:
      
      "
      RAM is mmap-ed with MAP_NORESERVE. When set, reserving swap space (or huge
      pages if applicable) is skipped: will bail out if not supported. When not
      set, the OS will do the reservation, if supported for the memory type.
      "
      
      Allow passing it into:
      - memory_region_init_ram_nomigrate()
      - memory_region_init_resizeable_ram()
      - memory_region_init_ram_from_file()
      
      ... and teach qemu_ram_mmap() and qemu_anon_ram_alloc() about the flag.
      Bail out if the flag is not supported, which is the case right now for
      both, POSIX and win32. We will add Linux support next and allow specifying
      RAM_NORESERVE via memory backends.
      
      The target use case is virtio-mem, which dynamically exposes memory
      inside a large, sparse memory area to the VM.
      
      Reviewed-by: default avatarPhilippe Mathieu-Daudé <philmd@redhat.com>
      Reviewed-by: default avatarPeter Xu <peterx@redhat.com>
      Acked-by: Eduardo Habkost <ehabkost@redhat.com> for memory backend and machine core
      Signed-off-by: default avatarDavid Hildenbrand <david@redhat.com>
      Message-Id: <20210510114328.21835-9-david@redhat.com>
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      8dbe22c6
  3. Jun 14, 2021
  4. Jun 11, 2021
  5. Jun 08, 2021
  6. Jun 02, 2021
  7. May 26, 2021
  8. May 14, 2021
  9. May 13, 2021
  10. May 02, 2021
  11. Apr 07, 2021
  12. Apr 06, 2021
  13. Apr 01, 2021
  14. Mar 24, 2021
    • Vladimir Sementsov-Ogievskiy's avatar
      migration/block-dirty-bitmap: make incoming disabled bitmaps busy · 4290b483
      Vladimir Sementsov-Ogievskiy authored
      
      Incoming enabled bitmaps are busy, because we do
      bdrv_dirty_bitmap_create_successor() for them. But disabled bitmaps
      being migrated are not marked busy, and user can remove them during the
      incoming migration. Then we may crash in cancel_incoming_locked() when
      try to remove the bitmap that was already removed by user, like this:
      
       #0  qemu_mutex_lock_impl (mutex=0x5593d88c50d1, file=0x559680554b20
         "../block/dirty-bitmap.c", line=64) at ../util/qemu-thread-posix.c:77
       #1  bdrv_dirty_bitmaps_lock (bs=0x5593d88c0ee9)
         at ../block/dirty-bitmap.c:64
       #2  bdrv_release_dirty_bitmap (bitmap=0x5596810e9570)
         at ../block/dirty-bitmap.c:362
       #3  cancel_incoming_locked (s=0x559680be8208 <dbm_state+40>)
         at ../migration/block-dirty-bitmap.c:918
       #4  dirty_bitmap_load (f=0x559681d02b10, opaque=0x559680be81e0
         <dbm_state>, version_id=1) at ../migration/block-dirty-bitmap.c:1194
       #5  vmstate_load (f=0x559681d02b10, se=0x559680fb5810)
         at ../migration/savevm.c:908
       #6  qemu_loadvm_section_part_end (f=0x559681d02b10,
         mis=0x559680fb4a30) at ../migration/savevm.c:2473
       #7  qemu_loadvm_state_main (f=0x559681d02b10, mis=0x559680fb4a30)
         at ../migration/savevm.c:2626
       #8  postcopy_ram_listen_thread (opaque=0x0)
         at ../migration/savevm.c:1871
       #9  qemu_thread_start (args=0x5596817ccd10)
         at ../util/qemu-thread-posix.c:521
       #10 start_thread () at /lib64/libpthread.so.0
       #11 clone () at /lib64/libc.so.6
      
      Note bs pointer taken from bitmap: it's definitely bad aligned. That's
      because we are in use after free, bitmap is already freed.
      
      So, let's make disabled bitmaps (being migrated) busy during incoming
      migration.
      
      Signed-off-by: default avatarVladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
      Signed-off-by: default avatarStefan Hajnoczi <stefanha@redhat.com>
      Message-Id: <20210322094906.5079-2-vsementsov@virtuozzo.com>
      4290b483
  15. Mar 18, 2021
  16. Mar 15, 2021
Loading