sectionsd goes tabled

Das Original Benutzerinterface Neutrino-SD incl. zapit, sectionsd, yWeb etc...
Nirvana
Erleuchteter
Erleuchteter
Beiträge: 646
Registriert: Mittwoch 16. April 2003, 14:12

Beitrag von Nirvana »

PauleFoul hat geschrieben: Das einzige was mich stört ist, dass es bei ARD und ZDF so lange dauert bis die Events eingelesen werden. Da sind nur Now & Next schnell da...
Das ist aber jetzt schneller als vorher, oder? Denn die Filter werden nun schneller geswitched. Schneller werden die tables glaube ich nicht gesendet, oder kennst du einen Receiver bei dem der EPG schneller vom Sat kommt?
PauleFoul hat geschrieben: @Nirvana
Kannst Du nicht mal das mit den Beschreibungstexten einbauen. Also
das die alternativ weggelassen werden können. Kann man ja im ersten
Schritt mal über einen Startparameter aktivieren...
Mich interessiert wie sich die Prozessorlast und der Speicherverbrauch verhält...
Komplett abschalten ist ein Patch von 1min. Ist aber eine komplett andere Baustelle. Ich mache erst weiter wenn das hier fertig ist. ;)
PauleFoul
Wissender
Wissender
Beiträge: 1839
Registriert: Sonntag 17. August 2003, 01:39

Beitrag von PauleFoul »

Nirvana hat geschrieben:
PauleFoul hat geschrieben: Das einzige was mich stört ist, dass es bei ARD und ZDF so lange dauert bis die Events eingelesen werden. Da sind nur Now & Next schnell da...
Das ist aber jetzt schneller als vorher, oder? Denn die Filter werden nun schneller geswitched. Schneller werden die tables glaube ich nicht gesendet, oder kennst du einen Receiver bei dem der EPG schneller vom Sat kommt?
Nein, aber der EPG ist zumindestens beim ZDF mit der alten Version schneller geladen. Auf anderen Sender sieht es besser aus... :D
Nirvana hat geschrieben:
PauleFoul hat geschrieben: @Nirvana
Kannst Du nicht mal das mit den Beschreibungstexten einbauen. Also
das die alternativ weggelassen werden können. Kann man ja im ersten
Schritt mal über einen Startparameter aktivieren...
Mich interessiert wie sich die Prozessorlast und der Speicherverbrauch verhält...
Komplett abschalten ist ein Patch von 1min. Ist aber eine komplett andere Baustelle. Ich mache erst weiter wenn das hier fertig ist. ;)
OK, Aber wenn es nur 1 Minute ist... :P Ich würde halt einfach mal gerne testen und hier über das Einsparpotential berichten...


Gruß
____Paule
Nirvana
Erleuchteter
Erleuchteter
Beiträge: 646
Registriert: Mittwoch 16. April 2003, 14:12

Beitrag von Nirvana »

PauleFoul hat geschrieben: Nein, aber der EPG ist zumindestens beim ZDF mit der alten Version schneller geladen. Auf anderen Sender sieht es besser aus... :D
Ah, ein qualifizierter Report. Das freut jeden Entwickler! Und ja, das ist bestätigt.
Aaaaber das ist Beschiss, da werden nicht alle Events die gesendet werden ausgelesen, sondern nur die des aktuellen Senders. Das kann ich wieder hinbiegen, dass er nicht alles liest oder ich kann es auf allen Sendern so "beschleunigen" wie fürs ZDF. Davon rate ich aber ab.
Vielleicht wäre es geschickter
- C/N aktueller Sender
- Liste aktueller Sender
- C/N andere Sender
- Liste anderer Sender
zu lesen. Dann wäre sectionsd aber wieder länger am rödeln, als wenn man alles beim ersten Filter mitnimmt.
PauleFoul
Wissender
Wissender
Beiträge: 1839
Registriert: Sonntag 17. August 2003, 01:39

Beitrag von PauleFoul »

