FOSS Outreach Program for Women (OPW)

Bringing Women into the 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

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