#3272 BLOC Trial-3: gstreamer not getting camera data
Zarro Boogs per Child
bugtracker at laptop.org
Mon Sep 17 14:33:41 EDT 2007
#3272: gstreamer not getting camera data
------------------------------+---------------------------------------------
Reporter: erikb | Owner: dilinger
Type: defect | Status: new
Priority: blocker | Milestone: Trial-3
Component: camera-activity | Version: Development build as of this date
Resolution: | Keywords:
Verified: 0 |
------------------------------+---------------------------------------------
Comment(by dilinger):
Replying to [comment:7 corbet]:
> OK...I've finally gotten my way past the activation gauntlet on my B3 to
look at this a bit more. The camera driver has a module parameter
(alloc_bufs_at_load) which causes it to allocate its DMA buffers when the
module is loaded; it then hangs on to those buffers with both hands. This
helps in memory-constrained situations; the DMA buffers have to be
physically contiguous, and that gets hard to arrange as memory gets tight.
The OLPC builds ship with this parameter turned on in
/etc/modprobe.d/olpc.conf.dist.
Why would we be loading or enabling the driver in a memory-constrained
situation? I'm a fan of allocating the DMA buffers on load by default; if
cafe_ccic is enabled, the hardware is presumably there. I don't see the
point in attempting to wait until the camera device is actually opened;
that's a lot more failure prone.
>
> HOWEVER: somewhere along the way somebody changed the kernel config to
build the driver directly into the kernel. So modprobe never gets into
the picture, and that parameter does not get set. As a result, the camera
driver will be trying to allocate DMA buffers every time a camera
application starts up - and, when memory gets fragmented, that fails.
Yep, that someone was me. We really don't want to be allocating DMA
buffers every time we start up, and I see no reason why anyone else would
want to.
>
> The solution is to ensure that this parameter is set at boot time.
Probably OLPC should just carry a patch in its tree to turn on
alloc_bufs_at_load by default. That's *not* a change that I would be able
to merge upstream, but it clearly makes sense in this situation.
Why not? Does anyone else but us use cafe_ccic?
--
Ticket URL: <https://dev.laptop.org/ticket/3272#comment:11>
One Laptop Per Child <https://dev.laptop.org>
OLPC bug tracking system
More information about the Bugs
mailing list