From 11c03a16f998d108e0b742814a3d275bf0267527 Mon Sep 17 00:00:00 2001 From: Nuno Cruces Date: Wed, 10 Apr 2024 13:15:36 +0100 Subject: [PATCH] Implement shared memory WAL. (#71) - enabled by default on 64-bit macOS and Linux (`amd64`/`arm64`) - depends on merged but unreleased wazero - may cause small performance regression - users may need WithMemoryLimitPages if not enough address space available - needs docs --- .github/workflows/cross.sh | 2 + .github/workflows/test.yml | 4 + embed/exports.txt | 1 + embed/sqlite3.wasm | Bin 1334513 -> 1335474 bytes go.mod | 2 +- go.sum | 4 +- go.work.sum | 6 +- gormlite/go.mod | 4 +- gormlite/go.sum | 8 +- gormlite/test.sh | 2 +- internal/util/alloc.go | 81 ++++++++++ internal/util/handle.go | 26 +--- internal/util/mmap.go | 105 +++++++++++++ internal/util/mmap_other.go | 15 ++ internal/util/module.go | 21 +++ sqlite.go | 2 +- sqlite3/vfs.c | 62 +++++--- tests/parallel/parallel_test.go | 21 +++ tests/wal_test.go | 33 ++++ vfs/const.go | 15 ++ vfs/file.go | 6 + vfs/lock.go | 10 ++ vfs/lock_other.go | 23 +++ vfs/lock_test.go | 2 +- vfs/os_bsd.go | 8 +- vfs/os_darwin.go | 8 +- vfs/os_nolock.go | 41 ----- vfs/os_ofd.go | 8 +- vfs/os_unix_lock.go | 13 +- vfs/os_windows.go | 30 ++-- vfs/shm.go | 144 ++++++++++++++++++ vfs/shm_other.go | 17 +++ vfs/tests/mptest/mptest_test.go | 67 +++++++- vfs/tests/mptest/testdata/build.sh | 3 +- vfs/tests/mptest/testdata/mptest.wasm.bz2 | 4 +- vfs/tests/speedtest1/speedtest1_test.go | 2 +- vfs/tests/speedtest1/testdata/build.sh | 3 +- .../speedtest1/testdata/speedtest1.wasm.bz2 | 4 +- vfs/vfs.go | 47 +++++- vfs/vfs_test.go | 8 +- 40 files changed, 709 insertions(+), 153 deletions(-) create mode 100644 internal/util/alloc.go create mode 100644 internal/util/mmap.go create mode 100644 internal/util/mmap_other.go create mode 100644 internal/util/module.go create mode 100644 tests/wal_test.go create mode 100644 vfs/lock_other.go delete mode 100644 vfs/os_nolock.go create mode 100644 vfs/shm.go create mode 100644 vfs/shm_other.go diff --git a/.github/workflows/cross.sh b/.github/workflows/cross.sh index 883663b..264c0f1 100755 --- a/.github/workflows/cross.sh +++ b/.github/workflows/cross.sh @@ -17,7 +17,9 @@ echo aix ; GOOS=aix GOARCH=ppc64 go build . echo js ; GOOS=js GOARCH=wasm go build . echo wasip1 ; GOOS=wasip1 GOARCH=wasm go build . echo darwin-flock ; GOOS=darwin GOARCH=amd64 go build -tags sqlite3_flock . +echo darwin-noshm ; GOOS=darwin GOARCH=amd64 go build -tags sqlite3_noshm . echo darwin-nosys ; GOOS=darwin GOARCH=amd64 go build -tags sqlite3_nosys . +echo linux-noshm ; GOOS=linux GOARCH=amd64 go build -tags sqlite3_noshm . echo linux-nosys ; GOOS=linux GOARCH=amd64 go build -tags sqlite3_nosys . echo windows-nosys ; GOOS=windows GOARCH=amd64 go build -tags sqlite3_nosys . echo freebsd-nosys ; GOOS=freebsd GOARCH=amd64 go build -tags sqlite3_nosys . \ No newline at end of file diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 39128f8..1238661 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -47,6 +47,10 @@ jobs: run: go test -v -tags sqlite3_flock ./... if: matrix.os == 'macos-latest' + - name: Test no shared memory + run: go test -v -tags sqlite3_noshm ./... + if: matrix.os == 'ubuntu-latest' + - name: Test no locks run: go test -v -tags sqlite3_nosys ./tests -run TestDB_nolock diff --git a/embed/exports.txt b/embed/exports.txt index 73c680f..4af10dc 100644 --- a/embed/exports.txt +++ b/embed/exports.txt @@ -1,6 +1,7 @@ free malloc malloc_destructor +aligned_alloc sqlite3_anycollseq_init sqlite3_backup_finish sqlite3_backup_init diff --git a/embed/sqlite3.wasm b/embed/sqlite3.wasm index 0490c164702364f8a43358497a0d2bd45645c60a..c36b3c82be8a161594f8b0793ae63c580bda441c 100755 GIT binary patch delta 230478 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�WE} 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 delta 229299 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

Aq;(YYxeHuF-3d{~#GhbCMwZ}+9 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 dr`l(#ZNvS)cAY math.MaxInt { + // This ensures int(max) overflows to a negative value, + // and unix.Mmap returns EINVAL. + max = math.MaxUint64 + } + // Reserve max bytes of address space, to ensure we won't need to move it. + // A protected, private, anonymous mapping should not commit memory. + b, err := unix.Mmap(-1, 0, int(max), unix.PROT_NONE, unix.MAP_PRIVATE|unix.MAP_ANON) + if err != nil { + panic(err) + } + // Commit the initial cap bytes of memory. + err = unix.Mprotect(b[:cap], unix.PROT_READ|unix.PROT_WRITE) + if err != nil { + unix.Munmap(b) + panic(err) + } + return &mmappedBuffer{ + buf: b[:cap], + cur: min, + } +} + +// The slice covers the entire mmapped memory: +// - len(buf) is the already committed memory, +// - cap(buf) is the reserved address space, +// - cur is the already requested size. +type mmappedBuffer struct { + buf []byte + cur uint64 +} + +func (m *mmappedBuffer) Buffer() []byte { + // Limit capacity because bytes beyond len(m.buf) + // have not yet been committed. + return m.buf[:m.cur:len(m.buf)] +} + +func (m *mmappedBuffer) Grow(size uint64) []byte { + if com := uint64(len(m.buf)); com < size { + // Round up to the page size. + rnd := uint64(unix.Getpagesize() - 1) + new := (size + rnd) &^ rnd + + // Commit additional memory up to new bytes. + err := unix.Mprotect(m.buf[com:new], unix.PROT_READ|unix.PROT_WRITE) + if err != nil { + panic(err) + } + + // Update commited memory. + m.buf = m.buf[:new] + } + m.cur = size + return m.Buffer() +} + +func (m *mmappedBuffer) Free() { + err := unix.Munmap(m.buf[:cap(m.buf)]) + if err != nil { + panic(err) + } + m.buf = nil +} diff --git a/internal/util/handle.go b/internal/util/handle.go index 2309ed4..4584324 100644 --- a/internal/util/handle.go +++ b/internal/util/handle.go @@ -3,21 +3,11 @@ package util import ( "context" "io" - - "github.com/tetratelabs/wazero/experimental" ) -type handleKey struct{} type handleState struct { handles []any - empty int -} - -func NewContext(ctx context.Context) context.Context { - state := new(handleState) - ctx = experimental.WithCloseNotifier(ctx, state) - ctx = context.WithValue(ctx, handleKey{}, state) - return ctx + holes int } func (s *handleState) CloseNotify(ctx context.Context, exitCode uint32) { @@ -27,14 +17,14 @@ func (s *handleState) CloseNotify(ctx context.Context, exitCode uint32) { } } s.handles = nil - s.empty = 0 + s.holes = 0 } func GetHandle(ctx context.Context, id uint32) any { if id == 0 { return nil } - s := ctx.Value(handleKey{}).(*handleState) + s := ctx.Value(moduleKey{}).(*moduleState) return s.handles[^id] } @@ -42,10 +32,10 @@ func DelHandle(ctx context.Context, id uint32) error { if id == 0 { return nil } - s := ctx.Value(handleKey{}).(*handleState) + s := ctx.Value(moduleKey{}).(*moduleState) a := s.handles[^id] s.handles[^id] = nil - s.empty++ + s.holes++ if c, ok := a.(io.Closer); ok { return c.Close() } @@ -56,13 +46,13 @@ func AddHandle(ctx context.Context, a any) (id uint32) { if a == nil { panic(NilErr) } - s := ctx.Value(handleKey{}).(*handleState) + s := ctx.Value(moduleKey{}).(*moduleState) // Find an empty slot. - if s.empty > cap(s.handles)-len(s.handles) { + if s.holes > cap(s.handles)-len(s.handles) { for id, h := range s.handles { if h == nil { - s.empty-- + s.holes-- s.handles[id] = a return ^uint32(id) } diff --git a/internal/util/mmap.go b/internal/util/mmap.go new file mode 100644 index 0000000..a2067b9 --- /dev/null +++ b/internal/util/mmap.go @@ -0,0 +1,105 @@ +//go:build (linux || darwin) && (amd64 || arm64) && !sqlite3_flock && !sqlite3_noshm && !sqlite3_nosys + +package util + +import ( + "context" + "os" + "unsafe" + + "github.com/tetratelabs/wazero/api" + "github.com/tetratelabs/wazero/experimental" + "golang.org/x/sys/unix" +) + +type mmapState struct { + regions []*MappedRegion + enabled bool +} + +func (s *mmapState) init(ctx context.Context, enabled bool) context.Context { + if s.enabled = enabled; enabled { + return experimental.WithMemoryAllocator(ctx, mmappedAllocator) + } + return ctx +} + +func CanMap(ctx context.Context) bool { + s := ctx.Value(moduleKey{}).(*moduleState) + return s.mmapState.enabled +} + +func (s *mmapState) new(ctx context.Context, mod api.Module, size uint32) *MappedRegion { + // Find unused region. + for _, r := range s.regions { + if !r.used && r.size == size { + return r + } + } + + // Allocate page aligned memmory. + alloc := mod.ExportedFunction("aligned_alloc") + stack := [2]uint64{ + uint64(unix.Getpagesize()), + uint64(size), + } + if err := alloc.CallWithStack(ctx, stack[:]); err != nil { + panic(err) + } + if stack[0] == 0 { + panic(OOMErr) + } + + // Save the newly allocated region. + ptr := uint32(stack[0]) + buf := View(mod, ptr, uint64(size)) + addr := uintptr(unsafe.Pointer(&buf[0])) + s.regions = append(s.regions, &MappedRegion{ + Ptr: ptr, + addr: addr, + size: size, + }) + return s.regions[len(s.regions)-1] +} + +type MappedRegion struct { + addr uintptr + Ptr uint32 + size uint32 + used bool +} + +func MapRegion(ctx context.Context, mod api.Module, f *os.File, offset int64, size uint32) (*MappedRegion, error) { + s := ctx.Value(moduleKey{}).(*moduleState) + r := s.new(ctx, mod, size) + err := r.mmap(f, offset) + if err != nil { + return nil, err + } + return r, nil +} + +func (r *MappedRegion) Unmap() error { + // We can't munmap the region, otherwise it could be remaped. + // Instead, convert it to a protected, private, anonymous mapping. + // If successful, it can be reused for a subsequent mmap. + _, err := mmap(r.addr, uintptr(r.size), + unix.PROT_NONE, unix.MAP_PRIVATE|unix.MAP_ANON|unix.MAP_FIXED, + -1, 0) + r.used = err != nil + return err +} + +func (r *MappedRegion) mmap(f *os.File, offset int64) error { + _, err := mmap(r.addr, uintptr(r.size), + unix.PROT_READ|unix.PROT_WRITE, unix.MAP_SHARED|unix.MAP_FIXED, + int(f.Fd()), offset) + r.used = err == nil + return err +} + +//go:linkname mmap syscall.mmap +func mmap(addr, length uintptr, prot, flag, fd int, pos int64) (*byte, error) + +//go:linkname munmap syscall.munmap +func munmap(addr, length uintptr) error diff --git a/internal/util/mmap_other.go b/internal/util/mmap_other.go new file mode 100644 index 0000000..d585340 --- /dev/null +++ b/internal/util/mmap_other.go @@ -0,0 +1,15 @@ +//go:build !(linux || darwin) || !(amd64 || arm64) || sqlite3_flock || sqlite3_noshm || sqlite3_nosys + +package util + +import "context" + +type mmapState struct{} + +func (s *mmapState) init(ctx context.Context, _ bool) context.Context { + return ctx +} + +func CanMap(ctx context.Context) bool { + return false +} diff --git a/internal/util/module.go b/internal/util/module.go new file mode 100644 index 0000000..0db93bb --- /dev/null +++ b/internal/util/module.go @@ -0,0 +1,21 @@ +package util + +import ( + "context" + + "github.com/tetratelabs/wazero/experimental" +) + +type moduleKey struct{} +type moduleState struct { + handleState + mmapState +} + +func NewContext(ctx context.Context, mappableMemory bool) context.Context { + state := new(moduleState) + ctx = context.WithValue(ctx, moduleKey{}, state) + ctx = experimental.WithCloseNotifier(ctx, state) + ctx = state.mmapState.init(ctx, mappableMemory) + return ctx +} diff --git a/sqlite.go b/sqlite.go index 56ea68b..a7f3f3b 100644 --- a/sqlite.go +++ b/sqlite.go @@ -85,7 +85,7 @@ func instantiateSQLite() (sqlt *sqlite, err error) { } sqlt = new(sqlite) - sqlt.ctx = util.NewContext(context.Background()) + sqlt.ctx = util.NewContext(context.Background(), vfs.SupportsSharedMemory) sqlt.mod, err = instance.runtime.InstantiateModule(sqlt.ctx, instance.compiled, wazero.NewModuleConfig()) diff --git a/sqlite3/vfs.c b/sqlite3/vfs.c index 31558be..d2e79fb 100644 --- a/sqlite3/vfs.c +++ b/sqlite3/vfs.c @@ -13,7 +13,7 @@ int go_sleep(sqlite3_vfs *, int microseconds); int go_current_time_64(sqlite3_vfs *, sqlite3_int64 *); int go_open(sqlite3_vfs *, sqlite3_filename zName, sqlite3_file *, int flags, - int *pOutFlags); + int *pOutFlags, int *pOutVFS); int go_delete(sqlite3_vfs *, const char *zName, int syncDir); int go_access(sqlite3_vfs *, const char *zName, int flags, int *pResOut); int go_full_pathname(sqlite3_vfs *, const char *zName, int nOut, char *zOut); @@ -32,29 +32,55 @@ int go_lock(sqlite3_file *, int eLock); int go_unlock(sqlite3_file *, int eLock); int go_check_reserved_lock(sqlite3_file *, int *pResOut); +int go_shm_map(sqlite3_file *, int iPg, int pgsz, int, void volatile **); +int go_shm_lock(sqlite3_file *, int offset, int n, int flags); +int go_shm_unmap(sqlite3_file *, int deleteFlag); +void go_shm_barrier(sqlite3_file *); + static int go_open_wrapper(sqlite3_vfs *vfs, sqlite3_filename zName, sqlite3_file *file, int flags, int *pOutFlags) { - static const sqlite3_io_methods os_io = { - .iVersion = 1, - .xClose = go_close, - .xRead = go_read, - .xWrite = go_write, - .xTruncate = go_truncate, - .xSync = go_sync, - .xFileSize = go_file_size, - .xLock = go_lock, - .xUnlock = go_unlock, - .xCheckReservedLock = go_check_reserved_lock, - .xFileControl = go_file_control, - .xSectorSize = go_sector_size, - .xDeviceCharacteristics = go_device_characteristics, - }; + static const sqlite3_io_methods go_io[2] = { + { + .iVersion = 1, + .xClose = go_close, + .xRead = go_read, + .xWrite = go_write, + .xTruncate = go_truncate, + .xSync = go_sync, + .xFileSize = go_file_size, + .xLock = go_lock, + .xUnlock = go_unlock, + .xCheckReservedLock = go_check_reserved_lock, + .xFileControl = go_file_control, + .xSectorSize = go_sector_size, + .xDeviceCharacteristics = go_device_characteristics, + }, + { + .iVersion = 2, + .xClose = go_close, + .xRead = go_read, + .xWrite = go_write, + .xTruncate = go_truncate, + .xSync = go_sync, + .xFileSize = go_file_size, + .xLock = go_lock, + .xUnlock = go_unlock, + .xCheckReservedLock = go_check_reserved_lock, + .xFileControl = go_file_control, + .xSectorSize = go_sector_size, + .xDeviceCharacteristics = go_device_characteristics, + .xShmMap = go_shm_map, + .xShmLock = go_shm_lock, + .xShmBarrier = go_shm_barrier, + .xShmUnmap = go_shm_unmap, + }}; + int vfsID = 0; memset(file, 0, vfs->szOsFile); - int rc = go_open(vfs, zName, file, flags, pOutFlags); + int rc = go_open(vfs, zName, file, flags, pOutFlags, &vfsID); if (rc) { return rc; } - file->pMethods = &os_io; + file->pMethods = &go_io[vfsID]; return SQLITE_OK; } diff --git a/tests/parallel/parallel_test.go b/tests/parallel/parallel_test.go index 7c2f672..b5bdb26 100644 --- a/tests/parallel/parallel_test.go +++ b/tests/parallel/parallel_test.go @@ -12,9 +12,16 @@ import ( "github.com/ncruces/go-sqlite3" _ "github.com/ncruces/go-sqlite3/embed" + "github.com/ncruces/go-sqlite3/vfs" "github.com/ncruces/go-sqlite3/vfs/memdb" + "github.com/tetratelabs/wazero" ) +func TestMain(m *testing.M) { + sqlite3.RuntimeConfig = wazero.NewRuntimeConfig().WithMemoryLimitPages(1024) + os.Exit(m.Run()) +} + func TestParallel(t *testing.T) { var iter int if testing.Short() { @@ -32,6 +39,20 @@ func TestParallel(t *testing.T) { testIntegrity(t, name) } +func TestWAL(t *testing.T) { + if !vfs.SupportsSharedMemory { + t.Skip("skipping without shared memory") + } + + name := "file:" + + filepath.Join(t.TempDir(), "test.db") + + "?_pragma=busy_timeout(10000)" + + "&_pragma=journal_mode(wal)" + + "&_pragma=synchronous(off)" + testParallel(t, name, 1000) + testIntegrity(t, name) +} + func TestMemory(t *testing.T) { var iter int if testing.Short() { diff --git a/tests/wal_test.go b/tests/wal_test.go new file mode 100644 index 0000000..3076b64 --- /dev/null +++ b/tests/wal_test.go @@ -0,0 +1,33 @@ +package tests + +import ( + "path/filepath" + "testing" + + "github.com/ncruces/go-sqlite3" +) + +func TestWAL_enter_exit(t *testing.T) { + t.Parallel() + + file := filepath.Join(t.TempDir(), "test.db") + + db, err := sqlite3.Open(file) + if err != nil { + t.Fatal(err) + } + defer db.Close() + + err = db.Exec(` + CREATE TABLE test (col); + PRAGMA journal_mode=WAL; + SELECT * FROM test; + PRAGMA journal_mode=DELETE; + SELECT * FROM test; + PRAGMA journal_mode=WAL; + SELECT * FROM test; + `) + if err != nil { + t.Fatal(err) + } +} diff --git a/vfs/const.go b/vfs/const.go index 0a3c3ab..6405d61 100644 --- a/vfs/const.go +++ b/vfs/const.go @@ -37,6 +37,10 @@ const ( _IOERR_CHECKRESERVEDLOCK _ErrorCode = util.IOERR_CHECKRESERVEDLOCK _IOERR_LOCK _ErrorCode = util.IOERR_LOCK _IOERR_CLOSE _ErrorCode = util.IOERR_CLOSE + _IOERR_SHMOPEN _ErrorCode = util.IOERR_SHMOPEN + _IOERR_SHMSIZE _ErrorCode = util.IOERR_SHMSIZE + _IOERR_SHMLOCK _ErrorCode = util.IOERR_SHMLOCK + _IOERR_SHMMAP _ErrorCode = util.IOERR_SHMMAP _IOERR_SEEK _ErrorCode = util.IOERR_SEEK _IOERR_DELETE_NOENT _ErrorCode = util.IOERR_DELETE_NOENT _IOERR_BEGIN_ATOMIC _ErrorCode = util.IOERR_BEGIN_ATOMIC @@ -44,6 +48,7 @@ const ( _IOERR_ROLLBACK_ATOMIC _ErrorCode = util.IOERR_ROLLBACK_ATOMIC _CANTOPEN_FULLPATH _ErrorCode = util.CANTOPEN_FULLPATH _CANTOPEN_ISDIR _ErrorCode = util.CANTOPEN_ISDIR + _READONLY_CANTINIT _ErrorCode = util.READONLY_CANTINIT _OK_SYMLINK _ErrorCode = util.OK_SYMLINK ) @@ -213,3 +218,13 @@ const ( _FCNTL_CKSM_FILE _FcntlOpcode = 41 _FCNTL_RESET_CACHE _FcntlOpcode = 42 ) + +// https://sqlite.org/c3ref/c_shm_exclusive.html +type _ShmFlag uint32 + +const ( + _SHM_UNLOCK _ShmFlag = 1 + _SHM_LOCK _ShmFlag = 2 + _SHM_SHARED _ShmFlag = 4 + _SHM_EXCLUSIVE _ShmFlag = 8 +) diff --git a/vfs/file.go b/vfs/file.go index d589d37..42d03ed 100644 --- a/vfs/file.go +++ b/vfs/file.go @@ -130,6 +130,7 @@ type vfsFile struct { keepWAL bool syncDir bool psow bool + shm vfsShm } var ( @@ -141,6 +142,11 @@ var ( _ FilePowersafeOverwrite = &vfsFile{} ) +func (f *vfsFile) Close() error { + f.shm.Close() + return f.File.Close() +} + func (f *vfsFile) Sync(flags SyncFlag) error { dataonly := (flags & SYNC_DATAONLY) != 0 fullsync := (flags & 0x0f) == SYNC_FULL diff --git a/vfs/lock.go b/vfs/lock.go index 1b70549..9332c9f 100644 --- a/vfs/lock.go +++ b/vfs/lock.go @@ -1,7 +1,17 @@ +//go:build (linux || darwin || windows || freebsd || openbsd || netbsd || dragonfly || illumos) && !sqlite3_nosys + package vfs import "github.com/ncruces/go-sqlite3/internal/util" +// SupportsFileLocking is false on platforms that do not support file locking. +// To open a database file on those platforms, +// you need to use the [nolock] or [immutable] URI parameters. +// +// [nolock]: https://sqlite.org/uri.html#urinolock +// [immutable]: https://sqlite.org/uri.html#uriimmutable +const SupportsFileLocking = true + const ( _PENDING_BYTE = 0x40000000 _RESERVED_BYTE = (_PENDING_BYTE + 1) diff --git a/vfs/lock_other.go b/vfs/lock_other.go new file mode 100644 index 0000000..a4563af --- /dev/null +++ b/vfs/lock_other.go @@ -0,0 +1,23 @@ +//go:build !(linux || darwin || windows || freebsd || openbsd || netbsd || dragonfly || illumos) || sqlite3_nosys + +package vfs + +// SupportsFileLocking is false on platforms that do not support file locking. +// To open a database file on those platforms, +// you need to use the [nolock] or [immutable] URI parameters. +// +// [nolock]: https://sqlite.org/uri.html#urinolock +// [immutable]: https://sqlite.org/uri.html#uriimmutable +const SupportsFileLocking = false + +func (f *vfsFile) Lock(LockLevel) error { + return _IOERR_LOCK +} + +func (f *vfsFile) Unlock(LockLevel) error { + return _IOERR_UNLOCK +} + +func (f *vfsFile) CheckReservedLock() (bool, error) { + return false, _IOERR_CHECKRESERVEDLOCK +} diff --git a/vfs/lock_test.go b/vfs/lock_test.go index db1c4df..6cf359c 100644 --- a/vfs/lock_test.go +++ b/vfs/lock_test.go @@ -33,7 +33,7 @@ func Test_vfsLock(t *testing.T) { pOutput = 32 ) mod := wazerotest.NewModule(wazerotest.NewMemory(wazerotest.PageSize)) - ctx := util.NewContext(context.TODO()) + ctx := util.NewContext(context.TODO(), false) vfsFileRegister(ctx, mod, pFile1, &vfsFile{File: file1}) vfsFileRegister(ctx, mod, pFile2, &vfsFile{File: file2}) diff --git a/vfs/os_bsd.go b/vfs/os_bsd.go index 441d3e9..3506ec9 100644 --- a/vfs/os_bsd.go +++ b/vfs/os_bsd.go @@ -32,14 +32,14 @@ func osWriteLock(file *os.File, _ /*start*/, _ /*len*/ int64, _ /*timeout*/ time return osLock(file, unix.LOCK_EX|unix.LOCK_NB, _IOERR_LOCK) } -func osCheckLock(file *os.File, start, len int64) (bool, _ErrorCode) { +func osGetLock(file *os.File, start, len int64) (int16, _ErrorCode) { lock := unix.Flock_t{ - Type: unix.F_RDLCK, + Type: unix.F_WRLCK, Start: start, Len: len, } if unix.FcntlFlock(file.Fd(), unix.F_GETLK, &lock) != nil { - return false, _IOERR_CHECKRESERVEDLOCK + return 0, _IOERR_CHECKRESERVEDLOCK } - return lock.Type != unix.F_UNLCK, _OK + return lock.Type, _OK } diff --git a/vfs/os_darwin.go b/vfs/os_darwin.go index 7c1ed95..4269445 100644 --- a/vfs/os_darwin.go +++ b/vfs/os_darwin.go @@ -95,14 +95,14 @@ func osWriteLock(file *os.File, start, len int64, timeout time.Duration) _ErrorC return osLock(file, unix.F_WRLCK, start, len, timeout, _IOERR_LOCK) } -func osCheckLock(file *os.File, start, len int64) (bool, _ErrorCode) { +func osGetLock(file *os.File, start, len int64) (int16, _ErrorCode) { lock := unix.Flock_t{ - Type: unix.F_RDLCK, + Type: unix.F_WRLCK, Start: start, Len: len, } if unix.FcntlFlock(file.Fd(), _F_OFD_GETLK, &lock) != nil { - return false, _IOERR_CHECKRESERVEDLOCK + return 0, _IOERR_CHECKRESERVEDLOCK } - return lock.Type != unix.F_UNLCK, _OK + return lock.Type, _OK } diff --git a/vfs/os_nolock.go b/vfs/os_nolock.go deleted file mode 100644 index 4bceefe..0000000 --- a/vfs/os_nolock.go +++ /dev/null @@ -1,41 +0,0 @@ -//go:build !(linux || darwin || windows || freebsd || openbsd || netbsd || dragonfly || illumos) || sqlite3_nosys - -package vfs - -import "os" - -// SupportsFileLocking is false on platforms that do not support file locking. -// To open a database file in one such platform, -// you need to use the [nolock] or [immutable] URI parameters. -// -// [nolock]: https://sqlite.org/uri.html#urinolock -// [immutable]: https://sqlite.org/uri.html#uriimmutable -const SupportsFileLocking = false - -func osGetSharedLock(_ *os.File) _ErrorCode { - return _IOERR_RDLOCK -} - -func osGetReservedLock(_ *os.File) _ErrorCode { - return _IOERR_LOCK -} - -func osGetPendingLock(_ *os.File, _ bool) _ErrorCode { - return _IOERR_LOCK -} - -func osGetExclusiveLock(_ *os.File, _ bool) _ErrorCode { - return _IOERR_LOCK -} - -func osDowngradeLock(_ *os.File, _ LockLevel) _ErrorCode { - return _IOERR_RDLOCK -} - -func osReleaseLock(_ *os.File, _ LockLevel) _ErrorCode { - return _IOERR_UNLOCK -} - -func osCheckReservedLock(_ *os.File) (bool, _ErrorCode) { - return false, _IOERR_CHECKRESERVEDLOCK -} diff --git a/vfs/os_ofd.go b/vfs/os_ofd.go index ced941e..f94ece4 100644 --- a/vfs/os_ofd.go +++ b/vfs/os_ofd.go @@ -57,14 +57,14 @@ func osWriteLock(file *os.File, start, len int64, timeout time.Duration) _ErrorC return osLock(file, unix.F_WRLCK, start, len, timeout, _IOERR_LOCK) } -func osCheckLock(file *os.File, start, len int64) (bool, _ErrorCode) { +func osGetLock(file *os.File, start, len int64) (int16, _ErrorCode) { lock := unix.Flock_t{ - Type: unix.F_RDLCK, + Type: unix.F_WRLCK, Start: start, Len: len, } if unix.FcntlFlock(file.Fd(), unix.F_OFD_GETLK, &lock) != nil { - return false, _IOERR_CHECKRESERVEDLOCK + return 0, _IOERR_CHECKRESERVEDLOCK } - return lock.Type != unix.F_UNLCK, _OK + return lock.Type, _OK } diff --git a/vfs/os_unix_lock.go b/vfs/os_unix_lock.go index 15db23f..fc4309d 100644 --- a/vfs/os_unix_lock.go +++ b/vfs/os_unix_lock.go @@ -9,17 +9,9 @@ import ( "golang.org/x/sys/unix" ) -// SupportsFileLocking is false on platforms that do not support file locking. -// To open a database file in one such platform, -// you need to use the [nolock] or [immutable] URI parameters. -// -// [nolock]: https://sqlite.org/uri.html#urinolock -// [immutable]: https://sqlite.org/uri.html#uriimmutable -const SupportsFileLocking = true - func osGetSharedLock(file *os.File) _ErrorCode { // Test the PENDING lock before acquiring a new SHARED lock. - if pending, _ := osCheckLock(file, _PENDING_BYTE, 1); pending { + if lock, _ := osGetLock(file, _PENDING_BYTE, 1); lock == unix.F_WRLCK { return _BUSY } // Acquire the SHARED lock. @@ -72,7 +64,8 @@ func osReleaseLock(file *os.File, _ LockLevel) _ErrorCode { func osCheckReservedLock(file *os.File) (bool, _ErrorCode) { // Test the RESERVED lock. - return osCheckLock(file, _RESERVED_BYTE, 1) + lock, rc := osGetLock(file, _RESERVED_BYTE, 1) + return lock == unix.F_WRLCK, rc } func osLockErrorCode(err error, def _ErrorCode) _ErrorCode { diff --git a/vfs/os_windows.go b/vfs/os_windows.go index abc6c4b..0fee2f1 100644 --- a/vfs/os_windows.go +++ b/vfs/os_windows.go @@ -9,18 +9,9 @@ import ( "golang.org/x/sys/windows" ) -// SupportsFileLocking is false on platforms that do not support file locking. -// To open a database file in one such platform, -// you need to use the [nolock] or [immutable] URI parameters. -// -// [nolock]: https://sqlite.org/uri.html#urinolock -// [immutable]: https://sqlite.org/uri.html#uriimmutable -const SupportsFileLocking = true - func osGetSharedLock(file *os.File) _ErrorCode { // Acquire the PENDING lock temporarily before acquiring a new SHARED lock. rc := osReadLock(file, _PENDING_BYTE, 1, 0) - if rc == _OK { // Acquire the SHARED lock. rc = osReadLock(file, _SHARED_FIRST, _SHARED_SIZE, 0) @@ -104,7 +95,15 @@ func osReleaseLock(file *os.File, state LockLevel) _ErrorCode { func osCheckReservedLock(file *os.File) (bool, _ErrorCode) { // Test the RESERVED lock. - return osCheckLock(file, _RESERVED_BYTE, 1) + rc := osLock(file, 0, _RESERVED_BYTE, 1, 0, _IOERR_CHECKRESERVEDLOCK) + if rc == _BUSY { + return true, _OK + } + if rc == _OK { + // Release the RESERVED lock. + osUnlock(file, _RESERVED_BYTE, 1) + } + return false, rc } func osUnlock(file *os.File, start, len uint32) _ErrorCode { @@ -155,17 +154,6 @@ func osWriteLock(file *os.File, start, len uint32, timeout time.Duration) _Error return osLock(file, windows.LOCKFILE_EXCLUSIVE_LOCK, start, len, timeout, _IOERR_LOCK) } -func osCheckLock(file *os.File, start, len uint32) (bool, _ErrorCode) { - rc := osLock(file, 0, start, len, 0, _IOERR_CHECKRESERVEDLOCK) - if rc == _BUSY { - return true, _OK - } - if rc == _OK { - osUnlock(file, start, len) - } - return false, rc -} - func osLockErrorCode(err error, def _ErrorCode) _ErrorCode { if err == nil { return _OK diff --git a/vfs/shm.go b/vfs/shm.go new file mode 100644 index 0000000..1dda1b5 --- /dev/null +++ b/vfs/shm.go @@ -0,0 +1,144 @@ +//go:build (linux || darwin) && (amd64 || arm64) && !sqlite3_flock && !sqlite3_noshm && !sqlite3_nosys + +package vfs + +import ( + "context" + "io" + "os" + + "github.com/ncruces/go-sqlite3/internal/util" + "github.com/tetratelabs/wazero/api" + "golang.org/x/sys/unix" +) + +// SupportsSharedMemory is true on platforms that support shared memory. +// To enable shared memory support on those platforms, +// you need to set the appropriate [wazero.RuntimeConfig]; +// otherwise, [EXCLUSIVE locking mode] is activated automatically +// to use [WAL without shared-memory]. +// +// [WAL without shared-memory]: https://sqlite.org/wal.html#noshm +// [EXCLUSIVE locking mode]: https://sqlite.org/pragma.html#pragma_locking_mode +const SupportsSharedMemory = true + +type vfsShm struct { + *os.File + regions []*util.MappedRegion +} + +const ( + _SHM_NLOCK = 8 + _SHM_BASE = 120 + _SHM_DMS = _SHM_BASE + _SHM_NLOCK +) + +func (f *vfsFile) shmMap(ctx context.Context, mod api.Module, id, size uint32, extend bool) (uint32, error) { + // Ensure size is a multiple of the OS page size. + if int(size)&(unix.Getpagesize()-1) != 0 { + return 0, _IOERR_SHMMAP + } + + if f.shm.File == nil { + var flag int + if f.readOnly { + flag = unix.O_RDONLY | unix.O_NOFOLLOW + } else { + flag = unix.O_RDWR | unix.O_CREAT | unix.O_NOFOLLOW + } + s, err := os.OpenFile(f.Name()+"-shm", flag, 0666) + if err != nil { + return 0, _CANTOPEN + } + f.shm.File = s + } + + // Dead man's switch. + if lock, rc := osGetLock(f.shm.File, _SHM_DMS, 1); rc != _OK { + return 0, _IOERR_LOCK + } else if lock == unix.F_WRLCK { + return 0, _BUSY + } else if lock == unix.F_UNLCK { + if f.readOnly { + return 0, _READONLY_CANTINIT + } + if rc := osWriteLock(f.shm.File, _SHM_DMS, 1, 0); rc != _OK { + return 0, rc + } + if err := f.shm.Truncate(0); err != nil { + return 0, _IOERR_SHMOPEN + } + } + if rc := osReadLock(f.shm.File, _SHM_DMS, 1, 0); rc != _OK { + return 0, rc + } + + // Check if file is big enough. + s, err := f.shm.Seek(0, io.SeekEnd) + if err != nil { + return 0, _IOERR_SHMSIZE + } + if n := (int64(id) + 1) * int64(size); n > s { + if !extend { + return 0, nil + } + err := osAllocate(f.shm.File, n) + if err != nil { + return 0, _IOERR_SHMSIZE + } + } + + r, err := util.MapRegion(ctx, mod, f.shm.File, int64(id)*int64(size), size) + if err != nil { + return 0, err + } + f.shm.regions = append(f.shm.regions, r) + return r.Ptr, nil +} + +func (f *vfsFile) shmLock(offset, n uint32, flags _ShmFlag) error { + // Argument check. + if n == 0 || offset+n > _SHM_NLOCK { + panic(util.AssertErr()) + } + switch flags { + case + _SHM_LOCK | _SHM_SHARED, + _SHM_LOCK | _SHM_EXCLUSIVE, + _SHM_UNLOCK | _SHM_SHARED, + _SHM_UNLOCK | _SHM_EXCLUSIVE: + // + default: + panic(util.AssertErr()) + } + if n != 1 && flags&_SHM_EXCLUSIVE == 0 { + panic(util.AssertErr()) + } + + switch { + case flags&_SHM_UNLOCK != 0: + return osUnlock(f.shm.File, _SHM_BASE+int64(offset), int64(n)) + case flags&_SHM_SHARED != 0: + return osReadLock(f.shm.File, _SHM_BASE+int64(offset), int64(n), 0) + case flags&_SHM_EXCLUSIVE != 0: + return osWriteLock(f.shm.File, _SHM_BASE+int64(offset), int64(n), 0) + default: + panic(util.AssertErr()) + } +} + +func (f *vfsFile) shmUnmap(delete bool) { + // Unmap regions. + for _, r := range f.shm.regions { + r.Unmap() + } + clear(f.shm.regions) + f.shm.regions = f.shm.regions[:0] + + // Close the file. + if delete && f.shm.File != nil { + os.Remove(f.shm.Name()) + } + f.shm.Close() + f.shm.File = nil +} diff --git a/vfs/shm_other.go b/vfs/shm_other.go new file mode 100644 index 0000000..922e147 --- /dev/null +++ b/vfs/shm_other.go @@ -0,0 +1,17 @@ +//go:build !(linux || darwin) || !(amd64 || arm64) || sqlite3_flock || sqlite3_noshm || sqlite3_nosys + +package vfs + +// SupportsSharedMemory is true on platforms that support shared memory. +// To enable shared memory support on those platforms, +// you need to set the appropriate [wazero.RuntimeConfig]; +// otherwise, [EXCLUSIVE locking mode] is activated automatically +// to use [WAL without shared-memory]. +// +// [WAL without shared-memory]: https://sqlite.org/wal.html#noshm +// [EXCLUSIVE locking mode]: https://sqlite.org/pragma.html#pragma_locking_mode +const SupportsSharedMemory = false + +type vfsShm struct{} + +func (vfsShm) Close() error { return nil } diff --git a/vfs/tests/mptest/mptest_test.go b/vfs/tests/mptest/mptest_test.go index f2e6128..6ef2af9 100644 --- a/vfs/tests/mptest/mptest_test.go +++ b/vfs/tests/mptest/mptest_test.go @@ -92,7 +92,7 @@ func system(ctx context.Context, mod api.Module, ptr uint32) uint32 { cfg := config(ctx).WithArgs(args...) go func() { - ctx := util.NewContext(ctx) + ctx := util.NewContext(ctx, true) mod, _ := rt.InstantiateModule(ctx, module, cfg) mod.Close(ctx) }() @@ -100,7 +100,7 @@ func system(ctx context.Context, mod api.Module, ptr uint32) uint32 { } func Test_config01(t *testing.T) { - ctx := util.NewContext(newContext(t)) + ctx := util.NewContext(newContext(t), false) name := filepath.Join(t.TempDir(), "test.db") cfg := config(ctx).WithArgs("mptest", name, "config01.test") mod, err := rt.InstantiateModule(ctx, module, cfg) @@ -118,7 +118,7 @@ func Test_config02(t *testing.T) { t.Skip("skipping in CI") } - ctx := util.NewContext(newContext(t)) + ctx := util.NewContext(newContext(t), false) name := filepath.Join(t.TempDir(), "test.db") cfg := config(ctx).WithArgs("mptest", name, "config02.test") mod, err := rt.InstantiateModule(ctx, module, cfg) @@ -136,7 +136,7 @@ func Test_crash01(t *testing.T) { t.Skip("skipping in CI") } - ctx := util.NewContext(newContext(t)) + ctx := util.NewContext(newContext(t), false) name := filepath.Join(t.TempDir(), "test.db") cfg := config(ctx).WithArgs("mptest", name, "crash01.test") mod, err := rt.InstantiateModule(ctx, module, cfg) @@ -151,7 +151,7 @@ func Test_multiwrite01(t *testing.T) { t.Skip("skipping in short mode") } - ctx := util.NewContext(newContext(t)) + ctx := util.NewContext(newContext(t), false) name := filepath.Join(t.TempDir(), "test.db") cfg := config(ctx).WithArgs("mptest", name, "multiwrite01.test") mod, err := rt.InstantiateModule(ctx, module, cfg) @@ -162,7 +162,7 @@ func Test_multiwrite01(t *testing.T) { } func Test_config01_memory(t *testing.T) { - ctx := util.NewContext(newContext(t)) + ctx := util.NewContext(newContext(t), false) cfg := config(ctx).WithArgs("mptest", "/test.db", "config01.test", "--vfs", "memdb") mod, err := rt.InstantiateModule(ctx, module, cfg) @@ -177,7 +177,7 @@ func Test_multiwrite01_memory(t *testing.T) { t.Skip("skipping in short mode") } - ctx := util.NewContext(newContext(t)) + ctx := util.NewContext(newContext(t), false) cfg := config(ctx).WithArgs("mptest", "/test.db", "multiwrite01.test", "--vfs", "memdb") mod, err := rt.InstantiateModule(ctx, module, cfg) @@ -187,6 +187,59 @@ func Test_multiwrite01_memory(t *testing.T) { mod.Close(ctx) } +func Test_config01_wal(t *testing.T) { + ctx := util.NewContext(newContext(t), true) + name := filepath.Join(t.TempDir(), "test.db") + cfg := config(ctx).WithArgs("mptest", name, "config01.test", + "--journalmode", "wal") + mod, err := rt.InstantiateModule(ctx, module, cfg) + if err != nil { + t.Fatal(err) + } + mod.Close(ctx) +} + +func Test_crash01_wal(t *testing.T) { + if testing.Short() { + t.Skip("skipping in short mode") + } + if os.Getenv("CI") != "" { + t.Skip("skipping in CI") + } + if !vfs.SupportsSharedMemory { + t.Skip("skipping without shared memory") + } + + ctx := util.NewContext(newContext(t), true) + name := filepath.Join(t.TempDir(), "test.db") + cfg := config(ctx).WithArgs("mptest", name, "crash01.test", + "--journalmode", "wal") + mod, err := rt.InstantiateModule(ctx, module, cfg) + if err != nil { + t.Fatal(err) + } + mod.Close(ctx) +} + +func Test_multiwrite01_wal(t *testing.T) { + if testing.Short() { + t.Skip("skipping in short mode") + } + if !vfs.SupportsSharedMemory { + t.Skip("skipping without shared memory") + } + + ctx := util.NewContext(newContext(t), true) + name := filepath.Join(t.TempDir(), "test.db") + cfg := config(ctx).WithArgs("mptest", name, "multiwrite01.test", + "--journalmode", "wal") + mod, err := rt.InstantiateModule(ctx, module, cfg) + if err != nil { + t.Fatal(err) + } + mod.Close(ctx) +} + func newContext(t *testing.T) context.Context { return context.WithValue(context.Background(), logger{}, &testWriter{T: t}) } diff --git a/vfs/tests/mptest/testdata/build.sh b/vfs/tests/mptest/testdata/build.sh index 4b9ce88..dc81aa0 100755 --- a/vfs/tests/mptest/testdata/build.sh +++ b/vfs/tests/mptest/testdata/build.sh @@ -21,7 +21,8 @@ WASI_SDK="$ROOT/tools/wasi-sdk-21.0/bin" -DSQLITE_DEFAULT_LOCKING_MODE=0 \ -DHAVE_USLEEP -DSQLITE_NO_SYNC \ -DSQLITE_THREADSAFE=0 -DSQLITE_OMIT_LOAD_EXTENSION \ - -D_WASI_EMULATED_GETPID -lwasi-emulated-getpid + -D_WASI_EMULATED_GETPID -lwasi-emulated-getpid \ + -Wl,--export=aligned_alloc "$BINARYEN/wasm-opt" -g --strip --strip-producers -c -O3 \ mptest.wasm -o mptest.tmp \ diff --git a/vfs/tests/mptest/testdata/mptest.wasm.bz2 b/vfs/tests/mptest/testdata/mptest.wasm.bz2 index c233e58..0b753ef 100644 --- a/vfs/tests/mptest/testdata/mptest.wasm.bz2 +++ b/vfs/tests/mptest/testdata/mptest.wasm.bz2 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:b5f4778b49a6b99a1be11db5cb07e3c5b52f91a932a97e33c895f52c6f54bf57 -size 469149 +oid sha256:523b3640c6de9accf3f6b01e7da2098faba12eec0168b67a78c56fef0716c7ae +size 469261 diff --git a/vfs/tests/speedtest1/speedtest1_test.go b/vfs/tests/speedtest1/speedtest1_test.go index a0e59af..786d6b9 100644 --- a/vfs/tests/speedtest1/speedtest1_test.go +++ b/vfs/tests/speedtest1/speedtest1_test.go @@ -84,7 +84,7 @@ func initFlags() { func Benchmark_speedtest1(b *testing.B) { output.Reset() - ctx := util.NewContext(context.Background()) + ctx := util.NewContext(context.Background(), false) name := filepath.Join(b.TempDir(), "test.db") args := append(options, "--size", strconv.Itoa(b.N), name) cfg := wazero.NewModuleConfig(). diff --git a/vfs/tests/speedtest1/testdata/build.sh b/vfs/tests/speedtest1/testdata/build.sh index 34f8ab8..3672793 100755 --- a/vfs/tests/speedtest1/testdata/build.sh +++ b/vfs/tests/speedtest1/testdata/build.sh @@ -16,7 +16,8 @@ WASI_SDK="$ROOT/tools/wasi-sdk-21.0/bin" -fno-stack-protector -fno-stack-clash-protection \ -Wl,--stack-first \ -Wl,--import-undefined \ - -D_HAVE_SQLITE_CONFIG_H + -D_HAVE_SQLITE_CONFIG_H \ + -Wl,--export=aligned_alloc "$BINARYEN/wasm-opt" -g --strip --strip-producers -c -O3 \ speedtest1.wasm -o speedtest1.tmp \ diff --git a/vfs/tests/speedtest1/testdata/speedtest1.wasm.bz2 b/vfs/tests/speedtest1/testdata/speedtest1.wasm.bz2 index 154992b..e178f88 100644 --- a/vfs/tests/speedtest1/testdata/speedtest1.wasm.bz2 +++ b/vfs/tests/speedtest1/testdata/speedtest1.wasm.bz2 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:06882576fdea2c8e164dd2d97dce394dc825dca3cee30c9efc9601b84de92865 -size 483191 +oid sha256:855720cce2881c98d09c15eddf9cab0d5974a2a82f7f67987a28b97414629345 +size 483463 diff --git a/vfs/vfs.go b/vfs/vfs.go index 1e8761b..d7577ed 100644 --- a/vfs/vfs.go +++ b/vfs/vfs.go @@ -6,6 +6,7 @@ import ( "io" "net/url" "reflect" + "sync" "time" "github.com/ncruces/go-sqlite3/internal/util" @@ -27,7 +28,7 @@ func ExportHostFunctions(env wazero.HostModuleBuilder) wazero.HostModuleBuilder util.ExportFuncIIIII(env, "go_full_pathname", vfsFullPathname) util.ExportFuncIIII(env, "go_delete", vfsDelete) util.ExportFuncIIIII(env, "go_access", vfsAccess) - util.ExportFuncIIIIII(env, "go_open", vfsOpen) + util.ExportFuncIIIIIII(env, "go_open", vfsOpen) util.ExportFuncII(env, "go_close", vfsClose) util.ExportFuncIIIIJ(env, "go_read", vfsRead) util.ExportFuncIIIIJ(env, "go_write", vfsWrite) @@ -40,6 +41,10 @@ func ExportHostFunctions(env wazero.HostModuleBuilder) wazero.HostModuleBuilder util.ExportFuncIII(env, "go_lock", vfsLock) util.ExportFuncIII(env, "go_unlock", vfsUnlock) util.ExportFuncIII(env, "go_check_reserved_lock", vfsCheckReservedLock) + util.ExportFuncIIIIII(env, "go_shm_map", vfsShmMap) + util.ExportFuncIIIII(env, "go_shm_lock", vfsShmLock) + util.ExportFuncIII(env, "go_shm_unmap", vfsShmUnmap) + util.ExportFuncVI(env, "go_shm_barrier", vfsShmBarrier) return env } @@ -129,7 +134,7 @@ func vfsAccess(ctx context.Context, mod api.Module, pVfs, zPath uint32, flags Ac return vfsErrorCode(err, _IOERR_ACCESS) } -func vfsOpen(ctx context.Context, mod api.Module, pVfs, zPath, pFile uint32, flags OpenFlag, pOutFlags uint32) _ErrorCode { +func vfsOpen(ctx context.Context, mod api.Module, pVfs, zPath, pFile uint32, flags OpenFlag, pOutFlags, pOutVFS uint32) _ErrorCode { vfs := vfsGet(mod, pVfs) var path string @@ -165,6 +170,9 @@ func vfsOpen(ctx context.Context, mod api.Module, pVfs, zPath, pFile uint32, fla if pOutFlags != 0 { util.WriteUint32(mod, pOutFlags, uint32(flags)) } + if pOutVFS != 0 && util.CanMap(ctx) { + util.WriteUint32(mod, pOutVFS, 1) + } vfsFileRegister(ctx, mod, pFile, file) return _OK } @@ -348,6 +356,35 @@ func vfsDeviceCharacteristics(ctx context.Context, mod api.Module, pFile uint32) return file.DeviceCharacteristics() } +var shmBarrier sync.Mutex + +func vfsShmMap(ctx context.Context, mod api.Module, pFile, iRegion, szRegion, bExtend, pp uint32) _ErrorCode { + file := vfsFileGet(ctx, mod, pFile).(fileShm) + p, err := file.shmMap(ctx, mod, iRegion, szRegion, bExtend != 0) + if err != nil { + return vfsErrorCode(err, _IOERR_SHMMAP) + } + util.WriteUint32(mod, pp, p) + return _OK +} + +func vfsShmLock(ctx context.Context, mod api.Module, pFile, offset, n uint32, flags _ShmFlag) _ErrorCode { + file := vfsFileGet(ctx, mod, pFile).(fileShm) + err := file.shmLock(offset, n, flags) + return vfsErrorCode(err, _IOERR_SHMLOCK) +} + +func vfsShmUnmap(ctx context.Context, mod api.Module, pFile, bDelete uint32) _ErrorCode { + file := vfsFileGet(ctx, mod, pFile).(fileShm) + file.shmUnmap(bDelete != 0) + return _OK +} + +func vfsShmBarrier(ctx context.Context, mod api.Module, pFile uint32) { + shmBarrier.Lock() + defer shmBarrier.Unlock() +} + func vfsURIParameters(ctx context.Context, mod api.Module, zPath uint32, flags OpenFlag) url.Values { if flags&OPEN_URI == 0 { return nil @@ -428,3 +465,9 @@ func vfsErrorCode(err error, def _ErrorCode) _ErrorCode { } return def } + +type fileShm interface { + shmMap(context.Context, api.Module, uint32, uint32, bool) (uint32, error) + shmLock(uint32, uint32, _ShmFlag) error + shmUnmap(bool) +} diff --git a/vfs/vfs_test.go b/vfs/vfs_test.go index 0729a62..872ca07 100644 --- a/vfs/vfs_test.go +++ b/vfs/vfs_test.go @@ -209,10 +209,10 @@ func Test_vfsAccess(t *testing.T) { func Test_vfsFile(t *testing.T) { mod := wazerotest.NewModule(wazerotest.NewMemory(wazerotest.PageSize)) - ctx := util.NewContext(context.TODO()) + ctx := util.NewContext(context.TODO(), false) // Open a temporary file. - rc := vfsOpen(ctx, mod, 0, 0, 4, OPEN_CREATE|OPEN_EXCLUSIVE|OPEN_READWRITE|OPEN_DELETEONCLOSE, 0) + rc := vfsOpen(ctx, mod, 0, 0, 4, OPEN_CREATE|OPEN_EXCLUSIVE|OPEN_READWRITE|OPEN_DELETEONCLOSE, 0, 0) if rc != _OK { t.Fatal("returned", rc) } @@ -281,10 +281,10 @@ func Test_vfsFile(t *testing.T) { func Test_vfsFile_psow(t *testing.T) { mod := wazerotest.NewModule(wazerotest.NewMemory(wazerotest.PageSize)) - ctx := util.NewContext(context.TODO()) + ctx := util.NewContext(context.TODO(), false) // Open a temporary file. - rc := vfsOpen(ctx, mod, 0, 0, 4, OPEN_CREATE|OPEN_EXCLUSIVE|OPEN_READWRITE|OPEN_DELETEONCLOSE, 0) + rc := vfsOpen(ctx, mod, 0, 0, 4, OPEN_CREATE|OPEN_EXCLUSIVE|OPEN_READWRITE|OPEN_DELETEONCLOSE, 0, 0) if rc != _OK { t.Fatal("returned", rc) }