Linux: Properly Creating And Testing Patches

Submitted by Jeremy
on April 9, 2010 - 1:18pm

"If you're wondering why I'm taking a long time to respond to your patches,", began Theodore Ts'o on the linux-ext4 mailing list, in a thread that offered much insight into how and why to properly submit and test patches. "Patches that are accepted into mainline should do one and only one thing," Ted continued, "so if someone suggests that you make changes to your submitted patch, ideally what you should do is to resubmit the patch with the fixes --- and not submit a patch which is a delta to the previous one." He also noted that patch submitters often greatly outnumber maintainers dictating a higher standard of quality, "consider that for some maintainers, there may be 10 or 20 or 30 or more patch submitters in their subsystem. With that kind of submitter-to-maintainer ratio, the patch submitter simply has to do much more of the work, since otherwise the subsystem maintainer simply can't keep up."

Ted went on to acknowledge, "I happen to believe that we need to encourage newcomers to the kernel developer community, and so I spend more time mentoring people who are new to the process." He noted that his time was finite however, and that patches are accepted more quickly when they are easy to review and integrate. Regarding the filesystem for which the patches had been submitted, he added, "Ext4 is actually quite stable at this point. Very large numbers of people are using it, and most users are quite happy." For this reason, he pointed out that it is even more critical that the patches merged be of high quality. That said, he continued, "there is no such thing as code which is not buggy. For any non-trivial program, it's almost certain there are bugs. [...] Ext4 is not exempt from these fundamental laws of software engineering. 'Code is always buggy until the last user of the program dies'." He tied this back to the importance of testing patches before submitting, "keep in mind that the maxim that code which is not buggy also applies to your patches."

From: tytso
Subject: Re: [PATCH] ext4: memory leakage in ext4_mb_init()
Date: Apr 3, 9:53 am 2010

Hi Jing,

If you're wondering why I'm taking a long time to respond to your
patches, it is because they are very ill-formed.  They don't conform
to the submitting patches guidelines, the patch comments don't
adequately explain the why the patch is needed, and what testing has
been done, and you tend to throw in patches that aren't correctly
submitted in the middle of comments, and in some cases it's not clear
whether this patch is suppose to be in addition to the previous patch,
and combined into a separate commit, or kept as two separate patches,
etc.

As a result, it takes, much, MUCH, MUCH longer for me to review the
patches for correctness.  I will eventually get to them, but I may end
up working on other patches which are better formed and easier for me
to evaluate for correctness and quality.

If you do submit new patches, especially in this thread where you have
already submitted so many different patches, I would appreicate it if
you could explicitly state that a particular patch has been superceded
by another, or has been withdrawn.  I will try to keep score on the
patchwork web site (for example, I rejected your bb_free_cache patch),
but you've been so prolific with patches, some of which haven't been
very well explained, that I may have lost track of all of your
submissions.   

Please bear with me.

Best regards,

					- Ted




