This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
people:mmazur [2005-11-23 00:06] mmazur test |
people:mmazur [2013-01-17 11:44] (current) |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | <file>[mmazur@rudy(pldac) linux-libc-headers]$ export|grep -i llh | + | ====== Builder stats generation ====== |
- | declare -x LLHDIR="/home/users/mmazur/devel/pld/sandbox/linux-libc-headers/" | + | (So I don't lose it) |
- | [mmazur@rudy(pldac) linux-libc-headers]$ pwd | + | |
- | /home/users/mmazur/devel/pld/sandbox/linux-libc-headers | + | |
- | [mmazur@rudy(pldac) linux-libc-headers]$ ls | + | |
- | 2.4 cvs linux-libc-headers skrypty tmp | + | |
- | 2.6 diffy paczka sources zepsute | + | |
- | </file> | + | |
- | Pod 'linux-libc-headers' jest zawartość cvsu, 'scripts' to link symboliczny do 'linux-libc-headers/scripts', jest tam kilka przydatnych rzeczy. W 'sources' są trzymane źródła kerneli, natomiast pod '2.4' i '2.6' są wyciągnięte ze źródeł nagłówki. Pierwsza rzecz, to zassać najnowszy kernel, rozpakować i wyciągnąć z niego nagłówki. W tym celu pierw sprawdzimy które katalogi z nagłówkami nas interesują. | + | |
+ | * <file>egrep '^To:|^Date:|^Build-Time:|X-PLD-Builder:' archive |uniq>~/th | ||
+ | egrep '^To:|^Date:|^Build-Time:|X-PLD-Builder:' -r . |uniq|cut -d: -f 2-10>>~/th | ||
- | <file>[mmazur@rudy(pldac) linux-libc-headers]$ ls 2.6/2.6.12.2/include/ | + | sed -e 's/^2,S://' -i th |
- | asm-alpha asm-generic asm-m68k asm-ppc64 asm-sparc64 mtd | + | |
- | asm-arm asm-h8300 asm-m68knommu asm-s390 asm-um scsi | + | |
- | asm-arm26 asm-i386 asm-mips asm-sh asm-v850 sound | + | |
- | asm-cris asm-ia64 asm-parisc asm-sh64 asm-x86_64 | + | |
- | asm-frv asm-m32r asm-ppc asm-sparc linux | + | |
- | </file> | + | |
- | Oto którymi nagłówkami interesowaliśmy się ostatnio. No to teraz dodajemy z obecnego kernela. | + | |
+ | echo 'builders={}'>th.py; | ||
+ | cat th|grep '^X-PLD-Builder:'|sort|uniq|sed -e 's,^X-PLD-Builder: \(.*\)$,builders["\1"]=[],' >>th.py; | ||
+ | cat th| sed -e 's,^To: \(.*\)$,)]\nsender="\1",' | sed -e 's,^X-PLD-Builder: \(.*\)$,builders["\1"]+=[ ( sender\, \\,'| sed -e 's,^Date: \(.*\) .....$,"\1"\, 0.0 \\,'| sed -e 's,^Build-Time:.*real:\([^s]*\)s.*$,+\1 \\,' >>th.py; | ||
+ | echo ')]'>>th.py; | ||
- | <file>[mmazur@rudy(pldac) linux-libc-headers]$ mkdir 2.6/2.6.13.2 | ||
- | [mmazur@rudy(pldac) linux-libc-headers]$ cd 2.6/2.6.13.2/include/ | ||
- | [mmazur@rudy(pldac) include]$ ls | ||
- | acpi asm-cris asm-i386 asm-m68knommu asm-ppc64 asm-sparc asm-x86_64 media rxrpc | ||
- | asm-alpha asm-frv asm-ia64 asm-mips asm-s390 asm-sparc64 asm-xtensa mtd scsi | ||
- | asm-arm asm-generic asm-m32r asm-parisc asm-sh asm-um linux net sound | ||
- | asm-arm26 asm-h8300 asm-m68k asm-ppc asm-sh64 asm-v850 math-emu pcmcia video | ||
- | [mmazur@rudy(pldac) include]$ rm -rf acpi/ math-emu/ media/ net pcmcia/ rxrpc/ video/ | ||
- | </file> | ||
- | No to pozbyliśmy się nieistotnych katalogów. Robimy diffy. | ||
- | <file>[mmazur@rudy(pldac) linux-libc-headers]$ cd scripts | + | import time |
- | [mmazur@rudy(pldac) scripts]$ ./mkdiffs.sh 2.6.12.2 2.6.13.2 | + | for bname in builders: |
- | [mmazur@rudy(pldac) scripts]$ cd ../diffy/ | + | builds=builders[bname] |
- | [mmazur@rudy(pldac) diffy]$ ls -lh | + | for build in builds: |
- | total 3.9M | + | t=time.strptime(build[1], "%a, %d %b %Y %H:%M:%S") |
- | -rw------- 1 mmazur users 16K Sep 28 19:56 add | + | t=time.strftime("%Y-%m-%d %H:%M:%S", t) |
- | -rw------- 1 mmazur users 424 Sep 28 19:56 del | + | print "INSERT INTO builds VALUES ('%s', '%s', '%s', %f);" % (bname, build[0], t, build[2]) |
- | -rw------- 1 mmazur users 3.1M Sep 28 19:55 full.diff | + | |
- | -rw------- 1 mmazur users 794K Sep 28 19:56 specific.diff | + | |
+ | |||
+ | |||
+ | echo 'CREATE TABLE builds (builder varchar(16), sender varchar(64), start datetime, duration float);'>th.sql; | ||
+ | python th.py |sort|uniq >> th.sql | ||
+ | |||
</file> | </file> | ||
- | W 'add' jest lista plików dodanych w nowej wersji kernela, w 'del' usuniętych, 'full.diff' to pełny diff (diff -urN), natomiast 'specific.diff' to diff tylko pomiędzy plikami, które istnieją w obu wersjach kernela. Lista w 'add' jest taka długa, bo doszła nowa architektura, ale dodawaniem i wywalaniem plików, to już się ja zajmę. | ||
- | Główna zabawa jest z nałożeniem 'specific.diff' na ostatnie llh. Trzeba pamiętać o wywaleniu z diffa makr ''__user'', ''__kernel'' i ''__iomem'' (i ewentualnie jakiś innych z linux/compiler.h). Poza tym nic nie powinno includować linux/config.h, a jak coś includuje asm-generic/*, to zostawić mi, bo to jest dziwnie rozwiązane. | ||
- | test | + | |
+ | |||
+ | [[::categoryhomepage|CategoryHomepage]] | ||