Jerin Jacob, a Senior Director at Marvell, is a pivotal maintainer in the DPDK community. With 20 years of experience, Jerin’s career began with Linux kernel development, laying the groundwork for his extensive contributions to high-performance networking. After joining Cavium, later acquired by Marvell, Jerin was tasked with supporting an open-source data plane framework on the OCTEON processor family, marking the beginning of his journey with DPDK.
A Natural Progression into Software Development
Jerin’s journey into software development began in his early childhood. He recalls playing card games and needing to emulate dice rolls. Using a bit of ingenuity and low-level programming, he turned a calculator into a makeshift dice emulator. This early exposure to basic programming concepts sparked his interest in computers during the early 1990s.
After completing his school years, Jerin pursued a diploma in Electronics and Communication, followed by a degree in Computer Science Engineering. During his diploma, he had access to Windows 3.1, where he started programming in BASIC and System programming. These initial experiences laid a strong foundation for his future endeavors.
In his engineering studies, Jerin transitioned to Linux kernel work, a significant shift from his earlier experiences with Windows 95. His first job involved moving Linux to embedded systems, a novel concept at the time. He worked on Multimedia SoCs focusing on Linux architecture/SoC porting and peripherals drivers for PCI, USB and Storage. This period, encompassing about ten years of full Linux development, significantly shaped his skills and expertise.
After a decade in Linux development, Jerin moved to Cavium, a company known for its innovation in the semiconductor industry who specialized in ARM-based and MIPS-based network, video, and security, This opportunity marked a new era in his career as he delved into user-space data plane work, which required a different mindset. Optimizing for performance became paramount, and he honed new skills in system-wide knowledge, Cache architecture, Virtualization, SMMU (System Memory Management Unit), and writing optimized drivers.
This skill set of balancing high performance with the flexibility to accommodate various vendor’s in driver subsystem development, set the stage for his future contributions to DPDK, where he would learn to create APIs that maintained performance while enabling contributions from multiple vendors to support vendor neutral APIs in DPDK.
The Technical Transition from Cavium to Marvell
Initially, when Cavium was in the data plane market, they had a SKU called OCTEON, which was primarily a proprietary SDK (Software Development Kit) based on MIPS architecture. To attract more customers and leverage open source activities, they decided to contribute to DPDK. Jerin led the Cavium/Marvell transition in this effort, adding ARM64 architecture support and specific hardware drivers.
Most of this work was done during his time at Cavium, including the initial ARM64 port. When Cavium’s acquisition by Marvell began, the focus shifted to fully integrating open-source contributions, moving away from proprietary SDKs. Marvell was instrumental in initiating this shift. In particular, Jerin’s manager at the time, Prasun Kapoor (now Assistant Vice President of Core Software, Infrastructure Processors at Marvell Technology), was pivotal in facilitating Jerin’s contributions to the DPDK community and the broader open source ecosystem.
Under Prasun’s guidance, Jerin was able to focus on integrating ARM64 support and specific hardware drivers into DPDK, transitioning from proprietary SDKs to fully open source contributions. This strategic shift has been supported by Marvell’s commitment to open-source innovation, a direction strongly advocated by Prasun at the time.
This strategic move allowed the team to build open-source accelerator drivers and contribute significantly to the DPDK community. This transition also marked the expansion of Jerin’s team, growing from a single person to around 50 contributors, significantly enhancing their collaborative efforts in high-performance networking. For instance, in Marvell’s current SKUs (Stock Keeping Units), Jerin achieved the capability of handling 105 million packets per second per core, a testament to his focus on performance optimization.
The acquisition of Cavium by Marvell, completed in July 2018, was a strategic move to create a leading semiconductor company focused on infrastructure solutions. This merger combined Marvell’s expertise in storage controllers, networking solutions, and high-performance wireless connectivity with Cavium’s strengths in network, video, and security processors.
The Journey into DPDK
Being one of the first contributors to the DPDK project was both challenging and rewarding for Jerin Jacob. The community played a significant role in this journey, constantly providing feedback and support. When Jerin began working on adding ARM64 support, his initial task was to eliminate dependencies on x86 in the build process. This effort involved adding a new layer for ARM64 support, benefiting greatly from the input and guidance of other maintainers at that time.
The early DPDK community was small, comprising a few dedicated individuals. Jerin recalls working alongside Bruce Richardson, Thomas Monjalon, Konstantin Ananyev, Stephen Hemminger, and Anatoly Burakov. While Anatoly primarily focused on the memory subsystem, Bruce and Stephen were deeply involved in various aspects of the project. Konstantin Ananyev, an x86 maintainer, was also instrumental in helping Jerin navigate the intricacies of integrating ARM64 support, providing valuable insights on maintaining cross-architecture compatibility.
Technical Contributions
Jerin started contributing to DPDK by tackling the significant challenge of removing x86 build dependencies and introducing ARM 64-bit (ARM64) support. This groundbreaking effort involved optimizing numerous libraries for ARM-specific instructions, making DPDK versatile and robust across different hardware platforms.
One of Jerin’s major achievements includes the development of the Event Device subsystem, which abstracts work scheduling aspects of hardware. This subsystem has been widely adopted by companies like Ericsson, Intel, NXP, and Marvell, demonstrating its broad applicability and impact.
Jerin also authored the Regular Expression (RegEx) device class and ML (Machine Learning), enabling advanced pattern matching and machine learning capabilities within DPDK. Furthermore, he developed the Graph Library, which enables graph-based packet processing, and the high-performance Trace Library, essential for performance monitoring and debugging. Both libraries have significantly enhanced DPDK’s capabilities.
In addition to his technical contributions, Jerin has been a respected maintainer in the DPDK community. He assists with maintaining various subsystems and sub-trees, collaborates with other major contributors, and represents Marvell on the technical board.
Work-Life Balance
Jerin Jacob places a high value on maintaining a balanced work-life dynamic, even while managing the demands of a high-paced career. One of his favorite ways to unwind and recharge is through travel. He typically plans solo trips once or twice a year, offering him the opportunity to explore new places and experiences. Additionally, he ensures to take at least one family trip annually, cherishing the moments spent with his loved ones and creating lasting memories.
Apart from traveling, Jerin is committed to lifelong learning. He dedicates time to expanding his knowledge in various fields, including Advanced Machine Learning (AML) and other emerging technologies. This continuous learning enhances his skill set and keeps him abreast of the latest advancements in his field.
Advice to New Developers Entering the Community
For new developers entering the community, Jerin suggests diving into the existing bug lists, starting with minor bugs or major ones depending on your comfort level. Fixing bugs, no matter the size, is an excellent way to familiarize yourself with the codebase and understand the project’s intricacies.
Another crucial area to focus on is improving the build system. This aspect is common to all contributors and offers a manageable way to get involved without feeling overwhelmed. Start with lightweight tasks that you can handle comfortably. This approach helps you gain confidence and learn the workflows and standards of the community.
Once you feel comfortable and have gained some recognition within the community, gradually move on to contributing to subsystems and higher-level aspects of the project. These areas require more time and more profound knowledge but offer significant learning opportunities and a chance to make a substantial impact.
The Importance of DPDK Summit Events and In-Person Interactions
Jerin’s experience with DPDK events has been instrumental in shaping his contributions to the community. He has attended almost all the European Summits, which serve as vital platforms for maintainers and tech leaders to communicate and collaborate. These summits provide an opportunity for in-person discussions, which are invaluable for exchanging ideas and resolving issues more effectively than through mailing lists alone.
Reflecting on his first summit, Jerin recalls the excitement and the significant difference it made to meet people in person after years of communication through mailing lists. The initial years, around a decade ago, did not feature many summits, or he was not in a position to travel. The shift from purely online interactions to face-to-face meetings brought a new level of understanding and collaboration. The feedback and discussions that occurred in person were far more proactive and productive, helping to build a sense of camaraderie and mutual understanding.
Meeting his peers in person allowed Jerin to understand their perspectives and work more seamlessly with them. He highlights that once you know people personally, it becomes easier to align proposals and projects to meet their expectations and avoid potential conflicts. This personal interaction helps in anticipating how someone might react to a new idea, enabling a more strategic approach to collaboration.
DPDK Maintainers as a Band of Musicians
If DPDK maintainers were a band, each member would play a unique and vital role, similar to musicians in an orchestra or a rock band. In this analogy, Jerin sees himself as the lyricist. The lyricist’s role is crucial as it involves creating the first stage of the song, defining how it needs to be structured, and setting the tone and direction for the rest of the band. This is akin to Jerin’s contributions to DPDK, where he defines high-level designs and APIs, laying the groundwork for others to build upon.
As a lyricist, Jerin focuses on the initial conceptualization and strategic planning of the project. He provides the foundational elements and guidelines that others follow to ensure the project progresses smoothly and coherently. Just as a song starts with lyrics that give it meaning and direction, Jerin’s work ensures that the project’s core components are well-defined and robust.
While Jerin primarily identifies with the role of the lyricist, he acknowledges that maintainers can take on multiple roles within the DPDK “band.” However, due to his current responsibilities, he is more focused on the planning and strategic aspects rather than individual contributions. He likens this to writing the lyrics rather than performing on stage.
Technology Jerin Could Not Live Without
For Jerin, mobile devices and computers are indispensable. These technologies are not only integral to his daily life but also form the backbone of his professional work. Mobile devices, in particular, offer the flexibility and connectivity that keep him engaged and productive, no matter where he is. They enable seamless communication, instant access to information, and the ability to manage various tasks on the go.
Computers, on the other hand, are essential for more intensive computing tasks, development work, and large-scale projects. They provide the robust capabilities needed for coding, debugging, and running complex simulations. Jerin relies heavily on these tools to execute his work efficiently and effectively.
In addition to these fundamental technologies, Jerin is continuously learning and adapting to new advancements. He is particularly interested in Artificial Intelligence and Machine Learning (AI/ML). By exploring how AI/ML can be leveraged, Jerin aims to offload mundane and repetitive tasks, allowing people to focus on more critical and creative aspects of their work. This approach not only enhances productivity but also fosters innovation.
The Future of DPDK and the Impact of AI
Jerin envisions a future where many routine and repetitive tasks in software development are offloaded to artificial intelligence (AI). This includes writing unit test cases, ensuring proper git commits, checking the sanity of code, and refactoring. AI’s role will be to handle these mundane yet essential tasks, allowing developers to focus on innovative and complex aspects of development.
He believes that once the initial ideas and high-level design are defined, AI can significantly accelerate the development process. While AI can take over tasks that follow set patterns and rules, such as generating unit test cases or identifying code regressions, the core implementation and performance-critical coding will still require human expertise. This is because the nuanced understanding of performance optimization is something that AI cannot fully replicate yet.
By automating repetitive tasks, AI can reduce the workload for maintainers. For instance, when a new patch is submitted, AI can review the code for basic sanity checks, allowing human maintainers to concentrate on more complex reviews and implementation details. This synergy between AI and human developers can lead to more efficient and faster development cycles. Jerin sees AI playing a crucial role in integrating new technologies and developing new libraries.
The Convergence of AI and Emerging Technologies in DPDK’s Future
Jerin envisions a transformative future for the Data Plane Development Kit (DPDK) project, driven by the convergence of AI, IoT, decentralized infrastructure, cloud computing, 5G, and other emerging technologies. This integration will significantly influence the direction and development of DPDK.
Expanding Beyond Drivers
Initially, DPDK focused primarily on driver development. However, the project’s scope is now expanding to include protocol aspects. For instance, Marvell has recently upstreamed support for security protocols like PDCP and TLS. The DPDK graph library is setting the stage for further protocol support, which will extend the project’s capabilities beyond simple driver APIs to include hardware-accelerated protocol development.
Workload-Driven Accelerators
In the past, general-purpose CPUs were sufficient for most tasks. However, the landscape is shifting towards workload-driven accelerators. Today’s approach involves understanding specific workloads and optimizing for them, rather than developing generic solutions. This top-down methodology means that companies, particularly hyperscalers like Google, are designing chips tailored to their specific workloads. This shift from general-purpose to workload-optimized accelerators is a key trend that DPDK is aligning with.
Offloading to Accelerators
Jerin sees a future where various tasks are offloaded to specialized accelerators. Starting from packet processing, the evolution includes offloading complete security, AI, and machine learning workloads. This shift involves using data processing units (DPUs) or other specialized processors (XPUs) to handle intensive tasks, allowing the main host CPU to focus on orchestrating these processes rather than executing them.
The Role of AI in Development
AI will play a crucial role in automating many routine tasks within DPDK development, such as writing unit test cases, ensuring proper git commits, checking code sanity, and refactoring. By offloading these repetitive tasks to AI, developers can focus on more complex and innovative aspects of development. While AI will handle the repetitive and structured tasks, human developers will continue to drive the implementation of new ideas and performance-critical code.
Future Integration and Development
As AI and blockchain technologies become more integrated, DPDK will adapt to support these advancements. The project will continue to evolve, focusing on enabling seamless integration and efficient execution of these emerging technologies within the DPDK framework. This includes optimizing accelerators for specific workloads, ensuring that the host CPU delegates rather than performs intensive tasks.
Overall, Jerin Jacob’s vision for DPDK involves a continuous evolution towards supporting more complex protocols and workloads, driven by the convergence of AI and other emerging technologies. This will enable DPDK to remain at the forefront of technological innovation and performance optimization.
Reflections on Open Source and DPDK
Jerin has been a significant contributor to both the Linux kernel and the DPDK (Data Plane Development Kit) projects. Reflecting on his journey, he shares his thoughts on the impact of open-source contributions to his career and personal growth.
Jerin finds great enjoyment in contributing to open source projects. This joy stems not only from the act of coding, but also from engaging with the community. “You can learn a lot from the community and how other people think about a given technical problem in different ways,” he explains. The collaborative nature of open source fosters an environment where diverse perspectives come together, leading to innovative solutions and continuous learning.
Contributing to DPDK has played a crucial role in Jerin’s personal and career development. He acknowledges the platform as a stepping stone in his corporate journey. “It’s helped me in a lot of personal growth as well,” Jerin states, emphasizing how open source contributions have bolstered his professional advancement. By proving his skills and consistently contributing to high-impact projects, Jerin has been able to climb the corporate ladder effectively.
Jerin likens his experience with DPDK to building a staircase. Each contribution is a stone laid down, providing a foundation for the next. “You prove something, and it’s like one stepping stone. With that, we put another stone, and you can just build on that,” he says. This iterative process of contributing, learning, and growing has been a rewarding and empowering journey for Jerin.
In summary, Jerin’s reflections highlight the impact that contributing to open source projects like DPDK can have on an individual’s career and personal development. It is a testament to the value of open-source communities in fostering growth, collaboration, and innovation.
Learn more about how you can contribute here: https://www.dpdk.org/contribute/