Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/checkpoint-restore/criu.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-08-05criu: fix conflicting headersRadostin Stoyanov
There are several changes in glibc 2.36 that make sys/mount.h header incompatible with kernel headers: https://sourceware.org/glibc/wiki/Release/2.36#Usage_of_.3Clinux.2Fmount.h.3E_and_.3Csys.2Fmount.h.3E This patch removes conflicting includes for `<linux/mount.h>` and updates the content of `criu/include/linux/mount.h` to match `/usr/include/sys/mount.h`. In addition, inline definitions sys_*() functions have been moved from "linux/mount.h" to "syscall.h" to avoid conflicts with `uapi/compel/plugins/std/syscall.h` and `<unistd.h>`. The include for `<linux/aio_abi.h>` has been replaced with local include to avoid conflicts with `<sys/mount.h>`. Fixes: #1949 Signed-off-by: Radostin Stoyanov <rstoyanov@fedoraproject.org>
2022-07-19rseq: fix headers conflict on Mariner GNU/LinuxAlexander Mikhalitsyn
1. For some reason, Marier distribution headers not correctly define __GLIBC_HAVE_KERNEL_RSEQ compile-time constant. It remains undefined, but in fact header files provides corresponding rseq types declaration which leads to conflict. 2. Another issue, is that they use uint*_t types instead of __u* types as in original rseq.h. This leads to compile time issues like this: format '%llx' expects argument of type 'long long unsigned int', but argument 5 has type 'uint64_t' {aka 'long unsigned int'} and we can't even replace %llx to %PRIx64 because it will break compilation on other distros (like Fedora) with analogical error: error: format ‘%lx’ expects argument of type ‘long unsigned int’, but argument 6 has type ‘__u64’ {aka ‘long long unsigned int’} Let's use our-own struct rseq copy fully equal to the kernel one, it's safe because this structure is a part of Linux Kernel ABI. Fixes #1934 Reported-by: Nikola Bojanic Signed-off-by: Alexander Mikhalitsyn <alexander.mikhalitsyn@virtuozzo.com>
2022-04-29kerndat: check whether the openat2 syscall is supportedPavel Tikhomirov
Will use openat2 + RESOLVE_NO_XDEV to detect mountpoints. Signed-off-by: Pavel Tikhomirov <ptikhomirov@virtuozzo.com>
2022-04-29criu/plugin: Support AMD ROCm Checkpoint Restore with KFDRajneesh Bhardwaj
To support Checkpoint Restore with AMDGPUs for ROCm workloads, introduce a new plugin to assist CRIU with the help of AMD KFD kernel driver. This initial commit just provides the basic framework to build up further capabilities. Like CRIU, the amdgpu plugin also uses protobuf to serialize and save the amdkfd data which is mostly VRAM contents with some metadata. We generate a data file "amdgpu-kfd-<id>.img" during the dump stage. On restore this file is read and extracted to re-create various types of buffer objects that belonged to the previously checkpointed process. Upon restore the mmap page offset within a device file might change so we use the new hook to update and adjust the mmap offsets for newly created target process. This is needed for sys_mmap call in pie restorer phase. Support for queues and events is added in future patches of this series. With the current implementation (amdgpu_plugin), we support: - Only compute workloads such (Non Gfx) are supported - GPU visible inside a container - AMD GPU Gfx 9 Family - Pytorch Benchmarks such as BERT Base amdgpu plugin dependes on libdrm and libdrm_amdgpu which are typically installed with libdrm-dev package. We build amdgpu_plugin only when the dependencies are met on the target system and when user intends to install the amdgpu plugin and not by default with criu build. Suggested-by: Felix Kuehling <felix.kuehling@amd.com> Co-authored-by: David Yat Sin <david.yatsin@amd.com> Signed-off-by: David Yat Sin <david.yatsin@amd.com> Signed-off-by: Rajneesh Bhardwaj <rajneesh.bhardwaj@amd.com>
2021-09-03build: respect $PKG_CONFIG settingsMike Frysinger
The build needs to respect $PKG_CONFIG env var like other standard build systems and the the upstream pkg-config project itself. This allows the package builder to point it to the right tool when doing a cross-compile build. Otherwise the host pkg-config tool is used which won't have access to the packages in the cross sysroot. Signed-off-by: Mike Frysinger <vapier@chromium.org>
2020-10-20Set Makefile config variables for libbpfAbhishek Vijeev
Source files modified: * Makefile.config - Checks whether libbpf is installed on the system. If so, we add -lbpf to LIBS_FEATURES, -DCONFIG_HAS_LIBBPF to FEATURE_DEFINES and set CONFIG_HAS_LIBBPF. This allows us to check for the presence of libbpf before compiling or executing BPF c/r code and ZDTM tests. * Makefile - Set CONFIG_HAS_LIBBPF to clean all files. Signed-off-by: Abhishek Vijeev <abhishek.vijeev@gmail.com>
2020-03-27memfd: add file supportNicolas Viennot
See "man memfd_create" for more information of what memfd is. This adds support for memfd open files, that are not not memory mapped. * We add a new kind of file: MEMFD. * We add two image types MEMFD_FILE, and MEMFD_INODE. MEMFD_FILE contains usual file information (e.g., position). MEMFD_INODE contains the memfd name, and a shmid identifier referring to the content. * We reuse the shmem facilities for dumping memfd content as it would be easier to support incremental checkpoints in the future. Signed-off-by: Nicolas Viennot <Nicolas.Viennot@twosigma.com>
2020-02-04net: add nftables c/rAlexander Mikhalitsyn
After Centos-8 nft used instead of iptables. But we had never supported nft rules in CRIU, and after c/r all rules are flushed. Co-developed-by: Pavel Tikhomirov <ptikhomirov@virtuozzo.com> Signed-off-by: Pavel Tikhomirov <ptikhomirov@virtuozzo.com> Signed-off-by: Alexander Mikhalitsyn <alexander.mikhalitsyn@virtuozzo.com> Signed-off-by: Alexander Mikhalitsyn <alexander@mihalicyn.com> Signed-off-by: Dmitry Safonov <dima@arista.com>
2020-02-04kerndat: check whether the new mount API is supported of notAndrei Vagin
Signed-off-by: Andrei Vagin <avagin@gmail.com>
2020-02-04build: Remove SRCARCHDmitry Safonov
SRCARCH is always equal ARCH. There are no rules when to use one or another and architectures may forget to set one of them up. No need for a second variable meaning the same and confusing people. Remove it completely. Self-correction [after some debug]: SRCARCH was different in one place: zdtm Makefile by some unintentional mistake: > ifeq ($(ARCH),arm64) > ARCH ?= aarch64 > SRCARCH ?= aarch64 > endif That meant to be "ARCH := aarch64" because "?=" would never work inside that ifeq. Fix up this part of mess too. Signed-off-by: Dmitry Safonov <dima@arista.com> Signed-off-by: Andrei Vagin <avagin@gmail.com>
2019-09-07Replace references to github.com/xemul/criuSebastiaan van Stijn
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2019-09-07make: config -- Link with GnuTLSRadostin Stoyanov
There are two notable open-source libraries that provide TLS implementation - OpenSSL and GnuTLS. The license of OpenSSL is incompatible with CRIU's license, and threfore GnuTLS is the recommended choice. GnuTLS offers an API to access secure communication protocols. These protocols provide privacy over insecure lines, and are designed to prevent eavesdropping, tampering or message forgery. Signed-off-by: Radostin Stoyanov <rstoyanov1@gmail.com>
2019-09-07criu/vdso: Purge CONFIG_VDSODmitry Safonov
Vigorously remove the config ifdef. The config option *never* had any excuse to exist: - for x86 we were grand - for ppc64/arm64 patches to support mremap() on vdso were long ago accepted, but regardless - it's not possible to disable CONFIG_VDSO for those platforms in kernel - for s390 - patches were mainstreamed not that long ago, but it's not possible to disable the kernel config - for arm32 it's possible to disable the kernel config, but kernel returns to userspace historically through sigpage, not vdso. That's the only platform that criu disallows to have CONFIG_VDSO=y in kernel, but that's just meaningles. A kernel patch for sigpage mremap() has gone into v4.13: commit 280e87e98c09 ("ARM: 8683/1: ARM32: Support mremap() for sigpage/vDSO"). So, removing the config was long-lived item on my TODO list that bligted arm32 users and made changes to vdso more complex by all "needed" iffdeferry. Get rid of it with fire. Fixes: #446 Signed-off-by: Dmitry Safonov <dima@arista.com>
2019-04-21Makefile.config: don't silent twiceKir Kolyshkin
Here $(Q) is substituted with either @ or nothing, depending on whether V is set, to either have verbose output or not. So, it does not make sense to add another @. Reviewed-by: Cyrill Gorcunov <gorcunov@gmail.com> Signed-off-by: Kir Kolyshkin <kolyshkin@gmail.com> Signed-off-by: Andrei Vagin <avagin@gmail.com>
2019-04-21build: Show a note when building wihout libbsdRadostin Stoyanov
Show a note that when libbsd is not installed CRIU is compiled without setproctitle() and strlcpy() support. Signed-off-by: Radostin Stoyanov <rstoyanov1@gmail.com> Signed-off-by: Andrei Vagin <avagin@gmail.com>
2017-09-16criu: always enable the userfaultfd supportAndrew Vagin
Add linux/userfaultfd.h to criu sources. This header is a part of the kernel API and I see nothing wrong to have in the repo. Why we want to do this: * to check that criu works correctly if a kernel doesn't support userfaultfd. * to check compilation of the userfaultfd part in travis-ci. v2: remove UFFD from FEATURES_LIST Acked-by: Mike Rapoport <rppt@linux.vnet.ibm.com> Acked-by: Adrian Reber <areber@redhat.com> Cc: Mike Rapoport <rppt@linux.vnet.ibm.com> Cc: Adrian Reber <areber@redhat.com> Signed-off-by: Andrew Vagin <avagin@virtuozzo.com> Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
2017-09-16UFFD related makefiles cleanupMike Rapoport
Signed-off-by: Mike Rapoport <rppt@linux.vnet.ibm.com> Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
2017-09-16Try to include userfaultfd with criu (part 1)Adrian Reber
This is a first try to include userfaultfd with criu. Right now it still requires a "normal" checkpoint. After checkpointing the application it can be restored with the help of userfaultfd. All restored pages with MAP_ANONYMOUS and MAP_PRIVATE set are marked as being handled by userfaultfd. As soon as the process is restored it blocks on the first memory access and waits for pages being transferred by userfaultfd. To handle the required pages a new criu command has been added. For a userfaultfd supported restore the first step is to start the 'lazy-pages' server: criu lazy-pages -v4 -D /tmp/3/ --address /tmp/userfault.socket This is part 1 of the userfaultfd integration which provides the 'lazy-pages' server implementation. v2: * provide option '--lazy-pages' to enable uffd style restore * use send_fd()/recv_fd() provided by criu (instead of own implementation) * do not install the uffd as service_fd * use named constants for MAP_ANONYMOUS * do not restore memory pages and then later mark them as uffd handled * remove function find_pages() to search in pages-<id>.img; now using criu functions to find the necessary pages; for each new page search the pages-<id>.img file is opened * only check the UFFDIO_API once * trying to protect uffd code by CONFIG_UFFD; use make UFFD=1 to compile criu with this patch v3: * renamed the server mode from 'uffd' -> 'lazy-pages' * switched client and server roles transferring the UFFD FD * the criu part running in lazy-pages server mode is now waiting for connections * the criu restore process connects to the lazy-pages server to pass the UFFD FD * before UFFD copying anything else the VDSO pages are copied as it fails to copy unused VDSO pages once the process is running. this was necessary to be able to copy all pages. * if there are no more UFFD messages for 5 seconds the lazy-pages server switches in copy mode to copy all remaining pages, which have not been requested yet, into the restored process * check the UFFDIO_API at the correct place * close UFFD FD in the restorer to remove open UFFD FD in the restored process v4: * removed unnecessary madvise() calls ; it seemed necessary when first running tests with uffd; it actually is not necessary * auto-detect if build-system provides linux/userfaultfd.h header * simplify unix domain socket setup and communication. * use --address to specify the location of the used unix domain socket v5: * split the userfaultfd patch in multiple smaller patches * introduced vma_can_be_lazy() function to check if a page can be handled by uffd * moved uffd related code from cr-restore.c to uffd.c * handle failure to register a memory page of the restored process with userfaultfd v6: * get PID of to be restored process from the 'criu restore' process; first the PID is transferred and then the UFFD * code has been re-ordered to be better prepared for lazy-restore from remote host * compile test for UFFD availability only once Signed-off-by: Adrian Reber <areber@redhat.com> Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
2017-06-14ia32/feature-test: Don't check i686 libraries presenceDmitry Safonov
I was adapting CRIU with ia32 support for building with Koji, and found that Koji can't build x86_64 packages and have i686 libs installed. While at it, I found that i686 libraries requirement is no longer valid since I've deleted the second parasite. Drop feature test for i686 libs and put test for gcc. That will effectively test if gcc can compile 32-bit code and bug with debian's gcc (#315). Signed-off-by: Dmitry Safonov <dsafonov@virtuozzo.com> Signed-off-by: Andrei Vagin <avagin@virtuozzo.com>
2017-05-10make: Report dependencies absence more exactlyKirill Tkhai
I bumped in this myself when I had libc6-dev-i386 installed, while criu said I didn't. Save other guys'es time, spent in this place. Signed-off-by: Kirill Tkhai <ktkhai@virtuozzo.com> Acked-by: Dmitry Safonov <dsafonov@virtuozzo.com> Signed-off-by: Andrei Vagin <avagin@virtuozzo.com>
2017-05-10ia32: Clearify if 32bit C/R is compile-disabledDmitry Safonov
Point that ia32 C/R was disabled due to missed packages. Signed-off-by: Dmitry Safonov <dsafonov@virtuozzo.com> Signed-off-by: Andrei Vagin <avagin@virtuozzo.com>
2017-03-15Makefiles: nuke $(SRC_DIR)Kir Kolyshkin
As all builds are done from top source dir, there is no need to have SRC_DIR. Reviewed-by: Dmitry Safonov <dsafonov@virtuozzo.com> Signed-off-by: Kir Kolyshkin <kir@openvz.org> Signed-off-by: Andrei Vagin <avagin@virtuozzo.com>
2017-03-15x86: enable compatible 32 C/R backDmitry Safonov
Supported only from v4.9 kernel :) The following commits may be backported if needed: b059a453b ("x86/vdso: Add mremap hook to vm_special_mapping") e38447ee1 ("x86/vdso: Unmap vdso blob on vvar mapping failure") 576ebfefd ("x86/vdso: Replace calculate_addr in map_vdso() with addr") 2eefd8789 ("x86/arch_prctl/vdso: Add ARCH_MAP_VDSO_*") 90954e7b9 ("x86/coredump: Use pr_reg size, rather that TIF_IA32 flag") cc87324b3 ("x86/ptrace: Down with test_thread_flag(TIF_IA32)") 684635105 ("x86/signal: Add SA_{X32,IA32}_ABI sa_flags") ed1e7db33 ("x86/signal: Remove bogus user_64bit_mode() check from sigaction_compat_abi()") The required patches list may be checked also at https://criu.org/Upstream_kernel_commits travis-ci: success for Rectify 32-bit compatible C/R on x86 Signed-off-by: Dmitry Safonov <dsafonov@virtuozzo.com> Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com> Signed-off-by: Andrei Vagin <avagin@virtuozzo.com>
2017-03-15compel hgen: use for ARM, kill gen-offsets.shKir Kolyshkin
I am not quite sure how that happened, but compel hgen was not used for ARM/ARM64, instead there's a simple version of it, called gen-offsets.sh. The main difference is, shell script doesn't handle ELF relocations, which apparently is not (currently?) needed for ARM. It's bad to maintain two tools for the same functionality, so this patch kills gen-offsets.sh and related stuff, making compel hgen working on ARM. ELF relocations are still not handled, this code is #ifdef-ed out for now and can be fixed to work on ARM later. This patch also kills some macros and defines that seem obsoleted now. For example, compel_relocs_apply() is now called unconditionally, as it handles the trivial case of 0 relocs just fine. Now, I checked that the blob headers generated by compel hgen and gen-offsets.h are similar (i.e. generated blob code and values defined are the same), but haven't done much above that. Signed-off-by: Kir Kolyshkin <kir@openvz.org> Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com> Signed-off-by: Andrei Vagin <avagin@virtuozzo.com>
2017-03-14compel: plugins,std -- Add syscall-types.h headerCyrill Gorcunov
Both std and criu will use it for syscalls sake. Note I've to disable x86 compat mode for a while: we have to provide native types there thus will back once everything else is complete. Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org> Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com> Signed-off-by: Andrei Vagin <avagin@virtuozzo.com>
2017-03-14feature-test: add CONFIG_COMPAT compile optionDmitry Safonov
I'll wrap all compatible code in this CONFIG_COMPAT define. As I'll wrap also compatible parasite generation in this, it's also makefile variable, rather than just C define. The test itself consists of including stubs-32.h, which is glibc6-i686 presence test and is compiled with -m32 option, which is test for gcc-multilib. Cc: Cyrill Gorcunov <gorcunov@openvz.org> Cc: Andrew Vagin <avagin@virtuozzo.com> Signed-off-by: Dmitry Safonov <dsafonov@virtuozzo.com> Reviewed-by: Cyrill Gorcunov <gorcunov@openvz.org> Acked-by: Andrew Vagin <avagin@virtuozzo.com> Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com> Signed-off-by: Andrei Vagin <avagin@virtuozzo.com>
2016-11-03make: Add .config file processing (v3)Pavel Emelyanov
In this file one can add options with which to build CRIU. Each line is (for now) expanded into CONFIG_$(TEXT) macros defined in config.h that can be tested later in the code. v2: Add .config to .gitignore v3: Don't check that make mrproper removes .config https://github.com/xemul/criu/issues/235 travis-ci: success for Don't compile in binfmt_misc dumping code by default (rev3) Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com> Reviewed-by: Dmirty Safonov <dsafonov@virtuozzo.com>
2016-11-03net: restore macvlan by the same way with and without usernsAndrei Vagin
If userns_restore_one_link() is called outside of usernsd, it switches into the criu namespace and switches back before exiting. v2: rid of the include of linux/net_namespace.h in criu/include/net.h, as well as the associated defines and feature checks travis-ci: success for net: simplify restore of macvlan-s (rev2) Signed-off-by: Andrei Vagin <avagin@virtuozzo.com> Acked-by: Tycho Andersen <tycho.andersen@canonical.com> Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
2016-11-03build: add a feature test for linux/net_namespace.hTycho Andersen
This header was only introduced in 2015, so we need to build without it. travis-ci: success for series starting with [v10,01/11] net: pass the struct nlattrs to dump() functions Signed-off-by: Tycho Andersen <tycho.andersen@canonical.com> Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
2016-11-02criu: get rid of config-base.hDmitry Safonov
It contained definitions for F_{SET,GET}PIPE_SZ, which we already have in "fcntl.h" - it's not big, can be included instead. Also it has pipe-size specific definitions, which are used only in page-pipe.c -- moved them to page-pipe.h. This will simplify include for config.h from subprojects. Cc: Cyrill Gorcunov <gorcunov@openvz.org> Cc: Pavel Emelyanov <xemul@virtuozzo.com> Signed-off-by: Dmitry Safonov <dsafonov@virtuozzo.com> Acked-by: Cyrill Gorcunov <gorcunov@openvz.org> Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
2016-11-02build: generate config.h in the top-makeDmitry Safonov
So, we need CONFIG_HAS_* feature-defines in compel, libsoccr tools. Let's move this tests upper. It also reverts commit 411cde8815a4 ("make, soccr: let CRIU depend on libsoccr"), as we don't need -lsoccr to build feature tests now. To eliminate any races here, I added $(LIB_FEATURES). Cc: Cyrill Gorcunov <gorcunov@openvz.org> Signed-off-by: Dmitry Safonov <dsafonov@virtuozzo.com> Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
2016-02-15build: Move everything criu related into criu directoryCyrill Gorcunov
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org> Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
2016-02-08memfd: Test for __NR_memfd_create during buildingCyrill Gorcunov
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org> Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
2015-07-15build: get rid of vestigial Makefile.config testTycho Andersen
We don't use this any more (and the test was deleted in a previous patch), so let's get rid of this too. Signed-off-by: Tycho Andersen <tycho.andersen@canonical.com> Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
2015-06-24seccomp: add initial support for SECCOMP_MODE_STRICTTycho Andersen
Unfortunately, SECCOMP_MODE_FILTER is not currently exposed to userspace, so we can't checkpoint that. In any case, this is what we need to do for SECCOMP_MODE_STRICT, so let's do it. This patch works by first disabling seccomp for any processes who are going to have seccomp filters restored, then restoring the process (including the seccomp filters), and finally resuming the seccomp filters before detaching from the process. v2 changes: * update for kernel patch v2 * use protobuf enum for seccomp type * don't parse /proc/pid/status twice v3 changes: * get rid of extra CR_STAGE_SECCOMP_SUSPEND stage * only suspend seccomp in finalize_restore(), just before the unmap * restore the (same) seccomp state in threads too; also add a note about how this is slightly wrong, and that we should at least check for a mismatch Signed-off-by: Tycho Andersen <tycho.andersen@canonical.com> Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
2015-06-19make: Be able to force turning off piegenCyrill Gorcunov
For testing purpose we need to disable using of piegen utility. So lets add PIEGEN make option thus one can "PIEGEN=no make" to build criu without piegen at all. Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org> Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
2015-05-08lsm: add support for c/ring LSM profilesTycho Andersen
This patch adds support for checkpoint and restore of two linux security modules (apparmor and selinux). The actual checkpoint or restore code isn't that interesting, other than that we have to do the LSM restore in the restorer blob since it may block any number of things that we want to do as part of the restore process. I tried originally to get this to work using libraries in the restorer blob, but I could _not_ get things to work correctly (I assume I was doing something wrong with all the static linking, you can see my draft attempts here: https://github.com/tych0/criu/commits/apparmor-using-libraries ). I can try to resurrect this if it makes more sense, to do it that way, though. v2: lsm_profile lives in creds.proto instead of the task core, look in a more canonical place for selinuxfs and don't try to special case any selinux profile names. v3: only allow unconfined selinux profiles Signed-off-by: Tycho Andersen <tycho.andersen@canonical.com> Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
2014-09-02crtools: check for setproctitle_initRuslan Kuprieiev
Check for setproctitle_init, as old versions of libbsd don't have one. Reported-by: Kir Kolyshkin <kir@openvz.org> Signed-off-by: Ruslan Kuprieiev <kupruser@gmail.com> Acked-by: Kir Kolyshkin <kir@openvz.org> Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
2014-05-27vdso: make -- Export VDSO and CONFIG_VDSOCyrill Gorcunov
We will need it to figure out if architecture needs vDSO handling code to be built. Note currently only x86 is exporting vDSO simply because ARM support is not yet ready. Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org> Acked-by: Alexander Kartashov <alekskartashov@parallels.com> Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
2014-03-26make: config -- Add testing if we have libbsd installedCyrill Gorcunov
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org> Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
2014-03-24make: config -- Drop redundant comma in try-cc callCyrill Gorcunov
It takes only two arguments. Note it's not error since we don't even reference to a third argument here but just to be consistent and clear. Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org> Tested-by: Ruslan Kuprieiv <kupruser@gmail.com> Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
2014-02-14page-pipe: move tunable constants into config.hAndrey Vagin
PIPE_MAX_SIZE is calculated according with the kernel code. PPB_IOV_BATCH has been taken from my mind. Signed-off-by: Andrey Vagin <avagin@openvz.org> Acked-by: Cyrill Gorcunov <gorcunov@openvz.org> Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
2014-02-03make: config add test for ptrace_peeksiginfo_argsAndrey Vagin
Currently we check PTRACE_PEEKSIGINFO and if it's defined in a system header, we suppose that ptrace_peeksiginfo_args is defined there too. But due to a bug in glibc, this check doesn't work. Now we have F20, where ptrace_peeksiginfo_args is defined in sys/ptrace and F21 where it isn't defined. commit 9341dde4d56ca71b61b47c8b87a06e6d5813ed0e Author: Mike Frysinger <vapier@gentoo.org> Date: Sun Jan 5 16:07:13 2014 -0500 ptrace.h: add __ prefix to ptrace_peeksiginfo_args Signed-off-by: Andrey Vagin <avagin@openvz.org> Acked-by: Cyrill Gorcunov <gorcunov@openvz.org> Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
2013-11-29string: Add strlcat helperCyrill Gorcunov
We will need it for btrfs subvolumes handling. Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org> Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
2013-08-28Add strlcpy helperCyrill Gorcunov
Same as kernel provides, adopted from Linux sources. strlcpy is similar to strncpy but _always_ adds \0 at the end of string even if destination is shorter. Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org> Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
2013-05-23make: config -- Add test for prlimit callCyrill Gorcunov
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org> Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
2013-05-20make: Introduce compile time include/config.h generationCyrill Gorcunov
It's being reported that some systems (as Ubuntu 13.04) already have struct tcp_repair_opt definition in their system headers. | sk-tcp.c:25:8: error: redefinition of struct tcp_repair_opt | sk-tcp.c:31:2: error: redeclaration of enumerator TCP_NO_QUEUE So add a facility for compile time testing for reported entities to be present on a system. For this we generate include/config.h where all tested entries will lay and source code need to include it only in places where really needed. Reported-by: Vasily Averin <vvs@parallels.com> Acked-by: Kir Kolyshkin <kir@openvz.org> Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org> Signed-off-by: Pavel Emelyanov <xemul@parallels.com>