|
|
|
![]() |
|
Strumenti |
![]() |
#121 | |
Senior Member
Iscritto dal: Feb 2006
Città: Parma
Messaggi: 3010
|
Quote:
Ad ogni avanzamento di versione spesso sono effettivamente presenti anche un 10÷20 o più voci nuove, ma non mi sono mai trovato di fronte qualcosa che fosse assolutamente criptico. La maggioranza è costituita da driver per nuove periferiche, il restante è spesso proposto con la scelta più adatta per un utente finale e con una breve descrizione che è spesso sufficiente per inquadrarne lo scopo. In caso di dubbi una ricerca in Goggle dà solitamente tutti i chiarimenti necessari. Quello con cui ti stai misurando e che stai cercando di automatizzare è il primo impatto con tutte le voci disponibili. Come dice darkbasic non è un gran problema rintracciare i driver che ti servono, ma ti trovi di fronte ad una grande quantità di altre impostazioni da analizzare ed adattare alle tue necessità ed al tuo hardware. Una volta creata una configurazione completa, ciò che richiede più tempo, sarà molto più semplice aggiornarla di versione in versione o utilizzarla come base per macchine con hardware diverso ma scopi simili. Con Kolivas ha appena scritto che ci vorranno alcuni giorni perché non si aspettava il 38 così presto, dove hai letto che ha finito? Se si tratta di una notizia di un porting di terzi sarei anche ben contento di provarlo comunque, il goup scheduling non mi soddisfa...
__________________
~Breve riferimento ai comandi GNU/Linux (ormai non molto breve...) |
|
![]() |
![]() |
![]() |
#122 |
Senior Member
Iscritto dal: Jan 2008
Messaggi: 8406
|
|
![]() |
![]() |
![]() |
#123 |
Senior Member
Iscritto dal: Feb 2006
Città: Parma
Messaggi: 3010
|
L'ho già accennato qualche post fa: il sistema rimane utilizzabile anche con cpu al 100% ma si subiscono comunque sporadici ritardi.
Inoltre se si lancia un altro processo un minimo intenso il mio single core si deve arrendere. Con il BFS di ck il sistema rimane molto utilizzabile anche caricandolo abbondantemente (per esempio si vede bene un filmato flash anche durante una compilazione, mentre con il group scheduling va molto più a scatti). I kernel precedenti erano senz'altro molto meno interattivi in caso di sistema carico, ma non si raggiunge l'eccellenza dello scheduler "estremista" di ck. Ricordo che sto usando un PIV 2.2, quindi risulto abbastanza sensibile alle capacità dello scheduler, probabilmente usando un pc moderno la differenza percepibile potrebbe essere minore.
__________________
~Breve riferimento ai comandi GNU/Linux (ormai non molto breve...) |
![]() |
![]() |
![]() |
#124 |
Senior Member
Iscritto dal: Feb 2006
Città: Parma
Messaggi: 3010
|
Ho dato un'occhiata al seme per kernel vanilla di kernel-seeds per i386.
Osservazioni che mi ha suscitato. PRO
Personalmente quando trovo un'opzione oscura la cerco in Google, prediligendo i risultati KernelTrap ed articoli come questi di The H. Su Arch non faccio il guastafeste, la considero una distribuzione interessante. Il BFQ quasi quasi lo provo: il disco l'ho sempre trascurato, magari ottengo un miglioramento. P.S. non guardare solo la dimensione della vmlinuz: lsmod che dice? E dmesg | grep -e "Memory\|Freeing" Per finire i moduli: du -sh /lib/modules/$(uname -r)/
__________________
~Breve riferimento ai comandi GNU/Linux (ormai non molto breve...) |
![]() |
![]() |
![]() |
#125 |
Senior Member
Iscritto dal: Feb 2006
Città: Parma
Messaggi: 3010
|
Per la gioia di grandi e piccini, 2.6.38-ck1!
Confermo che la differenze è percettibile sul mio single core, non enorme ma apprezzabile.
__________________
~Breve riferimento ai comandi GNU/Linux (ormai non molto breve...) |
![]() |
![]() |
![]() |
#126 |
Senior Member
Iscritto dal: Feb 2006
Città: Parma
Messaggi: 3010
|
Correggo, la differenza si nota eccome: vado alla console per lanciare la compilazione del kernel patchato con BFQ (suggerito da LinuxOs) e mi rendo conto che ha quasi finito.
Nel frattempo ho navigato, pasticciato con la collezione musicale in Amarok, visto filmatini Flash e aperto Eclipse dimenticandomi della compilazione...
__________________
~Breve riferimento ai comandi GNU/Linux (ormai non molto breve...) |
![]() |
![]() |
![]() |
#127 | |
Senior Member
Iscritto dal: Sep 2001
Città: Perugia
Messaggi: 1988
|
Quote:
Che mi dite a riguardo del bfq?Ha qualche controindicazione/problema o solo effetti benefici? E un'ultima domanda: che differenza c'è tra la semplice patch bfs e la ck1?
__________________
Ho concluso affari con: schumyFast,marcuspe@,MENTIRA,melu,Markap,One1ros,bottoni, Entropi@,DARIO-GT,unavocelontana ,tigre652,prodigy,V4n{}u|sH,blackmagic61,DDA,giugeo, sancelli,Franx1508,stemanca,agostino333, ReiserDarkside,hornet75,ibanez,K4d4sh,wolf3,pctillo,Zontar, aristippo,assembly,jeki75,]Rik`[,Caballus,Elfebo1,Haraiki, TexV,unlocked,No Mercy,antoniousa11 |
|
![]() |
![]() |
![]() |
#128 | |
Senior Member
Iscritto dal: Dec 2004
Messaggi: 3573
|
Quote:
![]()
__________________
Debian amd64 | Gentoo amd64 | AMD Athlon64 3800+ X2@2701Mhz vcore 1.49V | Placing an unpatched Windows computer directly onto the Internet in the hope that it downloads the patches faster than it gets exploited are odds that you wouldn't bet on in Vegas | e-mail+jabber: darkbasic|a.t|linuxsystems|d.o.t|it | www.linuxsystems.it |
|
![]() |
![]() |
![]() |
#129 |
Senior Member
Iscritto dal: Sep 2001
Città: Perugia
Messaggi: 1988
|
Nello specifico del bfq?
__________________
Ho concluso affari con: schumyFast,marcuspe@,MENTIRA,melu,Markap,One1ros,bottoni, Entropi@,DARIO-GT,unavocelontana ,tigre652,prodigy,V4n{}u|sH,blackmagic61,DDA,giugeo, sancelli,Franx1508,stemanca,agostino333, ReiserDarkside,hornet75,ibanez,K4d4sh,wolf3,pctillo,Zontar, aristippo,assembly,jeki75,]Rik`[,Caballus,Elfebo1,Haraiki, TexV,unlocked,No Mercy,antoniousa11 |
![]() |
![]() |
![]() |
#130 |
Senior Member
Iscritto dal: Feb 2006
Città: Parma
Messaggi: 3010
|
Il BFQ (Budget Fair Queueing) è stato scritto con scopi simili al BFS: ridurre la latenza del sistema distribuendo le risorse in modo prioritario ai programmi interattivi, lasciando in secondo piano processi che cercano di accaparrarsi tutte le risorse disponibili.
Lo scheduler di I/O standard del kernel, il CFQ (Completely Fair Queuing) ha alla sua base un concetto di questo tipo: code di processi che richiedono accesso al disco a cui viene dato pieno accesso per fette di tempo fisse, a rotazione (pesati in base ad eventuali priorità impostate). Anche in caso di processi con priorità bassa questi potrebbero accaparrarsi la maggior parte delle risorse impantanando il sistema. Il BFQ invece analizza il comportamento dei processi, determinando quali tendono a fare troppe richieste. La priorità di questi viene ridotta automaticamente, permettendo al sistema di portare a termine nel minor tempo possibile brevi richieste di accesso al disco anche quando la risorsa è pesantemente sfruttata. Le richieste brevi sono solitamente fatte da programmi interattivi, il risultato dovrebbe essere quindi una riduzione della latenza ed una maggiore efficienza del flusso di dati da e verso le periferiche di archiviazione. Il Group Scheduling devo ancora analizzarlo. Questo scheduler dovrebbe essere quindi consigliabile per macchine tese ad utilizzo interattivo. Per contro sul sito viene riportato che, pur derivando dal CFQ, non sono state reimportate alcune modifiche introdotte in questo scheduler dal momento del "fork" in poi, come failsafe queue allocation, simplified dispatch cycle (una veloce ricerca non mi ha illuminato su queste due feature), ottimizzazioni per SSD, ecc... Come ho scritto lo sto provando per la prima volta, l'attuale impressione è che il miglioramento non sia percepibile come con il BFS, anche perché, solitamente, non stresso particolarmente il disco durante il mio utilizzo normale del pc.
__________________
~Breve riferimento ai comandi GNU/Linux (ormai non molto breve...) |
![]() |
![]() |
![]() |
#131 |
Senior Member
Iscritto dal: Sep 2001
Città: Perugia
Messaggi: 1988
|
Grazie Gimli per la risposta davvero professionale!!
__________________
Ho concluso affari con: schumyFast,marcuspe@,MENTIRA,melu,Markap,One1ros,bottoni, Entropi@,DARIO-GT,unavocelontana ,tigre652,prodigy,V4n{}u|sH,blackmagic61,DDA,giugeo, sancelli,Franx1508,stemanca,agostino333, ReiserDarkside,hornet75,ibanez,K4d4sh,wolf3,pctillo,Zontar, aristippo,assembly,jeki75,]Rik`[,Caballus,Elfebo1,Haraiki, TexV,unlocked,No Mercy,antoniousa11 |
![]() |
![]() |
![]() |
#132 |
Senior Member
Iscritto dal: Sep 2001
Città: Perugia
Messaggi: 1988
|
Sono andato a scaricare la pathc bfq ma ho trovato 3 patch
http://algo.ing.unimo.it/people/paol...ed/sources.php Devo scaricare e applicare tutte e 3 o solo una?Se si quale? [EDIT] Ho trovato, devo installarle tutte e 3 ![]()
__________________
Ho concluso affari con: schumyFast,marcuspe@,MENTIRA,melu,Markap,One1ros,bottoni, Entropi@,DARIO-GT,unavocelontana ,tigre652,prodigy,V4n{}u|sH,blackmagic61,DDA,giugeo, sancelli,Franx1508,stemanca,agostino333, ReiserDarkside,hornet75,ibanez,K4d4sh,wolf3,pctillo,Zontar, aristippo,assembly,jeki75,]Rik`[,Caballus,Elfebo1,Haraiki, TexV,unlocked,No Mercy,antoniousa11 Ultima modifica di Axl_Mas : 06-04-2011 alle 15:19. |
![]() |
![]() |
![]() |
#133 |
Senior Member
Iscritto dal: Feb 2006
Città: Parma
Messaggi: 3010
|
Da quando ho usato Gentoo ho smesso (pigrizia...) di usare make-kpkg.
Il classico make install si ostina a crearmi una initrd.img nonostante non me ne importi nulla; ho spulciato il makefile e cercato qua e là ma non son riuscito a capire come spiegargli che non la voglio. Suggerimenti? Ora la elimino manualmente subito dopo l'installazione, ma preferirei evitare di crearla.
__________________
~Breve riferimento ai comandi GNU/Linux (ormai non molto breve...) |
![]() |
![]() |
![]() |
#134 | |
Senior Member
Iscritto dal: Sep 2006
Messaggi: 1886
|
Quote:
![]() |
|
![]() |
![]() |
![]() |
#135 |
Senior Member
Iscritto dal: Feb 2006
Città: Parma
Messaggi: 3010
|
Ciao ezln. L'initrd non è indispensabile, praticamente è un contenitore di moduli e firmware che potrebbero servire prima che la partizione root sia montata.
Se si integrano i moduli necessari per montare la root (driver controller SATA/IDE e filesystem) e non si hanno necessità software oppure hardware particolare se ne può fare a meno.
__________________
~Breve riferimento ai comandi GNU/Linux (ormai non molto breve...) |
![]() |
![]() |
![]() |
#136 | |
Senior Member
Iscritto dal: Sep 2006
Messaggi: 1886
|
Quote:
![]() ![]() |
|
![]() |
![]() |
![]() |
#137 |
Senior Member
Iscritto dal: Feb 2006
Città: Parma
Messaggi: 3010
|
Da una settimana 3.3.1-ck1, ed ho ricominciato ad usare make-kpkg.
Codice:
wget http://ck.kolivas.org/patches/3.0/3.3/3.3-ck1/3.3-ck1-broken-out.tar.bz2 rm -R patches tar xjf 3.3-ck1-broken-out.tar.bz2 patch -p1 -d linux-3.3 < patches/3.3-sched-bfs-420.patch patch -p1 -d linux-3.3 < patches/kconfig-expose_vmsplit_option.patch patch -p1 -d linux-3.3 < patches/hz-default_1000.patch patch -p1 -d linux-3.3 < patches/hz-no_default_250.patch patch -p1 -d linux-3.3 < patches/hz-raise_max.patch patch -p1 -d linux-3.3 < patches/preempt-desktop-tune.patch patch -p1 -d linux-3.3 < patches/ck1-version.patch wget http://www.kernel.org/pub/linux/kernel/v3.0/patch-3.3.1.xz patch -p1 -d linux-3.3 < <(xzcat patch-3.3.1.xz) mv linux-3.3 linux-3.3.1-ck1 cp linux-3.2-ck1/.config linux-3.3.1-ck1/ cd linux-3.3.1-ck1 make oldconfig make menuconfig fakeroot make-kpkg --append-to-version "-kwankey" --revision 1 kernel_image kernel_headers A parte la questione initrd, toglie vari passaggi e crea un pacchetto con nome di versione allineato a quelli standard. Inoltre il pacchetto invoca tutti i processi pre-install, post-install sistemando Grub, dkms, ecc... Per non parlare della comoda pulizia col purge dei pacchetti obsoleti. Restava giusto un problema: i symlink in /lib/modules del kernel installato finivano per puntare alla cartella in cui si era fatta la compilazione. Questo creava fastidi se si cancellava o rinomina quella cartella prima della disinstallazione del relativo kernel. Però, solitamente, si crea anche un bel pacchetto di headers compatto e stabile, perché non usare quelli, come nei kernel da repository? Codice:
gimli@kwankey:~$ cat /etc/kernel/header_postinst.d/symlinks #!/bin/bash # We're passed the version of the kernel being installed inst_kern=$1 uname_s=$(uname -s) _get_build_dir() { KVER=$1 case ${uname_s} in Linux) DIR="/lib/modules/$KVER/build" ;; esac echo $DIR } _get_source_dir() { KVER=$1 case ${uname_s} in Linux) DIR="/lib/modules/$KVER/source" ;; esac echo $DIR } _get_headers_dir() { KHDRS=$1 case ${uname_s} in Linux) DIR="/usr/src/$KHDRS" ;; esac echo $DIR } case "${uname_s}" in Linux) header_pkg="linux-headers-$inst_kern" kernel="Linux" ;; esac DIR_BUILD=$(_get_build_dir $inst_kern ) DIR_SOURCE=$(_get_source_dir $inst_kern ) DIR_HEADERS=$(_get_headers_dir $header_pkg ) if [ -h "$DIR_BUILD" -a -d "$DIR_HEADERS" ] ; then rm "$DIR_BUILD" ln -s "$DIR_HEADERS" "$DIR_BUILD" fi if [ -h "$DIR_SOURCE" -a -d "$DIR_HEADERS" ] ; then rm "$DIR_SOURCE" ln -s "$DIR_HEADERS" "$DIR_SOURCE" fi
__________________
~Breve riferimento ai comandi GNU/Linux (ormai non molto breve...) |
![]() |
![]() |
![]() |
#138 |
Senior Member
Iscritto dal: Feb 2006
Città: Parma
Messaggi: 3010
|
Probabilmente CK rilascerà la patch per il kernel 3.4 con un po' di ritardo.
Se qualcuno fosse interessato ad utilizzare la patch per 3.3 con le minime correzioni necessarie per farla funzionare sul 3.4, senza garanzie sul risultato posso riportare le poche modifiche necessarie. L'ho utilizzata intensamente su un solo sistema 32bit single core per qualche giorno dove non ha evidenziato errori o comportamenti anomali. Codice:
Linux kwankey 3.4.0-ck1-kwankey #3 PREEMPT Sun May 27 17:51:34 CEST 2012 i686 GNU/Linux
__________________
~Breve riferimento ai comandi GNU/Linux (ormai non molto breve...) |
![]() |
![]() |
![]() |
#139 | |
Senior Member
Iscritto dal: Sep 2001
Città: Perugia
Messaggi: 1988
|
Quote:
__________________
Ho concluso affari con: schumyFast,marcuspe@,MENTIRA,melu,Markap,One1ros,bottoni, Entropi@,DARIO-GT,unavocelontana ,tigre652,prodigy,V4n{}u|sH,blackmagic61,DDA,giugeo, sancelli,Franx1508,stemanca,agostino333, ReiserDarkside,hornet75,ibanez,K4d4sh,wolf3,pctillo,Zontar, aristippo,assembly,jeki75,]Rik`[,Caballus,Elfebo1,Haraiki, TexV,unlocked,No Mercy,antoniousa11 |
|
![]() |
![]() |
![]() |
#140 |
Senior Member
Iscritto dal: Feb 2006
Città: Parma
Messaggi: 3010
|
Sottolineo nuovamente che non ho le competenze necessarie ed ho solamente corretto le poche incompatibilità emerse analizzando le modifiche apportate nel kernel vanilla, quindi sii conscio che potrebbe darti problemi.
Codice:
--- linux-3.4/kernel/sched/bfs.c 2012-05-30 22:38:17.190879529 +0200 +++ linux-3.4-ck1/kernel/sched/bfs.c 2012-05-27 17:35:27.044951773 +0200 @@ -69,6 +69,7 @@ #include <linux/slab.h> #include <linux/init_task.h> +#include <asm/switch_to.h> #include <asm/tlb.h> #include <asm/unistd.h> #include <asm/mutex.h> @@ -3213,7 +3214,7 @@ need_resched: */ if (unlikely(deactivate && blk_needs_flush_plug(prev))) { grq_unlock_irq(); - preempt_enable_no_resched(); + sched_preempt_enable_no_resched(); blk_schedule_flush_plug(prev); goto need_resched; } @@ -3299,12 +3300,24 @@ need_resched: grq_unlock_irq(); rerun_prev_unlocked: - preempt_enable_no_resched(); + sched_preempt_enable_no_resched(); if (unlikely(need_resched())) goto need_resched; } EXPORT_SYMBOL(schedule); +/** + * schedule_preempt_disabled - called with preemption disabled + * + * Returns with preemption disabled. Note: preempt_count must be 1 + */ +void __sched schedule_preempt_disabled(void) +{ + sched_preempt_enable_no_resched(); + schedule(); + preempt_disable(); +} + #ifdef CONFIG_MUTEX_SPIN_ON_OWNER static inline bool owner_running(struct mutex *lock, struct task_struct *owner) @@ -3463,9 +3476,9 @@ EXPORT_SYMBOL(__wake_up); /* * Same as __wake_up but called with the spinlock in wait_queue_head_t held. */ -void __wake_up_locked(wait_queue_head_t *q, unsigned int mode) +void __wake_up_locked(wait_queue_head_t *q, unsigned int mode, int nr) { - __wake_up_common(q, mode, 1, 0, NULL); + __wake_up_common(q, mode, nr, 0, NULL); } EXPORT_SYMBOL_GPL(__wake_up_locked); @@ -4576,7 +4589,7 @@ SYSCALL_DEFINE0(sched_yield) __release(grq.lock); spin_release(&grq.lock.dep_map, 1, _THIS_IP_); do_raw_spin_unlock(&grq.lock); - preempt_enable_no_resched(); + sched_preempt_enable_no_resched(); schedule();
Alla fine ho applicato le modifiche riportate al solo (importante) file kernel/sched/bfs.c, sul modello delle novità bell'originale kernel/sched/core.c
__________________
~Breve riferimento ai comandi GNU/Linux (ormai non molto breve...) |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 00:31.