Nirvana hat geschrieben:
PauleFoul hat geschrieben: Nein, aber der EPG ist zumindestens beim ZDF mit der alten Version schneller geladen. Auf anderen Sender sieht es besser aus... :D
Ah, ein qualifizierter Report. Das freut jeden Entwickler! Und ja, das ist bestätigt.
Aaaaber das ist Beschiss, da werden nicht alle Events die gesendet werden ausgelesen, sondern nur die des aktuellen Senders. Das kann ich wieder hinbiegen, dass er nicht alles liest oder ich kann es auf allen Sendern so "beschleunigen" wie fürs ZDF. Davon rate ich aber ab.
Komisch ist aber, das ich über den EPGFilter nur den ZDF-EPG einlesen
lasse. Aller anderen Sender des ZDF Transponders sind EPG "auskommentiert"...
Oder, kann es vielleicht gerade daran liegen??


Gruß
____Paule
Nirvana
Erleuchteter
Erleuchteter
Beiträge: 646
Registriert: Mittwoch 16. April 2003, 14:12

Beitrag von Nirvana »

Das Verhalten ist unabhängig vom EPGFilter. Nur konntest du so auch nicht die fehlenden Events vermissen. ;)
PauleFoul
Wissender
Wissender
Beiträge: 1839
Registriert: Sonntag 17. August 2003, 01:39

Beitrag von PauleFoul »

Nirvana hat geschrieben:Das Verhalten ist unabhängig vom EPGFilter. Nur konntest du so auch nicht die fehlenden Events vermissen. ;)
Vielleicht kann man ja an der ein oder anderen Stelle noch etwas am
Speed tunen... :wink:

Ansonsten läuft das ganze Megastabil und zuverlässig.


Gruß
____Paule
Houdini
Developer
Beiträge: 2183
Registriert: Mittwoch 10. Dezember 2003, 07:59

Beitrag von Houdini »

@Nirvana
ich kann das hier nicht nachstellen mit dem aktuellen cvs stand.
Sowohl bei z.b. Sat1als auch bei einem Sender ohne EPG auf dem TP schläft sectionsd nach getaner Arbeit bzw. den Timeouts wieder ein.

Kannst du einen Sender nennem, wo das auftritt, oder tritt es nur in Verbindung mit deinen Patches auf?

Houdini
Nirvana
Erleuchteter
Erleuchteter
Beiträge: 646
Registriert: Mittwoch 16. April 2003, 14:12

Beitrag von Nirvana »

@Houdini
Ohne die Änderungen am DMX habe ich es nicht getestet. Dann wird das wohl so ein Seiteneffekt sein. Grr. Hast Du irgendeine Idee? Prinzip ist, dass keine section ein zweites Mal den DMX verlässt. Braucht das dein update_eit zum ruhigen Einschlafen? Was ist das Kriterium damit du das setzt?
palace
Erleuchteter
Erleuchteter
Beiträge: 441
Registriert: Dienstag 11. März 2003, 03:42

Beitrag von palace »

Hi,

also ich habe den Effekt, dass der sectionsd GAR NICHT zur Ruhe kommt...
ARD (Kabel) schwankt die Last zwischen 10 und meistens 90%..
ZDF ist nicht gar so krass...

Code: Alles auswählen

[sectionsd] skipped duplicate section for table 0x4f table_extension 0x6ea8 section 0x00
[sectionsd] skipped duplicate section for table 0x4f table_extension 0x6e3a section 0x01
[sectionsd] skipped duplicate section for table 0x4f table_extension 0x6e3d section 0x01
Er ist mit dem "skippen" doch sehr beschäftigt ;)
Nichts mehr mit halbe stunde schlafen legen bisher...
Nirvana
Erleuchteter
Erleuchteter
Beiträge: 646
Registriert: Mittwoch 16. April 2003, 14:12

Beitrag von Nirvana »

