Messages in this thread | | | Date | Tue, 18 Jan 2022 10:41:16 +0100 | Subject | Re: [RFC PATCH 10/13] softmmu/physmem: Add private memory address space | From | Philippe Mathieu-Daudé <> |
| |
Hi,
On 11/11/21 15:13, Chao Peng wrote: > Signed-off-by: Chao Peng <chao.p.peng@linux.intel.com> > --- > include/exec/address-spaces.h | 2 ++ > softmmu/physmem.c | 13 +++++++++++++ > 2 files changed, 15 insertions(+) > > diff --git a/include/exec/address-spaces.h b/include/exec/address-spaces.h > index db8bfa9a92..b3f45001c0 100644 > --- a/include/exec/address-spaces.h > +++ b/include/exec/address-spaces.h > @@ -27,6 +27,7 @@ > * until a proper bus interface is available. > */ > MemoryRegion *get_system_memory(void); > +MemoryRegion *get_system_private_memory(void); > > /* Get the root I/O port region. This interface should only be used > * temporarily until a proper bus interface is available. > @@ -34,6 +35,7 @@ MemoryRegion *get_system_memory(void); > MemoryRegion *get_system_io(void); > > extern AddressSpace address_space_memory; > +extern AddressSpace address_space_private_memory; > extern AddressSpace address_space_io; > > #endif > diff --git a/softmmu/physmem.c b/softmmu/physmem.c > index f4d6eeaa17..a2d339fd88 100644 > --- a/softmmu/physmem.c > +++ b/softmmu/physmem.c > @@ -85,10 +85,13 @@ > RAMList ram_list = { .blocks = QLIST_HEAD_INITIALIZER(ram_list.blocks) }; > > static MemoryRegion *system_memory; > +static MemoryRegion *system_private_memory; > static MemoryRegion *system_io; > > AddressSpace address_space_io; > AddressSpace address_space_memory; > +AddressSpace address_space_private_memory; > + > > static MemoryRegion io_mem_unassigned; > > @@ -2669,6 +2672,11 @@ static void memory_map_init(void) > memory_region_init(system_memory, NULL, "system", UINT64_MAX); > address_space_init(&address_space_memory, system_memory, "memory"); > > + system_private_memory = g_malloc(sizeof(*system_private_memory)); > + > + memory_region_init(system_private_memory, NULL, "system-private", UINT64_MAX); > + address_space_init(&address_space_private_memory, system_private_memory, "private-memory");
Since the description is quite scarce, I don't understand why we need to add this KVM specific "system-private" MR/AS to all machines on all architectures.
> system_io = g_malloc(sizeof(*system_io)); > memory_region_init_io(system_io, NULL, &unassigned_io_ops, NULL, "io", > 65536);
(We already want to get ride of the "io" MR/AS which is specific to x86 or machines).
> @@ -2680,6 +2688,11 @@ MemoryRegion *get_system_memory(void) > return system_memory; > } > > +MemoryRegion *get_system_private_memory(void) > +{ > + return system_private_memory; > +} > + > MemoryRegion *get_system_io(void) > { > return system_io;
| |