RFC: libkse*.a in 7.0

Kris Kennaway kris at FreeBSD.org
Wed Nov 28 14:20:24 PST 2007


Julian Elischer wrote:
> Brooks Davis wrote:
>> A number of people have proposed a direction in 8.0 that would remove
>> support for the syscalls and kernel data structures required by libkse.
>> Apparently this would enable significant simplification of portions of
>> the kernel, but I have no deeply held personal opinion.  The intent is
>> that if that happens, alternate versions of the necessicary dynamic
>> libraries will be supplied in updated compat#x packages.  This will
>> address most consumers.  The one set of consumers that would not be
>> addressed is those who have statically linked, threaded binaries using
>> libkse.
> 
> Actually the simplifications in the kernel are almost negigable.
> KSE support is almost totally contained within kern_kse.c at this time.
> When KSEG support was removed, most of the changes outside of htis file 
> were removed..
> 
> the remaining changes not in that file could be moved to that file 
> relatively easily.
> 
>>
>> Kris and I realized that if we went that route, life would be
>> significantly easier if it was difficult to create statically linked,
>> binaries using libkse under FreeBSD 7.x.  As a result I would like
>> to commit and MFC the following patch which disables building and
>> installing libkse*.a in the default case.  This would mean that
>> significant effort would be required to create a statically linked
>> application that uses the KSE syscalls.
>>
>> I believe that removing libkse*.a has little downside and leaves the way
>> open for either removing or enhancing the KSE system and is the right
>> thing to do.
> 
> If you wish.. however the performance downside of KSE is that we have 
> not run schedgraph on it and looked at what happens, rather than it being
> against a wall of some sort.. the fact that it is slower than thr in 
> most cases is because there is a bug that stops it from scheduling 
> correctly.
> 
> As I have not had the time or extreme burst of energy needed to find 
> this bug
> it has not been found, but the fact that it rarely schedules threads 
> onto > 1 cpu at a time is not inherrent in the design.

Well I think that after N years with no-one working on fixing KSE 
performance it is not reasonable to expect that this will change in the 
near future.  Absent that, and given that KSE is about 2 orders of 
magnitude slower than libthr on application benchmarks, and has shown no 
performance improvement at all since 5.x, I don't think there is any 
compelling argument to leave it in the tree in 8.0-RELEASE.

Anyone who thinks otherwise still has some time to work on fixing the 
performance issues though, of course.

Kris



More information about the freebsd-arch mailing list