Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
util: add file locking for PCIe access.
This way, only one application using the library can access a given device at a time. We use a file descriptor pointing to BAR0 (via the resource0 file) because it's the first one to be opened (i.e. we fail early), and because it makes the most sense semantically: the issue with sharing a device between processes is that they will need to access different page indexes, which are controlled by BAR0. We chose to use Open File Description (OFD) locking because it has more predictable behavior [1] and is POSIX, unlike the flock(2) API. No locking is added for the serial mode because it's not used in production, and it's believed that the kernel will already report the device as busy when another process has already opened it. [1] https://lwn.net/Articles/586904/
- Loading branch information