Page MenuHomeFreeBSD

Bump Linux version to 3.2.0
ClosedPublic

Authored by trasz on Jun 25 2019, 2:42 PM.
Tags
None
Referenced Files
Unknown Object (File)
Fri, Apr 12, 1:06 AM
Unknown Object (File)
Mar 17 2024, 9:50 PM
Unknown Object (File)
Mar 16 2024, 12:39 AM
Unknown Object (File)
Feb 16 2024, 1:10 PM
Unknown Object (File)
Jan 2 2024, 2:22 AM
Unknown Object (File)
Dec 30 2023, 6:59 AM
Unknown Object (File)
Dec 20 2023, 3:05 AM
Unknown Object (File)
Dec 2 2023, 2:15 AM
Subscribers

Details

Summary

Bump Linux version to 3.2.0. Without it, binaries linked against glibc 2.24 and up (eg Ubuntu 19.04) fail with "FATAL: kernel too old".

This alone is not enough to make newer binaries actually work, fix/hack/workaround is pending review at https://reviews.freebsd.org/D20687.

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 25031
Build 23745: arc lint + arc unit

Event Timeline

emaste added a subscriber: emaste.

Do we have a list of syscalls/interfaces by kernel version anywhere?

But either way I think this is fine, we certainly have some functionality from kernels after 2.6.32 and many binaries which require that functionality do work.

This revision is now accepted and ready to land.Jun 25 2019, 2:53 PM

LGTM once dependencies are resolved, of course.

Do we have a list of syscalls/interfaces by kernel version anywhere?

http://man7.org/linux/man-pages/man2/syscalls.2.html.

But either way I think this is fine, we certainly have some functionality from kernels after 2.6.32 and many binaries which require that functionality do work.

Yup. I've only tested with the basesystem for now, though. On the other hand, some programs (like strace) "probe" syscalls instead of trying to guess whether they are supported based on kernel version.

I see the following after 2.6.32 and up to and including 3.2, with uninteresting ports (e.g. m68k) excluded:

       recvmmsg(2)                2.6.33
       prlimit64(2)               2.6.36
       fanotify_init(2)           2.6.37
       fanotify_mark(2)           2.6.37
       clock_adjtime(2)           2.6.39
       name_to_handle_at(2)       2.6.39
       open_by_handle_at(2)       2.6.39
       syncfs(2)                  2.6.39

3.0+

       sendmmsg(2)                3.0
       setns(2)                   3.0
       process_vm_readv(2)        3.2
       process_vm_writev(2)       3.2

I see the following after 2.6.32 and up to and including 3.2, with uninteresting ports (e.g. m68k) excluded:

recvmmsg(2)                2.6.33
prlimit64(2)               2.6.36

We have those.

fanotify_init(2)           2.6.37
fanotify_mark(2)           2.6.37
clock_adjtime(2)           2.6.39
name_to_handle_at(2)       2.6.39
open_by_handle_at(2)       2.6.39
syncfs(2)                  2.6.39

We have neither of those. Not sure about the impact, though. The fanotify stuff looks like some kind of audit API. Clock adjustment from inside the VM doesn't look like something that useful.

3.0+

sendmmsg(2)                3.0

Implemented.

setns(2)                   3.0
process_vm_readv(2)        3.2
process_vm_writev(2)       3.2

Not there. I'd expect the impact to be none - we lack namespaces altogether.

prlimit64(2)               2.6.36

We have those.

What do you think about bumping this to 2.6.36 for now?

And, FWIW, glibc doesn't seem to have any kind of fanotify fallback.

fanotify_init(2)           2.6.37
fanotify_mark(2)           2.6.37

http://man7.org/linux/man-pages/man7/fanotify.7.html
Another interface similar to inotify, and in the broad theme of interfaces we need to add to FreeBSD.

clock_adjtime(2)           2.6.39

Clock adjustment from inside the VM doesn't look like something that useful.

Ideally we'd be able to support it to e.g. run Linux management tools if the user so desired, but agreed it's a low priority.

name_to_handle_at(2)       2.6.39
open_by_handle_at(2)       2.6.39

https://lwn.net/Articles/375888/
https://codesearch.debian.net/search?q=open_by_handle_at

I think we can do without these.

syncfs(2)                  2.6.39

Sync filesystem containing given fd, but probably just map to sync(2).

3.0+

sendmmsg(2)                3.0

Implemented.

setns(2)                   3.0

Not there. I'd expect the impact to be none - we lack namespaces altogether.

Yep, part of a much larger/future project.

process_vm_readv(2)        3.2
process_vm_writev(2)       3.2

http://man7.org/linux/man-pages/man2/process_vm_readv.2.html
Interesting.

This revision now requires review to proceed.Sep 2 2019, 6:06 PM
This revision was not accepted when it landed; it landed in state Needs Review.Sep 2 2019, 6:10 PM
This revision was automatically updated to reflect the committed changes.