From 4489b7e7b2a4313557f0d783d7c8286b61516abf Mon Sep 17 00:00:00 2001 From: Sergio Durigan Junior Date: Fri, 13 Sep 2019 20:58:46 -0400 Subject: [PATCH] First commit --- gdb-bof-cauldron-2019.org | 100 +++++++++++++++++++++++ gdb-bof-cauldron-2019.pdf | Bin 0 -> 105671 bytes gdb-bof-cauldron-2019.tex | 164 ++++++++++++++++++++++++++++++++++++++ submit-patch.dot | 10 +++ 4 files changed, 274 insertions(+) create mode 100644 gdb-bof-cauldron-2019.org create mode 100644 gdb-bof-cauldron-2019.pdf create mode 100644 gdb-bof-cauldron-2019.tex create mode 100644 submit-patch.dot diff --git a/gdb-bof-cauldron-2019.org b/gdb-bof-cauldron-2019.org new file mode 100644 index 0000000..1fa34b0 --- /dev/null +++ b/gdb-bof-cauldron-2019.org @@ -0,0 +1,100 @@ +#+OPTIONS: toc:nil date:nil +#+CREATOR: Emacs 26.1 (Org mode 9.1.9) +#+TITLE: GDB tests, CI & Buildbot BoF +#+AUTHOR: Sergio Durigan Junior @@latex:\\@@ sergiodj@redhat.com +#+LANGUAGE: en + +* License + +- License: *Creative Commons Attribution 4.0 International License (CC-BY-4.0)* + +- https://creativecommons.org/licenses/by/4.0/ + +* How was it? + +- GDB Buildbot started in 2015 as a personal project. + +#+BEAMER: \pause + +- We just had *2* machines serving *4* Fedora =x86_64= workers at the + time. And no /try builds/! + +#+BEAMER: \pause + +- Initially it stored the test results in a git repository. This + proved too inefficient over time... + +* And now? + +- The master runs in a dedicated VM at *OSCI* (@@latex:\textbf{O}@@pen + @@latex:\textbf{S}@@ource @@latex:\textbf{C}@@ommunity + @@latex:\textbf{I}@@nfrastructure). + +#+BEAMER: \pause + +- Most of our builders support /try builds/! + +#+BEAMER: \pause + +- *14* workers (*11* machines): + + #+BEAMER: \pause + + - Sergio (Red Hat): *2* machines (Fedora =x86_64=) + + - Alan Hayward (ARM): *2* machines (Ubuntu =ARM 32= and =64=) + + - Rainer Orth (CeBiTec.Uni-Bielefeld.DE): *2* machines (Solaris + =amd64= and =sparcv9=) + + - David Edelsohn: *3* machines (RHEL 7.1 =s390x=, AIX =POWER8= and + Debian Jessie =s390x=) + + - Edjunior Machado: *1* machine (CentOS 7 =PPC64LE=) + + - Mark Wielaard: *1* machine (Fedora =s390x=) + +#+BEAMER: \pause + +- Test results are stored directly on-disk, and “garbage-collected” + every week (tests older than 4 months are deleted). + +* How does it work? + +- + +* Notifications + +- To /gdb-testers/: whenever we detect a possible regression in an + upstream commit. + +#+BEAMER: \pause + +- To the /author/: on /try builds/, or when his/her commit broke GDB. + +#+BEAMER: \pause + +- To /gdb-patches/: when a commit breaks GDB. + +#+BEAMER: \pause + +- Breakage notifications are usually reliable. Regression + notifications are not (just look at /gdb-testers/). + +* Problems and challenges + +- Racy testcases. Perhaps the most difficult/persistent problem? + +#+BEAMER: \pause + +- Lots of test messages are non-unique. This makes it really hard to + compare test results and find regressions. + +#+BEAMER: \pause + +- Better way to store and retrieve test results (current way is + “enough” for what we need, but it can certainly be improved). + +#+BEAMER: \pause + +- diff --git a/gdb-bof-cauldron-2019.pdf b/gdb-bof-cauldron-2019.pdf new file mode 100644 index 0000000000000000000000000000000000000000..37a4d39a69cac767252ecef85bc450ebff3d5967 GIT binary patch literal 105671 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؟Sw&ZEugSYcInwJ-N>+4e6OyrV_IC$0JZI6)+ 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 iZo0<)-v)<+qoKW{tNojW0b*ulA-~*I2;- literal 0 HcmV?d00001 diff --git a/gdb-bof-cauldron-2019.tex b/gdb-bof-cauldron-2019.tex new file mode 100644 index 0000000..b5ca514 --- /dev/null +++ b/gdb-bof-cauldron-2019.tex @@ -0,0 +1,164 @@ +% Created 2019-09-12 Thu 13:03 +% Intended LaTeX compiler: pdflatex +\documentclass[presentation]{beamer} +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +\usepackage{graphicx} +\usepackage{grffile} +\usepackage{longtable} +\usepackage{wrapfig} +\usepackage{rotating} +\usepackage[normalem]{ulem} +\usepackage{amsmath} +\usepackage{textcomp} +\usepackage{amssymb} +\usepackage{capt-of} +\usepackage{hyperref} +\usepackage{color} +\usepackage{listings} +\usetheme{default} +\author{Sergio Durigan Junior \\ sergiodj@redhat.com} +\date{} +\title{GDB tests, CI \& Buildbot BoF} +\hypersetup{ + pdfauthor={Sergio Durigan Junior \\ sergiodj@redhat.com}, + pdftitle={GDB tests, CI \& Buildbot BoF}, + pdfkeywords={}, + pdfsubject={}, + pdfcreator={Emacs 26.1 (Org mode 9.1.9)}, + pdflang={English}} +\begin{document} + +\maketitle + +\begin{frame}[label={sec:orgbad1c50}]{License} +\begin{itemize} +\item License: \alert{Creative Commons Attribution 4.0 International License (CC-BY-4.0)} + +\item \url{https://creativecommons.org/licenses/by/4.0/} +\end{itemize} +\end{frame} + +\begin{frame}[fragile,label={sec:org4538604}]{How was it?} + \begin{itemize} +\item GDB Buildbot started in 2015 as a personal project. +\end{itemize} + +\pause + +\begin{itemize} +\item We just had \alert{2} machines serving \alert{4} Fedora \texttt{x86\_64} workers at the +time. And no \emph{try builds}! +\end{itemize} + +\pause + +\begin{itemize} +\item Initially it stored the test results in a git repository. This +proved too inefficient over time\ldots{} +\end{itemize} +\end{frame} + +\begin{frame}[fragile,label={sec:org9dadf47}]{And now?} + \begin{itemize} +\item The master runs in a dedicated VM at \alert{OSCI} (\textbf{O}pen +\textbf{S}ource \textbf{C}ommunity +\textbf{I}nfrastructure). +\end{itemize} + +\pause + +\begin{itemize} +\item Most of our builders support \emph{try builds}! +\end{itemize} + +\pause + +\begin{itemize} +\item \alert{14} workers (\alert{11} machines): + +\pause + +\begin{itemize} +\item Sergio (Red Hat): \alert{2} machines (Fedora \texttt{x86\_64}) + +\item Alan Hayward (ARM): \alert{2} machines (Ubuntu \texttt{ARM 32} and \texttt{64}) + +\item Rainer Orth (CeBiTec.Uni-Bielefeld.DE): \alert{2} machines (Solaris +\texttt{amd64} and \texttt{sparcv9}) + +\item David Edelsohn: \alert{3} machines (RHEL 7.1 \texttt{s390x}, AIX \texttt{POWER8} and +Debian Jessie \texttt{s390x}) + +\item Edjunior Machado: \alert{1} machine (CentOS 7 \texttt{PPC64LE}) + +\item Mark Wielaard: \alert{1} machine (Fedora \texttt{s390x}) +\end{itemize} +\end{itemize} + +\pause + +\begin{itemize} +\item Test results are stored directly on-disk, and “garbage-collected” +every week (tests older than 4 months are deleted). +\end{itemize} +\end{frame} + +\begin{frame}[label={sec:orgd76b986}]{How does it work?} +\begin{itemize} +\item +\end{itemize} +\end{frame} + +\begin{frame}[label={sec:orge36c4d4}]{Notifications} +\begin{itemize} +\item To \emph{gdb-testers}: whenever we detect a possible regression in an +upstream commit. +\end{itemize} + +\pause + +\begin{itemize} +\item To the \emph{author}: on \emph{try builds}, or when his/her commit broke GDB. +\end{itemize} + +\pause + +\begin{itemize} +\item To \emph{gdb-patches}: when a commit breaks GDB. +\end{itemize} + +\pause + +\begin{itemize} +\item Breakage notifications are usually reliable. Regression +notifications are not (just look at \emph{gdb-testers}). +\end{itemize} +\end{frame} + +\begin{frame}[label={sec:orgcf5098b}]{Problems and challenges} +\begin{itemize} +\item Racy testcases. Perhaps the most difficult/persistent problem? +\end{itemize} + +\pause + +\begin{itemize} +\item Lots of test messages are non-unique. This makes it really hard to +compare test results and find regressions. +\end{itemize} + +\pause + +\begin{itemize} +\item Better way to store and retrieve test results (current way is +“enough” for what we need, but it can certainly be improved). +\end{itemize} + +\pause + +\begin{itemize} +\item +\end{itemize} +\end{frame} +\end{document} diff --git a/submit-patch.dot b/submit-patch.dot new file mode 100644 index 0000000..178104d --- /dev/null +++ b/submit-patch.dot @@ -0,0 +1,10 @@ +digraph submitpatch { + graph [ dpi = 300 ]; + "Patch" -> "Buildbot" [label=" Submit"]; + "Buildbot" -> "Scheduler"; + "Scheduler" -> "Builder 1"; + "Scheduler" -> "Builder 2"; + "Scheduler" -> "Builder 3"; + "Scheduler" -> "..."; + "Scheduler" -> "Builder N"; +}