Re: pgsql: Introduce pg_shmem_allocations_numa view
От | Christoph Berg |
---|---|
Тема | Re: pgsql: Introduce pg_shmem_allocations_numa view |
Дата | |
Msg-id | aFm5tmSFwhGX7mA7@msg.df7cb.de обсуждение исходный текст |
Ответ на | Re: pgsql: Introduce pg_shmem_allocations_numa view (Tomas Vondra <tomas@vondra.me>) |
Ответы |
Re: pgsql: Introduce pg_shmem_allocations_numa view
|
Список | pgsql-hackers |
Re: Tomas Vondra > Huh. So it's only the first call that does this? The first call after a restart. Reconnecting is not enough. > Can you maybe print the addresses passed to pg_numa_query_pages? I The addresses look good: Breakpoint 1, pg_numa_query_pages (pid=0, count=32768, pages=0xeb44d02c, status=0xeb42c02c) at ../src/port/pg_numa.c:49 49 return numa_move_pages(pid, count, pages, NULL, status, 0); (gdb) p *pages $1 = (void *) 0xebc33000 (gdb) p pages[1] $2 = (void *) 0xebc34000 (gdb) p pages[2] $3 = (void *) 0xebc35000 > wonder if there's some bug in how we fill that array. Not sure why would > it happen only on 32-bit systems, though. I found something, but that should be harmless: --- a/contrib/pg_buffercache/pg_buffercache_pages.c +++ b/contrib/pg_buffercache/pg_buffercache_pages.c @@ -365,7 +365,7 @@ pg_buffercache_numa_pages(PG_FUNCTION_ARGS) /* Used to determine the NUMA node for all OS pages at once */ os_page_ptrs = palloc0(sizeof(void *) * os_page_count); - os_page_status = palloc(sizeof(uint64) * os_page_count); + os_page_status = palloc(sizeof(int) * os_page_count); /* Fill pointers for all the memory pages. */ idx = 0; Christoph
В списке pgsql-hackers по дате отправления: