Hmm, this clearly is a driver bug. Try the ivtv trunk (use it for 
encoding only, decoding is still flaky in that version). I ripped out 
dynamic allocation completely from that version, so you should be OK 
with that. But if you are also using TV-out, then you'd better wait 
until I finish the rewrite.

        Hans


On Monday 13 November 2006 21:49, Jelle wrote:
> Hi, I've been getting get the 'No memory on buffer alloc' on a busy
> mythtv box (2x ivtv + 1x hdhomerun + transcoding&commflagging), and I
> know I'm using i ivtv_dynbuf=0, but I still got those messages. Then
> I found it didn't allocate the max, even with dynbuf, so I made this
> patch:
>
> ====================================================
> --- driver/ivtv-queue.c (revision 3567)
> +++ driver/ivtv-queue.c (working copy)
> @@ -1008,7 +1008,7 @@
>
>         /* allocate stream buffers */
>         if (s->buffers && ivtv_init_queues_nolock(itv,
> -                                 streamtype, s->buf_min, s->bufsize)
> < 0) { +                                 streamtype,
> (itv->options.dynbuf) ? s->buf_min : s->buf_max, s->bufsize) < 0) {
>                 IVTV_ERR("Couldn't allocate buffers for %s stream\n",
>                               ivtv_stream_name(streamtype));
> ====================================================
>
> But now I still sometimes get that message, and it doesn't make sense
> to me.
>
> And I'm using 'vmalloc=192M', so I don't think I should be seeing
> this at all:
>
> Nov 13 14:21:55 oxygen ivtv0: All encoder MPEG stream buffers are
> full. Dropping data.
> Nov 13 14:21:55 oxygen ivtv0: Cause: the application is not reading
> fast enough.
> Nov 13 14:21:57 oxygen ivtv1: All encoder MPEG stream buffers are
> full. Dropping data.
> Nov 13 14:21:57 oxygen ivtv1: Cause: the application is not reading
> fast enough.
> Nov 13 14:28:17 oxygen ivtv0-osd warning: Need to adjust to width 720
> src_w 720 dst_w 650 src_x 0 dst_x 35
> Nov 13 14:28:17 oxygen ivtv0-osd warning: Need to adjust to height
> 480 src_h 480 dst_h 448 src_y 0 dst_y 16
> Nov 13 14:28:17 oxygen ivtv0-osd warning: Source video: Interlaced
> Nov 13 14:28:17 oxygen ivtv0 warning: Enable video output
> Nov 13 14:30:41 oxygen ivtv0-osd warning: Need to adjust to width 528
> src_w 528 dst_w 650 src_x 0 dst_x 35
> Nov 13 14:30:41 oxygen ivtv0-osd warning: Need to adjust to height
> 480 src_h 480 dst_h 448 src_y 0 dst_y 16
> Nov 13 14:30:41 oxygen ivtv0-osd warning: Source video: Interlaced
> Nov 13 14:30:41 oxygen ivtv0 warning: Enable video output
> Nov 13 14:32:22 oxygen ivtv1: All encoder MPEG stream buffers are
> full. Dropping data.
> Nov 13 14:32:22 oxygen ivtv1: Cause: the application is not reading
> fast enough.
> Nov 13 14:34:04 oxygen ivtv1: All encoder MPEG stream buffers are
> full. Dropping data.
> Nov 13 14:34:04 oxygen ivtv1: Cause: the application is not reading
> fast enough.
> Nov 13 14:37:24 oxygen ivtv1: All encoder MPEG stream buffers are
> full. Dropping data.
> Nov 13 14:37:24 oxygen ivtv1: Cause: the application is not reading
> fast enough.
> Nov 13 15:36:21 oxygen ivtv-enc: page allocation failure. order:4,
> mode:0xd0 Nov 13 15:36:21 oxygen [<c01467bc>]
> __alloc_pages+0x1e7/0x2bd Nov 13 15:36:21 oxygen [<c0159a12>]
> kmem_getpages+0x2c/0x97
> Nov 13 15:36:21 oxygen [<c015a68c>] cache_grow+0xac/0x153
> Nov 13 15:36:21 oxygen [<c015a880>] cache_alloc_refill+0x14d/0x1d4
> Nov 13 15:36:21 oxygen [<c015ac56>] __kmalloc+0x6f/0x7f
> Nov 13 15:36:21 oxygen [<f4c86514>] ivtv_init_buffer+0x35/0x1b2
> [ivtv] Nov 13 15:36:21 oxygen [<f4c871d5>]
> enc_gather_free_buffers+0x1b9/0x205 [ivtv]
> Nov 13 15:36:21 oxygen [<c011c4d9>] __wake_up+0x38/0x4e
> Nov 13 15:36:21 oxygen [<f4c92c37>] ivtv_sched_DMA+0x43d/0x958 [ivtv]
> Nov 13 15:36:21 oxygen [<c011c440>] default_wake_function+0x0/0xc
> Nov 13 15:36:21 oxygen [<c011c440>] default_wake_function+0x0/0xc
> Nov 13 15:36:21 oxygen [<c0104bb3>] do_IRQ+0x6b/0xb4
> Nov 13 15:36:21 oxygen [<f4c9631e>] enc_work_handler+0x2d/0x2f [ivtv]
> Nov 13 15:36:21 oxygen [<f4c97879>] ivtv_enc_thread+0x12f/0x1f1
> [ivtv] Nov 13 15:36:21 oxygen [<c0133716>]
> autoremove_wake_function+0x0/0x43 Nov 13 15:36:21 oxygen [<c0102a7a>]
> ret_from_fork+0x6/0x1c
> Nov 13 15:36:21 oxygen [<c0133716>] autoremove_wake_function+0x0/0x43
> Nov 13 15:36:21 oxygen [<f4c9774a>] ivtv_enc_thread+0x0/0x1f1 [ivtv]
> Nov 13 15:36:21 oxygen [<c0101049>] kernel_thread_helper+0x5/0xb
> Nov 13 15:36:21 oxygen Mem-info:
> Nov 13 15:36:21 oxygen DMA per-cpu:
> Nov 13 15:36:21 oxygen cpu 0 hot: high 0, batch 1 used:0
> Nov 13 15:36:21 oxygen cpu 0 cold: high 0, batch 1 used:0
> Nov 13 15:36:21 oxygen cpu 1 hot: high 0, batch 1 used:0
> Nov 13 15:36:21 oxygen cpu 1 cold: high 0, batch 1 used:0
> Nov 13 15:36:21 oxygen DMA32 per-cpu: empty
> Nov 13 15:36:21 oxygen Normal per-cpu:
> Nov 13 15:36:21 oxygen cpu 0 hot: high 186, batch 31 used:153
> Nov 13 15:36:21 oxygen cpu 0 cold: high 62, batch 15 used:30
> Nov 13 15:36:21 oxygen cpu 1 hot: high 186, batch 31 used:90
> Nov 13 15:36:21 oxygen cpu 1 cold: high 62, batch 15 used:48
> Nov 13 15:36:21 oxygen HighMem per-cpu: empty
> Nov 13 15:36:21 oxygen Free pages:      108592kB (0kB HighMem)
> Nov 13 15:36:21 oxygen Active:73727 inactive:29291 dirty:2985
> writeback:250 unstable:0 free:27148 slab:74566 mapped:7280
> pagetables:328 Nov 13 15:36:21 oxygen DMA free:3380kB min:68kB
> low:84kB high:100kB active:4524kB inactive:0kB present:16384kB
> pages_scanned:129 all_unreclaimable? no
> Nov 13 15:36:21 oxygen lowmem_reserve[]: 0 0 816 816
> Nov 13 15:36:21 oxygen DMA32 free:0kB min:0kB low:0kB high:0kB
> active:0kB inactive:0kB present:0kB pages_scanned:0
> all_unreclaimable? no Nov 13 15:36:21 oxygen lowmem_reserve[]: 0 0
> 816 816
> Nov 13 15:36:21 oxygen Normal free:105212kB min:3620kB low:4524kB
> high:5428kB active:290384kB inactive:117164kB present:835584kB
> pages_scanned:7 all_unreclaimable? no
> Nov 13 15:36:21 oxygen lowmem_reserve[]: 0 0 0 0
> Nov 13 15:36:21 oxygen HighMem free:0kB min:128kB low:128kB
> high:128kB active:0kB inactive:0kB present:0kB pages_scanned:0
> all_unreclaimable? no Nov 13 15:36:21 oxygen lowmem_reserve[]: 0 0 0
> 0
> Nov 13 15:36:21 oxygen DMA: 169*4kB 52*8kB 9*16kB 17*32kB 1*64kB
> 0*128kB 0*256kB 1*512kB 1*1024kB 0*2048kB 0*4096kB = 3380kB
> Nov 13 15:36:21 oxygen DMA32: empty
> Nov 13 15:36:21 oxygen Normal: 17983*4kB 3784*8kB 158*16kB 7*32kB
> 0*64kB 0*128kB 1*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 105212kB
> Nov 13 15:36:21 oxygen HighMem: empty
> Nov 13 15:36:21 oxygen Swap cache: add 4727, delete 4727, find
> 9675/10246, race 0+53
> Nov 13 15:36:21 oxygen Free swap  = 1492992kB
> Nov 13 15:36:21 oxygen Total swap = 1493976kB
> Nov 13 15:36:21 oxygen Free swap:       1492992kB
> Nov 13 15:36:21 oxygen 212992 pages of RAM
> Nov 13 15:36:21 oxygen 0 pages of HIGHMEM
> Nov 13 15:36:21 oxygen 3538 reserved pages
> Nov 13 15:36:21 oxygen 28464 pages shared
> Nov 13 15:36:21 oxygen 0 pages swap cached
> Nov 13 15:36:21 oxygen 2960 pages dirty
> Nov 13 15:36:21 oxygen 275 pages writeback
> Nov 13 15:36:21 oxygen 7280 pages mapped
> Nov 13 15:36:21 oxygen 74566 pages slab
> Nov 13 15:36:21 oxygen 328 pages pagetables
> Nov 13 15:36:21 oxygen ivtv0 warning: No memory on buffer alloc!
> Nov 13 15:36:21 oxygen ivtv0 warning: Needed 20480 bufs for encoder
> MPEG stream, received 0 (buffers free 0, dma 0, full 201)
>
>
> _______________________________________________
> ivtv-devel mailing list
> [email protected]
> http://ivtvdriver.org/mailman/listinfo/ivtv-devel

_______________________________________________
ivtv-devel mailing list
[email protected]
http://ivtvdriver.org/mailman/listinfo/ivtv-devel

Reply via email to