Thread (20 messages) 20 messages, 6 authors, 2016-02-23

Re: [Question]: Contributing to btrfs

From: Simon Quigley <hidden>
Date: 2016-02-23 02:07:40

And, even employed, at least I also went through that phase.
(Not to mention I also started by sending small cleanups)
Thank you. I read Linus' statement somewhere, I just can't find it!
Despite reading the code, which sometimes is quite boring and easy to 
get lost especially when you are not familiar with btrfs,
personally I recommend to start from btrfs on-disk format with 
btrfs-dedup-tree.
I'll RTFM on this one because I don't know what this is.
And my personal quick-and-dirty skill up roadmap would be:
1) Understand btrfs on-disk format
2) btrfs-progs contributor
3) btrfs kernel contributor
Should this be documented somewhere?
On-disk data is static and you don't need to care any of the complicated 
implementation or details.
All you need to care is, what is on disk, what's the meaning of that 
on-disk data, and how on-disk data change after you did something with 
the btrfs filesystem, like creating a empty file/dir, or write some data 
into it.

Also, when you play with btrfs-debug-tree, it's quite easy to get 
familiar how btrfs-debug-tree works, and maybe found some easy 
enhancement for btrfs-debug-tree.

On-disk format also provides a super good entry point for further reading.

If you want to understand how btrfs inserts file extents, as long as you 
find file extents use EXTENT_DATA key type, you can easily find the 
direct code which inserts that key into btrfs btree.

With btrfs-debug-tree as a learning tool, you will be quite easy to 
begin your contribution to btrfs-progs, like adding some output which 
current btrfs-debug-tree lacks.

After you're familiar with btrfs-progs enough, all skills learnt will 
help you to start your kernel contribution, although kernel is never as 
easy as btrfs-progs, but I think that's your object.
I agree, because the userspace tool probably uses kernel calls of some sort.
I think David, one of the kernel maintainers and btrfs-progs maintainer, 
and Filipe, one of the core and the most active developer, their words 
have carries a lot of weight.
I apologize, I'm new around here, I thought Chris was the sole maintainer of all of btrfs. I also
wanted his additional feedback, but I guess that isn't really needed. :)

For all of you, thank you for taking time to help Philippe and myself out with this. I'm new to
kernel development and I'd really like to help out with btrfs because I feel it has serious
potential. I'm glad I learned how to submit patches, and I'll look into the resources suggested. In
my opinion this should be documented somewhere, a btrfs-specific thing, because I would much rather
RTFM then have to wait and ask questions (although the latter still is valuable). If you have any
other feedback for beginning kernel development that you would like to share, please, send me an
email or PM me on IRC. I'm on #btrfs on Freenode.

Thanks,
Simon Quigley
tsimonq2@ubuntu.com
tsimonq2 on Freenode
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help