summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--pkg/sentry/platform/filemem/filemem.go3
-rw-r--r--pkg/sentry/usage/memory.go3
2 files changed, 6 insertions, 0 deletions
diff --git a/pkg/sentry/platform/filemem/filemem.go b/pkg/sentry/platform/filemem/filemem.go
index feb020ef8..f278c8d63 100644
--- a/pkg/sentry/platform/filemem/filemem.go
+++ b/pkg/sentry/platform/filemem/filemem.go
@@ -233,6 +233,9 @@ func newFromFile(file *os.File) (*FileMem, error) {
func New(name string) (*FileMem, error) {
fd, err := memutil.CreateMemFD(name, 0)
if err != nil {
+ if e, ok := err.(syscall.Errno); ok && e == syscall.ENOSYS {
+ return nil, fmt.Errorf("memfd_create(2) is not implemented. Check that you have Linux 3.17 or higher")
+ }
return nil, err
}
return newFromFile(os.NewFile(uintptr(fd), name))
diff --git a/pkg/sentry/usage/memory.go b/pkg/sentry/usage/memory.go
index f13a77779..92a478d85 100644
--- a/pkg/sentry/usage/memory.go
+++ b/pkg/sentry/usage/memory.go
@@ -122,6 +122,9 @@ func Init() error {
const name = "memory-usage"
fd, err := memutil.CreateMemFD(name, 0)
if err != nil {
+ if e, ok := err.(syscall.Errno); ok && e == syscall.ENOSYS {
+ return fmt.Errorf("memfd_create(2) is not implemented. Check that you have Linux 3.17 or higher")
+ }
return fmt.Errorf("error creating usage file: %v", err)
}
file := os.NewFile(uintptr(fd), name)