Patch real time + patch Con Kolivas

Postate qui per tutte le discussioni legate a Linux in generale.

Moderatore: Staff

Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Gnu/Linux in genere, se l'argomento è specifico alla Slackware usate uno dei forum Slackware o Slackware64.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Rispondi
Avatar utente
Ansa89
Iper Master
Iper Master
Messaggi: 2703
Iscritto il: mer 29 ago 2007, 17:57
Nome Cognome: Stefano Ansaloni
Slackware: 14.2 64bit
Kernel: 4.9.61
Desktop: XFCE 4.12
Località: Modena

Patch real time + patch Con Kolivas

Messaggio da Ansa89 »

Volevo sapere se la patch real time di Ingo Molnar e lo sceduler di Con Kolivas possono coesistere.
(In pratica vorrei patchare il mio kernel prima con la patch di CK e poi con quella rt).
Grazie.

Avatar utente
ponce
Iper Master
Iper Master
Messaggi: 3110
Iscritto il: mer 5 mar 2008, 16:45
Nome Cognome: Matteo Bernardini
Slackware: slackware64-current
Kernel: 6.17.4
Desktop: lxde
Località: Pisa
Contatta:

Re: Patch real time + patch Con Kolivas

Messaggio da ponce »

penso proprio di no.
molto probabilmente se provi ad applicarle una dopo l'altra ti daranno diversi conflitti.

se vuoi qualcosa in piu' rispetto alla patch di kolivas, il kernel zen e' la risposta :)

non so di altri progetti che integrino la patch di kolivas.

pino_otto
Linux 2.x
Linux 2.x
Messaggi: 333
Iscritto il: dom 9 lug 2006, 11:57
Slackware: 14.2
Kernel: 4.4.14-smp
Desktop: KDE 4.14.3
Località: Torino - Canton (China)

Re: Patch real time + patch Con Kolivas

Messaggio da pino_otto »

Se ti interessa il real-time, c'e' RTAI:
https://www.rtai.org/

c'e' anche un liveCD di Slack per RTAI:
http://www.ashopoli.com/rtai/

Avatar utente
Blallo
Packager
Packager
Messaggi: 3302
Iscritto il: ven 12 ott 2007, 11:37
Nome Cognome: Savino Liguori
Slackware: 14.2 / 12.2
Kernel: 4.4.14-smp
Desktop: DWM
Località: Torino / Torremaggiore (FG)
Contatta:

Re: Patch real time + patch Con Kolivas

Messaggio da Blallo »

ho chiesto una volta a kon se era possibile applicare il realtme con ck, ed ecco la risposta

Codice: Seleziona tutto

If you use BFS with jackd you'll get special treatment by BFS. It will detect 
that jackd tries to start as realtime without privileges and will start it as 
SCHED ISOCHRONOUS. So you don't need to do anything with schedtool yourself. 
It will all work by itself.

So yes, you can use jack with BFS with almost realtime performance.

Regards,
Con

-- 
-ck

Avatar utente
Ansa89
Iper Master
Iper Master
Messaggi: 2703
Iscritto il: mer 29 ago 2007, 17:57
Nome Cognome: Stefano Ansaloni
Slackware: 14.2 64bit
Kernel: 4.9.61
Desktop: XFCE 4.12
Località: Modena

Re: Patch real time + patch Con Kolivas

Messaggio da Ansa89 »

Ieri ho provato ad applicare ck e poi rt16, ma restituisce 4 o 5 errori durante la seconda fase.
Appena posso provo a fare il contrario (prima rt16, poi ck).

@jimmy_page_89: tu stai parlando di un programma specifico, io volevo sapere se era possibile usare entrambe le patch.

@pino_otto: io parlo di una patch per il kernel (rt16), non di un framework per sviluppare applicazioni.

@ponce: quali sono le caratteristiche del kernel zen?


EDIT: ecco gli errori se provo a patchare prima con rt16 e poi con ck:

Codice: Seleziona tutto

$ patch -p1 -i ../patch-2.6.33-ck1
patching file include/linux/sched.h
Hunk #4 FAILED at 1310.
patching file mm/swap.c
Hunk #1 FAILED at 214.
patching file kernel/Kconfig.preempt
Hunk #1 FAILED at 1.
Non mi sembrano molti e con un po' di fortuna si possono mettere a posto.

