@@ -173,17 +173,14 @@ routing_get_header(cache *cc,
173173 uint64 index ,
174174 page_handle * * filter_page )
175175{
176- uint64 addrs_per_page =
177- cache_config_page_size ( cfg -> cache_cfg ) / sizeof (uint64 );
176+ uint64 page_size = cache_config_page_size ( cfg -> cache_cfg );
177+ uint64 addrs_per_page = page_size / sizeof (uint64 );
178178 debug_assert (index / addrs_per_page < 32 );
179- uint64 index_addr =
180- filter_addr
181- + cache_config_page_size (cfg -> cache_cfg ) * (index / addrs_per_page );
179+ uint64 index_addr = filter_addr + page_size * (index / addrs_per_page );
182180 page_handle * index_page = cache_get (cc , index_addr , TRUE, PAGE_TYPE_FILTER );
183181 uint64 hdr_raw_addr = ((uint64 * )index_page -> data )[index % addrs_per_page ];
184182 platform_assert (hdr_raw_addr != 0 );
185- uint64 header_addr =
186- hdr_raw_addr - (hdr_raw_addr % cache_config_page_size (cfg -> cache_cfg ));
183+ uint64 header_addr = hdr_raw_addr - (hdr_raw_addr % page_size );
187184 * filter_page = cache_get (cc , header_addr , TRUE, PAGE_TYPE_FILTER );
188185 uint64 header_off = hdr_raw_addr - header_addr ;
189186 routing_hdr * hdr = (routing_hdr * )((* filter_page )-> data + header_off );
@@ -1004,6 +1001,7 @@ routing_filter_lookup_async(cache *cc,
10041001
10051002 debug_assert (key_is_user_key (target ));
10061003
1004+ uint64 page_size = cache_config_page_size (cfg -> cache_cfg );
10071005 do {
10081006 switch (ctxt -> state ) {
10091007 case routing_async_state_start :
@@ -1031,11 +1029,9 @@ routing_filter_lookup_async(cache *cc,
10311029 index_remainder_and_value_size );
10321030 ctxt -> remainder = fp & remainder_mask ;
10331031
1034- uint64 addrs_per_page =
1035- cache_config_page_size (cfg -> cache_cfg ) / sizeof (uint64 );
1036- ctxt -> page_addr = filter -> addr
1037- + cache_config_page_size (cfg -> cache_cfg )
1038- * (ctxt -> index / addrs_per_page );
1032+ uint64 addrs_per_page = (page_size / sizeof (uint64 ));
1033+ ctxt -> page_addr =
1034+ filter -> addr + page_size * (ctxt -> index / addrs_per_page );
10391035 routing_async_set_state (ctxt , routing_async_state_get_index );
10401036 // fallthrough;
10411037 }
@@ -1096,13 +1092,11 @@ routing_filter_lookup_async(cache *cc,
10961092 if (ctxt -> was_async ) {
10971093 cache_async_done (cc , PAGE_TYPE_FILTER , cache_ctxt );
10981094 }
1099- uint64 * index_arr = ((uint64 * )cache_ctxt -> page -> data );
1100- uint64 addrs_per_page =
1101- cache_config_page_size (cfg -> cache_cfg ) / sizeof (uint64 );
1102- ctxt -> header_addr = index_arr [ctxt -> index % addrs_per_page ];
1095+ uint64 * index_arr = ((uint64 * )cache_ctxt -> page -> data );
1096+ uint64 addrs_per_page = (page_size / sizeof (uint64 ));
1097+ ctxt -> header_addr = index_arr [ctxt -> index % addrs_per_page ];
11031098 ctxt -> page_addr =
1104- ctxt -> header_addr
1105- - (ctxt -> header_addr % cache_config_page_size (cfg -> cache_cfg ));
1099+ ctxt -> header_addr - (ctxt -> header_addr % page_size );
11061100 cache_unget (cc , cache_ctxt -> page );
11071101 routing_async_set_state (ctxt , routing_async_state_get_filter );
11081102 break ;
@@ -1117,8 +1111,7 @@ routing_filter_lookup_async(cache *cc,
11171111 }
11181112 routing_hdr * hdr =
11191113 (routing_hdr * )(cache_ctxt -> page -> data
1120- + (ctxt -> header_addr
1121- % cache_config_page_size (cfg -> cache_cfg )));
1114+ + (ctxt -> header_addr % page_size ));
11221115 uint64 encoding_size =
11231116 (hdr -> num_remainders + cfg -> index_size - 1 ) / 8 + 4 ;
11241117 uint64 header_length = encoding_size + sizeof (routing_hdr );
@@ -1276,12 +1269,10 @@ routing_filter_print_index(cache *cc,
12761269 platform_default_log ("*** filter_addr: %lu\n" , filter_addr );
12771270 platform_default_log ("------------------------------------------------------"
12781271 "--------------------------\n" );
1272+ uint64 page_size = cache_config_page_size (cfg -> cache_cfg );
12791273 for (i = 0 ; i < num_indices ; i ++ ) {
1280- uint64 addrs_per_page =
1281- cache_config_page_size (cfg -> cache_cfg ) / sizeof (uint64 );
1282- uint64 index_addr =
1283- filter_addr
1284- + cache_config_page_size (cfg -> cache_cfg ) * (i / addrs_per_page );
1274+ uint64 addrs_per_page = (page_size / sizeof (uint64 ));
1275+ uint64 index_addr = filter_addr + (page_size * (i / addrs_per_page ));
12851276 page_handle * index_page =
12861277 cache_get (cc , index_addr , TRUE, PAGE_TYPE_FILTER );
12871278 platform_default_log ("index 0x%lx: %lu\n" ,
0 commit comments