mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-02 07:13:54 -06:00
piix_pci: wrap memory update in a transaction
The code will remap all PAMs, even if just one is updated, resulting in reduced performance. Wrap in a transaction to detect that those other PAMs have not changed. Reviewed-by: Richard Henderson <rth@twiddle.net> Signed-off-by: Avi Kivity <avi@redhat.com>
This commit is contained in:
parent
64c048f4a8
commit
72124c01c6
1 changed files with 2 additions and 0 deletions
|
@ -142,6 +142,7 @@ static void i440fx_update_memory_mappings(PCII440FXState *d)
|
||||||
int i, r;
|
int i, r;
|
||||||
uint32_t smram;
|
uint32_t smram;
|
||||||
|
|
||||||
|
memory_region_transaction_begin();
|
||||||
update_pam(d, 0xf0000, 0x100000, (d->dev.config[I440FX_PAM] >> 4) & 3,
|
update_pam(d, 0xf0000, 0x100000, (d->dev.config[I440FX_PAM] >> 4) & 3,
|
||||||
&d->pam_regions[0]);
|
&d->pam_regions[0]);
|
||||||
for(i = 0; i < 12; i++) {
|
for(i = 0; i < 12; i++) {
|
||||||
|
@ -162,6 +163,7 @@ static void i440fx_update_memory_mappings(PCII440FXState *d)
|
||||||
d->smram_enabled = false;
|
d->smram_enabled = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
memory_region_transaction_commit();
|
||||||
}
|
}
|
||||||
|
|
||||||
static void i440fx_set_smm(int val, void *arg)
|
static void i440fx_set_smm(int val, void *arg)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue