Linux kernel compatability

Alfred Perlstein alfred at freebsd.org
Mon Jan 3 21:18:42 UTC 2011


* Jeff Roberson <jroberson at jroberson.net> [110103 12:51] wrote:
> Hello Folks,
> 
> Some of you may have seen my infiniband work proceed in svn.  It is coming 
> to a close soon and I will be integrating it into current.  I have a few 
> patches to the kernel to send for review but I wanted to bring up the KPI 
> wrapper itself for discussion.
> 
> The infiniband port has been done by creating a 10,000 line KPI 
> compatability layer.  With this layer the vast majority of the driver code 
> runs unmodified.  The exceptions are anything that interfaces with skbs 
> and most of the code that deals with network interfaces.
> 
> Some examples of things supported by the wrapper:
> 
> atomics, types, bitops, byte order conversion, character devices, pci 
> devices, dma, non-device files, idr tables, interrupts, ioremap, hashes, 
> kobjects, radix trees, lists, modules, notifier blocks, rbtrees, rwlock, 
> rwsem, semaphore, schedule, spinlocks, kalloc, wait queues, workqueues, 
> timers, etc.
> 
> Obviously a complete wrapper is impossible and I only implemented the 
> features that I needed.  The build is accomplished by pointing the linux 
> compatible code at sys/ofed/include/ which has a simulated linux kernel 
> include tree.  There are some config(8) changes to help this along as 
> well.
> 
> I have seen that some attempt at similar wrappers has been made elsewhere. 
> I wonder if instead of making each one tailored to individual components, 
> which mostly seem to be filesystems so far, should we put this in a 
> central place under compat somewhere?  Is this project doomed to be tied 
> to a single consumer by the specific nature of it?
> 
> Other comments or concerns?

I think this is really cool.  Brilliant actually.

What do you think about proposing it on some standards list as a
cross unix KPI?  That way we can see upcoming changes and maybe
have a say in pushing back on gratuitous changes that would break
our clients?

-Alfred


More information about the freebsd-arch mailing list