Logo Umeet2001

ESPAÑOL
Presentación

Programa

Desarrollo

ENGLISH

Presentation

Programa

Desarrollo


HoraPese necesitan voluntarios para traducir a castellano, en #redes
HoraPeHello
HoraPeThis is the closing conference of umeet
HoraPeArnaldo Carvalho de Melo, from Conectiva
HoraPeDave Jones (from Suse)
HoraPeand Jeff Garzik (from Mandrakesoft)
HoraPewill talk about the Linux Kernel Janitor project
* acme wonders why people thing that there are distro wars ;) :)
HoraPeQuestions can be asked on #qc
HoraPeIf some people volunters for translating, the talk will be in spanish in #redes.
davejJeff still hasn't made it, so we'll begin without him, hopefully he'll turn up later.
HoraPeSi alguien se ofrece a traducir, tendremos la charla en castellano en #redes.
HoraPeacme, go on
acmethanks
acmeWell, we're here to talk about the Kernel Janitor Project
acmethat grew out of our search for things to help in the linux kernel development
acmeand as some of us were still newbies
acmewe searched the mailing lists for simple things to fix
acmeso I started collecting things that needed fixes in a TODO and started submitting small patches
acmelater on I made my TODO list public at http://bazar.conectiva.com.br/~acme/TODO
acmeand noticed that _lots_ of people started looking at it
acmeso me and davej created the Kernel Janitor Project - http://kerneljanitor.org
acmeon sourceforge
acmewith a mailing list for the janitors
acmemost of the entries in the TODO list are very simple things
acmethat can serve as a start for people interested in contributing to the linux kernel effort
davejAn interesting parallel to the kernel janitor project is what happens with  the FreeBSD folks. Regularly, you'll see on their mailing list "junior kernel hacker tasks". Simple (but often tedious) cleanups. More experienced hackers will mentor newcomers to kernel hacking, often pointing them in the correct direction.
acmeyes, this is one of the most interesting things about the KJP: to provide simple tasks for kernel newbies
acmefrom these simple tasks one can get confidence
davejand the offer of assistance to anyone prepared to do the 'monkey work'
acmeyes, thats the KJP mailing list goal
acmeas the newbie starts getting his patches accepted he can get the confidence to work on more complex tasks
HoraPe<acme> yes, thats the KJP mailing list goal
acmeand to learn how to send the patches, how to deal with the way developers work
davejmoving on to some real life examples of the sort of janitor tasks that occur..
acmeok, now davej will talk about a sample janitor task
davejquite often, there are "simple" tasks, which are nothing more than search & replace operations.
davejbut as these need to be done sometimes for every driver in the tree, its a lot of work.
davejAn example of such a s&r operation can be found at http://www.codemonkey.org.uk/patches/2.5/small-bits/setcurrentstate-2.diff
davejin this circumstance, manually setting current->state was deprecated in favour of using the set_current_state() function.
davejthis sort of thing happens quite frequently.
davejThe patch in that example replaces every occurance in the tree of the old way with the new way.
davejComing back to what acme mentioned earlier about dealing with developers, large scale cleanups like these should really be handled by splitting that large diff into small pieces, and then sending the individual parts to the developer responsible for that part of the tree.
davejwhich can sometimes be more time consuming than creating the patch in the first place 8)
acmeand sometimes the patch clashes with current work that that particular developer is working
davejAn idea some people have had in the past has been to write a script that automates part of this (by taking the filename, and doing a lookup to get the respective maintainer). No-one has actually written anything like this yet unfortunatly.
davejWriting such a tool would also be an interesting project for a beginner 8)
acmedavej:  actually a french janitor did it with some interesting results
davejoh, I was not aware of this.
acmehe sent messages to all the addresses in the particular file if there were not an entry in MAINTAINERS
acmelots of bounces 8)
davejWell, another janitor task would be making sure MAINTAINERS is in sync then 8)
acme:)
acmeand another interesting result of the KJP is to find new maintainers
acmeI'll give another simple example, but slightly more complex than the set_current_state one
acmeand that serves as a good example of how new janitor tasks appear
acmeits related to evolution of the kernel
acmesome APIs are changed and just some drivers are updated to use it
acmewith all the other drivers/subsystems using compatibility functions/macros
acmeso the kernel goes on getting full of compatibility cruft that need janitors to clean
acmeso the example:
acmedrivers have to request regions for the io areas they use
acmein the past it was done by first checking if the region was not being used, using the check_region function
acmethen, if it was not used, the driver had to use request_region to register its usage and avoid other drivers to use the same area
acmewhen the drivers were serially initialized, this was ok
acmebut now some subsystems allows concurrent initialization of drivers
acmeand with this the check_region first, request_region if it was free becomes a race condition
acmebecause two drivers can use check_region at the same time (SMP), find it free, and both move on to call request_region
acmeb00m
acmeso now the driver has to use only request_region and check its result
acmeb00m
acmeso now the driver has to use only request_region and check its result
acmethat will make the check/register operation atomic
acmebut hey, who will make all drivers stop using check_region? oh, boring work 8)
acmeso now the janitors have to go to all the drivers and remove the check_region and make it check the request_region call
acmeI actually did it for a lot of drivers, but there are lots more to be done
acmeand in the sound drivers case it gets a little bit more complicated, but nothing that a good janitor couldn't do 8)
acme<movement> complicated how ??
davejwhilst cleaning one thing, often you'll notice something else also..
rielsorry davej ;)
davej(thanks Rik)
acmewell, the thing is that sound drivers use functions that are in other general purpose modules
acmethen one have to go over several files and change those functions
acmewell, once you change the generic module, you have to make sure that all the other sound drivers that use it have to be changed accordingly
acmeyou can see this by looking at the sound drivers that still use check_region and trying to figure out how to remove the check_region call 8)
davej(and a quick grep in drivers/sound shows there are still quite a few users of check_region)
acmedavej:  yup, lets see if people here fix that 8)
davejgrep is the kernel janitors best friend btw, if you only learn one tool fully, make it grep 8)
acmeNow I'll talk about a project that I'm working on that is janitor related
acmeand is more complex, to show how one can go from simple tasks to more complex ones
acmeprotocol stacks use a struct sock to represent connections
acmeits defined in include/net/sock.h
acmeand by looking at it I spotted a nice comment
| * This structure really needs to be cleaned up.
| * Most of it is for TCP, and not used by any of
| * the other protocols.
| */
acmeso, my janitor hat promptly jumped to my head 8)
acmestudying this file I also noticed that it had a data dependency problem
davej(for those that don't know, acme has been cleaning up netbeui and other strange stacks before this 8)
acmedavej:  hehe, now this is something that will bite everybody, so beware! 8)
acmethe problem was that when one new protocol stack was to be added the developer had to touch this core struct
acmeincluding a struct on a union for the private part of the protocol
acmewell, this has the problem that the struct can become larger and larger
acmeand it also adds yet another include file to sock.h
acmewhich makes my poor pentium 300 Mhz machine takes longer to compile the kernel
acmeand also makes a big chunk of the kernel to be recompiled every time I touch one of the files included there
acmethe same problem btw plagues another very important data structure: struct inode, used by all the file systems and the network stacks as well
acmeso now I'm removing all protocol specific stuff from sock.h
acmemoving them to the respective protocol headers
acmeand making the member that stores the protocol private area a simple void pointer
acmethen something surfaced that proved that this janitor task would provide memory savings and performance improvements
acmebecause now I made the most important protocols use a private slabcache
acmewith that the protocols will use just the memory that they need and not the size of the protocol with the biggest private area
acmeevery connection on a machine uses a struct sock
acmeand with the approach used in the current mainline kernel
acme<HoraPe> acme is talking about some type of inheritance-like system?
acmeyup
acmenow we have struct sock with only the things that most protocols need
acmewith the per protocol slabcache the protocols will allocate the size of the generic struct sock + the size of its private struct
acmeso now in the current kernel if you compile all the protocols, even if they're compiled as modules
acmeevery connection will require 1280 bytes of kernel memory (non swappable)
acmewith the patch I'm working on it will require only what the specific protocol needs
acmethis makes ipv4 sockets use only 800 bytes
acmeunix sockets only uses about 300 bytes
davejthis kind of saving can be very noticable on busy boxes (think big ftp servers/web servers etc)
acmeso on a normal workstation with say 30 unix sockets (syslog, postfix, XFree86, KDE - all users of unix sockets)
acmeone will save...
acme30 * (1280 - 300)
acme29400
acmealmost 30 KB of kernel memory
acmeon a big busy ftp server, with say 2000 ipv4 connections...
acme2000 * (1280 - 800)
acme960000
acmealmost 1 MB of in kernel memory
acmeand this leads to performance gains, of course
acmeI used this example (and I could have used the IPX case as well) to show that one can start doing janitor boring tasks
acmeget experience
acmeand move on to more useful things
acmeI'm also the current IPX network stack maintainer, out of a janitor task
acmeok, so now I think davej can talk about the tools that can help in janitoring the kernel
acme<movement> and when exactly do we lose the similar union ugliness is struct
acme           inode ;)
acmemovement:  next target 8)
acmeas soon as I finish the struct sock and DaveM is happy with it
acmeI'll coordinate with Al Viro and start cleaning fs.h (struct inode)
* acme looks at davej
davejbefore I move on to the next part, a quick mention that reducing the size of various structs in the kernel seems to be a very popular thing to be doing for 2.5, (wli has patches that reduce struct page for eg, to save 8 bytes of every page (4kb) of memory in the system for example)..
acmeyup, 2.5 indeed seems to be the janitor kernel 8)
davejstruct page is a good example here, because on x86, if we can reduce it a little more, the whole struct will fit in an x86 cacheline.
davejwhich should see another nice performance win as bits stop fighting for cachelines
davejok, any further questions there ? or should I move on/
davej?
davejok, I'll move on.
acmesorry for not asking for questions before :-\
davejas I mentioned earlier, tools like grep can be the best weapon in a janitors arsenal.
davejsometimes, the simpler tasks can be searched for in drivers just by doing a single grep with -C showing enough context around the search item to see if its worth further investigation.
davejbut there are other perhaps more interesting tools at our disposal also.
davejSome time ago, a group of students at Stanford university wrote some extensions to gcc that would allow a compile to show up extra common mistakes.
daveja late question...
davej<hrandoz> how big is an x86 cacheline?
davejdepends.. usually 32 bytes. though newer machines (athlon etc) are 64 bytes.
davejP4 is a strange case, 128 bytes, but its really 2x64 bytes iirc
davejok, back to the tools..
davejThe stanford team were posting results that their checker found to the kernel mailing list, (you can find them in archives, subjects always began with [CHCKER])
davejCHECKER even...
davejDue to the fact that gcc could pick up context as it compiled, and had a picture of the coverage of each function as it compiled, it could find common problems with things like, spinlocks that were locked on entry to a function, unlocked on exit, but not unlocked on an error path in the same function
davejDoes that bit make sense to everyone ?
* acme can give an example
acmesay, a function that initializes a network driver
acmeit has to get some memory for its private struct
acmeregister the device to the core net
acmeprobe the cards, etc
acmeif it allocates the private struct
acmebut fails to probe a card
acmeit has to release the memory it allocated to the private struct
acmeand then return an error code
acmesome drivers didn't released the memory, leaking it
acmeditto for spinlock grabbing
acmeerror happens, it returns without releasing the spinlock
acmeok
* acme passes the baton to davej :)
davejthanks..
davejSo, the stanford team came up with huge amounts of bug reports for janitor types to go running after..
davejlots of these got merged, some didn't, so every so often, they would repeat their scan (usually with extra tests each time)
acmeeven in places like ext2...
davejindeed, these were problems that were in pretty much every corner of the kernel
acmevery subtle ones that not even the more experient long time hackers had found
davejSo every time a new stanford run was made, there would be huge amounts of clean ups that occured shortly afterwards..
davejin more recent times, the stanford folks haven't been as active, iirc the last kernel they tested was 2.4.8
davejAnd one thing that was commonly asked for, was the source to their extensions.
davejunfortunatly, due it being an academic project, there are complications (that I don't fully understand) that prevent them from releasing it yet.
davejbut! all is not lost...
davej(oh, you can find more about stanford checker at http://hands.stanford.edu/linux/ btw)
davejquite recently, acme and myself found out about a rival checker type program by the folks at Berkeley university.
davejand this time, they provided us with the source code. Hurrah!
davejunfortunatly, neither of us has found time to really experiment with it much, but from what we've seen so far, it's not as advanced as the stanford checker, but has good potential.
davejThis tool is under active development by the berkeley folks, so hopefully something useful will come of it..
davejnext tool..
davejin the meantime, one evening I got bored, and decided to teach myself some perl.
davejhaving no prior experience of programming in perl made this quite an effort, but what I came up turned out to be not such a bad tool..
HoraPecomo que no valen?
HoraPeoops, sorry
davejat http://www.kerneljanitor.org/kernel-janitor/scripts/  you'll find kj.pl  (no comments on bad perl structure please!)
davejyou'll also see kj-devel.pl which is a development not quite ready version
davejthese tools will take a filename as a parameter, and do some simple grepping for common mistakes, things like the check_region() usage that acme mentioned, and it'll spit out warnings suggesting to use request_region
davejit has just over a dozen or so regexps so far, and adding them is simple enough..
davejthis tool was not meant to get as advanced as things like the stanford checker, but to highlight some of the 'simple' janitor tasks
davejok, next tools..
davejnot competly related to the janitor project, but worthy of mentioning here (as they usually end up exposing janitor type bugs)
davejSomething the kernel really needs is more stress-testing tools.
davejBy putting extreme load onto the kernel, we sometimes expose bugs for eg, in drivers.. These bugs are sometimes replicated in every driver for that type of hardware,
davejthis also applies to things like filesystems, where code is commonly copied from other fs's.
acmeeverywhere 8)
acmeserial drivers come to mind ;)
davejSome examples of the stress testing tools we have so far are Juan Quintela's memtest suite and cerberus (http://people.redhat.com/bmatthews/cerberus/)
davejand today..
davejtoday I noticed on http://www.kerneltrap.com/article.php?sid=415&mode=nested&order=0  there was mention of a tool used to find lots of filesystem related bugs by the FreeBSD folks.
davejit took me just a few minutes to get this tool compilable under Linux.
acmeand some more minutes to spot a bug in reiserfs ;)
davejAnd the test results were almost instant... we have a few filesystems that seem to be showing up bugs.
davejYes, reiserfs was the first to show.
davejiirc it lasted 300 or so operations.. NFS lasted some 40,000 or so... and the reports of other fs's are still coming in..
acmeHans Reiser already asked his coders to look at it and fix
davejwhat will be interesting to see, is if this tool highlights any bugs that are duplicated in for eg.. the getblk of every network filesystem..
davejas I mentioned earlier, code is often copied from other fs's, and adjusted to fit.
davejcopied, along with any bug that happens to be in that code.
davejSo when the bug is found, auditting the same routine in other similar fs's is a (perhaps somewhat advanced) janitor tasks
davejok, that wraps up the tools section.. any questions on that part ?
davej<wli> Who is developing the Berkeley automated checker?
* davej goes to look in inbox
acmeJeff Foster <jfoster@cs.berkeley.edu>
davej*nod*
acmehttp://www.cs.berkeley.edu/~jfoster/tmp/cqual-0.95.tar.gz
davej<wli> What sort of participation is there from the Linux commnuity in it, or is it BSD-specific?
davejthe tool itself is quite extensable, you teach it patterns, and it could be used for eg, to look for bugs in mozilla, or any other code...
davejso it's not really anything specific right now
davejas for participation, well..
davejthey asked acme and myself to look at it, but as I mentioned earlier, we've not really done much with it yet.
davej<voltemand> or from the gcc crowd, who's work it was built on?
acmesome more info on cqual
davejto the best of my knowledge, it was created from scratch just on top of a stable release version of gcc
|You can analyze a file at a time, in which case the system makes
|optimistic assumptions about the rest of the code, or you can analyze a
|whole module at a time, which uses a lot more memory and time but can give
|you more bugs.
|The tool also has an emacs-based browsing interface that tries to show you
|why it decided there was an error at some point.
|If you want to get an idea how the tool works, look at
|        http://bane.cs.berkeley.edu/cqual
acmeits a message from Jeff
acmethe URL should provide enough info on cqual
davej*nod*, the url has some screenshots of the tool in action too iirc
davejok, any more before we move on (to nearly the final part) ?
davejright, we'll move on..
acmewell, now we come to the point of how one can get involved with the Janitor Project
davejthe bit of the talk titled "Whats next for the janitors?"
acmeok
acmeoops
acmeso, back to that bit
acmewell, there's still lots of things to do in the original TODO list that is available at http://kerneljanitor.org
acmeand Dave also volunteered to another very important janitor work:
davejAs well as the existing work left to do, now that 2.5 has opened, there are quite a few things that need doing already, and the amount of work is set to increase.
davej(some may say rather foolishly 8)
acmeto make sure that the fixes that go into 2.4 finds its way to 2.5 as well
acmeand there's also Pat Mochel work on struct device
acmethat will require all drivers to use struct device
acmealso the block io infrastructure will require drivers to be changed, etc
davejWhilst Linus is hammering away at getting the block layer in order, lots of fixes are building up in 2.4, so I volunteered to keep these in sync with 2.5 so when Linus enters 'resync mode', we have some ready-to-apply patches to send him.
acme-ac became -dj
acme8)
* acme ducks
* davej grins and throws something heavy
davejwell...
acmenew generation: marcelo and davej
davejI don't want it to be on the scale of what Alan was doing..
* acme ducks again, fast
acmebut it can easily become ;)
davejAlan was taking resync patches from the various architectures etc... I'd prefer to keep away from that for now at least..
davejFor now I have enough trouble tracking Marcelo 8)
acme<hrandoz> linux runs on a lot of architectures, 32 and 64 bit.  how is kernel
acme          janitoring affected by that?  i.e. how do you know the fix you make
acme          won't break another arch?  what safeguards do you use?
davejPlus theres a whole bunch of stuff still sitting in the old 2.4.13-ac tree
davejResyncing stuff like this is another boring tedious janitor job.
acmewell, we send the patches to the maintainers...
acmeand you see, lots of janitoring is done on code that the janitors doesn't have access to the hardware that it deals with
acmethats why it is important to send it to the respective maintainers
acmethat will give the final word if it is correct or no
acmethis process, in turn, helps the janitors to learn more about what is correct and what is not
acmethats why its also important to send a CC to the kernel-janitor-discuss mailing list
davejmaintainers of things like ppc etc tend to spot things like endian problems quite quickly in patches, as they're so used to seeing the problems, where a regular x86 hacker frequently overlooks such things.
acme<voltemand> if, say, one is working on drivers for hw one doesn't have, is a
acme            safe compile as much as can be expected? Or...?
acmesome things are obviously right (famous last words) 8)
davejIn most cases its the best we have though. Which is why we post calling for testers when announcing various patches.
acmelike the set_current_state, check_region, making sure that resources are released on error paths, etc
davejfor common code that runs on all devices (say for eg, vfs/fs code), its a little easier, as you can test it pretty much anywhere
davejOther stuff thats pending for 2.5
davejwith introduction of things like bio, NAPI, and other acronyms, there'll be quite a lot of janitor type "repeat this through every driver in the tree" work
davejthe bio code already has gone right through nearly every scsi driver (just a few remaining to clean up)
davejnapi will touch quite a few network drivers in the same way
acmesame thing happened in the past for softirq, etc
davejbut perhaps one of the biggest works for 2.5 will be Pat Mochels 'struct driver' changes.
davejlinks to info on all the pending work for these is available at http://www.osdl.org/archive/rddunlap/linux-port-25x.html
davejincluding some very descriptive documentation on the struct driver changes.
acmeand please notice that lots of janitor tasks needs to be repeated all over again
davejBy changing this over, not only will it end up in cleaner code (hopefully), but we'll also end up with a much more unified power management infrastructure almost for free.
acmeas old bugs have the bad habit of resurfacing from time to time ;)
davejand through usage of driverfs, every driver will automagically show up there in a sort of 'device registry'
davej<movement> ah, related actually. documentation of the api is crucial in oreder for it to be used right by random driver X. lack of docs has led to loads of bugs needing janitoring. are any of you working on the api docs much ?
davejDocumentation is vital to this project.
davejWithout knowing why we should change something, when we should change it, we'd all be completely lost.
acmeone guy had volunteered to do that in the kjp mailing list, but hasn't produced much, so we need volunteers for that, yes 8)
davejAs well as cleaning up interfaces, simple tasks like adding docbook headers to functions is always a good way to win extra points.
davejwe also have items on the TODO such as 'remove the warnings/errors that appear when building the autogenerated docs"
acmepeople like Rik van Riel and wli have been doing that for the areas that they work on
davejIndeed. It's even more important in areas that affect so many other parts of the kernel also (such as the vm layer)
acmenow we only have to convince Andrea of that ;)
* davej hides
* acme runs
davejok, I think we've covered everything on our talk plan, unless acme spots something I missed...
acmeoh, the janitor irc channel
davejoh yes..
davejSomething we've toyed with for a while, and really considered doing, but never found the time so far...
acmethere's already the #kernelnewbies channel, but we think that a #janitor channel would be useful as well
davejAt some point in the hopefully near future, we'll open a #janitor on openprojects.net, and hang out there for a weekend, giving help to anyone who wants to get started with the project.
acmetill then everyone is invited to the #kernelnewbies channel at irc.openprojects.net
davejof course, if people want to continue it after the weekend, they are free to do so 8)
acmes/free/encouraged/ 8-)
davejif/when we actually do this, we'll announce it beforehand in a few places.
davejand I *think* thats all... acme ?
acmeso, any more questions?
* acme is done
davejQ&A time..
acmecome on, was it so boring? :-)
davejI think we made everyone sleep early...
acmehaha
acmewell, I think that we can move to here
HoraPeclap clap clap clap clap clap clap
HoraPeclap clap clap clap clap clap clap
HoraPeclap clap clap clap clap clap clap
HoraPeclap clap clap clap clap clap clap
HoraPeclap clap clap clap clap clap clap
HoraPeclap clap clap clap clap clap clap
HoraPeclap clap clap clap clap clap clap
velcoclap clap
velcoclap clap
velcoclap clap
OrozZzplas plas plas plas clasp plas plas :)
davejjust a second!
fernand0plas plas plas plas plas plas plas plas plas
davejgo wli
fernand0plas plas plas plas plas plas plas plas plas
fernand0plas plas plas plas plas plas plas plas plas
HoraPedavej, acme, lots of thanks, it was a great talk
fernand0plas plas plas plas plas plas plas plas plas
fernand0plas plas plas plas plas plas plas plas plas
wliI remember there was some mention of tasks that were search & replace. But I've heard that search and replace operations are not considered "good ideas". Can you mention the distinction between the good & bad search and replace?
HoraPewe can continue with the q&a now...
peterplas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas clap clap clap clap clap,clap clap clpa clap clpa clap clap clap
peterplas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas clap clap clap clap clap,clap clap clpa clap clpa clap clap clap
peterplas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas clap clap clap clap clap,clap clap clpa clap clpa clap clap clap
HoraPewe can continue with the q&a now...
davej<hrandoz> some of the documentation of code actually appears in lkml.  is there any effort to grab these bits for documentation?
davejWell, sometimes this ends up as inline docs.
davejbut sometimes explanations are a little too verbose  (too verbose docs ? never!)
acme8)
davejI'd like to see the autogenerated docs get a lot better personally.
davejCurrently, they're good for seeing arguments a function takes, but they don't tell you for eg, locks that the function takes, needs etc...
* acme seconds that
davej<movement> dropping that awful kernel docs script should be a high priority :)
acme<HoraPe> can you repeat the url of the project?
acmehttp://kerneljanitor.org
acmeor http://kerneljanitors.org
davejmovement: I'm not fully familiar with it..
wliIs adding kernel documentation one of the goals of the janitor project?
davejmovement: if you have ideas on how it could be improved, we'd be happy to add it to the TODO
acmewli:  nope, but that would be a nice project or addition to the KJP
davejwli: It's something that happens occasionally, but not something we set out to do.
wliPerhaps correcting comments that no longer match the code?
davejoh definitly.
acmedefinetely
davej<movement> davej, I reckon you lot should use a /real/ source doc tool (doxygen or similar)
acmeand turning already existing doc comments into kernel-doc style
davejmovement: the only problem there would be adding an extra dependancy.. (Ok, the docbook stuff we already have is a dependancy, but its an established one already... )
acmemovement:  that would require a sacred penguin pee approval
acme8)
davejacme: tbh, I don't think Linus particularly cares too much about that, as long as whatever format is chosen isn't too intrusive in the source.
acmebut you're free to propose that in the linux-kernel ml, together with a proof of concept
davejdocbook won I think because its completley human parsable by reading a source file with vim/emacs/whatever
acmei.e. changing one piece of code to doxygen style, for instance
* davej narrowly avoid editor holywars and goes back to the documentation-standard holywar instead
acmeIIRC the rpm codebase uses doxygen
acmeso it could be used as a proof of concept of the advantages of changing the doc-standard in the kernel
davejthere is also another problem..
davejdrivers like acenic for eg, which compile under 2.2 / 2.4 / 2.5
davejif we change the docbook to whatever... do we have two different sets of comments in the code ? :-)
acme<HoraPe> davej avoid editor holywars and acme enters into packaging holywar
acme          instead :-)
acmehey, nope
acmeI just said that the rpm _codebase_ uses doxygen, not that rpm is better (which it is, btw ;) )
* acme runs
* davej takes this opportunity to run to the fridge, brb..
davej<movement> you can't even do xrefs with kernel-doc :(
davejreminds me... tools like ctags are also extremely useful in janitor work..
davej(This almost has become a kernel hackers toolbox talk 8)
acmeyes, cscope as well
davejindeed.
* acme uses only ctags, tho
acmemake tags
acmevi -t kfree_skb
acmejust that :)
acme<HoraPe> what is cscope?
acmeits a ctags lookalike on steroids
davejhttp://cscope.sourceforge.net/
davejIt's a really old tool that SCO opened some time ago.
acmebut never the less very useful and more powerful than ctags
davejthe webpage there shows some of the features it has, and you can probably guess from reading how they are useful to janitor work 8)
davej<HoraPe> what's the procedure a kernel janitor must follow when submitting patches? send them to the maintainers and cc:ing kj-discuss mailing list?
acmeyes
daveja good question that a lot of people overlook.
davejbut you hit the nail on the head 8)
acmewhen Alan was very active I sent the patches to the maintainers, Alan and the kernel-janitor-discuss
acmei.e. very active on his -ac series of patches
davejanother piece of advice.. if you are going to do a large scale clean up (through lots of drivers).. do one, get feedback to make sure you're doing it right, then go to do the others.
davejThis can save you a lot of wasted time.
* acme remembers of the janitor wars with Hans Grobler 8)
acmewars as in coopetition, whatever :)
acmeAlan said once "Hey, Hans Grobler beated you in this one"
acmebecause the same janitor patch I had send he had already received from Hans :-)
davejah, another thing worth noting..
acmeSouth African guy, has been quiet for quite a while... :(
davejbefore embarking on a large scale clean up, let the janitor discuss list know that you are going to do so..
acmeyes
davejotherwise we can have two people doing the same thing 8)
davej(we tend to be more tolerant toward newbies than the kernel list too, so if you're not sure you're doing the right thing, it's always a good idea to send there first..)
davejwell I think I'm all done.. I hope to see janitor patches from some of you sometime 8)
davejThanks for listening..
HoraPeok, i'll add to the list of things to do when bored of working :-)
davejs/listening/reading/  8)
HoraPeThanks you for coming here.
HoraPeAnd thanks for your work cleaning our kernel.
acmeThanks to the Uninet folks to organise umeet!
davejyes! thanks !
HoraPeWe hope seeing you here next year.
acmeand we _really_ expect new janitors! 8)
rielacme,davej: I promise to clean up the vmscan.c in my VM ;))
davejoh one very final thing.. if anyone has any further questions later.. either see acme or myself on irc, or send to janitor-discuss@lists-sourceforge.net
* riel hopes other people will also clean up their code
acmeriel:  wohoo, you'll get extra brownie^Wjanitor bonus for that!
acmes/bonus/points/
fernand0thank you to all for comming
rieldavej: what irc channel ?
rieldavej: #janitor on irc.openprojects.net ?
davej#kernelnewbies of course 8-)
davejor there when we open it..
fernand0i suppose this closes this year's umeet
rielok, #kernelnewbies it is
acmedavej:  kernel-janitor-discuss@lists-sourceforge.net
cronosguess i'll clean my own pelr code, since i'm not a kernel hacker : )
davejacme: oops, yes... corrected email address..
acme:)
rielcronos: clean code is good
fernand0we hope to see all of you (and some new people) next year
cronos: )
davejcronos: feel free to clean the janitor perl script I did 8)
fernand0until then...
rielcronos: laziness in writing clean code, only leads to _more_ work
acmeinstructions are in http://kerneljanitor.org to subscribe the list
fernand0if you think you can organize something here
fernand0give a lecture, have a meeting
fernand0or something like this
cronosriel -wT and also strict help with that in perl
fernand0feel free to conctact us
acmefernand0:  thanks in advance
* cronos likes C, but thinks perl is more fun : )
fernand0thank you to all: participants, lecturers, and people who helped to organize this
cronosnot, for kernels, do
rielfernand0: you organised a wonderful Umeet this year, thank you
cronosi second that
fernand0all of us organized it
rielyes, but some of us organised it more than others ;)
cronoshe, yes
zuezyes
E-D-W-I-NHello fernando it´s ending the UMEET 2001
fernand0every hand is welcome
zuezthanks a lot
fernand0even clapping hands ;)
fernand0yes edwin
zuezword
* acme praises the umeet folks
E-D-W-I-NClap Clap Clap Clap Clap Clap Clap Clap Clap Clap Clap Clap!!!
E-D-W-I-NClap Clap Clap Clap Clap Clap Clap Clap Clap Clap Clap Clap!!!
acmeclap clap clap clap clap clap clap clap clap clap clap clap
E-D-W-I-NClap Clap Clap Clap Clap Clap Clap Clap Clap Clap Clap Clap!!!
acmeclap clap clap clap clap clap clap clap clap clap clap clap
acmeclap clap clap clap clap clap clap clap clap clap clap clap
acmeclap clap clap clap clap clap clap clap clap clap clap clap
acmeclap clap clap clap clap clap clap clap clap clap clap clap
E-D-W-I-NClap Clap Clap Clap Clap Clap Clap Clap Clap Clap Clap Clap!!!
HoraPeplas plas plas plas plas plas
HoraPeplas plas plas plas plas plas
HoraPeplas plas plas plas plas plas
HoraPeplas plas plas plas plas plas
rielWOOOOOHOOOOOOO
acmeand, of course
rielclap clap clap clap clap clap
rielclap clap clap clap clap clap
* HoraPe claps in spanish :-)
* cronos goes back to his cave , later all
rielclap clap clap clap clap clap
rielclap clap clap clap clap clap
acmeplas  plas plas plas plas plas plas  plas plas plas plas plas plas
acmeplas  plas plas plas plas plas plas  plas plas plas plas plas plas
acmeplas  plas plas plas plas plas plas  plas plas plas plas plas plas
acmeplas  plas plas plas plas plas plas  plas plas plas plas plas plas
acmeplas  plas plas plas plas plas plas  plas plas plas plas plas plas
fernand0plas plaspl plas plasp las plas plas plas
fernand0plas  plas plas plas plas plas plas
fernand0plas  plas plas plas plas plas plas
acmeplas must be the translation of the portuguese "Clap" :)
zuezcrono, in your grave theres no pain!
E-D-W-I-Nplas plas plas plas plas plas plas plas plas plas plas plas plas
E-D-W-I-Nplas plas plas plas plas plas plas plas plas plas plas plas plas
E-D-W-I-Nplas plas plas plas plas plas plas plas plas plas plas plas plas
E-D-W-I-Nplas plas plas plas plas plas plas plas plas plas plas plas plas
E-D-W-I-Nplas plas plas plas plas plas plas plas plas plas plas plas plas
fernand0and spanish also ;)
cr0utzuez no pain no gain ; )
peterplas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plass
peterplas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plass
peterplas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plass
zuezthe more you think.. the more you sink..
zuez;)
peterplas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plass
peterplas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plass
peterplas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plass
cr0utzuez the more i sink the more i see
zuezbbl, rolling to spectrum
cr0utopps, stink : )
E-D-W-I-NAnd what about the next year...
HoraPeE-D-W-I-N: you'll be spammed when next year umeet's date gets set
E-D-W-I-Nfernando so many people asked me, if have the oportunities to give help to finance some proyects in limux
fernand0who is supposed to finance people ?
HoraPeE-D-W-I-N: dilo en castellano, que no se te entiende
E-D-W-I-Nok
E-D-W-I-Nme preguntaban si existen organizaciones que financien proyectos de linux
fernand0supongo que si
HoraPe
fernand0dependerá del tipo de proyectos
E-D-W-I-Nespecialmente en universidades
HoraPesi consigues "venderle" a algun organismo/empresa algún proyecto de linux te lo financiarán
tapselj0hello
fernand0nunca he visto una universidad con dinero ;)
HoraPe(en la argentina el ministerio de economia tiene un grupo de gente trabajando en linux,
fernand0salvo algunas norteamericanas, claro
HoraPeen algunas universidades puedes conseguir beca de investigacion si tu proyecto
E-D-W-I-Nes mas que todo para los alumnos, para que puedan desarrolarse mas de lo aspiran
HoraPeles interesa, etc)
HoraPeE-D-W-I-N: pues, que busquen becas :-)
acmeout of curiosity, what are the countries people here are living?
acmeBrazil
fernand0palabra mágica
HoraPeacme: AR
JohnFluxHas anyone attempted to write a program that detects (most) divide by zero's, infinite loops, etc?
JohnFlux(I'm fully aware of the halting problem - but has someone tried it anyway?)
fernand0spain
fernand0well
fernand0is a bit later here
fernand0hope to hear from you
fernand0_before__ next umeet ;)
fernand0bye
HoraPei've seen people from FR, HR, DO, CU and CO today...
Orozhr?
HoraPecroacia
E-D-W-I-Nand PE too
rielhr = hungary
acmenope
acmehu == hungary
rielmmm indeed
rielweird
acmehr = Hvratska
bodhires
rielduh ;)
acmeCroacia in their simple language ;)
HoraPe:-))))
tonyhi people
acmewell, time to go guy some beers, essential need
tonywhen i just arrived
acme_bbls/guy/buy/

Generated by irclog2html.pl by Jeff Waugh - find it at freshmeat.net!


Mas información: umeet@uninet.edu