Is there some implicit locking of device methods?

Bartosz Fabianowski freebsd at chillt.de
Wed Apr 27 22:46:14 UTC 2011


> This is a strange architecture, esp. amusing is the kernel-mode
> traffic multiplier.

This mimics the Linux input events framework. The architecture is not 
mine, I am just implementing it under FreeBSD.

> - use usermode daemon that multiplies traffic for all connected
> clients;

A better architecture for sure - but I want to stay compatible with code 
written for Linux and so must provide concurrent access via a single 
device node.

> - or, implement a ring buffer that cyclically stores the received
> data, and keep only the current read pointer in the cdevpriv.

Good idea. This will save a few kilobytes of memory.

> You need to handle the overflow case (eq. to the stuck reader)
> somehow in the current scheme anyway. Reader may now read from its
> current read position in the buffer up to the fill point. If the
> buffer wrapped for the reader, it should get some error.

Yes, of course. I am checking the queue fill state and making sure not 
to overflow it.

- Bartosz


More information about the freebsd-hackers mailing list