Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[41] ARM kernel support #86

Merged
merged 8 commits into from
Apr 11, 2014
Merged

[41] ARM kernel support #86

merged 8 commits into from
Apr 11, 2014

Commits on Apr 8, 2014

  1. No longer including unistd_32.h or unistd_64.h. The kernel knows what…

    … to do
    
    The kernel knows its configuration, and will pick the correct unistd.h
    dkogan committed Apr 8, 2014
    Configuration menu
    Copy the full SHA
    88ab7af View commit details
    Browse the repository at this point in the history
  2. No longer assuming that syscall IDs start at 0

    This is a valid assumption for x86, but not for many other arches (per-EABI ARM,
    MIPS, etc).
    dkogan committed Apr 8, 2014
    Configuration menu
    Copy the full SHA
    ea399c9 View commit details
    Browse the repository at this point in the history
  3. presense of __NR_socketcall is now checked more directly

    Previously we were looking at __x86_64__ to see if we had that system call. Now
    I directly look at __NR_socketcall, which is more portable
    dkogan committed Apr 8, 2014
    Configuration menu
    Copy the full SHA
    598e85c View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    29fa5ea View commit details
    Browse the repository at this point in the history
  5. Checks for split 64-bit syscall arguments are more portable

    This is described in syscall(2). Some syscalls take 64-bit arguments. On
    arches that have 64-bit registers, these arguments are shipped in a register.
    On 32-bit arches, however, these are split between two consecutive registers,
    with some alignment requirements. Some require an odd/even pair while some
    others require even/odd. For now I assume they all do what x86_32 does, and
    we can handle the rest when we port those.
    dkogan committed Apr 8, 2014
    Configuration menu
    Copy the full SHA
    0c667b8 View commit details
    Browse the repository at this point in the history
  6. syscall table no longer checks for x86_64. Looks at the individual sy…

    …scalls
    
    There were some __x86_64__ checks whose purpose wasn't entirely clear. Mostly I
    THINK they were meant to separate the syscalls that existed on each
    architecture, but this wasn't done perfectly: there were syscalls that existed,
    but were masked out by the #ifdef. This patch removes the check for x86_64, and
    checks each syscall for existence individually.
    
    It may be a good idea to do this across the board for ALL the syscalls. The C
    preprocessor can't quite do that I don't think, but we can generate the header
    we want.
    dkogan committed Apr 8, 2014
    Configuration menu
    Copy the full SHA
    1f6b5b6 View commit details
    Browse the repository at this point in the history
  7. mmap() is allowed to have VM_EXEC

    The kernel driver was making sure that mmap( "/dev/sysdig0" ) was getting
    userspace memory with the (vma->vm_flags & VM_EXEC) flag clear. For whatever
    reason this is not true on ARM: VM_EXEC is set there. I can't tell why yet, but
    things work fine after removing this check, and it seems benign enough.
    dkogan committed Apr 8, 2014
    Configuration menu
    Copy the full SHA
    03b48d8 View commit details
    Browse the repository at this point in the history
  8. Driver makes sure syscall tracepoints are enabled

    The sysdig kernel driver is mostly useless without syscall tracepoints. On ARM
    these were added relatively recently: in Linux 3.7. This patch explicitly checks
    this support exists, and refuses to build if it isn't
    dkogan committed Apr 8, 2014
    Configuration menu
    Copy the full SHA
    1e48a42 View commit details
    Browse the repository at this point in the history