On Sun, Mar 28, 2010 at 04:13:51PM +0800, jing zhang wrote:
> 2010/3/26, Aneesh Kumar K. V <aneesh.kumar@linux.vnet.ibm.com>:
> > On Tue, 23 Mar 2010 20:47:39 +0800, jing zhang <zj.barak@gmail.com> wrote:
> >> 2010/3/22, tytso@mit.edu <tytso@mit.edu>:
> >> > On Sun, Mar 21, 2010 at 10:01:06PM +0800, jing zhang wrote:
> >> >> From: Jing Zhang <zj.barak@gmail.com>
> >> >>
> >> >> Date: Sun Mar 21 21:59:35     2010
> >> >>
> >> >> Cc: Theodore Ts'o <tytso@mit.edu>
> >> >> Cc: Andreas Dilger <adilger@sun.com>
> >> >> Cc: Dave Kleikamp <shaggy@linux.vnet.ibm.com>
> >> >> Signed-off-by: Jing Zhang <zj.barak@gmail.com>
> >> >>
> >> >> ---
> >> >>
> >> >> --- linux-2.6.32/fs/ext4/mballoc.c	2009-12-03 11:51:22.000000000 +0800
> >> >> +++ ext4_mm_leak/mballoc3.c	2010-03-21 21:37:18.000000000 +0800
> >> >> @@ -2360,6 +2360,24 @@ err_freesgi:
> >> >>  	return -ENOMEM;
> >> >>  }
> >> >>
> >> >> +static void ext4_mb_destroy_backend(struct super_block *sb)
> >> >> +{
> >> >> +	ext4_group_t ngroups = ext4_get_groups_count(sb);
> >> >> +	ext4_group_t i;
> >> >> +	struct ext4_sb_info *sbi = EXT4_SB(sb);
> >> >> +	int j;
> >> >> +	int num_meta_group_infos = (ngroups + EXT4_DESC_PER_BLOCK(sb) -1)
> >> >> +					>> EXT4_DESC_PER_BLOCK_BITS(sb);
> >> >> +	for (i = 0; i < ngroups; i++)
> >> >> +		kfree(ext4_get_group_info(sb, i));
> >> >> +
> >> >> +	for (j = 0; j < num_meta_group_infos; j++)
> >> >> +		kfree(sbi->s_group_info[j]);
> >> >> +
> >> >> +	kfree(sbi->s_group_info);
> >> >> +	iput(sbi->s_buddy_cache);
> >> >> +}
> >> >> +
> >> >
> >> > It would be better if this could be done by making ext4_mb_release()
> >> > more flexible, and then calling ext4_mb_release() if there is an error
> >> > setting up the data structures in ext4_mb_init().
> >> >
> >> > 						- Ted
> >> >
> >>
> >> Yeah, Ted, going through ext4_mb_release() is clearer.
> >>
> >> ---
> >>
> >> diff --git a/linux-2.6.32/fs/ext4/mballoc.c b/ext4_mm_leak/mballoc3.c
> >> index bba1282..99ca2de 100644
> >> --- a/linux-2.6.32/fs/ext4/mballoc.c
> >> +++ b/ext4_mm_leak/mballoc3.c
> >> @@ -2417,8 +2417,7 @@ int ext4_mb_init(struct super_block *sb, int
> >> needs_recovery)
> >>
> >>  	sbi->s_locality_groups = alloc_percpu(struct ext4_locality_group);
> >>  	if (sbi->s_locality_groups == NULL) {
> >> -		kfree(sbi->s_mb_offsets);
> >> -		kfree(sbi->s_mb_maxs);
> >> +		ext4_mb_release(sb);
> >
> > We may want to make sure that we can safely call ext4_mb_release that
> > early. what i would suggest is to move s_locality_group allocation
> > before ext4_mb_init. that makes error handling easy
> >
> 
> cool idea, Aneesh, and I got it.
> 
> ---
> 
> --- old-linux-2.6.32/fs/ext4/mballoc.c	2009-12-03 11:51:22.000000000 +0800
> +++ ext4_mm_leak/mballoc3-2.c	2010-03-28 16:13:20.000000000 +0800
> @@ -2397,11 +2397,27 @@ int ext4_mb_init(struct super_block *sb,
>  		i++;
>  	} while (i <= sb->s_blocksize_bits + 1);
> 
> +	sbi->s_locality_groups = alloc_percpu(struct ext4_locality_group);
> +	if (sbi->s_locality_groups == NULL) {
> +		kfree(sbi->s_mb_offsets);
> +		kfree(sbi->s_mb_maxs);
> +		return -ENOMEM;
> +	}
> +	for_each_possible_cpu(i) {
> +		struct ext4_locality_group *lg;
> +		lg = per_cpu_ptr(sbi->s_locality_groups, i);
> +		mutex_init(&lg->lg_mutex);
> +		for (j = 0; j < PREALLOC_TB_SIZE; j++)
> +			INIT_LIST_HEAD(&lg->lg_prealloc_list[j]);
> +		spin_lock_init(&lg->lg_prealloc_lock);
> +	}
> +
>  	/* init file for buddy data */
>  	ret = ext4_mb_init_backend(sb);
>  	if (ret != 0) {
>  		kfree(sbi->s_mb_offsets);
>  		kfree(sbi->s_mb_maxs);
> +		free_percpu(sbi->s_locality_groups);
>  		return ret;
>  	}
> 
> @@ -2415,20 +2431,6 @@ int ext4_mb_init(struct super_block *sb,
>  	sbi->s_mb_order2_reqs = MB_DEFAULT_ORDER2_REQS;
>  	sbi->s_mb_group_prealloc = MB_DEFAULT_GROUP_PREALLOC;
> 
> -	sbi->s_locality_groups = alloc_percpu(struct ext4_locality_group);
> -	if (sbi->s_locality_groups == NULL) {
> -		kfree(sbi->s_mb_offsets);
> -		kfree(sbi->s_mb_maxs);
> -		return -ENOMEM;
> -	}
> -	for_each_possible_cpu(i) {
> -		struct ext4_locality_group *lg;
> -		lg = per_cpu_ptr(sbi->s_locality_groups, i);
> -		mutex_init(&lg->lg_mutex);
> -		for (j = 0; j < PREALLOC_TB_SIZE; j++)
> -			INIT_LIST_HEAD(&lg->lg_prealloc_list[j]);
> -		spin_lock_init(&lg->lg_prealloc_lock);
> -	}
> 
>  	if (sbi->s_proc)
>  		proc_create_data("mb_groups", S_IRUGO, sbi->s_proc,
> 
> 
> >
> >
> >>  		return -ENOMEM;
> >>  	}
> >>  	for_each_possible_cpu(i) {
> >> @@ -2511,7 +2510,8 @@ int ext4_mb_release(struct super_block *sb)
> >>  				atomic_read(&sbi->s_mb_discarded));
> >>  	}
> >>
> >> -	free_percpu(sbi->s_locality_groups);
> >> +	if (sbi->s_locality_groups)
> >> +		free_percpu(sbi->s_locality_groups);
> >>  	if (sbi->s_proc)
> >>  		remove_proc_entry("mb_groups", sbi->s_proc);
> >> --
> >> To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
> >> the body of a message to majordomo@vger.kernel.org
> >> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> >
> > -aneesh
> >
--
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

From: tytso
Subject: Re: [PATCH] ext4: memory leakage in ext4_mb_init()
Date: Apr 4, 11:08 am 2010

On Sun, Apr 04, 2010 at 09:05:14AM +0800, jing zhang wrote:
> 
> Without the cool git, though I am learning how to take advantage of
> it, I could not manage all the patches delivered. In fact, I dig the
> patches with UltraEdit for modifying the C code, Cygwin for git and
> diff -Npu, and virtual machine for compiling. My kid, 11 years old
> boy, has to share the HP notebook with me playing games.

How much testing are you doing before submitting patches, out of
curiosity?

> I resolve conflicts and dependencies between patches in the way that
> they are carried out by independent guys, since I am told that git is
> cool enough. But indeed I created so many hard work for you, sorry.

Having independent patches is actually better --- but I think you're
misunderstanding what I was complaining about before.  Patches should
that are accepted into mainline should do one and only one thing.  So
if someone suggests that you make changes to your submitted patch,
ideally what you should do is to resubmit the patch with the fixes ---
and not submit a patch which is a delta to the previous one.

This is especially true if the original patch is buggy; one of the
things we try very hard to maintain is that the kernel tree compile
cleanly, and pass the regression test suite, between every single
commit.  In other words, we try to avoid knowingly introducing a
regression in a patch and fixing it in a subsequent patch.  This
allows things like "git bisect" to work, and it also makes it easier
for people to look at the commit history to understand why certain
changes were made, and especially when trying to find how a bug was
introduced into ext4.  Ultimately, this is about keeping the kernel
source code easily maintainable.  This means that incrased code
complexity has to be justified, and code and code changes have to be
meticulously documented.

Best regards,

					- Ted
--
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

From: jing zhang Subject: Re: [PATCH] ext4: memory leakage in ext4_mb_init() Date: Apr 4, 8:53 pm 2010 2010/4/5, tytso@mit.edu <tytso@mit.edu>: > On Sun, Apr 04, 2010 at 09:05:14AM +0800, jing zhang wrote: > > How much testing are you doing before submitting patches, out of > curiosity? Yes, Ted, it is curiosity that drives me to do hard works, including patch ext4. I already told you that I am happy to patch ext4. I also like to share/deliver my patches to the developers and maintainers of ext4, simply because I find something not correct or perfect in the version I got at kernel.org, and because I am not 100% sure. And review is necessary, as described in Andi Kleen's "On submitting kernel patches", which I read last night. And I got that on cmdline, git --stat --summary a/x.c b/x.c > x-01.diff may get nice output, correct? It is hard work for me, a newbie, though curious, to do perfect patch, and I try my best to describe the patch in English, which is not my native language but one of the most beautiful languages on earth. What is behind my curiosity is the belief that I will be freed both by Jesus in West and by Buddha in East, today or tomorrow, if I deliver what I can to those who need. And after operations on cmdline, I compile the modified, modprobe, dd, and rmmod with virtual machine. It is not hard. > Having independent patches is actually better --- but I think you're > misunderstanding what I was complaining about before. Patches should Whatever you complain, I try to be a good listener every time:) GNU Linux is free, is MIT free? And I am free to change, to be responsible for what I did, or maybe freed by you. > that are accepted into mainline should do one and only one thing. So > if someone suggests that you make changes to your submitted patch, > ideally what you should do is to resubmit the patch with the fixes --- > and not submit a patch which is a delta to the previous one. > > This is especially true if the original patch is buggy; one of the > things we try very hard to maintain is that the kernel tree compile > cleanly, and pass the regression test suite, between every single > commit. In other words, we try to avoid knowingly introducing a > regression in a patch and fixing it in a subsequent patch. This > allows things like "git bisect" to work, and it also makes it easier > for people to look at the commit history to understand why certain > changes were made, and especially when trying to find how a bug was > introduced into ext4. Ultimately, this is about keeping the kernel > source code easily maintainable. This means that incrased code > complexity has to be justified, and code and code changes have to be > meticulously documented. I think what is called ext4 will change, and more will be freed by the change, since it is under your maintenance, at least currently, a model of maintainer, especially of strict requirement and kind patience to patches received. Good weekend, and please review my new patches next week. Thank you, Ted. - zj -- To unsubscribe from this list: send the line "unsubscribe linux-ext4" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
From: Eric Sandeen Subject: Re: [PATCH] ext4: memory leakage in ext4_mb_init() Date: Apr 4, 9:27 pm 2010 jing zhang wrote: > 2010/4/5, tytso@mit.edu <tytso@mit.edu>: >> On Sun, Apr 04, 2010 at 09:05:14AM +0800, jing zhang wrote: >> >> How much testing are you doing before submitting patches, out of >> curiosity? > > Yes, Ted, it is curiosity that drives me to do hard works, including patch ext4. It is the language barrier that is making some of this difficult, but I'm not complaining - you speak English much better than I speak any second language. :) Ted meant that -he- was curious about how much testing you were doing. ... > And after operations on cmdline, I compile the modified, modprobe, dd, > and rmmod with virtual machine. It is not hard. More testing than this would be good; dd is very minimal. One of our new standard tests for et4 is the xfstests test suite from http://git.kernel.org/?p=fs/xfs/xfstests-dev.git;a=summary It is a collection of many tests developed for xfs, but many tests are generic and can run on ext4 as well. I would suggest that after you have several patches ready, you should at least run through the tests in this collection. It won't catch every mistake but it runs a large variety of tests, much more stressful than dd. Thanks for your email, and thanks for clearly spending time looking for ways to improve ext4. I think that with practice, you will be a good contributor. Ted can certainly be a patient maintainer - read his suggestions and the kernel patch submission guidelines, and I think you will get better at this. Do your best to explain the reasons for your patches, and any testing you have done, and describe any test which can show a bug that you find - and we can help to clarify changelogs if they need it. -Eric -- To unsubscribe from this list: send the line "unsubscribe linux-ext4" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
From: jing zhang Subject: Re: [PATCH] ext4: memory leakage in ext4_mb_init() Date: Apr 4, 9:51 pm 2010 2010/4/5, Eric Sandeen <sandeen@redhat.com>: > jing zhang wrote: >> 2010/4/5, tytso@mit.edu <tytso@mit.edu>: >>> On Sun, Apr 04, 2010 at 09:05:14AM +0800, jing zhang wrote: >>> >>> How much testing are you doing before submitting patches, out of >>> curiosity? >> >> Yes, Ted, it is curiosity that drives me to do hard works, including patch >> ext4. > > It is the language barrier that is making some of this difficult, > but I'm not complaining - you speak English much better than I speak any You are good guy:) Is English your native language? And, I am curious, what is the second language you are able to speak, Eric? > second language. :) > > Ted meant that -he- was curious about how much testing you were doing. How do know what Ted meant, by iphone? > > ... > >> And after operations on cmdline, I compile the modified, modprobe, dd, >> and rmmod with virtual machine. It is not hard. > > More testing than this would be good; dd is very minimal. > > One of our new standard tests for et4 is the xfstests test suite from > http://git.kernel.org/?p=fs/xfs/xfstests-dev.git;a=summary > > It is a collection of many tests developed for xfs, but many tests are > generic and can run on ext4 as well. I would suggest that after you have > several patches ready, you should at least run through the tests in this > collection. It won't catch every mistake but it runs a large variety of > tests, much more stressful than dd. Thanks for your good advice. > > Thanks for your email, and thanks for clearly spending time looking for > ways to improve ext4. I think that with practice, you will be a good > contributor. > > Ted can certainly be a patient maintainer - read his suggestions and the > kernel patch submission guidelines, and I think you will get better at this. > > Do your best to explain the reasons for your patches, and any testing you > have done, and describe any test which can show a bug that you find - > and we can help to clarify changelogs if they need it. > I am not good at testing, partially because it is hard to setup the required environment, sometimes several hard disks are needed, maybe a few boxes, but I try to analyse the C code while reading and understanding the works by great maintainers and developers of Linux kernel. - zj -- To unsubscribe from this list: send the line "unsubscribe linux-ext4" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
From: Eric Sandeen Subject: Re: [PATCH] ext4: memory leakage in ext4_mb_init() Date: Apr 4, 9:59 pm 2010 jing zhang wrote: > 2010/4/5, Eric Sandeen <sandeen@redhat.com>: >> jing zhang wrote: >>> 2010/4/5, tytso@mit.edu <tytso@mit.edu>: >>>> On Sun, Apr 04, 2010 at 09:05:14AM +0800, jing zhang wrote: >>>> >>>> How much testing are you doing before submitting patches, out of >>>> curiosity? >>> Yes, Ted, it is curiosity that drives me to do hard works, including patch >>> ext4. >> It is the language barrier that is making some of this difficult, >> but I'm not complaining - you speak English much better than I speak any > > You are good guy:) Is English your native language? And, I am curious, > what is the second language you are able to speak, Eric? Only a little German. >> second language. :) >> >> Ted meant that -he- was curious about how much testing you were doing. > > How do know what Ted meant, by iphone? No, because I am a native English speaker and I understood the figure of speech. ("out of curiosity") > I am not good at testing, partially because it is hard to setup the > required environment, sometimes several hard disks are needed, maybe a > few boxes, but I try to analyse the C code while reading and > understanding the works by great maintainers and developers of Linux > kernel. Testing really is critical to development; some things can be done by inspection, but if you don't test it is hard to know if you made a mistake. You can always test inside a vm, or on a loopback file, on a single box. Without testing, you are asking others to do testing for you (unless the change is so obvious that it can be trusted) -Eric > - zj -- To unsubscribe from this list: send the line "unsubscribe linux-ext4" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
From: jing zhang Subject: Re: [PATCH] ext4: memory leakage in ext4_mb_init() Date: Apr 4, 10:08 pm 2010 2010/4/5, Eric Sandeen <sandeen@redhat.com>: > Testing really is critical to development; some things can be done by > inspection, but if you don't test it is hard to know if you made a > mistake. > > You can always test inside a vm, or on a loopback file, on a single box. > > Without testing, you are asking others to do testing for you > (unless the change is so obvious that it can be trusted) > Before linux-2.6.32 is released, would you like tell me, how is ext4 tested? Is tough testing able to catch all bugs? - zj -- To unsubscribe from this list: send the line "unsubscribe linux-ext4" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
From: tytso Subject: Re: [PATCH] ext4: memory leakage in ext4_mb_init() Date: Apr 5, 5:42 am 2010 On Mon, Apr 05, 2010 at 01:08:58PM +0800, jing zhang wrote: > > Before linux-2.6.32 is released, would you like tell me, how is ext4 tested? > Is tough testing able to catch all bugs? For one thing, we use the XFSQA (aka xfstests) test suite. I usually run the "quick" set of tests between each commit, and I run a much longer "auto" test suite before submitting a set of patches to Linus. For specific patches, we also like to be able to test it specifically. So often we'll create a small filesystem image and then see what the file system does with and without the patch. For example, if we're worried that a specific file system corruption will cause a BUG_ON, we'll create a small file system, corrupt it using the debugfs tool, and then demonstrate that without the patch, we get the BUG_ON. With the patch applied, the BUG_ON should go away. So the patch-specific tests are there so we can make sure the patch does what we think it should, and it fixes the problem it claims to fix. The XFSQA test suite is to there to make sure that we don't accidentally introduce bugs while trying to improve the file system. And of course, the final safeguard is patch review by others. This is where decent comments and making sure the code is maintainable is critically important. Since this takes other developer's time, especially senior developers like Eric and myself's time, which is rather valuable and hard to find, it's why patch submitters need shoulder more of the work in terms of refining patches and resubmitting new versions of the patches. - Ted P.S. Yes, Eric was absolutely correct. I wanted to know how much testing you had been doing on your patches before submitting them. At least few of your patches have caused me to wonder whether the patches had gone through sufficient testing. -- To unsubscribe from this list: send the line "unsubscribe linux-ext4" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
From: jing zhang Subject: Re: [PATCH] ext4: memory leakage in ext4_mb_init() Date: Apr 6, 6:43 am 2010 2010/4/5, tytso@mit.edu <tytso@mit.edu>: > On Mon, Apr 05, 2010 at 01:08:58PM +0800, jing zhang wrote: >> >> Before linux-2.6.32 is released, would you like tell me, how is ext4 >> tested? >> Is tough testing able to catch all bugs? > > For one thing, we use the XFSQA (aka xfstests) test suite. I usually > run the "quick" set of tests between each commit, and I run a much > longer "auto" test suite before submitting a set of patches to Linus. > > For specific patches, we also like to be able to test it specifically. > So often we'll create a small filesystem image and then see what the > file system does with and without the patch. For example, if we're > worried that a specific file system corruption will cause a BUG_ON, > we'll create a small file system, corrupt it using the debugfs tool, > and then demonstrate that without the patch, we get the BUG_ON. With > the patch applied, the BUG_ON should go away. > > So the patch-specific tests are there so we can make sure the patch > does what we think it should, and it fixes the problem it claims to > fix. The XFSQA test suite is to there to make sure that we don't > accidentally introduce bugs while trying to improve the file system. > > And of course, the final safeguard is patch review by others. This is First, Mr. Theodore Ts'o, your reply is a great honor to me. And I learn more about ext4 and its maintainers and developers, specially that testing is important to ext4. Thanks. In my view, one of the important parts of a patch is that the patcher is really concerning what is patched, another is whether the questions listed in the patch do exist, and whether the solution, if provided by the patcher, is correct. Even if the provide solution is ok, I think, it is the privilege, responsibility and duty of maintainers to execute the final submitting, and therefore it is not the duty of patchers to make sure that the solution is 100% correct and perfect, testing is good or not. I like to be a maintainer of some subsystem of GNU Linux, since it is my shame that end users experience panic, crash, bug, bug_on caused by what is under my maintenance, that end users are treated as rats and monkeys in laboratory even though I am not paid by any end user, and the nice reputations of distributors, say red hat, of service providers, say IBM. To be a maintainer, I will apologize on my homepage once a patch received, if the questions listed in the patch do exist, simply because I abuse my duty and time. > where decent comments and making sure the code is maintainable is > critically important. Since this takes other developer's time, > especially senior developers like Eric and myself's time, which is I still concern how to correctly measure the lost, in the next half of 2010, of time and value of end users, say 100, caused by what is buggy in ext4. Are you sure no buggy, Eric and Ted? > rather valuable and hard to find, it's why patch submitters need > shoulder more of the work in terms of refining patches and > resubmitting new versions of the patches. > > - Ted > > P.S. Yes, Eric was absolutely correct. I wanted to know how much Do you like opera, Mr. Theodore Ts'o? If you like, I invite you Beijing Opera and tea, and I pay the air ticket, double trip, from Los Angeles to Beijing. And please info me your time schedule if you accept my invitation. > testing you had been doing on your patches before submitting them. At > least few of your patches have caused me to wonder whether the patches > had gone through sufficient testing. > If end users of ext4 can not be treated, for any reason, as rats and monkeys, lets go ahead, please, focusing upon patch. - zj -- To unsubscribe from this list: send the line "unsubscribe linux-ext4" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
From: tytso Subject: Re: [PATCH] ext4: memory leakage in ext4_mb_init() Date: Apr 6, 7:21 am 2010 On Tue, Apr 06, 2010 at 09:43:58PM +0800, jing zhang wrote: > > In my view, one of the important parts of a patch is that the patcher > is really concerning what is patched, another is whether the questions > listed in the patch do exist, and whether the solution, if provided by > the patcher, is correct. > > Even if the provide solution is ok, I think, it is the privilege, > responsibility and duty of maintainers to execute the final > submitting, and therefore it is not the duty of patchers to make sure > that the solution is 100% correct and perfect, testing is good or not. Well, the problem is there are many more patch submitters than there are maintainers, and so your proposal simply doesn't scale. Consider that for some maintainers, there may be 10 or 20 or 30 or more patch submitters in their subsystem. With that kind of submitter-to-maintainer ratio, the patch submitter simply has to do much more of the work, since otherwise the subsystem maintainer simply can't keep up. Most maintainers actually spend much less time dealing with patch submitters than I have invested with you. They simply send a NACK, and maybe 2-3 sentences explaning of what still needs fixing, and then it's up to the patch submitter to resubmit the patch. Some patches are resubmitted 5, 6 times before the maintainer finally accepts it. I happen to believe that we need to encourage newcomers to the kernel developer community, and so I spend more time mentoring people who are new to the process. But at the end of the day, I have only so many hours that I can spend on newcomers, and so after a while, I will start serving other patch submitters who are more capable of providing patches that are easy to review and integrate. > I like to be a maintainer of some subsystem of GNU Linux, since it is > my shame that end users experience panic, crash, bug, bug_on caused by > what is under my maintenance, that end users are treated as rats and > monkeys in laboratory even though I am not paid by any end user, and > the nice reputations of distributors, say red hat, of service > providers, say IBM. Sure, but that means the patches which are submitted has to be high quality. If I get half-tested patches, or patches where you can't give me a reproduction case that demonstrates the BUG_ON, and it's not obvious whether or not the patch is safe, I have to worry about the possibility that applying your patch may make the the file system more likely to crash, not less. Ext4 is actually quite stable at this point. Very large numbers of people are using it, and most users are quite happy. So at this point, I have to weigh the risk that a patch might introduce a bug against the claim that it fixes the bug --- especially if the patch submitter can't explain how the BUG_ON might have been triggered without their patch, and can't explain to me how much testing he or she has done before sumitting the patch to me. As far as your concern about end users getting treated as "rats and monkeys", they are certainly getting paid; they get to use very high quality software for free! The tradeoff is that they won't get as much support compared to someone who is a paying customer of Red Hat or IBM. For the right customer, when I worked at IBM, I would fly on site to a bank in New York City and fix their bug. And I'm sure it's the same for Eric, if someone has a critical bug and they are a big Red Hat customer. Those who pay our salaries, get the best support. End users who aren't paying support to a big Linux company still get support, but it won't be as good, and that's just life. End users who want to use the latest code, are in fact guinea pigs. If they don't want to guinea pigs, they can use Fedora kernels or OpenSuSE kernels. > > where decent comments and making sure the code is maintainable is > > critically important. Since this takes other developer's time, > > especially senior developers like Eric and myself's time, which is > > I still concern how to correctly measure the lost, in the next half of > 2010, of time and value of end users, say 100, caused by what is buggy > in ext4. Are you sure no buggy, Eric and Ted? There is no such thing as code which is not buggy. For any non-trivial program, it's almost certain there are bugs. The only question is how easy it is for the someone to trigger the bugs, and what are the consequences if the bugs get triggered. During ext4 development, we've found bugs that were around in for over a decade in ext3, but it was simply something that no one had ever tripped over. (It required a certain race condition getting hit, plus a power failure or other unclean shutdown very shortly after the race condition, and it was simply something which no one had ever noticed, or if they did trip over it, they assumed it was caused by a hardware problem.) Ext4 is not exempt from these fundamental laws of software engienering. "Code is always buggy until the last user of the program dies". As far as the time value of users, remember that people who get free code, get what they pay for. We all have our salaries paid by someone, and at the end of the day, our priorities are driven by our employers. So I will track down a bug report from an end user because (a) that bug might affect the machines that I am paid to support, and (b) a larger ext4 user base is good for the community in general, and there are secondary benefits to my employer that accrue from that, and (c) Google is just a great company. :-) (As is Red Hat, SuSE, Oracle, etc. :-) But please don't get fooled that the resources we have to work on problems from end users, or time that I can spend mentoring newcomers to the kernel developer community, is infinite. Because it isn't. I'll spend some of my own time, and work late at nights, to help end users who are getting linux "for free", especially if they run into problems with ext4, because I like to help users as much as I can. And I will help out newcomers like you because it's personally important to me. But I do need to sleep, and I do have other priorities, like family and friends. And at the end of the day, because I like food with my meals, the needs of my $DAYJOB, are going to get priority, at least during work hours. Finally, keep in mind that the maxim that code which is not buggy also applies to your patches. At least some of your patches are definitely buggy, and which brings us back to the question whether things will be made better or worse if we were to apply all of your patches. And in the meantime, there are patches from other patch submitters which are proven themselves to be much more likely to be correct, and easier to review and integrate. If you were a maintainer, faced with limited time and resources, and someone who floods you with a large number of patches that take extra time to review and comprehend, and that person refuses to help you make life easier by reworking their patches so that they are easier to review and comprehend, what would _you_ do? Best regards, - Ted -- To unsubscribe from this list: send the line "unsubscribe linux-ext4" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html

