linux-raid.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Aapo Laine <aapo.laine@shiftmail.org>
To: NeilBrown <neilb@suse.de>
Cc: linux-raid <linux-raid@vger.kernel.org>
Subject: Re: potentially lost largeish raid5 array..
Date: Sat, 24 Sep 2011 23:57:58 +0200	[thread overview]
Message-ID: <4E7E5266.5040205@shiftmail.org> (raw)
In-Reply-To: <20110923191539.110b7be1@notabene.brown>

On 09/23/11 11:15, NeilBrown wrote:
> On Fri, 23 Sep 2011 02:09:36 -0600 Thomas Fjellstrom<thomas@fjellstrom.ca>
> wrote:
>> I forgot to say, but: Thank you very much :) for the help, and your tireless
>> work on md.
>>
>
> You've very welcome .... but I felt I needed to respond to that word
> "tireless".
> The truth is that I am getting rather tired of md .... if anyone knows anyone
> who wants to get into kernel development and is wondering where to start -
> please consider whispering 'the md driver' in their ear.  Plenty to do, great
> mentoring possibilities, and competent linux kernel engineers with good
> experience are unlikely to have much trouble finding a job ;-)
>
> NeilBrown

Whoa this is shocking news!

Firstly then, thank you so much for your excellent work up to now. Linux 
has what I believe to be the best software raid of all operating systems 
thanks to you. Excellent in both features, and reliability i.e. quality 
of code.

And also the support through the list was great. I found so many 
problems solved already just by looking at the archives... so many 
people with their arse saved by you.

I think everybody here is sorry to see you willing to go.

Now the bad news... Regarding the MD takeover, there I think I see a 
problem...
The MD code is very tersely commented, compared to its complexity!

- there is not much explanation of overall strategies, or the structure 
of code. Also the flow of data between the functions is not much 
explained most of the times.

- It's not obvious to me what is the entry point for kernel processes 
related to MD arrays, how are they triggered and where do they run... 
E.g. in the past I tried to understand how did resync work, but I 
couldn't. I thought there was a kernel process controlling resync 
advancement, but I couldn't really find the boundaries of code inside 
which it was executing.

- it's not clear what the various functions do or in what occasion they 
are called. Except from their own name, most of them have no comments 
just before the definition.

- the algoritms within the functions are very long and complex, but only 
rarely they are explained by comments. I am now seeing pieces having 5 
levels of if's nested one inside the other, and there are almost no 
comments.

- last but not least, variables have very short names, and for most of 
them, it is not explained what they mean. This is mostly for local 
variables, but sometimes even for the structs which go into metadata 
e.g. in struct r1_private_data_s most members do not have an 
explanation. This is pretty serious, to me at least, for understanding 
the code.

- ... maybe more I can't think of right now ...

Your code is of excellent quality, as I wrote, I wish there were more 
programmers like you, but if you now want to leave, THEN I start to be 
worried! Would you please comment it (much) more before leaving? Fully 
understanding your code I think is going to take other people a lot of 
time otherwise, and you might not find a replacement easily and/or s/he 
might do mistakes.

There were times in the past when I had ideas and I wanted to contribute 
code, but when I looked inside MD and tried to understand where should I 
put my changes, I realized I wasn't able to understand what current code 
was doing. Maybe I am not a good enough C programmer, but I was able to 
change things in other occasions.


I hope you won't get these critiques bad...
and thanks for all your efforts, really, in the name of, I think, everybody.
Aapo L.

  parent reply	other threads:[~2011-09-24 21:57 UTC|newest]

Thread overview: 46+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-09-23  1:50 potentially lost largeish raid5 array Thomas Fjellstrom
2011-09-23  4:32 ` NeilBrown
2011-09-23  4:49   ` Thomas Fjellstrom
2011-09-23  4:58     ` Roman Mamedov
2011-09-23  5:10       ` Thomas Fjellstrom
2011-09-23  7:06         ` David Brown
2011-09-23  7:37           ` Thomas Fjellstrom
2011-09-23 12:56         ` Stan Hoeppner
2011-09-23 13:28           ` David Brown
2011-09-23 16:22           ` Thomas Fjellstrom
2011-09-23 23:24             ` Stan Hoeppner
2011-09-24  0:11               ` Thomas Fjellstrom
2011-09-24 12:17                 ` Stan Hoeppner
2011-09-24 13:11                   ` (unknown) Tomáš Dulík
2011-09-24 15:16                   ` potentially lost largeish raid5 array David Brown
2011-09-24 16:38                     ` Stan Hoeppner
2011-09-25 13:03                       ` David Brown
2011-09-25 14:39                         ` Stan Hoeppner
2011-09-25 15:18                           ` David Brown
2011-09-25 23:58                             ` Stan Hoeppner
2011-09-26 10:51                               ` David Brown
2011-09-26 19:52                                 ` Stan Hoeppner
2011-09-26 20:29                                   ` David Brown
2011-09-26 23:28                                   ` Krzysztof Adamski
2011-09-27  3:53                                     ` Stan Hoeppner
2011-09-24 17:48                   ` Thomas Fjellstrom
2011-09-24  5:59             ` Mikael Abrahamsson
2011-09-24 17:53               ` Thomas Fjellstrom
2011-09-25 18:07           ` Robert L Mathews
2011-09-26  6:08             ` Mikael Abrahamsson
2011-09-26  2:26           ` Krzysztof Adamski
2011-09-23  5:11     ` NeilBrown
2011-09-23  5:22       ` Thomas Fjellstrom
2011-09-23  8:09         ` Thomas Fjellstrom
2011-09-23  9:15           ` NeilBrown
2011-09-23 16:26             ` Thomas Fjellstrom
2011-09-25  9:37               ` NeilBrown
2011-09-24 21:57             ` Aapo Laine [this message]
2011-09-25  9:18               ` Kristleifur Daðason
2011-09-25 10:10               ` NeilBrown
2011-10-01 23:21                 ` Aapo Laine
2011-10-02 17:00                   ` Aapo Laine
2011-10-05  2:13                     ` NeilBrown
2011-10-05  2:06                   ` NeilBrown
2011-11-05 12:17                 ` Alexander Lyakas
2011-11-06 21:58                   ` NeilBrown

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4E7E5266.5040205@shiftmail.org \
    --to=aapo.laine@shiftmail.org \
    --cc=linux-raid@vger.kernel.org \
    --cc=neilb@suse.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).