Autor Thema: mediasrv: page allocation failure  (Gelesen 5173 mal)

MarkusEh

  • Newbie
  • *
  • Beiträge: 37
    • Profil anzeigen
mediasrv: page allocation failure
« am: November 16, 2012, 12:12:56 Vormittag »
Hallo,

ich habe den Fehler: "mediasrv: page allocation failure".
Ich habe ein sheeva plug mit debian sqeeze, Linux debian 2.6.36 #3 PREEMPT Sun Dec 5 16:26:45 GMT 2010 armv5tel GNU/Linux .
Free zeigt             total       used       free     shared    buffers     cached
Mem:        513292     396804     116488          0      82932     159816
-/+ buffers/cache:     154056     359236
Swap:            0          0          0
an, es sollte also noch genug Speicher da sein. Im syslog steht:
Nov 15 22:43:12 debian kernel: mediasrv: page allocation failure. order:5, mode:0x40d0
Nov 15 22:43:12 debian kernel: [<c0033698>] (unwind_backtrace+0x0/0xec) from [<c00a151c>] (__alloc_pages_nodemask+0x4c0/0x5a0)
Nov 15 22:43:12 debian kernel: [<c00a151c>] (__alloc_pages_nodemask+0x4c0/0x5a0) from [<c00a160c>] (__get_free_pages+0x10/0x3c)
Nov 15 22:43:12 debian kernel: [<c00a160c>] (__get_free_pages+0x10/0x3c) from [<c00c89d0>] (__kmalloc+0x3c/0x1dc)
Nov 15 22:43:12 debian kernel: [<c00c89d0>] (__kmalloc+0x3c/0x1dc) from [<c0303b1c>] (proc_submiturb+0x5b8/0xaa8)
Nov 15 22:43:12 debian kernel: [<c0303b1c>] (proc_submiturb+0x5b8/0xaa8) from [<c030511c>] (usbdev_ioctl+0xbe4/0x1170)
Nov 15 22:43:12 debian kernel: [<c030511c>] (usbdev_ioctl+0xbe4/0x1170) from [<c00d9cc4>] (vfs_ioctl+0x20/0x3c)
Nov 15 22:43:12 debian kernel: [<c00d9cc4>] (vfs_ioctl+0x20/0x3c) from [<c00da41c>] (do_vfs_ioctl+0x540/0x598)
Nov 15 22:43:12 debian kernel: [<c00da41c>] (do_vfs_ioctl+0x540/0x598) from [<c00da4a8>] (sys_ioctl+0x34/0x54)
Nov 15 22:43:12 debian kernel: [<c00da4a8>] (sys_ioctl+0x34/0x54) from [<c002e9a0>] (ret_fast_syscall+0x0/0x2c)
Nov 15 22:43:12 debian kernel: Mem-info:
Nov 15 22:43:12 debian kernel: Normal per-cpu:
Nov 15 22:43:12 debian kernel: CPU    0: hi:  186, btch:  31 usd: 158
Nov 15 22:43:12 debian kernel: active_anon:20710 inactive_anon:20749 isolated_anon:0
Nov 15 22:43:12 debian kernel: active_file:13879 inactive_file:51954 isolated_file:0
Nov 15 22:43:12 debian kernel: unevictable:0 dirty:668 writeback:2109 unstable:0
Nov 15 22:43:12 debian kernel: free:15012 slab_reclaimable:2038 slab_unreclaimable:1250
Nov 15 22:43:12 debian kernel: mapped:3844 shmem:1875 pagetables:387 bounce:0
Nov 15 22:43:12 debian kernel: Normal free:60048kB min:2884kB low:3604kB high:4324kB active_anon:82840kB inactive_anon:82996kB active_file:55516kB inactive_file:207816kB unevictable:0kB isolated(anon):0kB isolated(file):0kB present:520192kB mlocked:0kB dirty:2672kB writeback:8436kB mapped:15376kB shmem:7500kB slab_reclaimable:8152kB slab_unreclaimable:5000kB kernel_stack:952kB pagetables:1548kB unstable:0kB bounce:0kB writeback_tmp:0kB pages_scanned:0 all_unreclaimable? no
Nov 15 22:43:12 debian kernel: lowmem_reserve[]: 0 0
Nov 15 22:43:12 debian kernel: Normal: 1202*4kB 977*8kB 1398*16kB 693*32kB 39*64kB 3*128kB 0*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 60048kB
Nov 15 22:43:12 debian kernel: 67708 total pagecache pages
Nov 15 22:43:12 debian kernel: 0 pages in swap cache
Nov 15 22:43:12 debian kernel: Swap cache stats: add 0, delete 0, find 0/0
Nov 15 22:43:12 debian kernel: Free swap  = 0kB
Nov 15 22:43:12 debian kernel: Total swap = 0kB
Nov 15 22:43:12 debian kernel: 131072 pages of RAM
Nov 15 22:43:12 debian kernel: 15388 free pages
Nov 15 22:43:12 debian kernel: 2749 reserved pages
Nov 15 22:43:12 debian kernel: 3050 slab pages
Nov 15 22:43:12 debian kernel: 58315 pages shared
Nov 15 22:43:12 debian kernel: 0 pages swap cached

- Markus

Sundtek

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 8317
    • Profil anzeigen
