Zbr's days.

About :: TODO :: Blog :: RSS :: Old blog :: Projects :: GIT :: Gallery :: Notes

Sat, 19 Aug 2006

Zero-copy sniffer.


Implementation of design with additional bitmask wastes too much space per node, so I decided to create much more simple solution - attach a tag to each allocated chunk, which contains a canary and reference counter. The former is just 4 bytes of special data which is used to check in freeing function if object being freed is valid and there were no memory corruption. Reference counter is used to mark mapped objects as used, so freeing would not destroy them. The only thing to implement is ->nopage() method for zero-copy sniffer underlaying char device, so when network allocator cache grows user could automatically be able to get new pages into mapping.

/devel/networking/zcs :: Link / Comments ()