Ich denke ich habe den Fehler im bestehenden Code gefunden, der zutage tritt, wenn jede Section nur einmal gelesen wird. Ich meine der else-Zweig muss immer ausgeführt werden. Sonst wird eine section gelesen nur um max_ID zu setzen. Erst beim nächsten Durchlauf wird sie registriert. Das würde exakt zum vom mir gesuchten Fehlerbild passen. Seht es euch mal an.

Code: Alles auswählen

						if (messaging_sections_max_ID[header.table_id - 0x4e] == -1)
//						{
							messaging_sections_max_ID[header.table_id - 0x4e] = _id;
//						}
//						else
//						{
							if (!messaging_sections_got_all[header.table_id - 0x4e])
							{
								for ( std::vector<long long>::iterator i = messaging_skipped_sections_ID[header.table_id - 0x4e].begin();
								        i != messaging_skipped_sections_ID[header.table_id - 0x4e].end(); ++i )
									if ( *i == _id)
									{
										messaging_skipped_sections_ID[header.table_id - 0x4e].erase(i);
										break;
									}

								if ((messaging_sections_max_ID[header.table_id - 0x4e] == _id) &&
								    (messaging_skipped_sections_ID[header.table_id - 0x4e].empty()))
								{
									// alle pakete fr den ServiceKey da!
									dprintf("[eitThread] got all packages for table_id 0x%x\n", header.table_id);
									messaging_sections_got_all[header.table_id - 0x4e] = true;
								}
							}
//						}
Bin:
http://download.yousendit.com/D61E46124956BC81

Ich selbst kann es erst am WE testen.

Insgesamt ist der Code an der Stelle suspekt. Das sieht man ja auch daran, dass er sich auf ZDF anders verhält als beim Rest der Sender. Schon in max_ID scheint ja nicht die last_section_number eine Rolle zu spielen. Merkwürdig. Ich bin dafür den Code komplett rauszunehmen. Was benötigt wird, kann auch vom DMX signalisiert werden. Dafür müssten wir nur das gewünschte Verhalten klären.
kroki
Einsteiger
Einsteiger
Beiträge: 166
Registriert: Dienstag 22. Juni 2004, 22:12

Beitrag von kroki »

Hi, hat sich irgendwie noch nichts geändert:

Code: Alles auswählen

[sectionsd] skipped duplicate section for table 0x61 table_extension 0x6dd2 section 0x58
[sectionsd] skipped duplicate section for table 0x60 table_extension 0x6dd2 section 0x50
[sectionsd] skipped duplicate section for table 0x60 table_extension 0x6dcd section 0x60
[sectionsd] skipped duplicate section for table 0x61 table_extension 0x6dd2 section 0x60
[sectionsd] skipped duplicate section for table 0x61 table_extension 0x6dcd section 0x70
[sectionsd] skipped duplicate section for table 0x60 table_extension 0x6dd2 section 0x58
[sectionsd] skipped duplicate section for table 0x60 table_extension 0x6dd2 section 0x60
[sectionsd] skipped duplicate section for table 0x61 table_extension 0x6dd2 section 0x68
[sectionsd] skipped duplicate section for table 0x60 table_extension 0x6dd2 section 0x68
dmx.read timeout - filter: 60 - timeout# 0
dmxEIT: going to sleep...
eit_set_update_filter
EIT Update Filter: Activate EitThread
--> 'changeDMX: before pthread_mutex_lock(&start_stop_mutex)' 32085.956000
--> 'changeDMX: after pthread_mutex_lock(&start_stop_mutex)' 0.612000
eit_stop_update_filter
dmxEIT: waking up again - requested from .change()
[sectionsd] skipped duplicate section for table 0x4f table_extension 0x6ea8 section 0x00
[sectionsd] skipped duplicate section for table 0x4e table_extension 0x6d71 section 0x00
[sectionsd] skipped duplicate section for table 0x4f table_extension 0x6e35 section 0x01
[sectionsd] skipped duplicate section for table 0x4e table_extension 0x6d67 section 0x00
[sectionsd] skipped duplicate section for table 0x4e table_extension 0x6d6e section 0x00
[sectionsd] skipped duplicate section for table 0x4e table_extension 0x6d6b section 0x01
[sectionsd] skipped duplicate section for table 0x4f table_extension 0x6dd1 section 0x00
[sectionsd] skipped duplicate section for table 0x4f table_extension 0x6e2d section 0x00
[sectionsd] skipped duplicate section for table 0x4f table_extension 0x6e96 section 0x01
[sectionsd] skipped duplicate section for table 0x4e table_extension 0x6d68 section 0x00
[/code]

