Comments (3)
Currently mappings are stored on a global linked list. We should instead keep track of open and close of the ioctl file descriptor and create a linked list per process. This would allow us to close all mappings for once process, and avoid checking the current process in lookup.
from ssd-gpu-dma.
The other way to go about it is to use mmap to get the memory then the kernel does it for you. You still need an ioctl to get the physical address though,
from ssd-gpu-dma.
Hmm, good point. I think the module may be up for a major overhaul, ideally it should support huge pages and allocate contiguous address ranges that it maps for the userspace program. It would simplify the logic in the library, eliminating the hard separation between the code dependent on the SISCI/SmartIO path and also make larger queues and buffers simpler to deal with by avoiding PRP lists. I will give this some thought.
from ssd-gpu-dma.
Related Issues (20)
- Add support for larger IO queues HOT 3
- Investigate P2P support in the Linux DMA API for latest kernel release HOT 2
- ROCm support ? HOT 5
- Issue when using the cuda example/benchmark HOT 12
- Build and Binding the helper driver HOT 1
- Incorrect use of DMA API HOT 1
- Does --verify option works? HOT 11
- Change benchmark statistics to per command for nvm-latency-bench
- Floating Point Exception HOT 16
- Sperating SQ, CQ, and PRP List Memories HOT 2
- nvm-cuda-bench infintiely waiting for IO completion HOT 1
- Invalid NSID HOT 29
- Does CQ and SQ memory need to be contiguous HOT 1
- Cmake output saying 'Configuring kernel module without CUDA' HOT 39
- Unexpected error: Unexpected CUDA error: an illegal memory access was encountered HOT 6
- nvm-identify run error HOT 7
- nvm-cuda-bench failed as "an illegal memory access was encountered" HOT 5
- Can not find "nvm-latency-bench" in build/bin HOT 4
- Issue with multiple queues for latency benchmark
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 ssd-gpu-dma.