memory: Add global-locking property to memory regions
This introduces the memory region property "global_locking". It is true by default. By setting it to false, a device model can request BQL-free dispatching of region accesses to its r/w handlers. The actual BQL break-up will be provided in a separate patch. Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com> Cc: Frederic Konrad <fred.konrad@greensocs.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Message-Id: <1434646046-27150-4-git-send-email-pbonzini@redhat.com>
This commit is contained in:
parent
afbe70535f
commit
196ea13104
2 changed files with 37 additions and 0 deletions
11
memory.c
11
memory.c
|
|
@ -1012,6 +1012,7 @@ static void memory_region_initfn(Object *obj)
|
|||
mr->ram_addr = RAM_ADDR_INVALID;
|
||||
mr->enabled = true;
|
||||
mr->romd_mode = true;
|
||||
mr->global_locking = true;
|
||||
mr->destructor = memory_region_destructor_none;
|
||||
QTAILQ_INIT(&mr->subregions);
|
||||
QTAILQ_INIT(&mr->coalesced);
|
||||
|
|
@ -1646,6 +1647,16 @@ void memory_region_clear_flush_coalesced(MemoryRegion *mr)
|
|||
}
|
||||
}
|
||||
|
||||
void memory_region_set_global_locking(MemoryRegion *mr)
|
||||
{
|
||||
mr->global_locking = true;
|
||||
}
|
||||
|
||||
void memory_region_clear_global_locking(MemoryRegion *mr)
|
||||
{
|
||||
mr->global_locking = false;
|
||||
}
|
||||
|
||||
void memory_region_add_eventfd(MemoryRegion *mr,
|
||||
hwaddr addr,
|
||||
unsigned size,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue