Game Source

  • Subscribe to our RSS feed.
  • Twitter
  • StumbleUpon
  • Reddit
  • Facebook
  • Digg

Wednesday, 11 July 2007

Con Kolivas releases last ever -ck patchset

Posted on 03:31 by Unknown

A bit of a FG special here and a slightly different topic for FG, but still very pertinent to open source development.



Today saw the last ever release of the -ck kernel patchset.



Anybody who ever tried ricing their Gentoo in order to attain half-decent audio/visual perforance, or knows much about kernel patchsets, will no doubt be aware of the -ck kernel patchset. It is a patchset for the Linux kernel that is aimed at providing an optimal desktop experience. It made my old machines usable with Gentoo Linux back in 2001-2003 before I switched to Ubuntu and gave up hope of my old machines ever being able to handle more than one sizeable task at a time. Con took a problem, solved it, but because he wasn't well integrated in Linux kernel development his solution never got the proper attention it deserved.



The two main features of Con's patchset are his Staircase Deadline scheduler and Swap Prefetch. The kernel scheduler decides what processes get access to your computer's CPU and when you are low on memory the kernel pushes inactive applications into swap. In real terms this means that your music lags when you load up OpenOffice.org and Firefox takes 20s to respond to your first click if you didn't switch your PC off last night. In real terms the -ck patchset means no lagging music when you use other applications, and your Linux desktop does not take ages to become responsive if you haven't used it for a while. Basically Con took the rather rubbish default Linux scheduling and swapping logic and threw them out the window. And he has been working on these for years - at least since Linux 2.6.1.



So why is today seeing the last release of -ck? Well, Con has been effectively cast aside by the kernel development process. Justifiably feeling offended, and subsequently lost his desire to keep maintaining a bunch of features that could never get merged into mainline.



When somebody close to Linus runs off and implements their own scheduler, it takes less than 3 months to become integrated into mainline. People will debate back and forth the technical merits of CFS (by Ingo Molnar) and SD (by Con Kolivas) but the reality is that both solutions are good but only SD is very well tested and refined. CFS is still new and raw. It came down to "who you know" and Ingo has his hand on the kernel tree so his solution gets way more contact with the right people and hence is now fast-tracked into Linux as the default scheduler. I don't think the technical merits of either had anything to do with choosing between them. SD was not written by a highly-ranked kernel developer, CFS was. It's just ridiculous that it has taken so many years to get to a stage where the default kernel scheduler is Not Crap (tm).



Understandably completely disillusioned that his efforts are now going to be nothing more than a historic catalyst, Con will no longer maintain this patchset. It is almost redundant now anyway since CFS makes the SD pointless as a patch. Logically concluding that the same would happen with his other major kernel patches, Con is issuing calls to "merge or delete" them because why should he put in years of dedication just for his work to be disregarded for a more junior solution. At last some of it looks like it is going in - notably swap prefetch - but it's a shame that sometimes it takes such extreme measures for decent features to be properly considered. Once Linux 2.6.23 ships, by default Linux desktops will no longer be afflicted by applications taking double-digit times to wake up on an idle machine.



Contributing to open source projects has it's benefits and it's downsides. One of the downsides is that significant contributions can be ignored by upstream and with a project the size of the Linux kernel there is no way you can realistically fork it. Indeed, in smaller projects people will put forward valid contributions that are rejected due to fear of the original author having to maintain something they did not write or create. Not every good line of code will become part of the project it is intended for. One of the true arts of open source project management is striking the right balance between accepting contributions and minimizing the problems they may cause, but it will always be a case that some bad stuff gets in whilst some good stuff gets lost. It happens to games - check out all the OpenTTD contributions many of which were great but never got merged.



The most important thing from such a saga is that people learn from it. Will Linux kernel patch inclusion policies change? I doubt it, but open source is open development - other people can look at this and use it as a basis for making their own contribution acceptance policies. Basically you do not want to lose contributors as talented and dedicated as Con Kolivas.



This article is dedicated to you Con. You improved my Linux experience and that of many others. So long, and thanks for all the fish.

Email ThisBlogThis!Share to XShare to Facebook
Posted in article | No comments
Newer Post Older Post Home

0 comments:

Post a Comment

Subscribe to: Post Comments (Atom)

Popular Posts

  • Mega Games Bumper Post
    Well, I was fighting with myself not to post twice in a single day, but I have so much good stuff to post and the last post was simply a ran...
  • Forums Moving
    The forums are moving - I'll come back to that after a few game snippets. 8 Kingdoms 1.1.0 has been released, with bug fixes and minor ...
  • Open Source Gaming Sites
    I just came across two new(ish) open source gaming portals: www.OSGamer.org and www.OpenContentGames.org I also spotted this "royalty ...
  • Freedom is Fun
    Happy festive season to all those who are celebrating, and commiserations to those who are missing out or have not been blessed with a nice ...
  • Some Cool Game Updates
    UFO:AI Hot off the press is the 2.0 rc3 release from the UFO:AI team , which is shaping up as a flagship open source game after it briefly ...
  • New Freeciv Beta
    Freeciv 2.1 beta3 is ready ( changelog summary ). I'm on holiday in Vietnam at the moment so won't be able to play it for a few we...
  • Warsow 0.3
    Just when I feared I was losing my blogging Mojo, a few tips from readers has put me back on the path to righteousness. First tip - Warsow 0...
  • RubyWeekend, but also PyDay
    Yesterday the first RubyWeekend ended, which is a two and a half days Ruby game creation competition. The topic was "Pirates Versus Zo...
  • Fictional Air Combat 0.1.3
    Fictional Air Combat 0.1.3 I recently discovered YAFS on SF.net: Fictional Air Combat , which is an action flight simulation at an early de...
  • VDrifting Away
    Free Gamer has been on hiatus. Sorry! Sometimes these things happen... VDrift made a new release yesterday. Hero of Allocrost released ...

Categories

  • 0ad
  • 2d
  • 3d
  • 3delement
  • 4dmaze
  • 8kingdoms
  • a3dx
  • abe
  • actioncube
  • adinfinitum
  • adonthell
  • affcity
  • ags
  • airbuccaneers
  • aircarrier
  • alephone
  • alienarena
  • allacrost
  • allegro
  • alphashooter
  • andromeda9
  • angel-engine
  • angelsfallfirst
  • annchienta
  • antargis
  • apricot
  • arbarlithii
  • ardentryst
  • arkhart
  • armagetronadvanced
  • art
  • article
  • asc
  • assaultcube
  • asteroidwars
  • astromenace
  • atomictanks
  • atomicworm
  • aurora
  • auteria
  • automanic
  • autopackage
  • balazar
  • balazar3
  • balder2d
  • balldroppings
  • bankiz
  • barrage
  • basecommand
  • battery
  • battlechess
  • battlejuststarted
  • battleship88
  • battletanks
  • berusky
  • bethewumpus
  • beyondtheredline
  • binaryzoo
  • biniax2
  • blacklegacy
  • blender
  • blobandconquer
  • bloboats
  • blobwars
  • blockattack
  • blocks5
  • bloodfrontier
  • bloodmasters
  • bombattack
  • boomwar
  • boson
  • boswars
  • brainworkshop
  • breve
  • bridgebuilder
  • bridgecon
  • brutalchess
  • bubblething
  • bubbrothers
  • burningdust
  • burningwell
  • business
  • bygfoot
  • cannonsmash
  • captainpork
  • carrier2
  • carworld
  • caspring
  • catchemrpg
  • catmother
  • cave9
  • cedega
  • cgmadness
  • cgtextures
  • cheeseboys
  • choria
  • chromiumbsu
  • civil
  • civitas
  • clanlib
  • clonk
  • cocos2d
  • colonies
  • combatsimulator
  • commanderstalin
  • conquest
  • construo
  • contentcreation
  • copypirate
  • creepsmash
  • crimsonspace
  • crossfire
  • crownandcutlass
  • crystalcore
  • crystalscrolls
  • crystalspace
  • cspop
  • cube
  • cubelegends
  • cultivation
  • d2x-xl
  • daggerwindscrolls
  • daimonin
  • dangerdeep
  • dangerman
  • darkoberon
  • darkphear
  • darkplaces
  • deadjustice
  • diamondfighters
  • die
  • dmjava
  • dnt
  • dnteam
  • donceferino
  • dotg
  • dreamchess
  • drod
  • dunelegacy
  • dunemaker
  • dunesleeper
  • dungeoncraft
  • dungeondigger
  • dungeondoom
  • dungeonhack
  • dungeonmapper
  • eagles
  • eatthewhistle
  • ecksdee
  • edgar
  • edm
  • egoboo
  • eisenstern
  • elitestrike
  • emiliapinball
  • emr
  • enemyengaged
  • entropy
  • eot
  • epoch
  • etce
  • eternallands
  • everborn
  • extremetuxracer
  • exult
  • f1spirit
  • fac
  • feuerkraft
  • fgd modelling contest
  • fife
  • fifengine
  • finityflight2
  • fishfillets
  • flightgear
  • flowflowmania
  • flyingguns
  • foi
  • fortress
  • freeallegiance
  • freeartsearch
  • freeciv
  • freecol
  • freedoom
  • freedroidrpg
  • freegamer
  • freelords
  • freeorion
  • freepop
  • freera
  • freerails
  • freeryzom
  • freesci
  • freespace2
  • freesynd
  • freetrain
  • freetumble
  • fretsonfire
  • frogatto
  • funguloids
  • fuzzyadventure
  • g3d
  • galaxymage
  • gamedev.net
  • gameofbases
  • gammalow
  • gardenofcl
  • gate88
  • gcblue
  • gearhead2
  • gemrb
  • generally
  • genre-spacesim
  • genre-spacetrade
  • ggr
  • gl117
  • glc
  • glchess
  • glest
  • glestalieninvasion
  • glestdemineonic
  • glhorizon
  • globulation2
  • gno3dtet
  • goblinhack
  • gondola
  • goollie
  • goonies
  • grandwing
  • gridwars2
  • grumbel
  • gsoc
  • gta
  • gta-mud
  • gusanos
  • haiku
  • hardwar
  • hedgewars
  • heroesofwesnoth
  • hex-a-hop
  • hexapop
  • hexen2hot
  • hextd
  • hiddenanddangerous
  • holoracer
  • howski
  • iamar
  • imperiumsticks
  • impulse
  • industri
  • intensityengine
  • interstateoutlaws
  • interview
  • iris
  • irrlamb
  • islandcommander
  • isoccer
  • iteam
  • ivan
  • ivan3d
  • ivanx
  • ja2stracciatella
  • jake2
  • jcatano
  • jcrpg
  • jdraw
  • jfreerails
  • jme
  • kambi vrml
  • kartingrace
  • kazama
  • kimboot
  • kingsofdarkage
  • knights
  • kobodeluxde
  • kqvga
  • krank
  • l-echo
  • lacewing
  • lalalove
  • lasersquad3d
  • lasertactics
  • lastremaining
  • lavirinto3d
  • lbaprequel
  • legacyofmagic
  • legesmotus
  • lemmingballz
  • levelhead
  • libsdl
  • licensing
  • liero
  • lincityng
  • linwarrior3d
  • lipsofsuna
  • liquidwar
  • loosecannon
  • lordsawar
  • lostlaby
  • love
  • löve
  • low
  • lowpolycoop
  • lpairs
  • ludumdare
  • machineball
  • magicor
  • maniadrive
  • marathon
  • marathonrubiconx
  • markiv
  • marsnomercy
  • mathcricket
  • maxfighter
  • mazzeroth
  • mechcommander2
  • megamario
  • memonix
  • meritous
  • metalchaser
  • metalglovesolid
  • micropolis
  • militiadefense
  • mistlands
  • mixxx
  • mofrag
  • mokoi
  • moleinvasion
  • monkeyworld3d
  • mono
  • monogame
  • motorsport
  • mtptarget
  • musikcube
  • myman
  • mynet
  • naev
  • nekeme
  • nero
  • nethack3d
  • netlit2
  • netpanzer
  • nettlers
  • neverball
  • newcol
  • newfoundroom
  • nexuiz
  • nikwideluxe
  • nimuh
  • njam
  • no
  • nogravity
  • nsco
  • nucleargraveyard
  • ogre3d
  • olpc
  • onyx
  • oolite
  • openanno
  • openarena
  • opencity
  • openclonk
  • openclou
  • opendungeons
  • openfootball
  • openfracas
  • openfrag
  • openlancer
  • openlander
  • openlierox
  • openmw
  • openoctane
  • openoutcast
  • openracer
  • opensonic
  • openttd
  • opentyrian
  • opinion
  • oppositelock
  • orbit-hopper
  • orbiter
  • orts
  • osgg
  • osgs
  • overdose
  • overgod
  • ows
  • paintball2
  • paintown
  • palomino
  • pandora
  • pangzero
  • paralleluniverse
  • parpg
  • parsec
  • passenger
  • pathman
  • pegi
  • peng2illa
  • penumbra
  • peragrotempus
  • piarmada
  • pingus
  • pink-pony
  • pioneers
  • pixbros
  • plague-like
  • planeshift
  • platinumarts
  • pleethebear
  • plexus
  • plib
  • plutocracy
  • pok3d
  • pong2
  • popcap
  • port town
  • portalized
  • powerball
  • privateergeminigold
  • privateerremake
  • privateeruniverse
  • projectalexandria
  • projectcitadel
  • projectdiaspora
  • projectfootball
  • projectgamma
  • projectkilo
  • projectopen
  • projectttna
  • purity
  • pyday
  • pygame
  • pysoy
  • q2w
  • q3rally
  • qonk
  • quantum
  • racer
  • raceracer
  • radakan
  • raidem
  • railroadtycoon
  • railz
  • rant
  • rastullahs lockenpracht
  • realtimechaos
  • redshift
  • regnumonline
  • remorse
  • renpy
  • retribution engine
  • review
  • rgprohockey
  • rigsofrods
  • rili
  • roadfighter
  • rrgbis
  • rubygame
  • rubyweekend
  • rudi
  • sandbox
  • sauerbraten
  • sauermod
  • savage
  • sawk
  • scorched3d
  • scourge
  • scummvm
  • secondlife
  • secretmaryo
  • settlers3d
  • sfxr
  • sfz
  • shotgundebugger
  • silvertree
  • simcity
  • simontatham
  • simutrans
  • simwar
  • skyscraper
  • slamsoccer2006
  • slickworm
  • slingshot
  • slune
  • smokinguns
  • snowball
  • snowballz
  • soccerboss
  • solarwolf
  • solitairesettlersofcatan
  • sotb3d
  • sotu
  • soulfu
  • sourceforge
  • soya3d
  • spaceexp
  • spring
  • spring1944
  • srb2
  • sstld
  • standalone
  • stargus
  • starwarsta
  • stendhal
  • stonesoup
  • stormbaancoureur
  • strangelet
  • stratagus
  • streetrod3
  • streetrods3
  • stuntplayground
  • stunts2005
  • sturmbahnfahrer
  • sundog
  • sunuo
  • superretromegawars
  • supertux
  • supertuxkart
  • survey
  • ta3d
  • tank-simulator-game
  • taspring
  • tecnoballz
  • teewars
  • teeworlds
  • tenebrae
  • tennix
  • tesliz
  • theblob
  • thecastle
  • thegoonies
  • themeparkbuilder3d
  • thesilverlining
  • thewhitechamber
  • thousandparsec
  • throwin
  • thundernlightening
  • thundernlightning
  • tigrs
  • tiled
  • tileeditor
  • tiltnroll
  • tkremix
  • top10
  • torcs
  • tower
  • tpb3d
  • trampoline
  • transportempire
  • Tremfusion
  • tremulous
  • trophy
  • truecombatelite
  • ttmofifag
  • tuxkart
  • tuxracer
  • tv
  • ufo2000
  • ufoai
  • ultimatestunts
  • unknownhorizons
  • updates
  • uzebox
  • vacuummagic
  • vaporware
  • vavoom
  • vdrift
  • vegastrike
  • vegawars
  • vertigo
  • vikings
  • vlad
  • vodovod
  • voxelstein
  • warsow
  • warzone
  • warzone2200
  • wasteland
  • wastesedge
  • wcu
  • wesbowl
  • wesnoth
  • whichwayisup
  • whitebutterfly
  • widelands
  • windstille
  • wine
  • wing
  • wme
  • wolfpack
  • wordwarvi
  • work
  • worldforge
  • worldofpadman
  • worldwarvi
  • worminator
  • wormsforlinux
  • wormux
  • xarvh
  • xenocide
  • xenogeddon
  • xenon
  • xevil
  • xforce
  • xmoto
  • xna
  • xreal
  • xut
  • xwars
  • yodasoccer
  • yofrankie
  • ysflight
  • zaz
  • zeldaclassic
  • zeroprojekt
  • zmar
  • zymotic