Das ist bei ZDF, nach dem Sleep wird er sofort wieder aufgeweckt.

Sectionsd ohne -nu gestartet.


Kroki
PauleFoul
Wissender
Wissender
Beiträge: 1839
Registriert: Sonntag 17. August 2003, 01:39

Beitrag von PauleFoul »

Also ich habe den Eindruck das es jetzt noch langsamer geworden
ist. Teilweise dauert es jetzt auch auf anderen Sendern bis das NEXT
Event geladen ist.
Nirvana
Erleuchteter
Erleuchteter
Beiträge: 646
Registriert: Mittwoch 16. April 2003, 14:12

Beitrag von Nirvana »

Jepp, hier die getestete Version.
- suspect code removed
- schneller
- schläft (hoffentlich) ordnungsgemäß ein
- einheitliches Verhalten (auch ZDF liest alle sections)
- ob update_eit geht bitte testen
- Bevorzugung des aktuellen Senders funktioniert z.Z. prinzipbedingt nicht (könnte man ändern)

Bin:
http://ulc.tuxbox-cvs.sourceforge.net// ... y=Binaries&

Diff:
http://ulc.tuxbox-cvs.sourceforge.net// ... tory=Diffs&
kroki
Einsteiger
Einsteiger
Beiträge: 166
Registriert: Dienstag 22. Juni 2004, 22:12

Beitrag von kroki »

Hi,
sieht jetzt auf den ersten Blick gut aus, EIT-Threat schläft sauber ein....
Läuft erstmal stabil... Mal Langzeit-Test abwarten.

Thx @Niravana

cu Kroki
Innuendo
Einsteiger
Einsteiger
Beiträge: 281
Registriert: Mittwoch 8. Dezember 2004, 21:45

Beitrag von Innuendo »

danke @ nirvana
die box muss jetzt erstmal ein bissl mit dem diff nummer 5 (lebt) laufen
innu
palace
Erleuchteter
Erleuchteter
Beiträge: 441
Registriert: Dienstag 11. März 2003, 03:42

Beitrag von palace »

Jep, sieht auf den ersten Blick wieder besser aus...
Zumal mir die Dauerlast noch immer höher erscheint.

---

Ist es möglich, zu vermeiden, dass z.B. innerhalb des ARD Bouquets beim Umschalten scheinbar jedes mal wieder das komplette EPG geladen wird?
Nirvana
Erleuchteter
Erleuchteter
Beiträge: 646
Registriert: Mittwoch 16. April 2003, 14:12

Beitrag von Nirvana »

palace hat geschrieben: Ist es möglich, zu vermeiden, dass z.B. innerhalb des ARD Bouquets beim Umschalten scheinbar jedes mal wieder das komplette EPG geladen wird?
Gerade da sollte geskipped werden. Woran machst Du fest, dass das EPG geladen wird? CPU - Last?
palace
Erleuchteter
Erleuchteter
Beiträge: 441
Registriert: Dienstag 11. März 2003, 03:42

Beitrag von palace »

Nirvana hat geschrieben:Gerade da sollte geskipped werden. Woran machst Du fest, dass das EPG geladen wird? CPU - Last?
Ja...(?) und Dauer...
Nirvana
Erleuchteter
Erleuchteter
Beiträge: 646
Registriert: Mittwoch 16. April 2003, 14:12

Beitrag von Nirvana »

