- Final Evaluations due this Friday
Progress:
- I have pushed the tcp3d test that passes the llrs from the arm and the dsp processes them on the tcp3d then the arm checks whether they match the expected result.
https://github.com/muniza/tcp3d_dsp_test
- I have some code that modifies GNU Radio runtime to isolate blocks based on flags we set in the blocks constructor. This will enable us to treat certain blocks differently such as putting the buffer in a different location in memory. Also is code that exposes the buffer object to the work function so that we can get the start address and size of the buffer in bytes.
https://github.com/muniza/gnuradio
- I have an OOT module that passes a struct with the gnuradio buffer start address and size to a kernel module using ioctl.
https://github.com/muniza/gr-buffertest
- Lastly the kernel module that runs get_user_pages on the gnuradio buffer struct.
https://github.com/muniza/gsoc_2014Plan:
I did more research on the contigous memory allocation method and I now see that it is not a good zero-copy solution for ALL the devices we want to support. A good discussion is available on the linux kernel news site that discusses the reasons for NOT integrating ION, another contigous memory allocator, into the linux kernel:
http://lwn.net/Articles/565469/. I'm still going to get a minimal CMEM GPLv3 integrated into GNU Radio as a stepping stone for modifying runtime and using zero copy with the keystone. This shouldn't take long at all since I just need ioctl. For part of my talk at the conference, I am going to discuss this method of contigous memory along with positives and negatives as it relates to GNU Radio and a couple of devices. I'm also hoping to make more progress so I can show the integration of the get_user_pages dma method but we'll have to see what happens when I'm back at Penn. I think a discussion of various methods this will bring up good conversation for the coproc working group.