Blog Archive

  • ►  2009 (40)
    • ►  August (6)
    • ►  July (3)
    • ►  June (4)
    • ►  May (3)
    • ►  April (4)
    • ►  March (8)
    • ►  February (7)
    • ►  January (5)
  • ►  2008 (102)
    • ►  December (6)
    • ►  November (10)
    • ►  October (9)
    • ►  September (6)
    • ►  August (7)
    • ►  July (8)
    • ►  June (9)
    • ►  May (6)
    • ►  April (7)
    • ►  March (9)
    • ►  February (13)
    • ►  January (12)
  • ▼  2007 (168)
    • ►  December (3)
    • ►  November (6)
    • ►  October (8)
    • ►  September (10)
    • ►  August (18)
    • ▼  July (23)
      • Sitting on my Toadstool
      • New Look
      • Battle Tanks and RPG
      • New Forums Available
      • New TA:Sring Release
      • Forums Moving
      • SuperTuxKart 0.3.0
      • Counting the Days
      • Busy Gamer
      • Last Remaining Air Carrier
      • FreeOrion and Global Conflict Blue
      • Outlaws on Interstates
      • Interstate Outlaws
      • Ascii 3D
      • Con Kolivas releases last ever -ck patchset
      • Thunder'n'Lightning and iteam
      • Simutrans and Open Arena and Irrlamb
      • Remorse - a Phenomenal Game
      • Privateer Parallel Universe
      • Bos Wars and Glest with ATI
      • New Vega Strike in August
      • Oh No More Pingus!
      • The return of Freedroid RPG
    • ►  June (25)
    • ►  May (24)
    • ►  April (24)
    • ►  March (16)
    • ►  February (6)
    • ►  January (5)
  • ►  2006 (68)
    • ►  December (5)
    • ►  November (3)
    • ►  October (3)
    • ►  September (10)
    • ►  August (12)
    • ►  July (9)
    • ►  June (19)
    • ►  May (7)
Powered by Blogger.

About Me

Unknown
View my complete profile