[linux-dvb] [RFC-final] videobuf tree

Michael Krufky mkrufky at linuxtv.org
Sun Oct 7 00:13:30 CEST 2007


On 10/3/07, Michael Krufky <mkrufky at gmail.com> wrote:
> On 10/3/07, Ricardo Cerqueira <v4l at cerqueira.org> wrote:
> > I've tested this with a blackbird board (HVR-1300), both with the MPEG
> > encoder and analog.
> >
> > - MPEG is working fine, even after merging in Mike Krufky's and my own
> > blackbird patches for audio. No drops I can see.
> > - Raw analog video is OK
> > - Analog audio through cx88-alsa (which uses videobuf) is also fine.
> > - Playing raw and MPEG simultaneosly works (as long as raw is started
> > first, something that's also happening with the old videobuf)
> >
> > Summarizing: there's no visible performance or functional difference
> > between the new and the old videobuf implementations on the hardware I
> > have available to test.
> >
> > Reviewed-by: Ricardo Cerqueira <v4l at cerqueira.org>
>
> Ah, this is great news!
>
> I look forward to testing the new tree using cx88-blackbird, cx88-dvb
> and cx23885 over the upcoming weekend.  I'll report whether I have the
> same results as soon as I can.

I've tested the master branch under the following conditions:

1) cx88 raw analog video
2) cx88-blackbird encoded mpeg stream
3) cx88-dvb mpeg TS

I'm pleased to report that the above three tests worked out successfully.

However, cx23885 is now broken.  Upon starting a DVB stream, the
following OOPS is generated:

