diff options
Diffstat (limited to 'meta-oe/recipes-benchmark/stressapptest/stressapptest/0002-Replace-lfs64-functions-and-defines.patch')
-rw-r--r-- | meta-oe/recipes-benchmark/stressapptest/stressapptest/0002-Replace-lfs64-functions-and-defines.patch | 103 |
1 files changed, 103 insertions, 0 deletions
diff --git a/meta-oe/recipes-benchmark/stressapptest/stressapptest/0002-Replace-lfs64-functions-and-defines.patch b/meta-oe/recipes-benchmark/stressapptest/stressapptest/0002-Replace-lfs64-functions-and-defines.patch new file mode 100644 index 0000000000..48ff3ef93b --- /dev/null +++ b/meta-oe/recipes-benchmark/stressapptest/stressapptest/0002-Replace-lfs64-functions-and-defines.patch @@ -0,0 +1,103 @@ +From 9ab360fd018d267fe174713d7e14454408b26043 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Sat, 17 Dec 2022 10:33:01 -0800 +Subject: [PATCH] Replace lfs64 functions and defines + +AC_SYS_LARGEFILE is already in use in configure.ac which detects +enabling lfs64 functions as needed, it will define _FILE_OFFSET_BITS=64 +which should make lseek same as lseek64 since off_t is 64bit on most of +current 32bit linux platforms + +Upstream-Status: Submitted [https://github.com/stressapptest/stressapptest/pull/100] +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + src/os.cc | 18 ++++++------------ + src/worker.cc | 6 +++--- + 2 files changed, 9 insertions(+), 15 deletions(-) + +diff --git a/src/os.cc b/src/os.cc +index 1928e0a..faa6068 100644 +--- a/src/os.cc ++++ b/src/os.cc +@@ -142,7 +142,7 @@ int OsLayer::AddressMode() { + uint64 OsLayer::VirtualToPhysical(void *vaddr) { + uint64 frame, paddr, pfnmask, pagemask; + int pagesize = sysconf(_SC_PAGESIZE); +- off64_t off = ((uintptr_t)vaddr) / pagesize * 8; ++ off_t off = ((uintptr_t)vaddr) / pagesize * 8; + int fd = open(kPagemapPath, O_RDONLY); + + /* +@@ -154,7 +154,7 @@ uint64 OsLayer::VirtualToPhysical(void *vaddr) { + if (fd < 0) + return 0; + +- if (lseek64(fd, off, SEEK_SET) != off || read(fd, &frame, 8) != 8) { ++ if (lseek(fd, off, SEEK_SET) != off || read(fd, &frame, 8) != 8) { + int err = errno; + string errtxt = ErrorString(err); + logprintf(0, "Process Error: failed to access %s with errno %d (%s)\n", +@@ -607,9 +607,9 @@ bool OsLayer::AllocateTestMem(int64 length, uint64 paddr_base) { + dynamic_mapped_shmem_ = true; + } else { + // Do a full mapping here otherwise. +- shmaddr = mmap64(NULL, length, PROT_READ | PROT_WRITE, +- MAP_SHARED | MAP_NORESERVE | MAP_LOCKED | MAP_POPULATE, +- shm_object, 0); ++ shmaddr = mmap(NULL, length, PROT_READ | PROT_WRITE, ++ MAP_SHARED | MAP_NORESERVE | MAP_LOCKED | MAP_POPULATE, ++ shm_object, 0); + if (shmaddr == reinterpret_cast<void*>(-1)) { + int err = errno; + string errtxt = ErrorString(err); +@@ -704,18 +704,12 @@ void *OsLayer::PrepareTestMem(uint64 offset, uint64 length) { + if (dynamic_mapped_shmem_) { + // TODO(nsanders): Check if we can support MAP_NONBLOCK, + // and evaluate performance hit from not using it. +-#ifdef HAVE_MMAP64 +- void * mapping = mmap64(NULL, length, PROT_READ | PROT_WRITE, +- MAP_SHARED | MAP_NORESERVE | MAP_LOCKED | MAP_POPULATE, +- shmid_, offset); +-#else + void * mapping = mmap(NULL, length, PROT_READ | PROT_WRITE, + MAP_SHARED | MAP_NORESERVE | MAP_LOCKED | MAP_POPULATE, + shmid_, offset); +-#endif + if (mapping == MAP_FAILED) { + string errtxt = ErrorString(errno); +- logprintf(0, "Process Error: PrepareTestMem mmap64(%llx, %llx) failed. " ++ logprintf(0, "Process Error: PrepareTestMem mmap(%llx, %llx) failed. " + "error: %s.\n", + offset, length, errtxt.c_str()); + sat_assert(0); +diff --git a/src/worker.cc b/src/worker.cc +index 745a816..41e93a0 100644 +--- a/src/worker.cc ++++ b/src/worker.cc +@@ -1705,7 +1705,7 @@ bool FileThread::WritePages(int fd) { + int strict = sat_->strict(); + + // Start fresh at beginning of file for each batch of pages. +- lseek64(fd, 0, SEEK_SET); ++ lseek(fd, 0, SEEK_SET); + for (int i = 0; i < sat_->disk_pages(); i++) { + struct page_entry src; + if (!GetValidPage(&src)) +@@ -1943,7 +1943,7 @@ bool FileThread::ReadPages(int fd) { + bool result = true; + + // Read our data back out of the file, into it's new location. +- lseek64(fd, 0, SEEK_SET); ++ lseek(fd, 0, SEEK_SET); + for (int i = 0; i < sat_->disk_pages(); i++) { + struct page_entry dst; + if (!GetEmptyPage(&dst)) +@@ -3153,7 +3153,7 @@ bool DiskThread::ValidateBlockOnDisk(int fd, BlockData *block) { + + // Read block from disk and time the read. If it takes longer than the + // threshold, complain. +- if (lseek64(fd, address * kSectorSize, SEEK_SET) == -1) { ++ if (lseek(fd, address * kSectorSize, SEEK_SET) == -1) { + logprintf(0, "Process Error: Unable to seek to sector %lld in " + "DiskThread::ValidateSectorsOnDisk on disk %s " + "(thread %d).\n", address, device_name_.c_str(), thread_num_); |