[Prev][Next][Index][Thread]

USB kmem_caches



Hi
I am looking at porting the Linux driver for the UHCI host controller onto
a custom kernel. We have developed a soft real-time kernel using OSKIT for
embedded systems. Since we need to capture images for some of the
applications we have also ported the Linux BTTV driver to the kernel.
Currently we are porting the USB code from 2.2.18 onto the kernel.

Now my current problem is this. The UHCI driver (uhci.c) creates several
kernel slab caches which are cache-aligned etc etc for creating objects.
Some of these are uhci_td_cachep, uhci_qh_cachep etc. Now currently we
have not developed any memory management schema in our kernel, and treat
memory as a flat contiguos region without any fancy
segmentation/paging/allocation algorithms enabled. (Dirty yes, but it
seems to works rather well :)

My question is this: how would efficiency be affected if I were to simply
malloc all these objects from my flat memory model rather than create the
fancy caches ( we obviously dont have a slab allocator working here!). One
issue that immediately comes to mind is fragmentation, but perhpas that
wont be a serious problem since we will be allocating(and freeing) some
very specific structures. How badly would performance be affected in this
case? I am eventually looking at porting the OV511 driver to the kernel,
and performance (in terms of frame rate) is an issue we would take
seriously. (We are typically looking forward to > 15 fps).

Some help/pointers/discussion in this regard would definitely be
appreciated.
Thanks

Abheek

------------------------------------------------------------------------------
Abheek Anand

Final Year B.Tech,				abheek@cse.iitd.ac.in
Computer Science and Engineering,		abheek@bigfoot.com
IIT - Delhi
India

------------------------------------------------------------------------------



Follow-Ups: