FOSS Outreach Program for Women (OPW)
Bringing Women into the Linux Kernel
What is OPW?
● Organized by the GNOME Foundation
● Goal: Get more women into open source
● Internship: – 3 months – $5,000 stipend – Paired with mentor
● Program runs twice a year – June - Sept – Dec - March
Who can apply as interns?
● Women, genderqueer, genderfluid, and genderfree people
● Don't have to be a student
● Must be able to work full-time
● Can work remotely
Which projects are involved?
How to apply?
● Pick a project
● Contact a mentor
● Contribute to a project
● Fill out an application
Kernel Contributions
● First patch tutorial: – http://kernelnewbies.org/OPWfirstpatch
● Clean up staging drivers
● Separate mailing list, IRC channel
Round 7 is open!
● Next round: – applications opened Oct 1 – applications due Nov 11 – internships run Dec 10 - March 10 https://wiki.gnome.org/ OutreachProgramForWomen
How do new projects get involved?
● Talk to Karen Sandler
● Create a tutorial for first-timers
● Need to fund at least one intern – $5,750
How can I help out with OPW?
● Companies can: – Donate funds towards OPW interns – Talk to Karen Sandler
● Linux kernel developers can: – Review application patches – Volunteer as mentors – Talk to Sarah Sharp
Questions about the program?
Results of Linux Kernel OPW
● 41 applicants
● 7 interns
● Top 3.11 employer (#13)
● Top 3.11 developer (#10)
Intern Presentations
x86 core Project
Tülin İzer
Outreach Program for Women Intern
Mentored by: Peter Waskiewicz Jr
Project Info & Goal
● Central boot code in the Linux kernel
● Parallelizing the x86 boot process
How to achieve?
● Learn how the x86 boot path works for AP's
● Become proficient using GIT
● Create new cpu_up() function to loop over AP's calling do_boot_cpu
● Debug kernel paths changed to achieve parallel bringup
● Submit patches to kernel mailing list for inclusion in kernel
Things I learned
● How to build a kernel
● Using git
● How the x86 boot path works
● Sending a patch & updating
● Testing & debugging
● How to deal with different timezones
My achievements
● Improved code reading
● Not scared of changing kernel code anymore
● Contributing to an open source project
● Met and worked with awesome people
Thank you!
Tülin İzer
[email protected] #tulinizer on IRC http://tulinizer.blogspot.com
Outreach Program For Women
xHCI Trace Events
Xenia Ragiadakou
Mentor: Sarah Sharp
Linux Kernel USB3.0 Host Controller Driver
...... Speed up bug reporting
To enable xHCI debugging statements, bug reporters had to recompile with USB XHCI HCD DEBUGGING on.
▶ Rely on Dynamic Debugging
▶ Reboot with xhci hcd.dyndbg=+p
▶ Or just echo ’module xhci hcd +p’ in dynamic debug/control
...... Event Traces
▶ Deflate logs
▶ Enhance control over debugging
▶ Available xhci trace events under tracing/events/xhci-hcd
▶ Trace debug statements on specific code paths
▶ Trace xhci data structures
...... xHCI Event Trace Classes
▶ for debugging statements
▶ for input/output contexts
▶ for events
...... Parse xHCI traces in userspace
▶ Trace-cmd tool with xHCI plugin
https://github.com/elbeasto/xhci-trace-plugin
▶ Human readable traces
▶ Parsing in userspace
...... OPWExperience? GREAT!
During early application process
▶ First contact with FOSS community
▶ Use git, create patches
▶ Guidance from experienced developers
▶ Get in touch with other wanna-be hacxees
During internship
▶ Kernel built-in tracing mechanism
▶ xHCI design
▶ USB linux subsystem
...... DON’T be scared of the penguin
...... Linux Kernel: OPW experience
Laura Vasilescu [email protected] the beginning
the project the project
i210 ethernet adapter the coding
● private flags ● private flags ● RSS indirection table ● private flags ● RSS indirection table ● get/set channels the future Romanian Kernel Community
● Daniel Băluță ([email protected])
● University POLITEHNICA of Bucharest
● Romanian Open Source Education (ROSEdu) ○ 3:50 pm, today! Thanks! OPW - Xen vNUMA
Elena — OPW Xen Project Intern was working on OPW all summer 2013 had fun and really enjoyed coding best mentors in town
+ + Mentors
OPW Mentors
Xen and kernel mentors NUMA and Linux
NUMA topology parsing NUMA aware scheduling
Automatic NUMA balancing libnuma Xen vNUMA
● 'enlighten' guest with vNUMA topology
● performance in mind
● let user decide on virtual topology
● bind to NUMA pNUMA + vNUMA
virtual NUMA nodes VM 1 VM 2 VM 3
A B A B C A B
node1 node2
A B A A B C B
Physical NUMA nodes The Kernel Xen internship
● OPW and Linux Foundation
● Meet my mentors
● Facing dev community
● Grasp the idea
● Learn source code What was done
● Xen and Linux patches
● Understand code
● Comments from community
● Feature freeze for Xen 4.4 What was done exactly
Configure vNUMA topology Boot vNUMA aware guest name = "vm1" memory = 4096 vcpus = 4 vnodes = 2 vnumamem = [2048, 2048] vdistance = [10, 20] vnuma_vcpumap =[1, 0, 1, 0] vnuma_vnodemap = [0, 1, 1, 0, 1, 1] What has to be done
● A lot! :)
● Dom0/HVM NUMA awareness
● Automatic NUMA balancing support
● Performance evaluations
● Heuristics/Statistics What I have learned
● Reading source code
● Patches
● Big patches are bad
● Review process
● Git is great ● Xen and para-virtual guests
● Linux, booting, memory management
● Time management Thank you
● Linux Foundation and GNOME
● XenProject, Citrix, Oracle
● Xen project mentors and Linux Kernel Mentors
Dario Steffano GeorgeGeorge Konrad Sarah Greg