@@ -798,11 +798,10 @@ buf_page_is_corrupted(
798
798
799
799
/* Stored log sequence numbers at the start and the end
800
800
of page do not match */
801
-
802
801
return (TRUE );
803
802
}
804
803
805
- #if !defined(UNIV_HOTBACKUP) && !defined(UNIV_INNOCHECKSUM)
804
+ #if !defined(UNIV_HOTBACKUP) && !defined(UNIV_INNOCHECKSUM) &!defined(UNIV_NVDIMM_CACHE)
806
805
if (check_lsn && recv_lsn_checks_on) {
807
806
lsn_t current_lsn;
808
807
const lsn_t page_lsn
@@ -973,7 +972,6 @@ buf_page_is_corrupted(
973
972
page_no, is_log_enabled, log_file, curr_algo,
974
973
#endif /* UNIV_INNOCHECKSUM */
975
974
true )) {
976
-
977
975
return (FALSE );
978
976
}
979
977
legacy_checksum_checked = true ;
@@ -1084,7 +1082,6 @@ buf_page_is_corrupted(
1084
1082
page_id);
1085
1083
}
1086
1084
#endif /* UNIV_INNOCHECKSUM */
1087
-
1088
1085
return (FALSE );
1089
1086
}
1090
1087
@@ -1620,8 +1617,6 @@ buf_chunk_nvm_init(
1620
1617
// NVDIMM-porting
1621
1618
chunk->mem = buf_pool->allocator .allocate_large_nvm (mem_size,
1622
1619
&chunk->mem_pfx );
1623
- // chunk->mem = pm_mmap_buf_chunk_alloc(mem_size, &chunk->mem_pfx);
1624
-
1625
1620
if (UNIV_UNLIKELY (chunk->mem == NULL )) {
1626
1621
return (NULL );
1627
1622
}
@@ -2207,11 +2202,17 @@ buf_pool_free_instance(
2207
2202
chunks = buf_pool->chunks ;
2208
2203
chunk = chunks + buf_pool->n_chunks ;
2209
2204
2205
+ fprintf (stderr, " [JONGQ] buf_pool->instance_no check: %lu\n " , buf_pool->instance_no );
2206
+
2210
2207
while (--chunk >= chunks) {
2211
2208
buf_block_t * block = chunk->blocks ;
2212
-
2209
+
2213
2210
#ifdef UNIV_NVDIMM_CACHE
2214
- if (buf_pool->instance_no == 8 && chunk == chunks) break ;
2211
+ if (buf_pool->instance_no == 8 && chunk == chunks) {
2212
+ // buf_pool->allocator.deallocate_large_nvm(
2213
+ // chunk->mem, &chunk->mem_pfx);
2214
+ break ;
2215
+ }
2215
2216
#endif /* UNIV_NVDIMM_CACHE */
2216
2217
2217
2218
for (ulint i = chunk->size ; i--; block++) {
@@ -2220,8 +2221,18 @@ buf_pool_free_instance(
2220
2221
ut_d (rw_lock_free (&block->debug_latch ));
2221
2222
}
2222
2223
2224
+ #ifdef UNIV_NVDIMM_CACHE
2225
+ if (buf_pool->instance_no == 8 ) {
2226
+ buf_pool->allocator .deallocate_large_nvm (
2227
+ chunk->mem , &chunk->mem_pfx );
2228
+ } else {
2229
+ buf_pool->allocator .deallocate_large (
2230
+ chunk->mem , &chunk->mem_pfx );
2231
+ }
2232
+ #else
2223
2233
buf_pool->allocator .deallocate_large (
2224
2234
chunk->mem , &chunk->mem_pfx );
2235
+ #endif
2225
2236
}
2226
2237
2227
2238
for (ulint i = BUF_FLUSH_LRU; i < BUF_FLUSH_N_TYPES; ++i) {
@@ -2298,7 +2309,7 @@ buf_pool_free(
2298
2309
}
2299
2310
2300
2311
#ifdef UNIV_NVDIMM_CACHE
2301
- nvdimm_buf_pool_free (srv_nvdimm_buf_pool_instances);
2312
+ nvdimm_buf_pool_free (srv_nvdimm_buf_pool_instances);
2302
2313
#endif /* UNIV_NVDIMM_CACHE */
2303
2314
2304
2315
UT_DELETE (buf_chunk_map_reg);
@@ -5333,8 +5344,14 @@ buf_page_init_low(
5333
5344
HASH_INVALIDATE (bpage, hash);
5334
5345
5335
5346
#ifdef UNIV_NVDIMM_CACHE
5336
- bpage->cached_in_nvdimm = false ;
5337
- bpage->moved_to_nvdimm = false ;
5347
+ // bpage->cached_in_nvdimm = false;
5348
+ // bpage->moved_to_nvdimm = false;
5349
+ bpage->moved_to_nvdimm = false ;
5350
+ if (bpage->buf_pool_index >= srv_buf_pool_instances) {
5351
+ bpage->cached_in_nvdimm = true ;
5352
+ } else {
5353
+ bpage->cached_in_nvdimm = false ;
5354
+ }
5338
5355
#endif /* UNIV_NVDIMM_CACHE */
5339
5356
5340
5357
ut_d (bpage->file_page_was_freed = FALSE );
0 commit comments