kernelnewbies.kernelnewbies.org archive mirror
 help / color / mirror / Atom feed
* Can't seem to find a maintainer for init/* files
@ 2019-10-18 21:33 Paulo Almeida
  2019-10-18 21:38 ` Paulo Almeida
                   ` (2 more replies)
  0 siblings, 3 replies; 7+ messages in thread
From: Paulo Almeida @ 2019-10-18 21:33 UTC (permalink / raw)
  To: kernelnewbies


[-- Attachment #1.1: Type: text/plain, Size: 994 bytes --]

Hi all,

I was reading the KernelJanitor/Todo webpage and found the printk-related
task that had to be done.

I eventually came across this piece of code that led me to 2 questions that
I couldn't answer myself
https://github.com/torvalds/linux/blame/master/init/do_mounts.c#L434-L455

1 - This specific code block has been around for quite some time and many
additions using the correct printk(KERN_* were made after it was written.
Does that mean that this code block is an exception and should be left
as-is for some technical reason? Or, people have somehow forgotten about it
and I finally found something to do? :)

2 - I took a look at the https://www.kernel.org/doc/linux/MAINTAINERS list
and their respective folders/repos and couldn't find out who would be the
person who I should eventually send the patches to. Is there any
"fallthrough" maintainer when there isn't one specified? (Please put me
straight if I'm not seeing things from the right angle)

Best regards,

Paulo Almeida

[-- Attachment #1.2: Type: text/html, Size: 1355 bytes --]

[-- Attachment #2: Type: text/plain, Size: 170 bytes --]

_______________________________________________
Kernelnewbies mailing list
Kernelnewbies@kernelnewbies.org
https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Can't seem to find a maintainer for init/* files
  2019-10-18 21:33 Can't seem to find a maintainer for init/* files Paulo Almeida
@ 2019-10-18 21:38 ` Paulo Almeida
  2019-10-18 22:32 ` Greg KH
  2019-10-18 23:25 ` Valdis Klētnieks
  2 siblings, 0 replies; 7+ messages in thread
From: Paulo Almeida @ 2019-10-18 21:38 UTC (permalink / raw)
  To: kernelnewbies


[-- Attachment #1.1: Type: text/plain, Size: 1447 bytes --]

I believe I just found the answer for point number 2:

THE REST
M: Linus Torvalds <torvalds@linux-foundation.org>
L: linux-kernel@vger.kernel.org
Q: http://patchwork.kernel.org/project/LKML/list/
T: git git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
S: Buried alive in reporters
F: *
F: */


On Sat, Oct 19, 2019 at 10:33 AM Paulo Almeida <
paulo.miguel.almeida.rodenas@gmail.com> wrote:

> Hi all,
>
> I was reading the KernelJanitor/Todo webpage and found the printk-related
> task that had to be done.
>
> I eventually came across this piece of code that led me to 2 questions
> that I couldn't answer myself
> https://github.com/torvalds/linux/blame/master/init/do_mounts.c#L434-L455
>
> 1 - This specific code block has been around for quite some time and many
> additions using the correct printk(KERN_* were made after it was written.
> Does that mean that this code block is an exception and should be left
> as-is for some technical reason? Or, people have somehow forgotten about it
> and I finally found something to do? :)
>
> 2 - I took a look at the https://www.kernel.org/doc/linux/MAINTAINERS list
> and their respective folders/repos and couldn't find out who would be the
> person who I should eventually send the patches to. Is there any
> "fallthrough" maintainer when there isn't one specified? (Please put me
> straight if I'm not seeing things from the right angle)
>
> Best regards,
>
> Paulo Almeida
>
>

[-- Attachment #1.2: Type: text/html, Size: 2402 bytes --]

[-- Attachment #2: Type: text/plain, Size: 170 bytes --]

_______________________________________________
Kernelnewbies mailing list
Kernelnewbies@kernelnewbies.org
https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Can't seem to find a maintainer for init/* files
  2019-10-18 21:33 Can't seem to find a maintainer for init/* files Paulo Almeida
  2019-10-18 21:38 ` Paulo Almeida
@ 2019-10-18 22:32 ` Greg KH
  2019-10-18 23:53   ` Paulo Almeida
  2019-10-18 23:25 ` Valdis Klētnieks
  2 siblings, 1 reply; 7+ messages in thread
From: Greg KH @ 2019-10-18 22:32 UTC (permalink / raw)
  To: Paulo Almeida; +Cc: kernelnewbies

On Sat, Oct 19, 2019 at 10:33:00AM +1300, Paulo Almeida wrote:
> Hi all,
> 
> I was reading the KernelJanitor/Todo webpage and found the printk-related
> task that had to be done.
> 
> I eventually came across this piece of code that led me to 2 questions that
> I couldn't answer myself
> https://github.com/torvalds/linux/blame/master/init/do_mounts.c#L434-L455
> 
> 1 - This specific code block has been around for quite some time and many
> additions using the correct printk(KERN_* were made after it was written.
> Does that mean that this code block is an exception and should be left
> as-is for some technical reason? Or, people have somehow forgotten about it
> and I finally found something to do? :)
> 
> 2 - I took a look at the https://www.kernel.org/doc/linux/MAINTAINERS list
> and their respective folders/repos and couldn't find out who would be the
> person who I should eventually send the patches to. Is there any
> "fallthrough" maintainer when there isn't one specified? (Please put me
> straight if I'm not seeing things from the right angle)

Run scripts/get_maintainer.pl on any file and it will tell you where to
send changes to:
	$ ./scripts/get_maintainer.pl --file init/do_mounts.c
	Al Viro <viro@zeniv.linux.org.uk> (commit_signer:7/9=78%,authored:5/9=56%,added_lines:7/44=16%,removed_lines:27/32=84%)
	David Howells <dhowells@redhat.com> (commit_signer:3/9=33%,authored:2/9=22%,added_lines:5/44=11%,removed_lines:5/32=16%)
	Andrew Morton <akpm@linux-foundation.org> (commit_signer:2/9=22%)
	Nikolaus Voss <nikolaus.voss@loewensteinmedical.de> (commit_signer:1/9=11%,authored:1/9=11%,added_lines:31/44=70%)
	Thomas Gleixner <tglx@linutronix.de> (commit_signer:1/9=11%,authored:1/9=11%)
	linux-kernel@vger.kernel.org (open list)

But don't do janitorial cleanup on those files as a "first task".  That
is what the drivers/staging/ directory is for, don't mess with core
kernel files unless you have experience doing kernel changes, as the
learning curve needs to be gotten over first.

good luck!

greg k-h

_______________________________________________
Kernelnewbies mailing list
Kernelnewbies@kernelnewbies.org
https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Can't seem to find a maintainer for init/* files
  2019-10-18 21:33 Can't seem to find a maintainer for init/* files Paulo Almeida
  2019-10-18 21:38 ` Paulo Almeida
  2019-10-18 22:32 ` Greg KH
@ 2019-10-18 23:25 ` Valdis Klētnieks
  2019-10-21 12:37   ` Paulo Miguel Almeida
  2 siblings, 1 reply; 7+ messages in thread
From: Valdis Klētnieks @ 2019-10-18 23:25 UTC (permalink / raw)
  To: Paulo Almeida; +Cc: kernelnewbies


[-- Attachment #1.1: Type: text/plain, Size: 1989 bytes --]

On Sat, 19 Oct 2019 10:33:00 +1300, Paulo Almeida said:

> 1 - This specific code block has been around for quite some time and many
> additions using the correct printk(KERN_* were made after it was written.
> Does that mean that this code block is an exception and should be left
> as-is for some technical reason? Or, people have somehow forgotten about it
> and I finally found something to do? :)

There's a meta-consideration or two here to think about.

First, many maintainers are not thrilled with trivial patches to code,
especially checkpatch cleanups.  That's because those patches fall into two
major categories:

The patch is against code that's debugged and rock solid stable.  Most of
do_mounts.c is close to a decade old, and it's only being changed when it's
needed to add an actual feature (such as mounting by partition label in 2018
or mounting a CIFS filesystem this year).  And we *have* had what looked like
"trivial checkpatch cleanup" patches that were buggy and broke stuff.

The other category is "patches against code that's being worked on".  If it's
something that somebody else is working on, it can cause merge conflicts, which
make maintainers grumpy.  So the maintainer only wants to see those cleanups if
they're by the person who's working on the code, at the front of the patch
series, so that (presumably) they don't have merge commits and they've gotten
some compile and run testing.

The other big consideration is git.  Yes, git knows where and when every single
line of code came from.  That doesn't mean it's always easy to get it to cough
up information.

For example:   'git blame init/do_mounts.c'.  That tells you where each line came from.
Now... imagine a commit that did a spaces-to-tabs cleanup on lines 249 to 257.
git blame' now lists the cleanup commit, not the 6 commits that added the original code.

Exercise for the reader:  Determine the easiest way to get 'git blame' to show you
the original 6 commits rather than the cleanup.

[-- Attachment #1.2: Type: application/pgp-signature, Size: 832 bytes --]

[-- Attachment #2: Type: text/plain, Size: 170 bytes --]

_______________________________________________
Kernelnewbies mailing list
Kernelnewbies@kernelnewbies.org
https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Can't seem to find a maintainer for init/* files
  2019-10-18 22:32 ` Greg KH
@ 2019-10-18 23:53   ` Paulo Almeida
  0 siblings, 0 replies; 7+ messages in thread
From: Paulo Almeida @ 2019-10-18 23:53 UTC (permalink / raw)
  To: kernelnewbies


[-- Attachment #1.1: Type: text/plain, Size: 1407 bytes --]


> On 19/10/2019, at 11:32 AM, Greg KH <greg@kroah.com> wrote:
> 
> Run scripts/get_maintainer.pl on any file and it will tell you where to
> send changes to:
> 	$ ./scripts/get_maintainer.pl --file init/do_mounts.c
> 	Al Viro <viro@zeniv.linux.org.uk <mailto:viro@zeniv.linux.org.uk>> (commit_signer:7/9=78%,authored:5/9=56%,added_lines:7/44=16%,removed_lines:27/32=84%)
> 	David Howells <dhowells@redhat.com <mailto:dhowells@redhat.com>> (commit_signer:3/9=33%,authored:2/9=22%,added_lines:5/44=11%,removed_lines:5/32=16%)
> 	Andrew Morton <akpm@linux-foundation.org <mailto:akpm@linux-foundation.org>> (commit_signer:2/9=22%)
> 	Nikolaus Voss <nikolaus.voss@loewensteinmedical.de <mailto:nikolaus.voss@loewensteinmedical.de>> (commit_signer:1/9=11%,authored:1/9=11%,added_lines:31/44=70%)
> 	Thomas Gleixner <tglx@linutronix.de <mailto:tglx@linutronix.de>> (commit_signer:1/9=11%,authored:1/9=11%)
> 	linux-kernel@vger.kernel.org <mailto:linux-kernel@vger.kernel.org> (open list)
> 
> But don't do janitorial cleanup on those files as a "first task".  That
> is what the drivers/staging/ directory is for, don't mess with core
> kernel files unless you have experience doing kernel changes, as the
> learning curve needs to be gotten over first.

Hi Greg,

I appreciate your reply and I will take your piece of advice on what to do as the first task.

Best regards,

Paulo Almeida

[-- Attachment #1.2: Type: text/html, Size: 17901 bytes --]

[-- Attachment #2: Type: text/plain, Size: 170 bytes --]

_______________________________________________
Kernelnewbies mailing list
Kernelnewbies@kernelnewbies.org
https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Can't seem to find a maintainer for init/* files
  2019-10-18 23:25 ` Valdis Klētnieks
@ 2019-10-21 12:37   ` Paulo Miguel Almeida
  2019-10-21 13:45     ` Valdis Klētnieks
  0 siblings, 1 reply; 7+ messages in thread
From: Paulo Miguel Almeida @ 2019-10-21 12:37 UTC (permalink / raw)
  To: kernelnewbies

On Fri, Oct 18, 2019 at 07:25:12PM -0400, Valdis Klētnieks wrote:
> On Sat, 19 Oct 2019 10:33:00 +1300, Paulo Almeida said:
> 
> > 1 - This specific code block has been around for quite some time and many
> > additions using the correct printk(KERN_* were made after it was written.
> > Does that mean that this code block is an exception and should be left
> > as-is for some technical reason? Or, people have somehow forgotten about it
> > and I finally found something to do? :)
> 
> There's a meta-consideration or two here to think about.
> 
> First, many maintainers are not thrilled with trivial patches to code,
> especially checkpatch cleanups.  That's because those patches fall into two
> major categories:
> 
> The patch is against code that's debugged and rock solid stable.  Most of
> do_mounts.c is close to a decade old, and it's only being changed when it's
> needed to add an actual feature (such as mounting by partition label in 2018
> or mounting a CIFS filesystem this year).  And we *have* had what looked like
> "trivial checkpatch cleanup" patches that were buggy and broke stuff.
> 
> The other category is "patches against code that's being worked on".  If it's
> something that somebody else is working on, it can cause merge conflicts, which
> make maintainers grumpy.  So the maintainer only wants to see those cleanups if
> they're by the person who's working on the code, at the front of the patch
> series, so that (presumably) they don't have merge commits and they've gotten
> some compile and run testing.
> 

That makes perfect sense. 

> The other big consideration is git.  Yes, git knows where and when every single
> line of code came from.  That doesn't mean it's always easy to get it to cough
> up information.

I must confess that prior to this "challenge" of yours, I hadn't realised how tricky
git can become to get it to do certain things.  

> 
> For example:   'git blame init/do_mounts.c'.  That tells you where each line came from.
> Now... imagine a commit that did a spaces-to-tabs cleanup on lines 249 to 257.
> git blame' now lists the cleanup commit, not the 6 commits that added the original code.
> 
> Exercise for the reader:  Determine the easiest way to get 'git blame' to show you
> the original 6 commits rather than the cleanup.

Considering that I'm technically a reader :) I'm gonna start with my solution and
if anyone else wants to add to it (or replace it altogether) feel free to do so.

What I got so far is:

L_START=249
L_FINISH=257
FILE=init/do_mounts.c; 

for commit in $(git log --format='%h' --no-patch -L$L_START,$L_FINISH:$FILE | cat | tail -n +2)
do 	
    echo "Showing commit: $commit of file: $FILE"
    git blame -n -L$L_START,$L_FINISH $commit -- $FILE
done

PS.: (For future readers)  That may take a while.

I feel like this isn't right per se as the "git log -L" doesn't support "--follow" 
argument that would impact our ability to make it cough up the info we wanted in case the
file had been renamed. However, on the other hand, it would (to my understanding) make
its best effort to keep track of those lines in the log history. (Correct me if I'm wrong)

In a second approach:
I tried making "git log" to list all the commits this particular file was involved in
(so I could use --follow) but I ended up with loads of commits that change other sections 
of the file (not the lines we were looking for) and because of that I didn't feel like I 
was meeting the "'git blame' to show you the original 6 commits rather than the 
cleanup" rule.

@Valdis I hope I'm not going off-topic but could you shed some light on this?

Last but not least, I appriciate the meta-consideration points you brought up.

Best Regards,

Paulo Almeida



_______________________________________________
Kernelnewbies mailing list
Kernelnewbies@kernelnewbies.org
https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Can't seem to find a maintainer for init/* files
  2019-10-21 12:37   ` Paulo Miguel Almeida
@ 2019-10-21 13:45     ` Valdis Klētnieks
  0 siblings, 0 replies; 7+ messages in thread
From: Valdis Klētnieks @ 2019-10-21 13:45 UTC (permalink / raw)
  To: Paulo Miguel Almeida; +Cc: kernelnewbies


[-- Attachment #1.1: Type: text/plain, Size: 775 bytes --]

On Tue, 22 Oct 2019 01:37:33 +1300, Paulo Miguel Almeida said:

> In a second approach:
> I tried making "git log" to list all the commits this particular file was involved in
> (so I could use --follow) but I ended up with loads of commits that change other sections
> of the file (not the lines we were looking for) and because of that I didn't feel like I
> was meeting the "'git blame' to show you the original 6 commits rather than the
> cleanup" rule.

Hint 1:  'git log' supports --no-merges which can simplify things sometimes.

Hint 2:   When specifying a commit, there is a ~ operator that can be used to advantage here.

So once you figure out which commit did the whitespace patching, it's easy to get
git blame to cough up what the tree looked like just before.

[-- Attachment #1.2: Type: application/pgp-signature, Size: 832 bytes --]

[-- Attachment #2: Type: text/plain, Size: 170 bytes --]

_______________________________________________
Kernelnewbies mailing list
Kernelnewbies@kernelnewbies.org
https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2019-10-21 13:46 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-10-18 21:33 Can't seem to find a maintainer for init/* files Paulo Almeida
2019-10-18 21:38 ` Paulo Almeida
2019-10-18 22:32 ` Greg KH
2019-10-18 23:53   ` Paulo Almeida
2019-10-18 23:25 ` Valdis Klētnieks
2019-10-21 12:37   ` Paulo Miguel Almeida
2019-10-21 13:45     ` Valdis Klētnieks

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).