10000 Comparing bminor:master...unikraft:UNIKRAFT-glibc-2.37 · bminor/glibc · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: bminor/glibc
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: master
Choose a base ref
...
head repository: unikraft/fork-glibc
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: UNIKRAFT-glibc-2.37
Choose a head ref
  • 1 commit
  • 3 files changed
  • 2 contributors

Commits on Aug 17, 2023

  1. feat: Binary syscall bypass through VDSO

    Glibc utilizes the `__syscall` macro to perform system calls.
    Syscalls with varying numbers of parameters are further dispatched to
    implementations like `__syscall1`, `__syscall2`, and so on.
    These implementations employ the `syscall` instruction for binary
    syscalls. To bypass binary syscalls, we extract the `__kernel_vsyscall`
    symbol from VDSO and replace the `syscall` instruction with a direct
    call to the kernel functions.
    
    Note that during the initialization process of glibc, certain syscalls
    will be used. However, at this point, the `__kernel_vsyscall` symbol
    has not yet been extracted. It's also possible that the kernel could
    not provide this interface. In such cases, the `__kernel_vsyscall`
    pointer remains at its default value of `NULL`, and glibc will continue
    to use binary syscalls.
    
    Since we do not support syscalls with cancellation points (syscall_cp),
    we merely map them to regular syscalls.
    
    Signed-off-by: Tianyi Liu <i.pear@outlook.com>
    Signed-off-by: Simon Kuenzer <simon@unikraft.io>
    Co-authored-by: Simon Kuenzer <simon@unikraft.io>
    Reviewed-by: Ioan-Teodor Teugea <ioan_teodor.teugea@stud.acs.upb.ro>
    Reviewed-by: Andra Paraschiv <andra@unikraft.org>
    Approved-by: Simon Kuenzer <simon@unikraft.io>
    GitHub-Closes: #1
    2 people authored and razvand committed Aug 17, 2023
    Configuration menu
    Copy the full SHA
    3b1a56c View commit details
    Browse the repository at this point in the history
Loading
0