Re:mediasrv: page allocation failure
« Antwort #1 am: November 16, 2012, 11:29:19 Vormittag »
Der DMA Speicher war zu diesem Zeitpunkt knapp auf dem Scheevaplug, sodass der Kernel keinen Speicher für die USB Übertragung allokieren konnte? Eventuell hat VDR oder aehnliches gerade etwas im Hintergrund bearbeitet
« Letzte Änderung: November 16, 2012, 11:34:32 Vormittag von Sundtek »
Failure is a good thing! I'll fix it

MarkusEh

  • Newbie
  • *
  • Beiträge: 37
    • Profil anzeigen
Re:mediasrv: page allocation failure
« Antwort #2 am: November 16, 2012, 11:07:52 Nachmittag »
Hallo,

ja, VDR wollte eine Aufnahme machen. Andererseits: Es waren ja noch ein paar 100 MB Speicher frei.
Der Kernel sollte doch zusammenhängende Speicherbereiche bereitstellen können (?). Muß ich dieses Kernelfeature explizit aktivieren?

Hätte ich eine andere Möglichkeit, den fehlerfreien betrieb von mediaserv sicherzustellen? Wieviel DMA Speicher braucht mediaserv denn? Könnte man mediaserv (über eine Option) dazu bringen, diesen Speicher ein mal anzufordern und dann nicht mehr freizugeben?

- Markus

Sundtek

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 8317
    • Profil anzeigen
Re:mediasrv: page allocation failure
« Antwort #3 am: November 16, 2012, 11:37:35 Nachmittag »
Wir haben eine Preallokierung in einem Kernelmodul http://sundtek.de/support/khelper.tar.gz

Sobald es geladen wird einfach Mediasrv neu starten, dieser erkennt die Schnittstellen und bindet diese automatisch ein.

Zu dem Zeitpunkt gab's einfach keine durchgehenden 15k Kernelspeicher bei dir.
Failure is a good thing! I'll fix it

MarkusEh

  • Newbie
  • *
  • Beiträge: 37
    • Profil anzeigen
Re:mediasrv: page allocation failure
« Antwort #4 am: November 17, 2012, 06:26:30 Nachmittag »
Hallo,

Hat jemand dieses Kernel Modul bereits auf dem sheeva-plug installiert?
Ich habe es versucht, aber
/lib/modules/2.6.36/build
ist bei mir nach
/mnt/shared/data/new-it/kernels/source/linux-2.6.36

verlinkt. Und da ist nichts, diesen Mount habe ich nicht.

- Markus

MarkusEh

  • Newbie
  • *
  • Beiträge: 37
    • Profil anzeigen
Re:mediasrv: page allocation failure
« Antwort #5 am: November 18, 2012, 12:12:23 Vormittag »
Ich bin jetzt etwas weiter.

Ich bin vorgegangen wie hier http://www.farlock.org/sheevaplug/sheevaplug-non-standard-module-compiling/ beschrieben.
Also:
Kernel von kernel.org geholt und entpackt.
sheeva-plug spezifische .config verwendet
make ARCH=arm oldconfig
make -j4 ARCH=arm
Dann das makefile von khelper editiert, SDIR und KDIR auf diesen Kernel verlinkt und
makeeingegeben.
Das führt zu folgendem Fehler:
rm -rf Module.symvers;
make clean
make[1]: Entering directory `/mnt/sdram/src/sundtek/khelper'
rm -rf rm usbkhelper.o .usbkhelper.o.cmd .tmp_versions modules.order usbkhelper.mod.c Module.symvers usbkhelper.mod.o .usbkhelper.mod.o.cmd .usbkhelper.ko.cmd usbkhelper.ko
make[1]: Leaving directory `/mnt/sdram/src/sundtek/khelper'
make all
make[1]: Entering directory `/mnt/sdram/src/sundtek/khelper'
make -C /usr/local/src/sundtek/kernel/linux-2.6.36 SUBDIRS=/usr/local/src/sundtek/khelper modules
make[2]: Entering directory `/mnt/sdram/src/sundtek/kernel/linux-2.6.36'

  WARNING: Symbol version dump /mnt/sdram/src/sundtek/kernel/linux-2.6.36/Module.symvers
           is missing; modules will have no dependencies and modversions.

  CC [M]  /usr/local/src/sundtek/khelper/usbkhelper.o
/usr/local/src/sundtek/khelper/usbkhelper.c: In function ‘rb_read_data’:
/usr/local/src/sundtek/khelper/usbkhelper.c:181: warning: ignoring return value of ‘copy_to_user’, declared with attribute warn_unused_result
/usr/local/src/sundtek/khelper/usbkhelper.c:182: warning: ignoring return value of ‘copy_to_user’, declared with attribute warn_unused_result
/usr/local/src/sundtek/khelper/usbkhelper.c:187: warning: ignoring return value of ‘copy_to_user’, declared with attribute warn_unused_result
/usr/local/src/sundtek/khelper/usbkhelper.c: At top level:
/usr/local/src/sundtek/khelper/usbkhelper.c:507: error: unknown field ‘ioctl’ specified in initializer
/usr/local/src/sundtek/khelper/usbkhelper.c:507: warning: initialization from incompatible pointer type
make[3]: *** [/usr/local/src/sundtek/khelper/usbkhelper.o] Fehler 1
make[2]: *** [_module_/usr/local/src/sundtek/khelper] Fehler 2
make[2]: Leaving directory `/mnt/sdram/src/sundtek/kernel/linux-2.6.36'
make[1]: *** [all] Fehler 2
make[1]: Leaving directory `/mnt/sdram/src/sundtek/khelper'
make: *** [default] Fehler 2

- Markus