palace hat geschrieben: Ja...(?) und Dauer...
Die verbleibende CPU-Last ist das Skippen. Da wird nichts mehr ausgewertet. Deshalb müsste es auch schneller vorbei sein, als bei den alten Versionen.
palace
Erleuchteter
Erleuchteter
Beiträge: 441
Registriert: Dienstag 11. März 2003, 03:42

Beitrag von palace »

okay, werds gegenchecken :)
PauleFoul
Wissender
Wissender
Beiträge: 1839
Registriert: Sonntag 17. August 2003, 01:39

Beitrag von PauleFoul »

Also mit der aktuellen Version ist Now & Next schenller geworden
meine ich. Auch werden die Events beim ZDF schneller eingelesen.
Allerdings immer noch deutlich langsamer als beim CVS Stand... :gruebel:

Anosten läuft alles stabil.

Gruß
____Paule
Nirvana
Erleuchteter
Erleuchteter
Beiträge: 646
Registriert: Mittwoch 16. April 2003, 14:12

Beitrag von Nirvana »

PauleFoul hat geschrieben: Allerdings immer noch deutlich langsamer als beim CVS Stand... :gruebel:
Das Verhalten des ZDF im CVS-Stand betrachte ich als Bug. Wenn Du das auf alle Sender ausgedehnt haben möchtest, musst du jeden Sender einzeln antunen um EPG zu haben. Ich persönlich möchte das nicht.
Nirvana
Erleuchteter
Erleuchteter
Beiträge: 646
Registriert: Mittwoch 16. April 2003, 14:12

Beitrag von Nirvana »

Weil's grad so schön flutscht jetzt die Änderungen auf Eventebene:

- vorhandene Events werden nicht gelöscht und zugefügt sondern upgedated
- das fixed den Bug dass sich die Premiere/Sat1 Transponder immer gegenseitig die ausführliche Beschreibung kaputt machen. Im CVS ist es so, dass man bei onid 0085 nur auf dem aktuellen Transponder die volle Beschreibung weiter als current/next hat.
- man kann die Zeit connfen die man die ausführliche Beschreibung in die Zukunft haben möchte. Aktuell ist das auf 6h fix. (secondsExtendedTextCache = 6*60L*60L)
- achtet mal bitte drauf, ob irgendwo linkage, times, parental control und component descriptors falsch sind/fehlen.
- ich wäre dann mal wieder fertig - weitere Änderungen sind auf der Baustelle nicht geplant :)

Diff:
http://ulc.tuxbox-cvs.sourceforge.net/i ... tory=Diffs&

Bin:
http://ulc.tuxbox-cvs.sourceforge.net/i ... y=Binaries&
TbM
Interessierter
Interessierter
Beiträge: 97
Registriert: Donnerstag 22. März 2007, 17:30

Beitrag von TbM »

Behebt das "neue" SectionsD eigentlich den Bug das ich bei u.a. Pro7 ständig 3x oder 4x alle EPG-Einträge in der Liste habe? Pro7 ändert da am Tag 3-4x die Uhrzeiten um 1min vor und dann wieder 1min zurück, das nervt auf die dauer und ist lästig da dann nur noch "now" angezeigt wird aber "next" fehlt (und ich ständig ROT-ROT drücken muss um zu sehen was gleich läuft, zudem frisst es ja unnötigen Speicher)
Nirvana
Erleuchteter
Erleuchteter
Beiträge: 646
Registriert: Mittwoch 16. April 2003, 14:12

Beitrag von Nirvana »

Ich weiß genau was Du meinst und es ärgert mich auch, aber der "Bug" liegt auf der Seite von Pro7. Schreib ihnen mal, dass sie die EventID bei den Änderungen gleich lassen sollen, ansonsten verstoßen sie gegen den DVB-Standard. Es kann eigentlich nicht unsere Aufgabe sein, hinter den Spinnereien der Sender herzuprogrammieren (obwohl wir es manchmal doch tun...)
Ich sehe gerade, nicht mal auf dem neuen Transponder benehmen sie sich anständig.