My Experiences as a Kernel Contributor by Arvind Yadav

My Experiences as a Kernel Contributor by Arvind Yadav
Slide Note
Embed
Share

This insightful journey unveils Arvind Yadav's experiences as a kernel contributor, highlighting the process, guidelines, and contributions within the kernel development community. From beginner insights to significant contributions, delve into the world of open-source collaboration through Arvind's narrative.

  • Kernel Contributor
  • Open Source
  • Community
  • Coding
  • Technology

Uploaded on Mar 05, 2025 | 0 Views


Download Presentation

Please find below an Image/Link to download the presentation.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author.If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.

You are allowed to download the files provided on this website for personal or commercial use, subject to the condition that they are used lawfully. All files are the property of their respective owners.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author.

E N D

Presentation Transcript


  1. My Experiences as a Kernel Contributor By Arvind Yadav arvind.Yadav.cs@gmail.com

  2. AGENDA My Experience as a Beginner Snippets about other contributors Every Bit Matters My Contribution Process Guidelines Q&A

  3. MY EXPERIENCES AS A BEGINNER How it all started How I got my first patch Learnings from my failures

  4. MY FIRST PATCH

  5. SNIPPET ABOUT OTHER CONTRIBUTORS His major contribution deals with Coverty tool generated issues He has 1000+ patches under his name Gusto A R Silva

  6. SNIPPET ABOUT OTHER CONTRIBUTORS Her major contribution lies in the area of constify data operations and methods She has gained 500+ patches under her name Bhumika Goyal

  7. Allen Pais Kees Cook Both have contributed under Convert timers to use timer_setup() and setup_timer() Allen has contributed over 100+ patches in the current cycle Kees Cook has been one of the major contributors with 1000+ patches under his name

  8. SNIPPET ABOUT OTHER CONTRIBUTORS His major contribution lies in the area of fixing checkpatch error and code cleanup He has over 1000+ patches under his name Markus Elfring

  9. EVERY BIT MATTERS The Typo that destroyed the NASA Rocket Heart Bleed Error AT&T Network Goes Down Day of the dead living

  10. MY CONTRIBUTIONS CONSTIFY DEVICE ID / ATTRIBUTE ERROR HANDLING OR TAKING CARE OF RETURN VALUES MEMORY / CLOCK RELEASES CODE CLEANUP COMPILATION WARNING CHECKPATCH ERROR BUG FIXING

  11. CONSTIFY DEVICE ID / ATTRIBUTE

  12. ERROR HANDLING OR TAKING CARE OF RETURN VALUES

  13. MEMORY / CLOCK RELEASES

  14. CODE CLEANUP

  15. COMPILATION WARNING

  16. CHECKPATCH ERROR

  17. BUG FIXING kasan: CONFIG_KASAN_INLINE enabled kasan: GPF could be caused by NULL-ptr deref or user memory access general protection fault: 0000 [#1] PREEMPT SMP KASAN Modules linked in: CPU: 1 PID: 1497 Comm: kworker/1:1 Not tainted 4.14.0-rc4-43418-g43a3f84d2109-dirty #380 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Bochs 01/01/2011 Workqueue: usb_hub_wq hub_event task: ffff88006a5618c0 task.stack: ffff880068bc8000 RIP: 0010:imon_probe+0x231/0x3f10 drivers/media/rc/imon.c:2519 RSP: 0018:ffff880068bce2d8 EFLAGS: 00010206 RAX: 0000000000000000 RBX: ffff8800627dd500 RCX: 0000000000000027 RDX: dffffc0000000000 RSI: 0000000000000000 RDI: 0000000000000138 RBP: ffff880068bce5e8 R08: ffff88006a5618c0 R09: ffffffff84b380fc R10: ffff880068bce2c8 R11: 1ffff1000d4ac5b3 R12: ffff880061830000 R13: ffff880061830008 R14: ffffffff883fa200 R15: ffffffff883fa080 FS: 0000000000000000(0000) GS:ffff88006c500000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00000000206cbffc CR3: 0000000061085000 CR4: 00000000000006e0 Call Trace: usb_probe_interface+0x35d/0x8e0 drivers/usb/core/driver.c:361 really_probe drivers/base/dd.c:413 driver_probe_device+0x610/0xa00 drivers/base/dd.c:557 __device_attach_driver+0x230/0x290 drivers/base/dd.c:653 bus_for_each_drv+0x161/0x210 drivers/base/bus.c:463 __device_attach+0x26e/0x3d0 drivers/base/dd.c:710 device_initial_probe+0x1f/0x30 drivers/base/dd.c:757 bus_probe_device+0x1eb/0x290 drivers/base/bus.c:523 device_add+0xd0b/0x1660 drivers/base/core.c:1835 usb_set_configuration+0x104e/0x1870 drivers/usb/core/message.c:1932 generic_probe+0x73/0xe0 drivers/usb/core/generic.c:174 usb_probe_device+0xaf/0xe0 drivers/usb/core/driver.c:266 really_probe drivers/base/dd.c:413 driver_probe_device+0x610/0xa00 drivers/base/dd.c:557 __device_attach_driver+0x230/0x290 drivers/base/dd.c:653 bus_for_each_drv+0x161/0x210 drivers/base/bus.c:463 __device_attach+0x26e/0x3d0 drivers/base/dd.c:710 device_initial_probe+0x1f/0x30 drivers/base/dd.c:757 bus_probe_device+0x1eb/0x290 drivers/base/bus.c:523 device_add+0xd0b/0x1660 drivers/base/core.c:1835 usb_new_device+0x7b8/0x1020 drivers/usb/core/hub.c:2457 hub_port_connect drivers/usb/core/hub.c:4903 hub_port_connect_change drivers/usb/core/hub.c:5009 port_event drivers/usb/core/hub.c:5115 hub_event+0x194d/0x3740 drivers/usb/core/hub.c:5195 process_one_work+0xc7f/0x1db0 kernel/workqueue.c:2119 worker_thread+0x221/0x1850 kernel/workqueue.c:2253 kthread+0x3a1/0x470 kernel/kthread.c:231 ret_from_fork+0x2a/0x40 arch/x86/entry/entry_64.S:431 Code: ff e8 a4 81 cb 01 31 f6 48 89 df e8 2a cc 65 ff 0f ae f0 48 8d b8 38 01 00 00 48 ba 00 00 00 00 00 fc ff df 48 89 f9 48 c1 e9 03 <80>

  18. BUG FIXING Contd INFO: trying to register non-static key. the code is fine but needs lockdep annotation. turning off the locking correctness validator. CPU: 0 PID: 24 Comm: kworker/0:1 Not tainted 4.14.0-rc1-42251-gebb2c2437d80 #215 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Bochs 01/01/2011 Workqueue: usb_hub_wq hub_event Call Trace: __dump_stack lib/dump_stack.c:16 dump_stack+0x292/0x395 lib/dump_stack.c:52 register_lock_class+0x6c4/0x1a00 kernel/locking/lockdep.c:769 __lock_acquire+0x27e/0x4550 kernel/locking/lockdep.c:3385 lock_acquire+0x259/0x620 kernel/locking/lockdep.c:4002 flush_work+0xf0/0x8c0 kernel/workqueue.c:2886 hdpvr_probe+0x233/0x20d0 drivers/media/usb/hdpvr/hdpvr-core.c:400 usb_probe_interface+0x35d/0x8e0 drivers/usb/core/driver.c:361 really_probe drivers/base/dd.c:413 driver_probe_device+0x610/0xa00 drivers/base/dd.c:557 __device_attach_driver+0x230/0x290 drivers/base/dd.c:653 bus_for_each_drv+0x161/0x210 drivers/base/bus.c:463 __device_attach+0x26e/0x3d0 drivers/base/dd.c:710 device_initial_probe+0x1f/0x30 drivers/base/dd.c:757 bus_probe_device+0x1eb/0x290 drivers/base/bus.c:523 device_add+0xd0b/0x1660 drivers/base/core.c:1835 usb_set_configuration+0x104e/0x1870 drivers/usb/core/message.c:1932 generic_probe+0x73/0xe0 drivers/usb/core/generic.c:174 usb_probe_device+0xaf/0xe0 drivers/usb/core/driver.c:266 really_probe drivers/base/dd.c:413 driver_probe_device+0x610/0xa00 drivers/base/dd.c:557 __device_attach_driver+0x230/0x290 drivers/base/dd.c:653 bus_for_each_drv+0x161/0x210 drivers/base/bus.c:463 __device_attach+0x26e/0x3d0 drivers/base/dd.c:710 device_initial_probe+0x1f/0x30 drivers/base/dd.c:757 bus_probe_device+0x1eb/0x290 drivers/base/bus.c:523 device_add+0xd0b/0x1660 drivers/base/core.c:1835 usb_new_device+0x7b8/0x1020 drivers/usb/core/hub.c:2457 hub_port_connect drivers/usb/core/hub.c:4903 hub_port_connect_change drivers/usb/core/hub.c:5009 port_event drivers/usb/core/hub.c:5115 hub_event+0x194d/0x3740 drivers/usb/core/hub.c:5195 process_one_work+0xc7f/0x1db0 kernel/workqueue.c:2119 worker_thread+0x221/0x1850 kernel/workqueue.c:2253 kthread+0x3a1/0x470 kernel/kthread.c:231 ret_from_fork+0x2a/0x40 arch/x86/entry/entry_64.S:431

  19. PROCESS GUIDELINES Learn GIT Learn how to build a module/kernel Read the following documents several times Documents/HowTo Documents/CodingStyle Use checkPatch.pl and getMaintainer.pl Subject and Description should align the proper domain/ subsystem

  20. Q&A

  21. THANK YOU !!

More Related Content