Message ID | 20210413091421.7707-6-david@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | RAM_NORESERVE, MAP_NORESERVE and hostmem "reserve" property | expand |
Hi David, On 4/13/21 11:14 AM, David Hildenbrand wrote: > Let's forward ram_flags instead, renaming > memory_region_init_ram_shared_nomigrate() into > memory_region_init_ram_flags_nomigrate(). Forward flags to > qemu_ram_alloc() and qemu_ram_alloc_internal(). > > Reviewed-by: Peter Xu <peterx@redhat.com> > Signed-off-by: David Hildenbrand <david@redhat.com> > --- > backends/hostmem-ram.c | 6 +++-- > hw/m68k/next-cube.c | 4 ++-- > include/exec/memory.h | 24 +++++++++---------- > include/exec/ram_addr.h | 2 +- > .../memory-region-housekeeping.cocci | 8 +++---- > softmmu/memory.c | 20 ++++++++-------- OK up to here, but the qemu_ram_alloc_internal() changes in softmmu/physmem.c belong to a different patch (except the line adding "new_block->flags = ram_flags"). Do you mind splitting it? > diff --git a/softmmu/physmem.c b/softmmu/physmem.c > index cc59f05593..fdcd38ba61 100644 > --- a/softmmu/physmem.c > +++ b/softmmu/physmem.c > @@ -2108,12 +2108,14 @@ RAMBlock *qemu_ram_alloc_internal(ram_addr_t size, ram_addr_t max_size, > void (*resized)(const char*, > uint64_t length, > void *host), > - void *host, bool resizeable, bool share, > + void *host, uint32_t ram_flags, > MemoryRegion *mr, Error **errp) > { > RAMBlock *new_block; > Error *local_err = NULL; > > + assert((ram_flags & ~(RAM_SHARED | RAM_RESIZEABLE)) == 0); > + > size = HOST_PAGE_ALIGN(size); > max_size = HOST_PAGE_ALIGN(max_size); > new_block = g_malloc0(sizeof(*new_block)); > @@ -2125,15 +2127,10 @@ RAMBlock *qemu_ram_alloc_internal(ram_addr_t size, ram_addr_t max_size, > new_block->fd = -1; > new_block->page_size = qemu_real_host_page_size; > new_block->host = host; > + new_block->flags = ram_flags; > if (host) { > new_block->flags |= RAM_PREALLOC; > } > - if (share) { > - new_block->flags |= RAM_SHARED; > - } > - if (resizeable) { > - new_block->flags |= RAM_RESIZEABLE; > - } > ram_block_add(new_block, &local_err); > if (local_err) { > g_free(new_block); > @@ -2146,15 +2143,14 @@ RAMBlock *qemu_ram_alloc_internal(ram_addr_t size, ram_addr_t max_size, > RAMBlock *qemu_ram_alloc_from_ptr(ram_addr_t size, void *host, > MemoryRegion *mr, Error **errp) > { > - return qemu_ram_alloc_internal(size, size, NULL, host, false, > - false, mr, errp); > + return qemu_ram_alloc_internal(size, size, NULL, host, 0, mr, errp); > } > > -RAMBlock *qemu_ram_alloc(ram_addr_t size, bool share, > +RAMBlock *qemu_ram_alloc(ram_addr_t size, uint32_t ram_flags, > MemoryRegion *mr, Error **errp) > { > - return qemu_ram_alloc_internal(size, size, NULL, NULL, false, > - share, mr, errp); > + assert((ram_flags & ~RAM_SHARED) == 0); > + return qemu_ram_alloc_internal(size, size, NULL, NULL, ram_flags, mr, errp); > } > > RAMBlock *qemu_ram_alloc_resizeable(ram_addr_t size, ram_addr_t maxsz, > @@ -2163,8 +2159,8 @@ RAMBlock *qemu_ram_alloc_resizeable(ram_addr_t size, ram_addr_t maxsz, > void *host), > MemoryRegion *mr, Error **errp) > { > - return qemu_ram_alloc_internal(size, maxsz, resized, NULL, true, > - false, mr, errp); > + return qemu_ram_alloc_internal(size, maxsz, resized, NULL, > + RAM_RESIZEABLE, mr, errp); > } > > static void reclaim_ramblock(RAMBlock *block) >
On 20.04.21 12:20, Philippe Mathieu-Daudé wrote: > Hi David, > > On 4/13/21 11:14 AM, David Hildenbrand wrote: >> Let's forward ram_flags instead, renaming >> memory_region_init_ram_shared_nomigrate() into >> memory_region_init_ram_flags_nomigrate(). Forward flags to >> qemu_ram_alloc() and qemu_ram_alloc_internal(). >> >> Reviewed-by: Peter Xu <peterx@redhat.com> >> Signed-off-by: David Hildenbrand <david@redhat.com> >> --- >> backends/hostmem-ram.c | 6 +++-- >> hw/m68k/next-cube.c | 4 ++-- >> include/exec/memory.h | 24 +++++++++---------- >> include/exec/ram_addr.h | 2 +- >> .../memory-region-housekeeping.cocci | 8 +++---- >> softmmu/memory.c | 20 ++++++++-------- > > OK up to here, but the qemu_ram_alloc_internal() changes > in softmmu/physmem.c belong to a different patch (except > the line adding "new_block->flags = ram_flags"). > Do you mind splitting it? > Can you elaborate? Temporarily passing both "ram_flags" and "bool resizeable, bool share" to qemu_ram_alloc_internal()? I don't see a big benefit in doing that besides even more effective changes in two individual patches. But maybe if you elaborate, i can see what you would like to see :) Thanks!
On 4/20/21 12:27 PM, David Hildenbrand wrote: > On 20.04.21 12:20, Philippe Mathieu-Daudé wrote: >> Hi David, >> >> On 4/13/21 11:14 AM, David Hildenbrand wrote: >>> Let's forward ram_flags instead, renaming >>> memory_region_init_ram_shared_nomigrate() into >>> memory_region_init_ram_flags_nomigrate(). Forward flags to >>> qemu_ram_alloc() and qemu_ram_alloc_internal(). >>> >>> Reviewed-by: Peter Xu <peterx@redhat.com> >>> Signed-off-by: David Hildenbrand <david@redhat.com> >>> --- >>> backends/hostmem-ram.c | 6 +++-- >>> hw/m68k/next-cube.c | 4 ++-- >>> include/exec/memory.h | 24 +++++++++---------- >>> include/exec/ram_addr.h | 2 +- >>> .../memory-region-housekeeping.cocci | 8 +++---- >>> softmmu/memory.c | 20 ++++++++-------- >> >> OK up to here, but the qemu_ram_alloc_internal() changes >> in softmmu/physmem.c belong to a different patch (except >> the line adding "new_block->flags = ram_flags"). >> Do you mind splitting it? >> > > Can you elaborate? Temporarily passing both "ram_flags" and "bool > resizeable, bool share" to qemu_ram_alloc_internal()? > > I don't see a big benefit in doing that besides even more effective > changes in two individual patches. But maybe if you elaborate, i can see > what you would like to see :) In this patch I see 1/ change a parameter and propagate it 2/ adapt assertions I'd rather review the assertions modified / cleaned in another patch, simply because it required me 2 different mental efforts to review the first part and the second part. But maybe it is not possible, so I'll review the 2nd part here. > diff --git a/softmmu/physmem.c b/softmmu/physmem.c > index cc59f05593..fdcd38ba61 100644 > --- a/softmmu/physmem.c > +++ b/softmmu/physmem.c > @@ -2108,12 +2108,14 @@ RAMBlock *qemu_ram_alloc_internal(ram_addr_t size, ram_addr_t max_size, > void (*resized)(const char*, > uint64_t length, > void *host), > - void *host, bool resizeable, bool share, > + void *host, uint32_t ram_flags, > MemoryRegion *mr, Error **errp) > { > RAMBlock *new_block; > Error *local_err = NULL; > Maybe also: assert(!host || (ram_flags & RAM_PREALLOC)); > + assert((ram_flags & ~(RAM_SHARED | RAM_RESIZEABLE)) == 0); > + > size = HOST_PAGE_ALIGN(size); > max_size = HOST_PAGE_ALIGN(max_size); > new_block = g_malloc0(sizeof(*new_block)); > @@ -2125,15 +2127,10 @@ RAMBlock *qemu_ram_alloc_internal(ram_addr_t size, ram_addr_t max_size, > new_block->fd = -1; > new_block->page_size = qemu_real_host_page_size; > new_block->host = host; > + new_block->flags = ram_flags; > if (host) { > new_block->flags |= RAM_PREALLOC; > } We could also remove this statement ... > - if (share) { > - new_block->flags |= RAM_SHARED; > - } > - if (resizeable) { > - new_block->flags |= RAM_RESIZEABLE; > - } > ram_block_add(new_block, &local_err); > if (local_err) { > g_free(new_block); > @@ -2146,15 +2143,14 @@ RAMBlock *qemu_ram_alloc_internal(ram_addr_t size, ram_addr_t max_size, > RAMBlock *qemu_ram_alloc_from_ptr(ram_addr_t size, void *host, > MemoryRegion *mr, Error **errp) > { > - return qemu_ram_alloc_internal(size, size, NULL, host, false, > - false, mr, errp); ... by passing RAM_PREALLOC here. > + return qemu_ram_alloc_internal(size, size, NULL, host, 0, mr, errp); > } > > -RAMBlock *qemu_ram_alloc(ram_addr_t size, bool share, > +RAMBlock *qemu_ram_alloc(ram_addr_t size, uint32_t ram_flags, > MemoryRegion *mr, Error **errp) > { > - return qemu_ram_alloc_internal(size, size, NULL, NULL, false, > - share, mr, errp); > + assert((ram_flags & ~RAM_SHARED) == 0); > + return qemu_ram_alloc_internal(size, size, NULL, NULL, ram_flags, mr, errp); > } > > RAMBlock *qemu_ram_alloc_resizeable(ram_addr_t size, ram_addr_t maxsz, > @@ -2163,8 +2159,8 @@ RAMBlock *qemu_ram_alloc_resizeable(ram_addr_t size, ram_addr_t maxsz, > void *host), > MemoryRegion *mr, Error **errp) > { > - return qemu_ram_alloc_internal(size, maxsz, resized, NULL, true, > - false, mr, errp); > + return qemu_ram_alloc_internal(size, maxsz, resized, NULL, > + RAM_RESIZEABLE, mr, errp); > } > > static void reclaim_ramblock(RAMBlock *block) >
On 20.04.21 12:40, Philippe Mathieu-Daudé wrote: > On 4/20/21 12:27 PM, David Hildenbrand wrote: >> On 20.04.21 12:20, Philippe Mathieu-Daudé wrote: >>> Hi David, >>> >>> On 4/13/21 11:14 AM, David Hildenbrand wrote: >>>> Let's forward ram_flags instead, renaming >>>> memory_region_init_ram_shared_nomigrate() into >>>> memory_region_init_ram_flags_nomigrate(). Forward flags to >>>> qemu_ram_alloc() and qemu_ram_alloc_internal(). >>>> >>>> Reviewed-by: Peter Xu <peterx@redhat.com> >>>> Signed-off-by: David Hildenbrand <david@redhat.com> >>>> --- >>>> backends/hostmem-ram.c | 6 +++-- >>>> hw/m68k/next-cube.c | 4 ++-- >>>> include/exec/memory.h | 24 +++++++++---------- >>>> include/exec/ram_addr.h | 2 +- >>>> .../memory-region-housekeeping.cocci | 8 +++---- >>>> softmmu/memory.c | 20 ++++++++-------- >>> >>> OK up to here, but the qemu_ram_alloc_internal() changes >>> in softmmu/physmem.c belong to a different patch (except >>> the line adding "new_block->flags = ram_flags"). >>> Do you mind splitting it? >>> >> >> Can you elaborate? Temporarily passing both "ram_flags" and "bool >> resizeable, bool share" to qemu_ram_alloc_internal()? >> >> I don't see a big benefit in doing that besides even more effective >> changes in two individual patches. But maybe if you elaborate, i can see >> what you would like to see :) > > In this patch I see > > 1/ change a parameter and propagate it > 2/ adapt assertions > > I'd rather review the assertions modified / cleaned in another patch, > simply because it required me 2 different mental efforts to review the > first part and the second part. But maybe it is not possible, so I'll > review the 2nd part here. Well, previously you could pass in "bool resizeable, bool share", now you can pass in ram_flags with RAM_SHARED, RAM_RESIZEABLE. So that assertion part actually looked fairly straight forward to me. > >> diff --git a/softmmu/physmem.c b/softmmu/physmem.c >> index cc59f05593..fdcd38ba61 100644 >> --- a/softmmu/physmem.c >> +++ b/softmmu/physmem.c >> @@ -2108,12 +2108,14 @@ RAMBlock *qemu_ram_alloc_internal(ram_addr_t > size, ram_addr_t max_size, >> void (*resized)(const char*, >> uint64_t length, >> void *host), >> - void *host, bool resizeable, bool > share, >> + void *host, uint32_t ram_flags, >> MemoryRegion *mr, Error **errp) >> { >> RAMBlock *new_block; >> Error *local_err = NULL; >> > > Maybe also: > > assert(!host || (ram_flags & RAM_PREALLOC)); It should be even stricter I think assert(!host ^ (ram_flags & RAM_PREALLOC)); I'd move that change definitely to a separate patch. Thanks!
On 20.04.21 12:40, Philippe Mathieu-Daudé wrote: > On 4/20/21 12:27 PM, David Hildenbrand wrote: >> On 20.04.21 12:20, Philippe Mathieu-Daudé wrote: >>> Hi David, >>> >>> On 4/13/21 11:14 AM, David Hildenbrand wrote: >>>> Let's forward ram_flags instead, renaming >>>> memory_region_init_ram_shared_nomigrate() into >>>> memory_region_init_ram_flags_nomigrate(). Forward flags to >>>> qemu_ram_alloc() and qemu_ram_alloc_internal(). >>>> >>>> Reviewed-by: Peter Xu <peterx@redhat.com> >>>> Signed-off-by: David Hildenbrand <david@redhat.com> >>>> --- >>>> backends/hostmem-ram.c | 6 +++-- >>>> hw/m68k/next-cube.c | 4 ++-- >>>> include/exec/memory.h | 24 +++++++++---------- >>>> include/exec/ram_addr.h | 2 +- >>>> .../memory-region-housekeeping.cocci | 8 +++---- >>>> softmmu/memory.c | 20 ++++++++-------- >>> >>> OK up to here, but the qemu_ram_alloc_internal() changes >>> in softmmu/physmem.c belong to a different patch (except >>> the line adding "new_block->flags = ram_flags"). >>> Do you mind splitting it? >>> >> >> Can you elaborate? Temporarily passing both "ram_flags" and "bool >> resizeable, bool share" to qemu_ram_alloc_internal()? >> >> I don't see a big benefit in doing that besides even more effective >> changes in two individual patches. But maybe if you elaborate, i can see >> what you would like to see :) > > In this patch I see > > 1/ change a parameter and propagate it > 2/ adapt assertions FWIW, I'll separate the qemu_ram_alloc*() changes from the memory_region_init_ram_shared_nomigrate() changes.
diff --git a/backends/hostmem-ram.c b/backends/hostmem-ram.c index 5cc53e76c9..741e701062 100644 --- a/backends/hostmem-ram.c +++ b/backends/hostmem-ram.c @@ -19,6 +19,7 @@ static void ram_backend_memory_alloc(HostMemoryBackend *backend, Error **errp) { + uint32_t ram_flags; char *name; if (!backend->size) { @@ -27,8 +28,9 @@ ram_backend_memory_alloc(HostMemoryBackend *backend, Error **errp) } name = host_memory_backend_get_name(backend); - memory_region_init_ram_shared_nomigrate(&backend->mr, OBJECT(backend), name, - backend->size, backend->share, errp); + ram_flags = backend->share ? RAM_SHARED : 0; + memory_region_init_ram_flags_nomigrate(&backend->mr, OBJECT(backend), name, + backend->size, ram_flags, errp); g_free(name); } diff --git a/hw/m68k/next-cube.c b/hw/m68k/next-cube.c index 92b45d760f..59ccae0d5e 100644 --- a/hw/m68k/next-cube.c +++ b/hw/m68k/next-cube.c @@ -986,8 +986,8 @@ static void next_cube_init(MachineState *machine) sysbus_mmio_map(SYS_BUS_DEVICE(pcdev), 1, 0x02100000); /* BMAP memory */ - memory_region_init_ram_shared_nomigrate(bmapm1, NULL, "next.bmapmem", 64, - true, &error_fatal); + memory_region_init_ram_flags_nomigrate(bmapm1, NULL, "next.bmapmem", 64, + RAM_SHARED, &error_fatal); memory_region_add_subregion(sysmem, 0x020c0000, bmapm1); /* The Rev_2.5_v66.bin firmware accesses it at 0x820c0020, too */ memory_region_init_alias(bmapm2, NULL, "next.bmapmem2", bmapm1, 0x0, 64); diff --git a/include/exec/memory.h b/include/exec/memory.h index 8ad280e532..10179c6695 100644 --- a/include/exec/memory.h +++ b/include/exec/memory.h @@ -928,27 +928,27 @@ void memory_region_init_ram_nomigrate(MemoryRegion *mr, Error **errp); /** - * memory_region_init_ram_shared_nomigrate: Initialize RAM memory region. - * Accesses into the region will - * modify memory directly. + * memory_region_init_ram_flags_nomigrate: Initialize RAM memory region. + * Accesses into the region will + * modify memory directly. * * @mr: the #MemoryRegion to be initialized. * @owner: the object that tracks the region's reference count * @name: Region name, becomes part of RAMBlock name used in migration stream * must be unique within any device * @size: size of the region. - * @share: allow remapping RAM to different addresses + * @ram_flags: RamBlock flags. Supported flags: RAM_SHARED. * @errp: pointer to Error*, to store an error if it happens. * - * Note that this function is similar to memory_region_init_ram_nomigrate. - * The only difference is part of the RAM region can be remapped. + * Note that this function does not do anything to cause the data in the + * RAM memory region to be migrated; that is the responsibility of the caller. */ -void memory_region_init_ram_shared_nomigrate(MemoryRegion *mr, - Object *owner, - const char *name, - uint64_t size, - bool share, - Error **errp); +void memory_region_init_ram_flags_nomigrate(MemoryRegion *mr, + Object *owner, + const char *name, + uint64_t size, + uint32_t ram_flags, + Error **errp); /** * memory_region_init_resizeable_ram: Initialize memory region with resizeable diff --git a/include/exec/ram_addr.h b/include/exec/ram_addr.h index a7e3378340..6d4513f8e2 100644 --- a/include/exec/ram_addr.h +++ b/include/exec/ram_addr.h @@ -122,7 +122,7 @@ RAMBlock *qemu_ram_alloc_from_fd(ram_addr_t size, MemoryRegion *mr, RAMBlock *qemu_ram_alloc_from_ptr(ram_addr_t size, void *host, MemoryRegion *mr, Error **errp); -RAMBlock *qemu_ram_alloc(ram_addr_t size, bool share, MemoryRegion *mr, +RAMBlock *qemu_ram_alloc(ram_addr_t size, uint32_t ram_flags, MemoryRegion *mr, Error **errp); RAMBlock *qemu_ram_alloc_resizeable(ram_addr_t size, ram_addr_t max_size, void (*resized)(const char*, diff --git a/scripts/coccinelle/memory-region-housekeeping.cocci b/scripts/coccinelle/memory-region-housekeeping.cocci index c768d8140a..29651ebde9 100644 --- a/scripts/coccinelle/memory-region-housekeeping.cocci +++ b/scripts/coccinelle/memory-region-housekeeping.cocci @@ -127,8 +127,8 @@ static void device_fn(DeviceState *dev, ...) - memory_region_init_rom(E1, NULL, E2, E3, E4); + memory_region_init_rom(E1, obj, E2, E3, E4); | -- memory_region_init_ram_shared_nomigrate(E1, NULL, E2, E3, E4, E5); -+ memory_region_init_ram_shared_nomigrate(E1, obj, E2, E3, E4, E5); +- memory_region_init_ram_flags_nomigrate(E1, NULL, E2, E3, E4, E5); ++ memory_region_init_ram_flags_nomigrate(E1, obj, E2, E3, E4, E5); ) ...+> } @@ -152,8 +152,8 @@ static void device_fn(DeviceState *dev, ...) - memory_region_init_rom(E1, NULL, E2, E3, E4); + memory_region_init_rom(E1, OBJECT(dev), E2, E3, E4); | -- memory_region_init_ram_shared_nomigrate(E1, NULL, E2, E3, E4, E5); -+ memory_region_init_ram_shared_nomigrate(E1, OBJECT(dev), E2, E3, E4, E5); +- memory_region_init_ram_flags_nomigrate(E1, NULL, E2, E3, E4, E5); ++ memory_region_init_ram_flags_nomigrate(E1, OBJECT(dev), E2, E3, E4, E5); ) ...+> } diff --git a/softmmu/memory.c b/softmmu/memory.c index 8c3acd839e..580d2c06f5 100644 --- a/softmmu/memory.c +++ b/softmmu/memory.c @@ -1533,22 +1533,22 @@ void memory_region_init_ram_nomigrate(MemoryRegion *mr, uint64_t size, Error **errp) { - memory_region_init_ram_shared_nomigrate(mr, owner, name, size, false, errp); + memory_region_init_ram_flags_nomigrate(mr, owner, name, size, 0, errp); } -void memory_region_init_ram_shared_nomigrate(MemoryRegion *mr, - Object *owner, - const char *name, - uint64_t size, - bool share, - Error **errp) +void memory_region_init_ram_flags_nomigrate(MemoryRegion *mr, + Object *owner, + const char *name, + uint64_t size, + uint32_t ram_flags, + Error **errp) { Error *err = NULL; memory_region_init(mr, owner, name, size); mr->ram = true; mr->terminates = true; mr->destructor = memory_region_destructor_ram; - mr->ram_block = qemu_ram_alloc(size, share, mr, &err); + mr->ram_block = qemu_ram_alloc(size, ram_flags, mr, &err); if (err) { mr->size = int128_zero(); object_unparent(OBJECT(mr)); @@ -1684,7 +1684,7 @@ void memory_region_init_rom_nomigrate(MemoryRegion *mr, uint64_t size, Error **errp) { - memory_region_init_ram_shared_nomigrate(mr, owner, name, size, false, errp); + memory_region_init_ram_flags_nomigrate(mr, owner, name, size, 0, errp); mr->readonly = true; } @@ -1704,7 +1704,7 @@ void memory_region_init_rom_device_nomigrate(MemoryRegion *mr, mr->terminates = true; mr->rom_device = true; mr->destructor = memory_region_destructor_ram; - mr->ram_block = qemu_ram_alloc(size, false, mr, &err); + mr->ram_block = qemu_ram_alloc(size, 0, mr, &err); if (err) { mr->size = int128_zero(); object_unparent(OBJECT(mr)); diff --git a/softmmu/physmem.c b/softmmu/physmem.c index cc59f05593..fdcd38ba61 100644 --- a/softmmu/physmem.c +++ b/softmmu/physmem.c @@ -2108,12 +2108,14 @@ RAMBlock *qemu_ram_alloc_internal(ram_addr_t size, ram_addr_t max_size, void (*resized)(const char*, uint64_t length, void *host), - void *host, bool resizeable, bool share, + void *host, uint32_t ram_flags, MemoryRegion *mr, Error **errp) { RAMBlock *new_block; Error *local_err = NULL; + assert((ram_flags & ~(RAM_SHARED | RAM_RESIZEABLE)) == 0); + size = HOST_PAGE_ALIGN(size); max_size = HOST_PAGE_ALIGN(max_size); new_block = g_malloc0(sizeof(*new_block)); @@ -2125,15 +2127,10 @@ RAMBlock *qemu_ram_alloc_internal(ram_addr_t size, ram_addr_t max_size, new_block->fd = -1; new_block->page_size = qemu_real_host_page_size; new_block->host = host; + new_block->flags = ram_flags; if (host) { new_block->flags |= RAM_PREALLOC; } - if (share) { - new_block->flags |= RAM_SHARED; - } - if (resizeable) { - new_block->flags |= RAM_RESIZEABLE; - } ram_block_add(new_block, &local_err); if (local_err) { g_free(new_block); @@ -2146,15 +2143,14 @@ RAMBlock *qemu_ram_alloc_internal(ram_addr_t size, ram_addr_t max_size, RAMBlock *qemu_ram_alloc_from_ptr(ram_addr_t size, void *host, MemoryRegion *mr, Error **errp) { - return qemu_ram_alloc_internal(size, size, NULL, host, false, - false, mr, errp); + return qemu_ram_alloc_internal(size, size, NULL, host, 0, mr, errp); } -RAMBlock *qemu_ram_alloc(ram_addr_t size, bool share, +RAMBlock *qemu_ram_alloc(ram_addr_t size, uint32_t ram_flags, MemoryRegion *mr, Error **errp) { - return qemu_ram_alloc_internal(size, size, NULL, NULL, false, - share, mr, errp); + assert((ram_flags & ~RAM_SHARED) == 0); + return qemu_ram_alloc_internal(size, size, NULL, NULL, ram_flags, mr, errp); } RAMBlock *qemu_ram_alloc_resizeable(ram_addr_t size, ram_addr_t maxsz, @@ -2163,8 +2159,8 @@ RAMBlock *qemu_ram_alloc_resizeable(ram_addr_t size, ram_addr_t maxsz, void *host), MemoryRegion *mr, Error **errp) { - return qemu_ram_alloc_internal(size, maxsz, resized, NULL, true, - false, mr, errp); + return qemu_ram_alloc_internal(size, maxsz, resized, NULL, + RAM_RESIZEABLE, mr, errp); } static void reclaim_ramblock(RAMBlock *block)