summaryrefslogtreecommitdiffstats
path: root/docs/ToDo
blob: 0c54eeab15bf80c356e9fec63307545bf3159261 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
High Priority (we would need it for IPE Camera)
=============
 1. DMA without ring buffer, just send data in the newly configured buffers while there is the space...
    * We need a way to add (remove?) pages into the same use. Some times in the middle of existing pages, i.e. tructuring seems complicated.
    * vmsplice them out trough the device?
 2. Allow DMA into the user pages
    * Dangerous as hardware accessed memory is only valid during life-time of one application. Instead the kernel pages can be re-assembled as big buffer using vmmngr_map_page (?)
 3. Use huge-pages + dynamicaly configure DMA page size
 4. DirectGMA/GPUDirect support
 5. High-speed interface to Infiniband
 
Normal Priority (it would make just few things a bit easier)
===============
 1. Support Python-scripts in the views (we need to provide python API to read registers/properties)
 2. Integrate base streaming model into the pcitool
 3. Implement pcilib_configure_autotrigger
 4. Really check the specified min, max values while setting registers
 5. Provide OR and AND operations on registers in cli
 6. Support writting a data from a binary file in cli

Low Priority (only as generalization for other projects)
============
 1. We managed kmem performance using next kmem prediction, but it is still wise to provide additionally a binary tree for faster search
 2. Support for Network Registers and Network DMA
 3. Define a syntax for register dependencies / delays (?)
 4. Use pthread_condition_t instead of polling
 5. Support FIFO reads/writes from/to registers

Performance
===========
 1. Even with fully algined data, glibc defaults to __memcpy_sse2_unaligned (called from ipecamera_data_callback and fastwriter_push). Can we do something?