diff --git a/src/intel/common/intel_aux_map.c b/src/intel/common/intel_aux_map.c index 88ef98110a9..53e34872a4b 100644 --- a/src/intel/common/intel_aux_map.c +++ b/src/intel/common/intel_aux_map.c @@ -485,29 +485,29 @@ intel_aux_map_format_bits_for_isl_surf(const struct isl_surf *isl_surf) } static void -get_aux_entry(struct intel_aux_map_context *ctx, uint64_t address, +get_aux_entry(struct intel_aux_map_context *ctx, uint64_t main_address, uint32_t *l1_index_out, uint64_t *l1_entry_addr_out, uint64_t **l1_entry_map_out) { - uint32_t l3_index = (address >> 36) & 0xfff; + uint32_t l3_index = (main_address >> 36) & 0xfff; uint64_t *l3_entry = &ctx->level3_map[l3_index]; uint64_t *l2_map; if ((*l3_entry & INTEL_AUX_MAP_ENTRY_VALID_BIT) == 0) { - uint64_t l2_gpu; - if (add_sub_table(ctx, 32 * 1024, 32 * 1024, &l2_gpu, &l2_map)) { + uint64_t l2_addr; + if (add_sub_table(ctx, 32 * 1024, 32 * 1024, &l2_addr, &l2_map)) { if (aux_map_debug) fprintf(stderr, "AUX-MAP L3[0x%x]: 0x%"PRIx64", map=%p\n", - l3_index, l2_gpu, l2_map); + l3_index, l2_addr, l2_map); } else { unreachable("Failed to add L2 Aux-Map Page Table!"); } - *l3_entry = (l2_gpu & 0xffffffff8000ULL) | INTEL_AUX_MAP_ENTRY_VALID_BIT; + *l3_entry = (l2_addr & 0xffffffff8000ULL) | INTEL_AUX_MAP_ENTRY_VALID_BIT; } else { uint64_t l2_addr = intel_canonical_address(*l3_entry & ~0x7fffULL); l2_map = get_u64_entry_ptr(ctx, l2_addr); } - uint32_t l2_index = (address >> 24) & 0xfff; + uint32_t l2_index = (main_address >> 24) & 0xfff; uint64_t *l2_entry = &l2_map[l2_index]; uint64_t l1_page_size = ctx->format->l1_page_size; uint64_t l1_addr, *l1_map; @@ -521,11 +521,10 @@ get_aux_entry(struct intel_aux_map_context *ctx, uint64_t address, } *l2_entry = (l1_addr & ~get_page_mask(l1_page_size)) | INTEL_AUX_MAP_ENTRY_VALID_BIT; } else { - l1_addr = intel_canonical_address( - *l2_entry & ~get_page_mask(l1_page_size)); + l1_addr = intel_canonical_address(*l2_entry & ~get_page_mask(l1_page_size)); l1_map = get_u64_entry_ptr(ctx, l1_addr); } - uint32_t l1_index = get_index(address, ctx->format->l1_index_mask, + uint32_t l1_index = get_index(main_address, ctx->format->l1_index_mask, ctx->format->l1_index_offset); if (l1_index_out) *l1_index_out = l1_index; @@ -536,17 +535,17 @@ get_aux_entry(struct intel_aux_map_context *ctx, uint64_t address, } static void -add_mapping(struct intel_aux_map_context *ctx, uint64_t address, +add_mapping(struct intel_aux_map_context *ctx, uint64_t main_address, uint64_t aux_address, uint64_t format_bits, bool *state_changed) { if (aux_map_debug) - fprintf(stderr, "AUX-MAP 0x%"PRIx64" => 0x%"PRIx64"\n", address, + fprintf(stderr, "AUX-MAP 0x%"PRIx64" => 0x%"PRIx64"\n", main_address, aux_address); uint32_t l1_index; uint64_t *l1_entry; - get_aux_entry(ctx, address, &l1_index, NULL, &l1_entry); + get_aux_entry(ctx, main_address, &l1_index, NULL, &l1_entry); const uint64_t l1_data = (aux_address & intel_aux_get_meta_address_mask(ctx)) | @@ -579,34 +578,34 @@ add_mapping(struct intel_aux_map_context *ctx, uint64_t address, uint64_t * intel_aux_map_get_entry(struct intel_aux_map_context *ctx, - uint64_t address, - uint64_t *entry_address) + uint64_t main_address, + uint64_t *aux_entry_address) { pthread_mutex_lock(&ctx->mutex); uint64_t *l1_entry_map; - get_aux_entry(ctx, address, NULL, entry_address, &l1_entry_map); + get_aux_entry(ctx, main_address, NULL, aux_entry_address, &l1_entry_map); pthread_mutex_unlock(&ctx->mutex); return l1_entry_map; } void -intel_aux_map_add_mapping(struct intel_aux_map_context *ctx, uint64_t address, +intel_aux_map_add_mapping(struct intel_aux_map_context *ctx, uint64_t main_address, uint64_t aux_address, uint64_t main_size_B, uint64_t format_bits) { bool state_changed = false; pthread_mutex_lock(&ctx->mutex); - uint64_t map_addr = address; - uint64_t dest_aux_addr = aux_address; - uint64_t main_page_size = ctx->format->main_page_size; - assert((address & get_page_mask(main_page_size)) == 0); - uint64_t aux_page_size = get_meta_page_size(ctx->format); + uint64_t main_inc_addr = main_address; + uint64_t aux_inc_addr = aux_address; + const uint64_t main_page_size = ctx->format->main_page_size; + assert((main_address & get_page_mask(main_page_size)) == 0); + const uint64_t aux_page_size = get_meta_page_size(ctx->format); assert((aux_address & get_page_mask(aux_page_size)) == 0); - while (map_addr - address < main_size_B) { - add_mapping(ctx, map_addr, dest_aux_addr, format_bits, &state_changed); - map_addr += main_page_size; - dest_aux_addr += aux_page_size; + while (main_inc_addr - main_address < main_size_B) { + add_mapping(ctx, main_inc_addr, aux_inc_addr, format_bits, &state_changed); + main_inc_addr = main_inc_addr + main_page_size; + aux_inc_addr = aux_inc_addr + aux_page_size; } pthread_mutex_unlock(&ctx->mutex); if (state_changed) @@ -620,11 +619,11 @@ intel_aux_map_add_mapping(struct intel_aux_map_context *ctx, uint64_t address, * tables. */ static void -remove_mapping(struct intel_aux_map_context *ctx, uint64_t address, +remove_mapping(struct intel_aux_map_context *ctx, uint64_t main_address, bool *state_changed) { uint64_t *l1_entry; - get_aux_entry(ctx, address, NULL, NULL, &l1_entry); + get_aux_entry(ctx, main_address, NULL, NULL, &l1_entry); const uint64_t current_l1_data = *l1_entry; const uint64_t l1_data = current_l1_data & ~INTEL_AUX_MAP_ENTRY_VALID_BIT; @@ -644,21 +643,21 @@ remove_mapping(struct intel_aux_map_context *ctx, uint64_t address, } void -intel_aux_map_unmap_range(struct intel_aux_map_context *ctx, uint64_t address, +intel_aux_map_unmap_range(struct intel_aux_map_context *ctx, uint64_t main_address, uint64_t size) { bool state_changed = false; pthread_mutex_lock(&ctx->mutex); if (aux_map_debug) - fprintf(stderr, "AUX-MAP remove 0x%"PRIx64"-0x%"PRIx64"\n", address, - address + size); + fprintf(stderr, "AUX-MAP remove 0x%"PRIx64"-0x%"PRIx64"\n", main_address, + main_address + size); - uint64_t map_addr = address; + uint64_t main_inc_addr = main_address; uint64_t main_page_size = ctx->format->main_page_size; - assert((address & get_page_mask(main_page_size)) == 0); - while (map_addr - address < size) { - remove_mapping(ctx, map_addr, &state_changed); - map_addr += main_page_size; + assert((main_address & get_page_mask(main_page_size)) == 0); + while (main_inc_addr - main_address < size) { + remove_mapping(ctx, main_inc_addr, &state_changed); + main_inc_addr += main_page_size; } pthread_mutex_unlock(&ctx->mutex); if (state_changed) diff --git a/src/intel/common/intel_aux_map.h b/src/intel/common/intel_aux_map.h index 267da3c2fc3..47e4e18b7be 100644 --- a/src/intel/common/intel_aux_map.h +++ b/src/intel/common/intel_aux_map.h @@ -106,16 +106,16 @@ intel_aux_map_format_bits_for_isl_surf(const struct isl_surf *isl_surf); uint64_t * intel_aux_map_get_entry(struct intel_aux_map_context *ctx, - uint64_t address, - uint64_t *entry_address); + uint64_t main_address, + uint64_t *aux_entry_address); void -intel_aux_map_add_mapping(struct intel_aux_map_context *ctx, uint64_t address, +intel_aux_map_add_mapping(struct intel_aux_map_context *ctx, uint64_t main_address, uint64_t aux_address, uint64_t main_size_B, uint64_t format_bits); void -intel_aux_map_unmap_range(struct intel_aux_map_context *ctx, uint64_t address, +intel_aux_map_unmap_range(struct intel_aux_map_context *ctx, uint64_t main_address, uint64_t size); #ifdef __cplusplus