PostgreSQL Source Code
git master
pg_numa.h
Go to the documentation of this file.
1
/*-------------------------------------------------------------------------
2
*
3
* pg_numa.h
4
* Basic NUMA portability routines
5
*
6
*
7
* Copyright (c) 2025, PostgreSQL Global Development Group
8
*
9
* IDENTIFICATION
10
* src/include/port/pg_numa.h
11
*
12
*-------------------------------------------------------------------------
13
*/
14
#ifndef PG_NUMA_H
15
#define PG_NUMA_H
16
17
extern
PGDLLIMPORT
int
pg_numa_init
(
void
);
18
extern
PGDLLIMPORT
int
pg_numa_query_pages
(
int
pid,
unsigned
long
count,
void
**pages,
int
*status);
19
extern
PGDLLIMPORT
int
pg_numa_get_max_node
(
void
);
20
21
#ifdef USE_LIBNUMA
22
23
/*
24
* This is required on Linux, before pg_numa_query_pages() as we
25
* need to page-fault before move_pages(2) syscall returns valid results.
26
*/
27
#define pg_numa_touch_mem_if_required(ro_volatile_var, ptr) \
28
ro_volatile_var = *(volatile uint64 *) ptr
29
30
#else
31
32
#define pg_numa_touch_mem_if_required(ro_volatile_var, ptr) \
33
do {} while(0)
34
35
#endif
36
37
#endif
/* PG_NUMA_H */
PGDLLIMPORT
#define PGDLLIMPORT
Definition:
c.h:1291
pg_numa_get_max_node
PGDLLIMPORT int pg_numa_get_max_node(void)
Definition:
pg_numa.c:75
pg_numa_query_pages
PGDLLIMPORT int pg_numa_query_pages(int pid, unsigned long count, void **pages, int *status)
Definition:
pg_numa.c:69
pg_numa_init
PGDLLIMPORT int pg_numa_init(void)
Definition:
pg_numa.c:62
src
include
port
pg_numa.h
Generated on Sun May 4 2025 12:13:25 for PostgreSQL Source Code by
1.9.4