[fprint] [PATCH 0/8] [RFC] Build drivers as shared objects

Bastien Nocera hadess at hadess.net
Tue Oct 9 07:08:44 PDT 2012


On Tue, 2012-10-09 at 09:13 +0530, Kunal Gangakhedkar wrote:
> Resending - since earlier mail got blocked from the list due to size
> >40KB.
> 
>  
> 
> On Monday 08 Oct 2012 5:54:06 PM Bastien Nocera wrote:
> 
> > On Mon, 2012-10-08 at 21:03 +0530, Kunal Gangakhedkar wrote:
> 
> > > I'm of the opinion that the less amount of un-necessary code
> loaded in
> 
> > > memory, the better it is.
> 
> > > 
> 
> > If it's not actually executed, the code stays on the disk, not in
> 
> > memory. Modern OSes will do that.
> 
>  
> 
> As per my understanding, the moment fp_init() is called, entire
> libfprint (with all the baggage of drivers) is loaded into memory -
> and not piece-by-piece. 

A library will not be handled the same way as a dlopened() library.


> This is exactly what I'm pitching for with my patchset that we split
> it up so that it can be loaded with only required pieces.

You're working from the wrong assumptions.

> What parts of the memory image are swapped out are not in our control,
> but they are still executable memory image.
> 
>  
> 
> Also, the primary user of libfprint is still fprintd - a daemon
> started at boot time. If it keeps pinging the device for fingerprint
> status (I don't know - haven't looked at fprintd or any of the GUIs
> yet), libfprint is very much active in memory.

fprintd isn't started on boot, it's auto-started through D-Bus when
needed, and quits after 30 seconds of inactivity. 99% of the time, it's
not running.

> I think I did mention in my first mail that this can be done by using
> a post-install script with a separate program.

Yes, which adds complexity.

> You don't need to do it every so often, do you?
> 
> How many times do you change your fingerprint device to require
> enumeration with drivers?

The enumeration is done every time fprintd starts, so you can use the
finger print reader that's actually plugged in to the computer.

> Again, I'm trying to stick to UNIX philosophy - each program does one
> and only one job but does it well.

I don't see what that has to do with anything.

> > See the point I mentioned about the internal drivers API not being
> with
> 
> > any guarantees of stability.
> 
>  
> 
> *Somebody* has to maintain the drivers whenever there is change in
> internal API - whether they're built into libfprint or as separate
> modules.
> 
> So, this point is moot in my PoV.

The point is moot because you're not the maintainer of that code.

> Please note that I'm *not* suggesting or even supporting out-of-tree
> development here.

Well, what's the point then?

> > I'm willing to take patches to reduce the complexity of the
> different
> 
> > driver modules.
> 
>  
> 
> I hope it will come in future, but like I said, it needs cleaner
> interfaces and data structures. Consider this patchset as the
> beginning ;)

Sigh. Then no.

> BTW, I'm not asking it to be merged in master just now.
> 
> I expect people to just take a look at it right now - hence, calling
> it RFC.

Cheers



More information about the fprint mailing list