mirror of
https://github.com/isar/libmdbx.git
synced 2025-01-30 22:47:16 +08:00
mdbx: include meta-pages into a coredump.
This commit is contained in:
parent
95ebdb7065
commit
52f52de2d5
2
TODO.md
2
TODO.md
@ -24,7 +24,7 @@
|
||||
- [x] Добавить поле типа контрольной суммы.
|
||||
- [x] Добавить поле/флаг размера pgno_t.
|
||||
- [x] Поменять сигнатуры.
|
||||
- [ ] Добавить мета-страницы в coredump, проверить lck
|
||||
- [x] Добавить мета-страницы в coredump, проверить lck
|
||||
- [ ] Сделать список для txnid_t, кода sizeof(txnid_t) > sizeof(pgno_t) и вернуть размер pgno_t
|
||||
- [ ] Избавиться от умножения на размер страницы (заменить на сдвиг).
|
||||
- [ ] Устранение всех предупреждений (в том числе под Windows).
|
||||
|
11
src/mdbx.c
11
src/mdbx.c
@ -3858,9 +3858,12 @@ static int __cold mdbx_env_map(MDBX_env *env, void *addr, size_t usedsize) {
|
||||
(void)madvise(env->me_map, env->me_mapsize, MADV_NOHUGEPAGE);
|
||||
#endif
|
||||
|
||||
#ifdef MADV_DONTDUMP
|
||||
#if defined(MADV_DODUMP) && defined(MADV_DONTDUMP)
|
||||
const size_t meta_length = env->me_psize * NUM_METAS;
|
||||
(void)madvise(env->me_map, env->me_psize * NUM_METAS, MADV_DODUMP);
|
||||
if (!(flags & MDBX_PAGEPERTURB))
|
||||
(void)madvise(env->me_map, env->me_mapsize, MADV_DONTDUMP);
|
||||
(void)madvise(env->me_map + meta_length, env->me_mapsize - meta_length,
|
||||
MADV_DONTDUMP);
|
||||
#endif
|
||||
|
||||
#ifdef MADV_REMOVE
|
||||
@ -4202,10 +4205,6 @@ static int __cold mdbx_setup_lck(MDBX_env *env, char *lck_pathname, int mode) {
|
||||
assert(addr != nullptr);
|
||||
env->me_lck = addr;
|
||||
|
||||
#ifdef MADV_NOHUGEPAGE
|
||||
(void)madvise(env->me_lck, size, MADV_NOHUGEPAGE);
|
||||
#endif
|
||||
|
||||
#ifdef MADV_DODUMP
|
||||
(void)madvise(env->me_lck, size, MADV_DODUMP);
|
||||
#endif
|
||||
|
Loading…
x
Reference in New Issue
Block a user