From 22f1890a9beab11d8cfdceba3a4d66f8bbbb468c Mon Sep 17 00:00:00 2001 From: Ian Lewis Date: Fri, 29 Mar 2019 22:40:11 -0400 Subject: Initial commit --- content/docs/user_guide/compatibility/_index.md | 43 ++ content/docs/user_guide/compatibility/amd64.md | 710 ++++++++++++++++++++++++ 2 files changed, 753 insertions(+) create mode 100644 content/docs/user_guide/compatibility/_index.md create mode 100644 content/docs/user_guide/compatibility/amd64.md (limited to 'content/docs/user_guide/compatibility') diff --git a/content/docs/user_guide/compatibility/_index.md b/content/docs/user_guide/compatibility/_index.md new file mode 100644 index 000000000..cbde08fdb --- /dev/null +++ b/content/docs/user_guide/compatibility/_index.md @@ -0,0 +1,43 @@ ++++ +title = "Compatibility" +weight = 100 ++++ +gVisor implements a large portion of the Linux surface and while we strive to +make it broadly compatible, there are (and always will be) unimplemented +features and bugs. The only real way to know if it will work is to try. If you +find a container that doesn’t work and there is no known issue, please [file a +bug][bug] indicating the full command you used to run the image. + +If you're able to provide the [debug logs](../debugging/), the +problem likely to be fixed much faster. + +## What works? + +The following applications/images have been tested: + +* elasticsearch +* golang +* httpd +* java8 +* jenkins +* mariadb +* memcached +* mongo +* mysql +* nginx +* node +* php +* postgres +* prometheus +* python +* redis +* registry +* tomcat +* wordpress + +[bug]: https://github.com/google/gvisor/issues + +## Syscall Reference + +This section contains an architecture-specific syscall reference guide. These +tables are automatically generated from source-level annotations. diff --git a/content/docs/user_guide/compatibility/amd64.md b/content/docs/user_guide/compatibility/amd64.md new file mode 100644 index 000000000..8a0bf2385 --- /dev/null +++ b/content/docs/user_guide/compatibility/amd64.md @@ -0,0 +1,710 @@ ++++ +title = "AMD64" +weight = 10 ++++ +This table is a reference of Linux syscalls for AMD64 and their compatibility +status in gVisor. gVisor does not support all syscalls and some syscalls may +have a partial implementation. + +Of 329 syscalls, 47 syscalls have a full or partial implementation. There are +currently 51 unimplemented syscalls. 231 syscalls are not yet documented. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
#NameSupportGitHub IssueNotes
68msggetUnimplementedReturns ENOSYS
69msgsndUnimplementedReturns ENOSYS
70msgrcvUnimplementedReturns ENOSYS
71msgctlUnimplementedReturns ENOSYS
122setfsuidUnimplementedReturns ENOSYS
123setfsgidUnimplementedReturns ENOSYS
134uselibUnimplementedReturns ENOSYS; Obsolete
135setpersonalityPartialReturns EINVAL; Unable to change personality
136ustatUnimplementedReturns ENOSYS; Needs filesystem support
139sysfsUnimplementedReturns ENOSYS
142schedsetparamPartialReturns EPERM or ENOSYS; Returns EPERM if the process does not have cap_sys_nice; ENOSYS otherwise
148schedrrgetintervalPartialReturns EPERM
153vhangupPartialReturns EPERM
154modifyldtPartialReturns EPERM
155pivotrootPartialReturns EPERM
156sysctlPartialReturns EPERM
159adjtimexPartialReturns EPERM or ENOSYS; Returns EPERM if the process does not have cap_sys_time; ENOSYS otherwise
163acctPartialReturns EPERM or ENOSYS; Returns EPERM if the process does not have cap_sys_pacct; ENOSYS otherwise
164settimeofdayPartialReturns EPERM or ENOSYS; Returns EPERM if the process does not have cap_sys_time; ENOSYS otherwise
167swaponPartialReturns EPERM or ENOSYS; Returns EPERM if the process does not have cap_sys_admin; ENOSYS otherwise
168swapoffPartialReturns EPERM or ENOSYS; Returns EPERM if the process does not have cap_sys_admin; ENOSYS otherwise
169rebootPartialReturns EPERM or ENOSYS; Returns EPERM if the process does not have cap_sys_boot; ENOSYS otherwise
172ioplPartialReturns EPERM or ENOSYS; Returns EPERM if the process does not have cap_sys_rawio; ENOSYS otherwise
173iopermPartialReturns EPERM or ENOSYS; Returns EPERM if the process does not have cap_sys_rawio; ENOSYS otherwise
174createmodulePartialReturns EPERM or ENOSYS; Returns EPERM if the process does not have cap_sys_module; ENOSYS otherwise
175initmodulePartialReturns EPERM or ENOSYS; Returns EPERM if the process does not have cap_sys_module; ENOSYS otherwise
176deletemodulePartialReturns EPERM or ENOSYS; Returns EPERM if the process does not have cap_sys_module; ENOSYS otherwise
177getkernelsymsUnimplementedReturns ENOSYS; Not supported in > 2.6
178querymoduleUnimplementedReturns ENOSYS; Not supported in > 2.6
179quotactlPartialReturns EPERM or ENOSYS; Returns EPERM if the process does not have cap_sys_admin; ENOSYS otherwise
180nfsservctlUnimplementedReturns ENOSYS; Does not exist > 3.1
181getpmsgUnimplementedReturns ENOSYS; Not implemented in Linux
182putpmsgUnimplementedReturns ENOSYS; Not implemented in Linux
183afssyscallUnimplementedReturns ENOSYS; Not implemented in Linux
184tuxcallUnimplementedReturns ENOSYS; Not implemented in Linux
185securityUnimplementedReturns ENOSYS; Not implemented in Linux
187readaheadUnimplementedReturns ENOSYS
188setxattrPartialReturns ENOTSUP; Requires filesystem support
189lsetxattrPartialReturns ENOTSUP; Requires filesystem support
190fsetxattrPartialReturns ENOTSUP; Requires filesystem support
191getxattrPartialReturns ENOTSUP; Requires filesystem support
192lgetxattrPartialReturns ENOTSUP; Requires filesystem support
193fgetxattrPartialReturns ENOTSUP; Requires filesystem support
194listxattrPartialReturns ENOTSUP; Requires filesystem support
195llistxattrPartialReturns ENOTSUP; Requires filesystem support
196flistxattrPartialReturns ENOTSUP; Requires filesystem support
197removexattrPartialReturns ENOTSUP; Requires filesystem support
198lremovexattrPartialReturns ENOTSUP; Requires filesystem support
199fremovexattrPartialReturns ENOTSUP; Requires filesystem support
205setthreadareaUnimplementedReturns ENOSYS; Expected to return ENOSYS on 64-bit
211getthreadareaUnimplementedReturns ENOSYS; Expected to return ENOSYS on 64-bit
212lookupdcookiePartialReturns EPERM or ENOSYS; Returns EPERM if the process does not have cap_sys_admin; ENOSYS otherwise
214epollctloldUnimplementedReturns ENOSYS; Deprecated
215epollwaitoldUnimplementedReturns ENOSYS; Deprecated
216remapfilepagesUnimplementedReturns ENOSYS; Deprecated
220semtimedopUnimplementedReturns ENOSYS
236vserverUnimplementedReturns ENOSYS; Not implemented by Linux
237mbindPartialReturns EPERM or ENOSYS; Returns EPERM if the process does not have cap_sys_nice; ENOSYS otherwise
240mqopenUnimplementedReturns ENOSYS
241mqunlinkUnimplementedReturns ENOSYS
242mqtimedsendUnimplementedReturns ENOSYS
243mqtimedreceiveUnimplementedReturns ENOSYS
244mqnotifyUnimplementedReturns ENOSYS
245mqgetsetattrUnimplementedReturns ENOSYS
248addkeyPartialReturns EACCES; Not available to user
249requestkeyPartialReturns EACCES; Not available to user
250keyctlPartialReturns EACCES; Not available to user
251iopriosetPartialReturns EPERM or ENOSYS; Returns EPERM if the process does not have cap_sys_admin; ENOSYS otherwise
252iopriogetPartialReturns EPERM or ENOSYS; Returns EPERM if the process does not have cap_sys_admin; ENOSYS otherwise
256migratepagesPartialReturns EPERM or ENOSYS; Returns EPERM if the process does not have cap_sys_nice; ENOSYS otherwise
273setrobustlistUnimplementedReturns ENOSYS; Obsolete
274getrobustlistUnimplementedReturns ENOSYS; Obsolete
275spliceUnimplementedReturns ENOSYS
276teeUnimplementedReturns ENOSYS
278vmspliceUnimplementedReturns ENOSYS
279movepagesPartialReturns EPERM or ENOSYS; Returns EPERM if the process does not have cap_sys_nice; ENOSYS otherwise
282signalfdUnimplementedReturns ENOSYS
289signalfd4UnimplementedReturns ENOSYS
298perfeventopenPartialReturns ENODEV; No support for perf counters
300fanotifyinitUnimplementedReturns ENOSYS; Needs CONFIG_FANOTIFY
301fanotifymarkUnimplementedReturns ENOSYS; Needs CONFIG_FANOTIFY
303nametohandleatPartialReturns EOPNOTSUPP; Needs filesystem support
304openbyhandleatPartialReturns EOPNOTSUPP; Needs filesystem support
305clockadjtimePartialReturns EPERM or ENOSYS; Returns EPERM if the process does not have cap_sys_module; ENOSYS otherwise
308setnsUnimplementedReturns ENOSYS
310processvmreadvUnimplementedReturns ENOSYS
311processvmwritevUnimplementedReturns ENOSYS
312kcmpPartialReturns EPERM or ENOSYS; Requires cap_sys_ptrace
313finitmodulePartialReturns EPERM or ENOSYS; Returns EPERM if the process does not have cap_sys_module; ENOSYS otherwise
314schedsetattrUnimplementedReturns ENOSYS
315schedgetattrUnimplementedReturns ENOSYS
316renameat2UnimplementedReturns ENOSYS
319memfdcreateUnimplementedReturns ENOSYS
321bpfPartialReturns EPERM or ENOSYS; Returns EPERM if the process does not have cap_sys_boot; ENOSYS otherwise
322execveatUnimplementedReturns ENOSYS
323userfaultfdUnimplementedReturns ENOSYS
324membarrierUnimplementedReturns ENOSYS
326copyfilerangeUnimplementedReturns ENOSYS
-- cgit v1.2.3