[  280.562598] Unable to handle kernel NULL pointer dereference at
0000000000000000 RIP:
[  280.562609]  [<ffffffff881a0931>]
:videobuf_core:videobuf_mmap_setup+0x21/0xf0
[  280.562637] PGD 204fc067 PUD 20504067 PMD 0
[  280.562642] Oops: 0000 [1] SMP
[  280.562646] CPU 1
[  280.562648] Modules linked in: binfmt_misc rfcomm l2cap bluetooth
ppdev i915 drm cpufreq_userspace cpufreq_stats cpufreq_ondemand
freq_table cpufreq_conse
rvative cpufreq_powersave tc1100_wmi sony_acpi dev_acpi pcc_acpi sbs
button ac asus_acpi backlight dock i2c_ec container battery video
nls_utf8 ntfs nls_iso8
859_1 nls_cp437 vfat fat ipv6 parport_pc lp parport fuse mt2131
s5h1409 cx88_blackbird cx2341x rtc_isl1208 ir_kbd_i2c snd_seq_dummy
snd_seq_oss dvb_pll lgdt3
30x snd_hda_intel snd_seq_midi tuner snd_hda_codec cx88_dvb
cx88_vp3054_i2c tea5767 tda8290 tuner_simple mt20xx cx23885 cx88_alsa
snd_pcm_oss snd_mixer_oss v
ideobuf_dvb snd_pcm dvb_core snd_rawmidi snd_seq_midi_event snd_seq
snd_timer snd_seq_device snd cx8800 cx8802 cx88xx soundcore pcspkr
psmouse serio_raw ir_c
ommon compat_ioctl32 i2c_algo_bit tveeprom i2c_core iTCO_wdt
iTCO_vendor_support videodev v4l2_common v4l1_compat videobuf_dma_sg
videobuf_core btcx_risc shp
chp pci_hotplug snd_page_alloc intel_agp af_packet tsdev evdev ext3
jbd mbcache sg sd_mod sr_mod cdrom usbhid hid ehci_hcd ahci libata
scsi_mod uhci_hcd e100
0 usbcore thermal processor fan fbcon tileblit font bitblit softcursor
vesafb cfbcopyarea cfbimgblt cfbfillrect capability commoncap
[  280.562748] Pid: 8369, comm: cx23885[0] dvb Not tainted 2.6.20-16-generic #2
[  280.562752] RIP: 0010:[<ffffffff881a0931>]  [<ffffffff881a0931>]
:videobuf_core:videobuf_mmap_setup+0x21/0xf0
[  280.562764] RSP: 0018:ffff81001bc21e40  EFLAGS: 00010282
[  280.562767] RAX: 0000000000000000 RBX: ffff810033bc6020 RCX: 0000000000000002
[  280.562770] RDX: 0000000000006000 RSI: 0000000000000020 RDI: ffff810033bc6020
[  280.562774] RBP: ffff810033bc6010 R08: ffff81001bc20000 R09: 0000000000000000
[  280.562778] R10: 0000001000000003 R11: ffffffff80231700 R12: ffff81001b37db98
[  280.562780] R13: 0000000000006000 R14: 0000000000000020 R15: 0000000000000002
[  280.562784] FS:  0000000000000000(0000) GS:ffff8100011e0ec0(0000)
knlGS:0000000000000000
[  280.562788] CS:  0010 DS: 0018 ES: 0018 CR0: 000000008005003b
[  280.562790] CR2: 0000000000000000 CR3: 000000002057e000 CR4: 00000000000006e0
[  280.562794] Process cx23885[0] dvb (pid: 8369, threadinfo
ffff81001bc20000, task ffff81001f152100)
[  280.562797] Stack:  000000000000006f ffffffff80265bbb
ffff81001bc21f00 ffff810033bc6020
[  280.562805]  ffff810033bc6010 ffff81001b37db98 ffff810033bc6178
ffff810033bc6020
[  280.562812]  ffff810033bc6220 ffffffff881a0a7b 000000011bc21ed0
ffffffff8028b434
[  280.562818] Call Trace:
[  280.562831]  [<ffffffff80265bbb>] thread_return+0x0/0xf5
[  280.562878]  [<ffffffff881a0a7b>]
:videobuf_core:videobuf_read_start+0x7b/0x150
[  280.562889]  [<ffffffff8028b434>] __wake_up_common+0x44/0x80
[  280.562923]  [<ffffffff882943f6>]
:videobuf_dvb:videobuf_dvb_thread+0x46/0x170
[  280.562951]  [<ffffffff882943b0>] :videobuf_dvb:videobuf_dvb_thread+0x0/0x170
[  280.562957]  [<ffffffff802a3170>] keventd_create_kthread+0x0/0x90
[  280.562968]  [<ffffffff80233fa9>] kthread+0xd9/0x120
[  280.563006]  [<ffffffff80261ec8>] child_rip+0xa/0x12
[  280.563020]  [<ffffffff802a3170>] keventd_create_kthread+0x0/0x90
[  280.563082]  [<ffffffff80233ed0>] kthread+0x0/0x120
[  280.563091]  [<ffffffff80261ebe>] child_rip+0x0/0x12
[  280.563112]
[  280.563114]
[  280.563114] Code: 8b 30 81 fe 03 10 26 12 74 17 ba 03 10 26 12 48
c7 c7 a0 1c
[  280.563129] RIP  [<ffffffff881a0931>]
:videobuf_core:videobuf_mmap_setup+0x21/0xf0
[  280.563139]  RSP <ffff81001bc21e40>
[  280.563141] CR2: 0000000000000000
[  280.563144]  <0>Bad page state in process 'less'
[  291.308190] page:ffff81003ee844d0 flags:0x0100000000000000
mapping:0000000000000000 mapcount:0 count:-1
[  291.308192] Trying to fix it up, but a reboot is needed
[  291.308194] Backtrace:
[  291.308201]
[  291.308202] Call Trace:
[  291.308242]  [<ffffffff802c1b48>] bad_page+0x58/0x90
[  291.308264]  [<ffffffff8020a1c0>] get_page_from_freelist+0x340/0x570
[  291.308362]  [<ffffffff8020f263>] __alloc_pages+0x63/0x310
[  291.308430]  [<ffffffff802089f3>] __handle_mm_fault+0x503/0xab0
[  291.308470]  [<ffffffff8022e608>] wake_up_bit+0x18/0x40
[  291.308490]  [<ffffffff80209025>] __d_lookup+0x85/0x120
[  291.308530]  [<ffffffff8026a057>] do_page_fault+0x477/0x890
[  291.308540]  [<ffffffff8020c934>] do_lookup+0x74/0x210
[  291.308569]  [<ffffffff8020cebf>] dput+0x2f/0x170
[  291.308589]  [<ffffffff80209d2b>] __link_path_walk+0xc6b/0xdc0
[  291.308609]  [<ffffffff80212841>] __do_page_cache_readahead+0xc1/0x290
[  291.308686]  [<ffffffff8026806d>] error_exit+0x0/0x84
[  291.308769]  [<ffffffff8020cbf3>] file_read_actor+0x43/0x140
[  291.308832]  [<ffffffff8020bc90>] do_generic_mapping_read+0x1c0/0x520
[  291.308842]  [<ffffffff8020cbb0>] file_read_actor+0x0/0x140
[  291.308979]  [<ffffffff80216b2c>] generic_file_aio_read+0x16c/0x1b0
[  291.309047]  [<ffffffff8020c86f>] do_sync_read+0xcf/0x120
[  291.309106]  [<ffffffff80216cd9>] vma_merge+0x169/0x240
[  291.309117]  [<ffffffff802a3350>] autoremove_wake_function+0x0/0x30
[  291.309156]  [<ffffffff8020dd02>] do_mmap_pgoff+0x692/0x820
[  291.309234]  [<ffffffff8020afbb>] vfs_read+0xdb/0x1a0
[  291.309263]  [<ffffffff802113f3>] sys_read+0x53/0x90
[  291.309303]  [<ffffffff8026111e>] system_call+0x7e/0x83
[  291.309379]


Regards,
-Mike



More information about the linux-dvb mailing list