[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH v4 3/4] xen/hap: make hap_track_dirty_vram use non-contiguous memory for temporary map
Just like it's done for shadow_track_dirty_vram allocate the temporary buffer using non-contiguous memory. Signed-off-by: Roger Pau Monnà <roger.pau@xxxxxxxxxx> Cc: Tim Deegan <tim@xxxxxxx> Cc: Jan Beulich <jbeulich@xxxxxxxx> Cc: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> --- xen/arch/x86/mm/hap/hap.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/xen/arch/x86/mm/hap/hap.c b/xen/arch/x86/mm/hap/hap.c index c28a6e3..61123b0 100644 --- a/xen/arch/x86/mm/hap/hap.c +++ b/xen/arch/x86/mm/hap/hap.c @@ -74,11 +74,10 @@ int hap_track_dirty_vram(struct domain *d, long rc = 0; struct sh_dirty_vram *dirty_vram; uint8_t *dirty_bitmap = NULL; + int size = DIV_ROUND_UP(nr, BITS_PER_BYTE); if ( nr ) { - int size = (nr + BITS_PER_BYTE - 1) / BITS_PER_BYTE; - if ( !paging_mode_log_dirty(d) ) { rc = paging_log_dirty_enable(d, 0); @@ -87,7 +86,8 @@ int hap_track_dirty_vram(struct domain *d, } rc = -ENOMEM; - dirty_bitmap = xzalloc_bytes(size); + dirty_bitmap = alloc_xenheap_noncontiguous( + DIV_ROUND_UP(size, PAGE_SIZE), 0); if ( !dirty_bitmap ) goto out; @@ -174,7 +174,7 @@ int hap_track_dirty_vram(struct domain *d, p2m_ram_logdirty, p2m_ram_rw); } out: - xfree(dirty_bitmap); + free_xenheap_noncontiguous(dirty_bitmap, DIV_ROUND_UP(size, PAGE_SIZE)); return rc; } -- 1.9.5 (Apple Git-50.3) _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |