Comments (8)
The application is buggy and assumes 4k pages, and asahi runs 16k pages by default. O_DIRECT isn't a property of the storage driver, it's just as read/write as far as that is concerned.
from linux.
Presume by application that you mean RonDB, RonDB actually always writes in 32 kB chunks, so a 16k page size shouldn't
be an issue I presume. However the bug happens in that fcntl(fileDescriptor, , SETFL, flags | O_DIRECT) fails where flags
is retrieved with a fcntl call using GETFL. This call is done after opening the file.
from linux.
Actually looking at the function set_direct_io you might be right, will look another round to see what goes on
in the RonDB code.
from linux.
Yep, you were right. Seems like it depends on 4k page size. Interesting.
from linux.
Debugged the code a bit more, it seems that fstat returns that block_size is 4k, but when one attempts to use this
size in a pread call, the pread returns EINVAL indicating that O_DIRECT cannot be used with 4k alignment only.
However should not the fstat return 16k if that is the minimum alignment for O_DIRECT?
from linux.
No, stat correctly returns the file system block size, which is not the same thing as required memory alignment. They just happen to overlap on eg x86, because the page size is 4K as well. You can query the latter with sysconf(_SC_PAGESIZE);
from linux.
Thx, read up a bit on O_DIRECT, seem to be common consensus that it is a bit hard to figure out the alignment size.
But obviously the current code in RonDB needs to be extended to handle the requirements in Asahi Linux.
from linux.
Thx for the assistance, will close this issue since it is an issue in RonDB rather.
from linux.
Related Issues (20)
- What virtual machine software could be runned on asahi linux?
- How to install a linux virtual machine which shows GUI on asahi? HOT 4
- Separate kernel issues from distribution issues. HOT 2
- kernel panics after pod deployments? HOT 1
- HDMI port fails to output display signal after a resume
- Possible support for Trackpad on T2 Macs
- Linux paging support HOT 1
- How to load customized PMI handler
- gpu related crashes with kernel >= 6.9.7 HOT 49
- Kernel crash on boot with 6.9.9 (intermittent) - SError Interrupt on CPU0 HOT 4
- kernel 6.9.12-400.asahi.fc40.aarch64+16k doesn't reach graphical login HOT 5
- brightness not being changed when both changed with buttons or in software
- Does Asahi Linux provide support of OpenCL
- Can't install kernel headers due conflicts HOT 1
- tas2764 2-003c: fault: over current
- Issue with OpenGL applications crashing when using Hyprland 0.42.0 HOT 1
- Where can I download asahi linux? HOT 4
- Wifi won't connect after it disconnecte or got disabled once. HOT 1
- Battery charge thresholds broke after update to 6.10.6 HOT 2
- Only ~16 bits of library ASLR entropy when `vm.mmap_rnd_bits` is 18 HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from linux.