[Patch] Beseitigung von Speicherlecks im IDE-Menü
-
- Contributor
- Beiträge: 1688
- Registriert: Donnerstag 17. Februar 2005, 20:24
[Patch] Beseitigung von Speicherlecks im IDE-Menü
Mich stören schon seit langer Zeit die Speicherlecks im IDE-Menü im Zusammenhang mit Menuforwardern und Notifiern. Da dbt das wohl vermutlich nicht mehr machen wird, habe ich mich der Sache nun mal angenommen. Probiert mal bitte aus, ob euch der Code nicht um die Ohren fliegt. Ich selbst kann es mangels IDE-Interface nicht testen. Kompilieren tut es aber.
Drive setup: fix memleaks
Link zum Patch entfernt
P.S.: Der Patch baut auf dem COnOffNotifier-Patch auf.
Drive setup: fix memleaks
Link zum Patch entfernt
P.S.: Der Patch baut auf dem COnOffNotifier-Patch auf.
-
- Administrator
- Beiträge: 2675
- Registriert: Donnerstag 28. September 2006, 19:18
Re: Commit-Wünsche für das CVS II
Mir liegt schon was dran, dass das geändert wird. Der Patch applied aber so nicht. Ich weis aber jetzt nicht in wie weit der Patch auf den anderen aufsetzt, aber evtl. reicht es aber statt Vektoren zu benutzen, einfach zumindest einige der Notifiers nur auf den Stack zu laden. Ebenso gilt das für einige MenuWidgets. Dann müsste ich aber doch mal angreifen
-
- Interessierter
- Beiträge: 95
- Registriert: Dienstag 14. Juni 2011, 17:50
- Image: eigenkompilat neutrino
- Image: eigenkompilat neutrino
Re: Commit-Wünsche für das CVS II
Wenn Ihr mir erklären könnt welche Patches ich wie einspielen muss, könnte ich auch mittesten. Ich habe zwei Philips Boxen mit IDE-Interface hier vor Ort.
-
- Contributor
- Beiträge: 1688
- Registriert: Donnerstag 17. Februar 2005, 20:24
Re: Commit-Wünsche für das CVS II
Dann mal frisch ans Werk. Mir erschien die Vector-Sache am einfachsten.dbt hat geschrieben:Dann müsste ich aber doch mal angreifen
Ganz einfach, zuerst den COnOffNotifier-Patch einspielen und dann den Patch fürs IDE-Menü.msrx111 hat geschrieben:Wenn Ihr mir erklären könnt welche Patches ich wie einspielen muss, könnte ich auch mittesten. Ich habe zwei Philips Boxen mit IDE-Interface hier vor Ort.
-
- Interessierter
- Beiträge: 95
- Registriert: Dienstag 14. Juni 2011, 17:50
- Image: eigenkompilat neutrino
- Image: eigenkompilat neutrino
Re: Commit-Wünsche für das CVS II
Ich hab jetzt mal ein Image gebaut und getestet. Das läuft auch prinzipiell. Aber beim HDD und mmc Setup läuft einiges schief. Wenn ich das IDE aktiviere dann klappt das auch. Beim nächsten boot wurden bis auf die Swap (Partition1 auf SD-Karte) keine weitere Partition eingebunden (vorhanden wären noch die 2. auf der SD und eine mit einer Partition formatierte CF-Karte mit 16GB) Also hab ich mir gedacht formatier mal neu: In das entsprechende Untermenu komme ich auch und es wird auch formatiert. Aber beim verlassen des Menu ereignet sich ein segmentation fault. Das ist sowohl bei der Ide als auch bei mmc/sd Menu so...
Hier Infos zur Hardware die auch den Grund liefern, warum ich neu formatieren wollte bzw habe. Die platten werden beim Start nicht eingehangen. Also irgendwas geht da schief.... Allerdings wird die swap Partition auf meiner SD Karte gefunden...
Ich hoffe, dass meine Test euch weiterhilft.
Edit: weil ich das gerade lese: Die Module liegen natürlich in /lib/modules und nicht in /var/lib/modules wie es im ersten log-Ausschnitt steht. Warum das da so läuft, habe ich keine Ahnung.
Edit2: Aber ich kann über die IDE/MMC Untermenus die Partitionen erfolgreich einbinden.
Code: Alles auswählen
[pmt] set update filter, sid 0x6dca pid 0x64 version c
[neutrino] no file /var/tuxbox/config/init.end was found
[neutrino] initialized everything
[LCDFONT] FTC_Face_Requester (Fix12/SemiCondensed)
[drive_setup] init drive setup 1.90
[drive setup] loadDriveSettings: load settings from /var/tuxbox/config/drivesetup.conf
[drive setup] loadFsModulList: can't open directory /var/lib/modules No such file or directory
[drive setup] loadMmcModulList: can't open directory /var/lib/modules No such file or directory
[neutrino] hddtemp -n -w -q /dev/ide/host0/bus0/target0/lun0/disc > /tmp/hdtemp 2>/dev/null failed with return code = 127
[drive setup] getHddTemp: executing hddtemp -n -w -q /dev/ide/host0/bus0/target0/lun0/disc > /tmp/hdtemp 2>/dev/null ...failed! hddtemp not installed
[neutrino] hddtemp -n -w -q /dev/ide/host0/bus0/target1/lun0/disc > /tmp/hdtemp 2>/dev/null failed with return code = 127
[drive setup] getHddTemp: executing hddtemp -n -w -q /dev/ide/host0/bus0/target1/lun0/disc > /tmp/hdtemp 2>/dev/null ...failed! hddtemp not installed
[drive setup] creating Filesystem, please wait...
fs_types for mke2fs.conf resolution: 'ext2', 'largefile'
Calling BLKDISCARD from 0 to 952074240 failed.
[drive setup] creating Filesystem, please wait...
[drive setup] checking Filesystem...
e2fsck 1.41.14 (22-Dec-2010)
/dev/mmc/disc0/part2: clean, 11/1024 files, 344/232440 blocks
Segmentation fault
Neutrino exited with nonzero exit status, restarting...
Code: Alles auswählen
/var/etc/init.d/06hdd generated from neutrino ide/mmc/hdd drive-setup
13.06.2012 - 19:56:45
1.90 do not edit!
Uniform Multi-Platform E-IDE driver Revision: 7.00beta4-2.4
ide: Assuming 50MHz system bus speed for PIO modes; override with idebus=xx
dboxide: $Id: main.c,v 1.16 2011/06/19 11:49:28 rhabarber1848 Exp $
ide: late registration of driver.
dboxide: activating cs2
dboxide: address space of IDE-Interface is at: 0xc3b8c000
dboxide: IDE-Interface detected, Vendor: DboxBaer or kpt.ahab/Stingray
dboxide: sreset succeeded
Probing IDE interface ide0...
hda: SMI MODEL, ATA DISK drive
ide0 at 0x010-0x017,0x04e on irq 47
hda: attached ide-disk driver.
hda: 31719424 sectors (16240 MB) w/1KiB Cache, CHS=33565/15/63
Partition check:
/dev/ide/host0/bus0/target0/lun0: [PTBL] [1974/255/63] p1
mmc2 Driver $Id: mmc2.c,v 1.7 2011/06/19 11:49:29 rhabarber1848 Exp $
mmc2: Hardware init
mmc: Card init
mmc: Card init *OK1*
mmc: Card init *OK2*
mmc: Media found Size = 995328, hardsectsize = 512, sectors = 1990656
mmca: p1 p2
/dev/ide/host0/bus0/target0/lun0/disc:
setting 32-bit IO_support flag to 1
setting drive write-caching to 0 (off)
setting standby to 60
(5 minutes 0 seconds)
IO_support\0x09= 1 (32-bit)
starting /var/etc/init.d/S07mounts ...
/var/etc/init.d/07mounts generated from neutrino ide/mmc/hdd drive-setup
13.06.2012 - 19:56:45
1.90 do not edit!
mount: using /var/etc/fstab
mount: mounting /dev/ide/host0/bus0/target0/lun0/part1 on /mnt/hdd1 failed: No such device
mount: mounting /dev/mmc/disc0/part2 on /mnt/mmc failed: No such device
swapon: using /var/etc/fstab
Adding Swap: 65552k swap-space (priority -1)
Edit: weil ich das gerade lese: Die Module liegen natürlich in /lib/modules und nicht in /var/lib/modules wie es im ersten log-Ausschnitt steht. Warum das da so läuft, habe ich keine Ahnung.
Edit2: Aber ich kann über die IDE/MMC Untermenus die Partitionen erfolgreich einbinden.
Code: Alles auswählen
/var # mount
rootfs on / type rootfs (rw)
/dev/root on / type squashfs (ro)
none on /dev type devfs (rw)
proc on /proc type proc (rw)
tmp on /tmp type tmpfs (rw)
/dev/mtdblock/3 on /var type jffs2 (rw)
/dev/ide/host0/bus0/target0/lun0/part1 on /mnt/hdd1 type ext2 (rw,sync)
/dev/mmc/disc0/part2 on /mnt/mmc type ext2 (rw,sync)
Zuletzt geändert von msrx111 am Mittwoch 13. Juni 2012, 20:42, insgesamt 1-mal geändert.
-
- Contributor
- Beiträge: 1688
- Registriert: Donnerstag 17. Februar 2005, 20:24
Re: [Patch] Beseitigung von Speicherlecks im IDE-Menü
Ich habe die Postings zu diesem Thema mal abgetrennt.
Mist, da scheint wohl beim Löschen der Elemente aus den Vektoren etwas schief zu laufen. Ich kann aber irgendwie keinen Fehler entdecken.msrx111 hat geschrieben:Aber beim verlassen des Menu ereignet sich ein segmentation fault. Das ist sowohl bei der Ide als auch bei mmc/sd Menu so...
-
- Contributor
- Beiträge: 1688
- Registriert: Donnerstag 17. Februar 2005, 20:24
Re: [Patch] Beseitigung von Speicherlecks im IDE-Menü
Noch eine Kleinigkeit. In drive_setup.cpp (derzeit v1.90) wird in Zeile 724 ein String namens m_name angelegt und nie wieder benutzt. Ich schätze mal, dass in Zeile 726 eigentlich m_name.c_str() statt mmc_modules.c_str() stehen muss.
-
- Contributor
- Beiträge: 1509
- Registriert: Donnerstag 27. Dezember 2007, 12:59
Re: [Patch] Beseitigung von Speicherlecks im IDE-Menü
In Zeile 822 und 3992 könnte man auch auf .empty() prüfen statt auf .size()
Das wäre in jedem Fall effizienter.
Das wäre in jedem Fall effizienter.
Code: Alles auswählen
822 if (v_fs_item.size() > 0) //separator format options
3992 if (v_export_entries.size() != 0)
-
- Administrator
- Beiträge: 2675
- Registriert: Donnerstag 28. September 2006, 19:18
Re: [Patch] Beseitigung von Speicherlecks im IDE-Menü
Danke für die Hinweise. Den besagten Kleinkram hab ich grad geändert. Und wenn ich schon mal dabei bin...
-
- Contributor
- Beiträge: 1688
- Registriert: Donnerstag 17. Februar 2005, 20:24
Re: [Patch] Beseitigung von Speicherlecks im IDE-Menü
Diese Änderung habe ich in letzter Zeit auch öfter im Coolstream GIT gesehen. Bringt das eigentlich wirklich irgendetwas?GetAway hat geschrieben:In Zeile 822 und 3992 könnte man auch auf .empty() prüfen statt auf .size()
Das wäre in jedem Fall effizienter.
-
- Administrator
- Beiträge: 2675
- Registriert: Donnerstag 28. September 2006, 19:18
Re: [Patch] Beseitigung von Speicherlecks im IDE-Menü
Ist zumindest sauberer. Man nutzt halt die Vektorfunktionen aus.Gaucho316 hat geschrieben:Diese Änderung habe ich in letzter Zeit auch öfter im Coolstream GIT gesehen. Bringt das eigentlich wirklich irgendetwas?GetAway hat geschrieben:In Zeile 822 und 3992 könnte man auch auf .empty() prüfen statt auf .size()
Das wäre in jedem Fall effizienter.
Ich hab gestern mal angefangen allegemein etwas aufzuräumen, damit das auch mal von der Todo-Liste kommt. Ich lass' das dann Stück für Stück als Patch hier reinplätschern. Dann bitte testen und dann auch Stück für Stück ins CVS übergeben.
-
- Interessierter
- Beiträge: 95
- Registriert: Dienstag 14. Juni 2011, 17:50
- Image: eigenkompilat neutrino
- Image: eigenkompilat neutrino
Re: [Patch] Beseitigung von Speicherlecks im IDE-Menü
Hast du ja gesehen! Bin dabei....
-
- Contributor
- Beiträge: 1509
- Registriert: Donnerstag 27. Dezember 2007, 12:59
Re: [Patch] Beseitigung von Speicherlecks im IDE-Menü
Mein Handbuch sagt folgendes dazu:Gaucho316 hat geschrieben:Diese Änderung habe ich in letzter Zeit auch öfter im Coolstream GIT gesehen. Bringt das eigentlich wirklich irgendetwas?GetAway hat geschrieben:In Zeile 822 und 3992 könnte man auch auf .empty() prüfen statt auf .size()
Das wäre in jedem Fall effizienter.
Im sectionsd gibt es auch noch 4 Stellen. Vielleicht bringt es ja etwas im ms-Bereich.Using x.empty() instead of x.size() can be faster. x.size() can take linear time but x.empty() is guaranteed to take constant time.
-
- Administrator
- Beiträge: 2675
- Registriert: Donnerstag 28. September 2006, 19:18
Re: [Patch] Beseitigung von Speicherlecks im IDE-Menü
Es kommt da einiges zusammen, hier der erste: Was dann danach noch kommt baut dann daruf auf, also sollten man die weiteren Patche eigentlich darauf anwenden können!dbt hat geschrieben:...Ich lass' das dann Stück für Stück als Patch hier reinplätschern. Dann bitte testen und dann auch Stück für Stück ins CVS übergeben.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
-
- Contributor
- Beiträge: 1688
- Registriert: Donnerstag 17. Februar 2005, 20:24
Re: [Patch] Beseitigung von Speicherlecks im IDE-Menü
@dbt
Ein Speicherleck kann ich dir noch direkt nennen. Such mal nach dem Objekt namens m5. Du wirst sehen, dass das immer mit new angelegt wird. Wenn device_isActive false ist, wird es aber nicht zum Menü hinzugefügt und somit auch nie gelöscht. Das Anlegen von m5 muss also mit in das if-Statement.
Ein Speicherleck kann ich dir noch direkt nennen. Such mal nach dem Objekt namens m5. Du wirst sehen, dass das immer mit new angelegt wird. Wenn device_isActive false ist, wird es aber nicht zum Menü hinzugefügt und somit auch nie gelöscht. Das Anlegen von m5 muss also mit in das if-Statement.
-
- Administrator
- Beiträge: 2675
- Registriert: Donnerstag 28. September 2006, 19:18
Re: [Patch] Beseitigung von Speicherlecks im IDE-Menü
Gaucho316 hat geschrieben:...Objekt namens m5. ...
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
-
- Contributor
- Beiträge: 1688
- Registriert: Donnerstag 17. Februar 2005, 20:24
Re: [Patch] Beseitigung von Speicherlecks im IDE-Menü
@dbt
Ein weiteres Speicherleck habe ich noch für dich. Such mal nach new CSambaSetup. Dann findest du einen Menuforwarder, dem new CSambaSetup(...) als Target übergeben wird, das nie wieder gelöscht wird.
Ein weiteres Speicherleck habe ich noch für dich. Such mal nach new CSambaSetup. Dann findest du einen Menuforwarder, dem new CSambaSetup(...) als Target übergeben wird, das nie wieder gelöscht wird.
-
- CDK-Experte
- Beiträge: 4335
- Registriert: Donnerstag 3. April 2008, 14:05
Re: [Patch] Beseitigung von Speicherlecks im IDE-Menü
size_empty.diffGetAway hat geschrieben:Im sectionsd gibt es auch noch 4 Stellen. Vielleicht bringt es ja etwas im ms-Bereich.
-
- Contributor
- Beiträge: 1688
- Registriert: Donnerstag 17. Februar 2005, 20:24
Re: [Patch] Beseitigung von Speicherlecks im IDE-Menü
@dbt
Wenn ich das richtig überblicke, hast du mit den ersten beiden Patches erst einmal die Methode showHddSetupMain() aufgeräumt, richtig? Ich habe das mal in Ruhe durchgeguckt und mit den Sachen verglichen, die ich in meinem Patch in die Lösch-Vektoren schiebe. Das sieht recht gut aus, allerdings hast du vergessen, mmc_notifier im Konstruktor auf NULL zu setzen und im Destruktor zu löschen. Testen kann ich es ja wie gesagt nicht.
Wenn ich das richtig überblicke, hast du mit den ersten beiden Patches erst einmal die Methode showHddSetupMain() aufgeräumt, richtig? Ich habe das mal in Ruhe durchgeguckt und mit den Sachen verglichen, die ich in meinem Patch in die Lösch-Vektoren schiebe. Das sieht recht gut aus, allerdings hast du vergessen, mmc_notifier im Konstruktor auf NULL zu setzen und im Destruktor zu löschen. Testen kann ich es ja wie gesagt nicht.
-
- Administrator
- Beiträge: 2675
- Registriert: Donnerstag 28. September 2006, 19:18
Re: [Patch] Beseitigung von Speicherlecks im IDE-Menü
Richtig!Gaucho316 hat geschrieben:...Wenn ich das richtig überblicke, hast du mit den ersten beiden Patches erst einmal die Methode showHddSetupMain() aufgeräumt, richtig?
Sollte damit auch passen. Die nächsten Happen sind wohl etwas größer, aber sowie Zeit dafür ist, kommt noch einiges nach....vergessen, mmc_notifier im Konstruktor auf NULL zu setzen und im Destruktor zu löschen. Testen kann ich es ja wie gesagt nicht.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
-
- Contributor
- Beiträge: 1688
- Registriert: Donnerstag 17. Februar 2005, 20:24
Re: [Patch] Beseitigung von Speicherlecks im IDE-Menü
Und schon sind wieder 2 Monate um. Hat das inzwischen mal jemand ausprobiert?
-
- Contributor
- Beiträge: 1688
- Registriert: Donnerstag 17. Februar 2005, 20:24
Re: [Patch] Beseitigung von Speicherlecks im IDE-Menü
Ich denke, die Patches können eingecheckt werden. Vom Angucken her sehen die gut aus. Testen tut's ja wohl niemand.
Re: [Patch] Beseitigung von Speicherlecks im IDE-Menü
Hi,
ich würde es ja mal einbauen (testen müssen dann andere) ...
Aber welche Patches und Diffs müssen denn jetzt nacheinander eingespielt werden ?
Vielleicht posted ja mal jemand eine Anleitung "für Doofe" ...
MfG
ich würde es ja mal einbauen (testen müssen dann andere) ...
Aber welche Patches und Diffs müssen denn jetzt nacheinander eingespielt werden ?
Vielleicht posted ja mal jemand eine Anleitung "für Doofe" ...
MfG
-
- Contributor
- Beiträge: 1688
- Registriert: Donnerstag 17. Februar 2005, 20:24
Re: [Patch] Beseitigung von Speicherlecks im IDE-Menü
Spiel einfach
nacheinander ein. Wenn das IDE-Menü dann noch genauso funktioniert wie vorher, ist alles gut.
Re: [Patch] Beseitigung von Speicherlecks im IDE-Menü
Hi,Gaucho316 hat geschrieben:Spiel einfach nacheinander ein. Wenn das IDE-Menü dann noch genauso funktioniert wie vorher, ist alles gut.
und was ist mit den Patches vom Anfang dieses Themas ?
COnOffNotifier-Patch
Patch fürs IDE-Menü
size_empty.diff
MfG