[Patch] "read incomplete section" und dmxdev.c ringbuffer

  • Da ich immer wieder "read incomplete section" Meldungen im Syslog finde habe ich mir diese näher angesehen und festgestellt, dass immer nur die Sections der EIT-Pid 0x12, also der EPG Daten betroffen sind.

    Eine Ursache könnte sein, dass in 'dmxdev.c' des Kernels der Ringbuffer, in dem die gefilterten Sections schlussendlich landen, standardmäßig nur mit einer Größe von 8192 Bytes erstellt wird. Bei einem Transponder mit vielen EPG Daten muss der Ringbuffer daher auch schnell ausgelesen werden, bevor die vorhandenen Daten mit denen der nächsten Sections überschrieben werden.

    Dieses Auslesen dürfte aber nicht immer schnell genug erfolgen, vor allem wenn mehrere Devices aktiv sind.

    Ich habe hier einen Patch, der den Ringbuffer für die EIT Sections auf 32 kB vergrößert um 'Device-ReadFilter()' mehr Zeit zu geben.Damit scheinen die "read incomplete section" Meldungen bei mir nicht mehr auf. Ich habe es allerdings noch nicht sehr intensiv getestet, möglicherweise braucht es bei mehr als 2 Devices auch noch einen größeren Ringbuffer.


    Zusätzlich habe ich auch diesen Kernel Patch installiert: Fix receiving invalid EIT-sections. Dieser ist ab Kernelversion 5.6.19 enthalten, alleine genügt er aber nicht, um die "incomplete" Meldungen verschwinden zu lassen.


    Helmut