Re: Linux 2.6 and LiS 2.18 vs 2.16.18

dan_gora <[email protected]>
Newsgroups gmane.linux.kernel.streams
Message-ID <[email protected]>
--- LOUVET Eric <[email protected]> wrote:

> 
> 
> Hi Dan, without willing to enter into industrial secrets, may I ask
> you 
> a simple question ....
> 
> What amount of effort did it need to port LiS in 64 bits linux and
> your 
> drivers ??? just to get streams working may be, number of persons,
> time 
> wasted ...
> 

I would say that porting LiS to the various distros took about a week
to 10 days from first principals.  LiS had already been nominally
ported to linux 2.6, there were just a few kinks along the way for
the various distros and minor kernel versions.  We didn't run into
any functional bugs with LiS, it was 99% just a matter of getting it
to compile and load.  Once that happened, it was pretty smooth
sailing.

As far as our drivers, I ported 7 products in about 30 days with some
help from one of my co-workers with the installation scripts (thanks,
mark!).  BUT, and this is a big BUT (excuse the pun...), all of our
products had already long been ported to other 64 bit architectures
(sparc64 and HPUX 64).

Most of the work was just moving all of our Makefiles to use the new
kbuild nonsense and tweaks for installation scripts (why the various
distros can't all settle on where the /etc/rc2.d  and init.d
directories should go is beyond me, different _is_ better).  You also
have to make sure that you don't call any linux kernel entry points
directly but use the LiS wrappers (watch out for bcopy/memcpy,
bzero/memset! use __wrap_memcpy, etc...).  This is for the 32 bit
linux 2.6 where you have to worry about the -mregparm stuff.

So, if you've already ported to sparc 64 bits or some other 64 bit
arch, you shouldn't have too much trouble.  The first one is the hard
one, after that, it's mostly cut and paste.  If you've never done a
64 bit port before, watch those 'longs' and pointers inside
structures!

I'd like to release our LiS changes, but it's really time-permitting,
and not everything is working yet.  For example, you can't set any of
the debugging flags with the 'streams -d 0xXXXXXXXX' command anymore
because I had to take out one of the drivers (ldl?  loop?  I can't
remember off hand), because I had to rip out the
syscalls-from-inside-the-kernel stuff from linux-mdep.c (see my
previous post about that little adventure).  I'd like to rework that
stuff a bit so that we don't lose functionality before releasing it
for other people's use.

I am of course more than willing to answer any questions you may
have, just post 'em and I'll try and get to 'em.

thanks-
dan
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.