8000 GitHub - home-coder/ring-buffer: Ring Buffer, 循环缓冲区的编写和测试,标准kfifo和POSIX的ring buffer.并使用/dev/mem代替实际物理设备来实现mmap方式数据读取
[go: up one dir, main page]

Skip to content

Ring Buffer, 循环缓冲区的编写和测试,标准kfifo和POSIX的ring buffer.并使用/dev/mem代替实际物理设备来实现mmap方式数据读取

Notifications You must be signed in to change notification settings

home-coder/ring-buffer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ring-buffer

未解决问题:

    1. 为什么要用环形缓冲区kfifo
    1. 内核数据写入,与mmap后的用户空间取走这个buffer的数据如何同步
    1. 内核模块的地址如何在用户空间操作

《针对上面的问题,如下思考》

经过x86测试,得知写入数据大于ringbuffer给出的最大尺寸4096后,剩余的数据虽然走kfifo_put方法,但是数据并没有写入或者覆盖掉起始处的buffer,导致数据丢失, 所有后续 需要针对这个问题进行判断:如果缓冲区满了就等待,当读者将数据取走腾出空间了,写者再写入。这样写线程可以让出cpu,让他在这个等待间隙做其它的事情。 当然我的测试方法是写者很快,而读者很慢的情景

测试:

需要针对helper中的生产者消费者 模型熟练掌握以后,在将kfifo的项目代码改编成包含这种模式的,目的是解决上面的问题 《针对上面的问题,如下思考》。

About

Ring Buffer, 循环缓冲区的编写和测试,标准kfifo和POSIX的ring buffer.并使用/dev/mem代替实际物理设备来实现mmap方式数据读取

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published
0