Comments (6)
I would guess you are running on macOS - this doesn't need any alignment.
What OS are you using?
from directio.
@ncw I was test on linux kernel version 5.8.15
the test code is as simple as
package main
import (
"fmt"
"github.com/ncw/directio"
)
func main() {
block := directio.AlignedBlock(3000)
fmt.Printf("block is %d\n", len(block))
}
and the result is
[vagrant@testbox directio-test]$ go run main.go
block is 3000
which I expect to see is 4096
from directio.
I see your confusion now. directio.AlignedBlock
will return only the size that you asked for but it is guaranteed to be aligned to a page boundary.
package main
import (
"fmt"
"github.com/ncw/directio"
)
func main() {
block := directio.AlignedBlock(3000)
fmt.Printf("block is %d\n", len(block))
fmt.Printf("block is at %p", &block[0])
}
https://go.dev/play/p/mcHTD5COgBi
Prints
block is 3000
block is at 0xc00007e000
so the block is clearly aligned.
I'll close this now as I think the question is answered.
from directio.
thanks for the clarify
from directio.
No probs!
I'll close this now.
from directio.
in this test code, if its ok when the block which size is 3000 is write to a file in driect IO?
from directio.
Related Issues (11)
- Confused about usage with bufio.Scanner HOT 1
- enable/disable O_DIRECT HOT 1
- buf size less than blockSize error report write err HOT 4
- Extremely slow O_DIRECT HOT 3
- Panic on 0 sized `AlignedBlock` HOT 2
- Alignment HOT 2
- windows dda to physical drive HOT 2
- Link to docs broken HOT 1
- TestDirectIO fail on Fedora 26, Go version 1.7 HOT 2
- OpenFile return error 'invalid argument' when path is under tmpfs HOT 1
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 directio.