Avatar utente
shark1500
Linux 3.x
Linux 3.x
Messaggi: 785
Iscritto il: gio 3 apr 2008, 14:33
Slackware: current
Kernel: 2.6.27.7-smp
Desktop: kde
Località: Modna

Re: Patch real time + patch Con Kolivas

Messaggio da shark1500 »

Scusa, ma posso sapere il motivo? Cosi` per test?

Avatar utente
ponce
Iper Master
Iper Master
Messaggi: 3110
Iscritto il: mer 5 mar 2008, 16:45
Nome Cognome: Matteo Bernardini
Slackware: slackware64-current
Kernel: 6.17.4
Desktop: lxde
Località: Pisa
Contatta:

Re: Patch real time + patch Con Kolivas

Messaggio da ponce »


Mario Vanoni
Iper Master
Iper Master
Messaggi: 3174
Iscritto il: lun 3 set 2007, 21:20
Nome Cognome: Mario Vanoni
Slackware: 12.2
Kernel: 3.0.4 statico
Desktop: fluxbox/seamonkey
Località: Cuasso al Monte (VA)

Re: Patch real time + patch Con Kolivas

Messaggio da Mario Vanoni »

Ansa89 ha scritto:Ieri ho provato ad applicare ck e poi rt16, ma restituisce 4 o 5 errori durante la seconda fase.
Appena posso provo a fare il contrario (prima rt16, poi ck).

@jimmy_page_89: tu stai parlando di un programma specifico, io volevo sapere se era possibile usare entrambe le patch.

@pino_otto: io parlo di una patch per il kernel (rt16), non di un framework per sviluppare applicazioni.

@ponce: quali sono le caratteristiche del kernel zen?


EDIT: ecco gli errori se provo a patchare prima con rt16 e poi con ck:

Codice: Seleziona tutto

$ patch -p1 -i ../patch-2.6.33-ck1
patching file include/linux/sched.h
Hunk #4 FAILED at 1310.
patching file mm/swap.c
Hunk #1 FAILED at 214.
patching file kernel/Kconfig.preempt
Hunk #1 FAILED at 1.
Non mi sembrano molti e con un po' di fortuna si possono mettere a posto.
Non puoi mescolare le filosofie di Con Kolivas e Thomas Gleixner!
Fai un
root@va2:/usr/src# sdiff linux-2.6.33.1-ck1/include/linux/sched.h linux-2.6.33.3-rt17/include/linux/sched.h | less
e vedi dove si contraddicono, per esempio:

Codice: Seleziona tutto

...
/*                                                              /*
 * Scheduling policies                                           * Scheduling policies
 */                                                              */
#define SCHED_NORMAL            0                               #define SCHED_NORMAL            0
#define SCHED_FIFO              1                               #define SCHED_FIFO              1
#define SCHED_RR                2                               #define SCHED_RR                2
#define SCHED_BATCH             3                               #define SCHED_BATCH             3
/* SCHED_ISO: Implemented on BFS only */                      | /* SCHED_ISO: reserved but not implemented yet */
#define SCHED_IDLE              5                               #define SCHED_IDLE              5
#ifdef CONFIG_SCHED_BFS                                       <
#define SCHED_ISO               4                             <
#define SCHED_IDLEPRIO          SCHED_IDLE                    <
#define SCHED_MAX               (SCHED_IDLEPRIO)              <
#define SCHED_RANGE(policy)     ((policy) <= SCHED_MAX)       <
#endif      
...
                                                              > #ifdef CONFIG_PREEMPT
                                                              > extern int kernel_preemption;
                                                              > #else
                                                              > # define kernel_preemption 0
                                                              > #endif
                                                              > #ifdef CONFIG_PREEMPT_VOLUNTARY
                                                              > extern int voluntary_preemption;
                                                              > #else
                                                              > # define voluntary_preemption 0
                                                              > #endif
                                                              >
                                                              > #ifdef CONFIG_PREEMPT_SOFTIRQS
                                                              > extern int softirq_preemption;
                                                              > #else
                                                              > # define softirq_preemption 0
                                                              > #endif
...
                                                              > extern struct mutex kernel_sem;
                                                              >
/*                                                              /*
 * Task state bitmask. NOTE! These bits are also                 * Task state bitmask. NOTE! These bits are also
 * encoded in fs/proc/array.c: get_task_state().              |  * used in fs/proc/array.c: get_task_state() and
                                                              >  * in include/trace/events/sched.h in the
                                                              >  * sched_switch trace event.
 *                                                               *
 * We have two separate sets of flags: task->state               * We have two separate sets of flags: task->state
 * is about runnability, while task->exit_state are              * is about runnability, while task->exit_state are
 * about the task exiting. Confusing, but this way               * about the task exiting. Confusing, but this way
 * modifying one set can't modify the other one by               * modifying one set can't modify the other one by
 * mistake.                                                      * mistake.
 */                                                              */
#define TASK_RUNNING            0                               #define TASK_RUNNING            0
#define TASK_INTERRUPTIBLE      1                             | #define TASK_STATE_0            "R"
#define TASK_UNINTERRUPTIBLE    2                             | #define DESCR_TASK_STATE_0      "running"
#define __TASK_STOPPED          4                             |
#define __TASK_TRACED           8                             | #define TASK_RUNNING_MUTEX      1
                                                              > #define TASK_STATE_1            "M"
                                                              > #define DESCR_TASK_STATE_1      "running-mutex"
                                                              >
                                                              > #define TASK_INTERRUPTIBLE      2
                                                              > #define TASK_STATE_2            "S"
                                                              > #define DESCR_TASK_STATE_2      "sleeping"
                                                              >
                                                              > #define TASK_UNINTERRUPTIBLE    4
                                                              > #define TASK_STATE_4            "D"
                                                              > #define DESCR_TASK_STATE_4      "disk sleep"
                                                              >
                                                              > #define __TASK_STOPPED          8
                                                              > #define TASK_STATE_8            "T"
                                                              > #define DESCR_TASK_STATE_8      "stopped"
                                                              >
                                                              > #define __TASK_TRACED           16
                                                              > #define TASK_STATE_16           "t"
                                                              > #define DESCR_TASK_STATE_16     "tracing stop"
                                                              >
/* in tsk->exit_state */                                        /* in tsk->exit_state */
#define EXIT_ZOMBIE             16                            | #define EXIT_ZOMBIE             32
#define EXIT_DEAD               32                            | #define TASK_STATE_32           "Z"
                                                              > #define DESCR_TASK_STATE_32     "zombie"
                                                              >
                                                              > #define EXIT_DEAD               64
                                                              > #define TASK_STATE_64           "X"
                                                              > #define DESCR_TASK_STATE_64     "dead"
                                                              >
/* in tsk->state again */                                       /* in tsk->state again */
#define TASK_DEAD               64                            | #define TASK_DEAD               128
#define TASK_WAKEKILL           128                           | #define TASK_STATE_128          "x"
#define TASK_WAKING             256                           | #define DESCR_TASK_STATE_128    "dead"
#define TASK_STATE_MAX          512                           |
                                                              > #define TASK_WAKEKILL           256
                                                              > #define TASK_STATE_256          "K"
                                                              > #define DESCR_TASK_STATE_256    "wakekill"
                                                              >
                                                              > #define TASK_WAKING             512
                                                              > #define TASK_STATE_512          "W"
                                                              > #define DESCR_TASK_STATE_512    "waking"
                                                              >
                                                              > #define TASK_STATE_MAX          1024
                                                              >
                                                              > #define TASK_STATE_TO_CHAR_STR \
                                                              >   TASK_STATE_0 TASK_STATE_1 TASK_STATE_2 TASK_STATE_4 TASK_ST
                                                              >   TASK_STATE_16 TASK_STATE_32 TASK_STATE_64 TASK_STATE_128 TA
                                                              >   TASK_STATE_512

#define TASK_STATE_TO_CHAR_STR "RSDTtZXxKW"                   | #define TASK_STATE_MAX          1024
...
e tante altre sottigliezze ...

Rispondi