Difference between revisions of "File:Kernel patches stats.png"

From OpenVZ Virtuozzo Containers Wiki
Jump to: navigation, search
(uploaded a new version of "Image:Kernel patches stats.png")
(Draw the graph: new version of script)
Line 45: Line 45:
  
 
if test "$1" != "-f"; then
 
if test "$1" != "-f"; then
        git pull
+
git pull
        sh count > time.dat
+
sh count > time.dat
 
fi
 
fi
  
 
DATE=$(date '+%d %b %Y')
 
DATE=$(date '+%d %b %Y')
 
MAXY=$(awk 'BEGIN {max=0}; ($3 > max) {max=$3}; END {print max+50}' < time.dat)
 
MAXY=$(awk 'BEGIN {max=0}; ($3 > max) {max=$3}; END {print max+50}' < time.dat)
 +
# GNU date is powerful!
 +
MAXX=$(date +%b-1-%Y --date='+2 months')
  
 
export GDFONTPATH=/usr/share/fonts/msttcorefonts/
 
export GDFONTPATH=/usr/share/fonts/msttcorefonts/
 
cat << EOF | gnuplot > plot.png
 
cat << EOF | gnuplot > plot.png
set terminal png transparent nocrop enhanced font verdanab 8 size 600,400
+
set terminal png enhanced font "verdanab,20" size 1600,1200
  
 
set title "OpenVZ team kernel patches progress as of ${DATE}"
 
set title "OpenVZ team kernel patches progress as of ${DATE}"
Line 62: Line 64:
 
set timefmt "%b-%d-%Y"
 
set timefmt "%b-%d-%Y"
 
set format x "%b\n%Y"
 
set format x "%b\n%Y"
 +
set grid xtics mxtics noytics
  
 +
set xrange [ : "${MAXX}" ]
 
set yrange [ 0 : ${MAXY} ]
 
set yrange [ 0 : ${MAXY} ]
set ylabel "Number of patches accepted into mainstream"
+
set ylabel "Number of patches, per kernel release,\naccepted into mainstream"
  
set border 3           # no lines at right and top
+
set border 3 # no lines at right and top
set xtics nomirror     # no tics at top
+
set xtics nomirror # no tics at top
set ytics nomirror     # no tics at right
+
set ytics nomirror # no tics at right
  
plot 'time.dat' using 1:3 with linespoints pt 7 ps 1.5 lw 2 lt 2 notitle, \
+
plot 'time.dat' using 1:3 with linespoints pt 6 ps 1 lw 2 lt 2 notitle, \
        ''     using 1:3:2 with labels left offset 0,1 rotate notitle, \
+
'' using 1:3:2 with labels left offset 0,1 rotate notitle, \
        ''     using 1:3:3 with labels left offset 0.7,0 notitle
+
'' using 1:3:3 with labels left offset 0.7,0 notitle
  
 
EOF
 
EOF
 
</source></small>
 
</source></small>

Revision as of 22:59, 28 March 2008

Description

This graph shows how many patches from OpenVZ developers were merged into mainstream Linux kernel, per each kernel version.

It is drawn by gnuplot using the data set obtained from kernel git repository.

Source code

Collect data

Here is the script to produce the data for the graph:

#!/bin/sh

latest=$(git tag | grep -v -- -rc | tail -n1 | sed -e 's/^.*\.\(.*\)$/\1/')
((latest++))

get_tag_date() {
        echo $(git show $1 | egrep ^Date: | head -n1) |
                sed 's/^Date: ... \(.*\) [-+]....$/\1/' |
                sed 's/ ..:..:..//' | sed 's/ /-/g'
}

for f in $(seq 13 $latest); do
        v1=v2.6.$((f-1))
        d1=$(get_tag_date $v1)
        if [ $f = $latest ]; then
                v2="HEAD   "
        else
                v2=v2.6.$f
        fi
        d2=$(get_tag_date $v2)
        echo -n $d2 $v2 " "
        git log --pretty=short --no-merges $v1..$v2 | grep 'Author:' | egrep \
                '@openvz.org|@parallels.com|@sw.ru|@swsoft.com|@sw.com.sg|adobriyan@|kuznet@' | wc -l
done | sed 's/ /\t/g'

Draw the graph

Here is the script to produce the graph. Note it calls the previous script under the name 'count'.

#!/bin/sh

if test "$1" != "-f"; then
	git pull
	sh count > time.dat
fi

DATE=$(date '+%d %b %Y')
MAXY=$(awk 'BEGIN {max=0}; ($3 > max) {max=$3}; END {print max+50}' < time.dat)
# GNU date is powerful!
MAXX=$(date +%b-1-%Y --date='+2 months')

export GDFONTPATH=/usr/share/fonts/msttcorefonts/
cat << EOF | gnuplot > plot.png
set terminal png enhanced font "verdanab,20" size 1600,1200

set title "OpenVZ team kernel patches progress as of ${DATE}"

unset xlabel
set xdata time
set timefmt "%b-%d-%Y"
set format x "%b\n%Y"
set grid xtics mxtics noytics

set xrange [ : "${MAXX}" ]
set yrange [ 0 : ${MAXY} ]
set ylabel "Number of patches, per kernel release,\naccepted into mainstream"

set border 3		# no lines at right and top
set xtics nomirror	# no tics at top
set ytics nomirror	# no tics at right

plot 'time.dat' using 1:3 with linespoints pt 6 ps 1 lw 2 lt 2 notitle, \
	''	using 1:3:2 with labels left offset 0,1 rotate notitle, \
	''	using 1:3:3 with labels left offset 0.7,0 notitle

EOF

File history

Click on a date/time to view the file as it appeared at that time.

(newest | oldest) View ( | older 10) (10 | 20 | 50 | 100 | 250 | 500)
Date/TimeThumbnailDimensionsUserComment
23:01, 28 March 2008Thumbnail for version as of 23:01, 28 March 20081,600 × 1,200 (36 KB)Kir (talk | contribs)updated version
08:49, 11 March 2008Thumbnail for version as of 08:49, 11 March 20081,600 × 1,200 (34 KB)Kir (talk | contribs)
22:37, 1 March 2008Thumbnail for version as of 22:37, 1 March 2008800 × 600 (11 KB)Kir (talk | contribs)
09:21, 27 February 2008Thumbnail for version as of 09:21, 27 February 2008600 × 400 (7 KB)Kir (talk | contribs)no border, no tics at right and top, no xlabel
16:34, 26 February 2008Thumbnail for version as of 16:34, 26 February 2008600 × 400 (7 KB)Kir (talk | contribs)
(newest | oldest) View ( | older 10) (10 | 20 | 50 | 100 | 250 | 500)
  • You cannot overwrite this file.

The following 2 pages link to this file:

Metadata