flow control in vmbus ring buffers

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I'm trying to get my head around how the flow control in vmbus ring
buffers works.

In particular, I'm failing to see how the following can be prevented:


     producer                     |       consumer
==================================================================
read read_index                   |
(enough room for packet)          |
write pending_send_sz = 0         |
write packet                      |
update write_index                |
                                  | read write_index
read read_index                   | read packet
(not enough room for packet)      | update read_index (= write_index)
                                  | read pending_send_sz = 0
write pending_send_sz = X         | skip notification
go to sleep                       | go to sleep
                                stall

Could anybody please shed some light on how it's supposed to work?

Thanks,
Roman.



[Index of Archives]     [Linux Samsung SoC]     [Linux Rockchip SoC]     [Linux Actions SoC]     [Linux for Synopsys ARC Processors]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]


  Powered by Linux