• Christopher Covington's avatar
    Use run-time page size where it matters · cefe22bd
    Christopher Covington authored
    In AArch64, pages may be 4K or 64K depending on kernel configuration.
    The GNU C Library documentation suggests [1], "the correct interface
    to query about the page size is sysconf". Introduce one new
    architecture-specific function-like macro, page_size(), that on x86
    and AArch32 remains a constant so as to minimally affect performance,
    but on AArch64 is sysconf(_SC_PAGESIZE) for correctness.
    
    1. https://www.gnu.org/software/libc/manual/html_node/Query-Memory-Parameters.html
    
    To minimize churn, the PAGE_SIZE macro is left as a build-time
    estimation of what the run-time page size might be.
    
    This fixes the following errors for CRIU on AArch64 kernels with
    CONFIG_ARM64_64K_PAGES=y, allowing dump of
    `setsid sleep < /dev/null &> /dev/null` to succeed.
    
    Error (kerndat.c:48): Can't stat self map_files: No such file or directory
    
    Error (util.c:668): Can't read pme for pid 90: No such file or directory
    
    Error (parasite-syscall.c:1135): Can't open 89/map_files/0x3ffb7da0000-0x3ffb7dac000 on procfs: No such file or directory
    Signed-off-by: 's avatarChristopher Covington <cov@codeaurora.org>
    Acked-by: 's avatarCyrill Gorcunov <gorcunov@openvz.org>
    Signed-off-by: 's avatarPavel Emelyanov <xemul@parallels.com>
    cefe22bd
Name
Last commit
Last update
..
asm-generic Loading commit data...
action-scripts.h Loading commit data...
aio.h Loading commit data...
bfd.h Loading commit data...
bug.h Loading commit data...
cgroup.h Loading commit data...
compiler.h Loading commit data...
config-base.h Loading commit data...
cpu.h Loading commit data...
cr-errno.h Loading commit data...
cr-service-const.h Loading commit data...
cr-service.h Loading commit data...
cr-show.h Loading commit data...
cr_options.h Loading commit data...
criu-log.h Loading commit data...
criu-plugin.h Loading commit data...
crtools.h Loading commit data...
err.h Loading commit data...
errno.h Loading commit data...
eventfd.h Loading commit data...
eventpoll.h Loading commit data...
fcntl.h Loading commit data...
fifo.h Loading commit data...
file-ids.h Loading commit data...
file-lock.h Loading commit data...
files-reg.h Loading commit data...
files.h Loading commit data...
fs-magic.h Loading commit data...
fsnotify.h Loading commit data...
image-desc.h Loading commit data...
image.h Loading commit data...
imgset.h Loading commit data...
inet_diag.h Loading commit data...
ipc_ns.h Loading commit data...
irmap.h Loading commit data...
kcmp-ids.h Loading commit data...
kcmp.h Loading commit data...
kerndat.h Loading commit data...
libnetlink.h Loading commit data...
list.h Loading commit data...
lock.h Loading commit data...
log.h Loading commit data...
magic.h Loading commit data...
mem.h Loading commit data...
mman.h Loading commit data...
mount.h Loading commit data...
namespaces.h Loading commit data...
net.h Loading commit data...
netfilter.h Loading commit data...
netlink_diag.h Loading commit data...
packet_diag.h Loading commit data...
page-pipe.h Loading commit data...
page-read.h Loading commit data...
page-xfer.h Loading commit data...
pagemap-cache.h Loading commit data...
parasite-syscall.h Loading commit data...
parasite.h Loading commit data...
pid.h Loading commit data...
pipes.h Loading commit data...
plugin.h Loading commit data...
posix-timer.h Loading commit data...
prctl.h Loading commit data...
proc_parse.h Loading commit data...
protobuf-desc.h Loading commit data...
protobuf.h Loading commit data...
pstree.h Loading commit data...
ptrace.h Loading commit data...
rbtree.h Loading commit data...
restorer.h Loading commit data...
rst-malloc.h Loading commit data...
rst_info.h Loading commit data...
security.h Loading commit data...
servicefd.h Loading commit data...
setproctitle.h Loading commit data...
shmem.h Loading commit data...
sigframe.h Loading commit data...
signalfd.h Loading commit data...
sk-inet.h Loading commit data...
sk-packet.h Loading commit data...
sk-queue.h Loading commit data...
sockets.h Loading commit data...
stats.h Loading commit data...
string.h Loading commit data...
syscall-types.h Loading commit data...
sysctl.h Loading commit data...
sysfs_parse.h Loading commit data...
timerfd.h Loading commit data...
tty.h Loading commit data...
tun.h Loading commit data...
unix_diag.h Loading commit data...
util-pie.h Loading commit data...
util.h Loading commit data...
uts_ns.h Loading commit data...
vdso.h Loading commit data...
vma.h Loading commit data...
xmalloc.h Loading commit data...