eLEAIEHYEyuPT

Moly (not verified)
on
June 1, 2010 - 3:16am

BaCdTP My name is Moly, i am a funny girl. This post is fake, hahaha.

EcYoNovPgae

epifhmmckem (not verified)
on
June 2, 2010 - 2:06am

g538ub zejdxzdyannj, [url=http://esgqwbdmuwhl.com/]esgqwbdmuwhl[/url], [link=http://ugqbzrmoeazt.com/]ugqbzrmoeazt[/link], http://cpzflqwlqyle.com/

健尔马足疗机137389653855种另类运动瘦身最有效

on
November 25, 2010 - 4:27am

  想要通过简单的运动达到健身又瘦身的目的?小编正巧有5种另类的瘦身运动要介绍给你哦。这5种另类运动执行起来也非常方便,效果也挺明显,不妨试试,健尔马足疗机

 

>>推荐阅读:3种最强效的减肥运动

  雨中行
  
  下雨能产生大量的负氧离子、空气维生素。雨中行走能让你心旷神怡,有助于调节神经、消除郁闷。
  
  赤脚走
  
  赤脚走首先可以释放身体的静电,ab收腹机价格,赤脚走还可以帮助你按摩脚心
  
  退步走
  
  常做退步走,可让腰部肌肉保持有节律的紧张和松弛,改善腰部血液循环,瘦腰减脂;同时还能锻炼后跟腱、小腿与膝盖下肌肉,还可锻炼小脑,增加身体的灵活度与协调性。
  
  爬行
  
  人自从直立行走以来,脊椎就担负起了全身60%以上的重量,健尔马足疗机效果,所以它是身体的一个薄弱环节;爬行能使身体重量分布到四肢,健尔马足疗机,减少脊椎负荷,起到防治脊椎病的作用。
  
  倒立
  
  长时间的站立易引发内脏下垂、脑部供血不足、静脉曲张等病症,而倒立可以达到预防和缓解的作用,另外它还能改变身体紧张疲乏状态,促进荷尔蒙分泌,健尔马足疗机,使你焕发青春,更加美丽。
  

casque by dre 英心理博士杀害肢解3名女子 自称生吃部

on
December 30, 2010 - 10:31pm

  英格兰北部乡市利兹的一野法庭21日裁定一名英国男子的谋杀罪名成破,判处他毕生监禁。

  法庭终审裁决书说,这名自称“十字弓食人魔”的凶手骗诱、杀戮3名女子。

  考察中乃至法庭上,格里菲思没有阐明谋杀念头,但在被逮时他曾告知警方,他末于“卸掉了累赘”。

  连环谋杀凶案今年5月顶在英国警方的一次搜查中浮没水面。过后,警方在布拉德福德的一条河淌中击捞出装有人体组织和肢解农具的多少个旅言袋,casque by dre,后经法医验证,这些人体组织取一年去这一地区报失的3名女子完整吻折。

  三名女被害人均从事色情服务

  警方随后在邻近地域查阅监控录像,终极在一处私寓楼发明3名逢害父子走进格面菲念公寓间的绘点。

  食人魔格里菲思,曾获心理学学士学位,尔后取得犯法学硕士学位,现正攻读谋杀心理学博士。从称从小就对连环谋杀案非常感兴致。

  凌朔(新华社特稿)

  公寓楼监控录像显示,在将其中一名被害人布拉迈尔斯拖归公寓楼后,格里菲思手持作案用具冲着监控录像头晃了个姿态,casque beats。调查职员定格画面后领现,他手中的器具是一把十字弓。

  他告诉警方,“我就是黑萨马?标?拉丹”。

  史蒂芬?格里菲思,现年40岁,现替英邦一所大教谋杀口理学博士生。昔年6月,他被控谋杀3名从事色情服务的母子,害兹刑事法庭21日对这一案件作终审讯决。

  法庭上,食我魔格里菲思表情麻痹,他抵赖疏手肢解3名受益者,他将大家的寓所称息“屠杀场”,号称生吃了被害者布拉迈尔斯的局部肢体。

  法庭上,格里菲思对本人的谋杀罪名承认不讳。

  英国立体媒体21日不惜沉朱报讲格里菲思一案,但除却案情,媒体更添量信社会风尚跟人物心理遭遇疏忽的现状。

  持凶器“十字弓”杀己肢结

  “凶手毫无悔悟之意,甚至连一句对不伏皆不对逝世者说,”法民此得?奥彭肖在法庭上说:“谋宰情况如斯恶劣、可怕,casque dre,令尔决然毅然决议,凶手必需在监狱中渡过余生。”

女厕建男用站立式便池 主要供小男孩使用(图)

on
February 9, 2011 - 11:04am

昨日,湘江一桥旁公共女厕所内的小男孩专用站立式小便池。图/实习记者沈荣华

  天心区推行“新概念”公厕,小男孩可进女厕所如厕,人流密集公厕拟推女用站立厕位

  市民称“会很尴尬”,apple mp4;相关负责人表示,小男孩站立区和女厕所蹲位会隔离

  如果有一天,你在女厕所里看到了男用的站立式小便池,会不会很意外?不要紧张,这样的小便池是供小男孩“方便”用的。

  昨天,记者从天心区环卫部门获悉,该区开始推行人性化的“新概念”公厕,女厕所有了小男孩的站立小便池,以解决女家长不放心小男孩单独进男厕,进女厕所又不方便带来的难题。此外,在某些人流量大的公厕,可能会推出女用站立小便厕位,以缓解女厕蹲位不足的问题。本报记者龙源 长沙报道

  主要供3岁左右的小男孩使用

  目前,湘江一桥旁的公共女厕所中,就安装了站立式小便池,mp3 suppliers。天心区环卫部门负责人表示,这主要是给3岁左右的小男孩用的。

  为什么要在该厕所安装这一设施?昨日下午,天心区站厕管理的一位负责人表示,根据测算,该厕所每天人流量上万,经常发现有年轻的妈妈遇到这样的难题:女家长带着几岁的孩子外出,让小孩单独进男厕不放心,送进女厕所又不方便。“我们根据群众的意见进行了改造,特意在女厕所开辟了这一区域,用‘人性化’的设施为市民提供方便。”

  “很多母亲带着男孩子进厕所,我遇见过,也能理解。”一位市民得知这一新设施后表示,“但如果我上厕所时,发现小男孩就站在眼前站着撒尿,会很尴尬。”

  据了解,目前对进女厕所如厕的男童,并没有严格的年龄和身高限制。

  女性蹲位和男孩如厕区隔离

  在采访中,2-3岁孩子的妈妈普遍认为,如果孩子的父亲不在场,而且男孩的岁数比较小,可能会考虑带小男孩去女厕,“毕竟孩子身体健康要紧,大小便不能憋”,但绝对不会引导孩子去做一些不道德、不文明的行为。

  天心区相关管理负责人表示,许多设施是随着社会的发展逐渐演变和进步的,例如湘江一桥旁的公共厕所,由于人流量大,因此有保洁员值班,假若进入女厕所上厕所的小男孩年龄比较大,保洁人员会进行劝阻。此外,小男孩站立区和女厕所蹲位虽然都在女厕所中,但实际上还是分开的,“因为蹲位有隔离门和门栅,女性如厕时和外界是分开的,一旦隔离门损坏,保洁员也将及时修复,绝不会让如厕女性感到尴尬。

  人流密集区拟推女用站立小便位

  该负责人表示,厕所“人性化”,此外还包括:在厕所地面铺设防滑垫,在如厕间设置衣帽钩、放行李的平台;在厕所安装小型的音响,在规定的时间播放背景音乐,提高如厕的舒适度。

  此外,该区还计划在新世纪体育中心等人流量大的地方设置移动厕所,甚至还将在公厕内安设雨伞、风油精、报纸等便民服务。在天心阁的公厕里面,种植了茶花、松柏等各种绿色植物,与景区完全融为一体。

  天心区环卫部门负责人还告诉记者,天心区共有公厕126座,天心阁公厕、湘江一桥公厕等五个公厕成为文化公厕首批试点公厕。他透露,目前计划在某些人流密集的公厕推出女用站立小便厕位,以缓解女厕蹲位不足的情况。不过,这种功能型厕所的设置还在设计中。

特德接著承認

mega (not verified)
on
March 8, 2011 - 11:43pm

特德接著承認,'我碰巧認為,我們需要鼓勵新人到內核開發者社區,所以我花更多的時間指導的人誰是新的進程。'他說,不過他的時間是有限的,而補丁時更迅速地接受它們很容易審查和統一。至於該文件系統的補丁已經提交,他補充說:

我们结婚了 生菜夫妇

on
March 26, 2011 - 9:22pm

  《新婚旅行》

  

  

  

  记得第一次看到你是在济洲岛国际机场外,你提着行李箱走在斑马线上,是处张望的你在寻找着还没见面的皇夫人…另一头皇夫人帅气的开着跑车过来向你矜持的打招呼,礼貌的你因为夫人是姐姐而恭敬的说着敬语。因为你的敬语害的夫人只能尴尬的笑笑。皇夫人说因为你是男人让你开车,你却搞了一大堆理由说不能…夫人想倒…夫人开玩笑说:行李不会也让我帮你拿吧!小新郎慌张的说不用…事后回忆起初次见面,你说你根本没有想到是皇夫人,期待那种跟你相称的可爱女孩,(傻瓜啊…哪会有那种真的像你想法中完美的人)看着夫人回忆第一次见面拍着手高兴的说像中了乐透,是不是感到很内疚啊…虽然刚开始说不开车的但后来还是你开了,很有男子气概嘛…路过机场遇见了新郎的少女Fans,真是太搞笑了…在车上知道你是86年的,夫人是 80年的。但站在一起看不出差距来。在一起生活要怎么相互称呼对方,你说你以前称呼你的女朋友都是叫她‘呀、呀呀…’就这样无话可说了30分钟。想想后来多么的珍惜两人在一起的时间,是不是很后悔啊…为了打破沉默,夫人突然问你:是不是女生让做的事你都会做。你说:能做的就做,不能做的就不给做。比如根本不像话的事情,从天上摘星星给我。真的很讨厌这些事。夫人听完后大笑,问还有人说这话,那话是谁说的…由于太放松连敬语都望了说…到达落脚的地方,很漂亮的房子,巨大的落地窗,可以观赏全景的阳台,在美丽的海边…为了新婚夫人准备了很多情侣装,你说你很讨厌这种东西并且觉得很丢脸,不喜欢肉麻的、爱情外露的行为,觉得太有负担感,虽然夫人很伤心,但我很高兴,是我喜欢的行为。善良的你为了不伤夫人的心采取了折中的办法,完美国际sf发布,将T-shirt剪的不一样…修改途中想让夫人在帮忙剪多一点的你说出了:麻烦你一下,夫人听后虽然是在笑,但更想哭吧!和夫人终于要出海钓鱼,看你提了一个黑色的袋子,还以为装的是什么,居然是漫画书,还以为你不看呢,都那大了,受不了了…夫人都不想活了。夫人坐在船头你怕她掉下去,夫人问:如果我掉下去你会不会跳下去救我。你当然会跳下去,不过只会用手拎夫人身上的救身圈…“讨厌”的小新郎啊!痛快的新婚旅行居然是从白天到黑夜一条鱼也没钓到,最后只能面对阴沉的大海和夫人吃着面包喝着红酒结束这没怎么有鱼的新婚。就只是这样也觉得很幸福啊!喝完love short,夫人像醉了似的叫着“贤重啊…”看着这样的夫人觉得“笑的样子非常的豪迈、很帅气,看着她这样的样子很幸福”夫人也感到能从小新郎你那里得到幸福啊!回到饭店,让夫人先去休息的你准备着烧烤,夫人临走时问你:是想看可爱的还是性感成熟的。傻傻的你竟然想看成熟的…准备完的你给夫人打电话,看夫人穿着一袭黑色的亮片晚礼服,你傻了眼,好笑的问出了:姐姐!你难道不冷吗?夫人想晕…后来回忆说:看到夫人穿的那么华丽,自己还穿着那件被剪过的情侣装感觉自己像个奴仆似的,认为我也必须穿点什么再来烤肉才行…因为小新郎的四次元,将‘生菜’发音成‘僧菜’,还问出:姐姐为什么吃僧菜。可怕的发音让夫人都无言…帮夫人包了一个,居然是推进去的,夫人嚼都嚼不进去。突发奇想般的想让夫人用勺子打开酒瓶盖,夫人推迟说不能开,你认为能打开的人很帅气,看起来特别的cool。在你的花言巧语下夫人真的帅起的用勺子打开了酒瓶盖,夫人梦想的新婚不是这样的,梦想的新婚菜里面应该藏着戒指…为了消除尴尬希望和夫人能正常的对视对话,夫人说得先从放开说话开始,小新郎感慨的说:要走的路还真长呢。夫人让你就叫她夫人时深思了一会的你竟然要夫人叫你‘老头子’…

  晚上回到房子看见先洗完澡的你坐在沙发上看着漫画书,头发上还夹着夫人的发卡,真是可爱的不行了…抓蚊子的你也是那么的可爱,夫人洗完后出来帮你擦护夫品。你像个孩子似的满足的对夫人说你抓到蚊子了…看到墙壁上有一只蚊子,小新郎居然推开夫人大步的朝蚊子走去,夫人真是无言了,夫人感慨说:新婚之夜就以抓蚊子结束吗…最后发现居然是窗子没关。后来小新郎回忆说:我一只一只地抓蚊子的时候,就觉得是在保护妻子。把吸妻子血的蚊子抓了10只以上的话,我就觉得是在守护一个家庭。但是妻子说别在抓蚊子了,很遗憾只能结束了。真的是服了小新郎的四次元…蚊子扫荡之后夫人穿着‘女神’的衣服出来,夫人说:为了以后好好的生活,写给对方的约定会好好遵守。爱的宣言小新郎:“如果妻子生病,我会跑遍所有地方为她找药。绝对不会看其他的异性。面临任何的诱惑和来临的困难都有战胜的信心。结婚的理想,一辈子围绕在妻子身边,要变成像氧气一样的新郎”。夫人读完之后开心的问:你是怎么想的啊。你又四次元的说:总不能变成氮气吧。唉!这次更加确定新郎的魅力就是脱线吧。最后还用口红盖章,看着涂了口红的新郎,真的是很惊艳啊…

as

on
May 22, 2011 - 6:46am

burçlar hakkında bilgi burçlar

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.