Hi Dmitry, Here is a first stab at the problem of overrun buffers in evdev, when running MT devices. The approach is to first convert the current evdev client fifos to a single multi-reader buffer, to save memory and increase resilience towards many listeners. Locking is sparsely utilized in favor of atomic operations, and there might be a memory barrier missing. In the second patch, the (single) static buffer is converted to a dynamic one, leaving the current buffer size intact. The third patch introduces the events_per_packet interface in input_dev, and utilizes the information to compute the evdev buffer size. The patches are lightly tested, anticipating some discussion. Cheers, Henrik --- Henrik Rydberg (3): input: evdev: use multi-reader buffer to save space input: evdev: convert to dynamic event buffer input: use driver hint to compute the evdev buffer size drivers/input/evdev.c | 82 ++++++++++++++++++++++++++++++------------------ include/linux/input.h | 7 ++++ 2 files changed, 58 insertions(+), 31 deletions(-) -- To unsubscribe from this list: send the line "unsubscribe linux-input" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html