# [Kernel] ¿Parche de 200 lineas? (Abierto)

## ZaPa

Hola.

He estado leyendo sobre el milagroso parche de las 200 lineas que comentan los usuarios de linux que añade una muy buena mejoria en el sistema al aplicar este parche. Leyendo un poco más me he encontrado con este otro: 

http://www.muylinux.com/2010/11/19/%C2%BFrecordais-el-milagroso-parche-de-las-200-lineas-de-codigo-podeis-lograr-lo-mismo-en-2-minutos-sin-parchear-el-kernel/

Según comentan esta solución es aún mejor.

Ahora mi pregunta es... ¿Que añade exáctamente estos parches/soluciones? no entiendo que mejoria añade al sistema estas soluciones.

¿Alguien podria explicar un poco sobre el tema?

Un saludo.

----------

## upszot

hola

Parche 200 lineas -> copio textual "La idea es la crear grupos de tareas por TTY en un esfuerzo para mejorar la interactividad del escritorio bajo cargas de trabajo exigente"

http://www.muylinux.com/2010/11/16/el-milagro-de-las-200-lineas-de-codigo/

Te dejo esta otra web, donde explican un poco mas del tema... http://elsoftwarelibre.wordpress.com/2010/11/19/alternativa-al-parche-de-las-200-lineas-de-codigo-que-mejoran-el-kernel-linux/

ahora hago una pregunta, para los eruditos....

se suponia que este parche se iba a incluir en la versión del kernel 2.6.38... alguien sabe si gentoo-source de dicha versión esta pacheado con el mismo?

saludos

----------

## lexming

Sí, este parche ya está integrado en el 2.6.38. Para activarlo hay que seleccionar la opción "Automatic process group scheduling" en la categoria "General Setup" de la configuración del kernel. O en breve la opción CONFIG_SCHED_AUTOGROUP.

----------

## agdg

```
  ┌───────────────────────────── General setup ─────────────────────────────┐

  │  Arrow keys navigate the menu.  <Enter> selects submenus --->.          │

  │  Highlighted letters are hotkeys.  Pressing <Y> includes, <N> excludes, │ 

  │  <M> modularizes features.  Press <Esc><Esc> to exit, <?> for Help, </> │  

  │  for Search.  Legend: [*] built-in  [ ] excluded  <M> module  < >       │  

  │ ┌────^(-)─────────────────────────────────────────────────────────────┐ │  

  │ │        IRQ subsystem  --->                                          │ │  

  │ │        RCU Subsystem  --->                                          │ │  

  │ │    [ ] Kernel .config support                                       │ │  

  │ │    (15) Kernel log buffer size (16 => 64KB, 17 => 128KB)            │ │  

  │ │    [ ] Control Group support  --->                                  │ │  

  │ │    -*- Namespaces support  --->                                     │ │  

  │ │    [ ] Automatic process group scheduling                           │ │  

  │ │    [ ] Enable deprecated sysfs features to support old userspace too│ │  

  │ │    [ ] Kernel->user space relay support (formerly relayfs)          │ │  

  │ │    [ ] Initial RAM filesystem and RAM disk (initramfs/initrd) suppor│ │  

  │ └────v(+)─────────────────────────────────────────────────────────────┘ │  

  ├─────────────────────────────────────────────────────────────────────────┤  

  │                    <Select>    < Exit >    < Help >                     │  

  └─────────────────────────────────────────────────────────────────────────┘  

```

```
  ┌────────────────── Automatic process group scheduling ───────────────────┐

  │ CONFIG_SCHED_AUTOGROUP:                                                 │  

  │                                                                         │  

  │ This option optimizes the scheduler for common desktop workloads by     │  

  │ automatically creating and populating task groups.  This separation     │  

  │ of workloads isolates aggressive CPU burners (like build jobs) from     │  

  │ desktop applications.  Task group autogeneration is currently based     │  

  │ upon task session.                                                      │  

  │                                                                         │  

  │ Symbol: SCHED_AUTOGROUP [=n]                                            │  

  │ Type  : boolean                                                         │  

  │ Prompt: Automatic process group scheduling                              │  

  │   Defined at init/Kconfig:817                                           │  

  │   Location:                                                             │  

  │     -> General setup                                                    │  

  │   Selects: EVENTFD [=y] && CGROUPS [=n] && CGROUP_SCHED [=n] && \       │  

  │ FAIR_GROUP_SCHED [=n]                                                   │  

  ├─────────────────────────────────────────────────────────────────( 99%)──┤  

  │                                < Exit >                                 │  

  └─────────────────────────────────────────────────────────────────────────┘
```

----------

## PatomaS

Hola

El parche, al igual que el script citado, lo que hacen es, asignar y controlar grupos de aplicaciones a fin de asignarles prioridad y uso de CPU, de esta forma la distribución de tiempo de CPU es más favorable a los requerimientos del usuario y por lo tanto, repercute en un entorno más rápido. Por supuesto esto es una muy breve y rápida explicación.

Cabe mencionar que con diferente mecánica, pero igual resultado, existe también el kernel de con kolivas con su "parche" BFS.

Felicidad

----------

## Dj_Dexter

Hola, ese mismisimo parche ya esta integrado en el kernel 2.6.38, permite que al compilar y la cpu este al borde del 100% o 100% las aplicaciones de escritorio y en general respondan mejor, ideal para los gentoozas   :Wink: 

es la opcion: Automatic process group scheduling lo que permite eso, pero milagros no hace. sino que mejora mucho el desempeño eso si, el ck-sources = Gentoo Patchset + Con Kolivas hace su cometido con otro metodo con el BFS un scheduler propio

Saludos!!!

----------

## papu

 *lexming wrote:*   

> Sí, este parche ya está integrado en el 2.6.38. Para activarlo hay que seleccionar la opción "Automatic process group scheduling" en la categoria "General Setup" de la configuración del kernel. O en breve la opción CONFIG_SCHED_AUTOGROUP.

 

yo traté este tema en otro post, comentando que en sistema gentoo no se hasta que punto puede mejorar eso sin molestar a otras opciones , como són compilación etc, pudiendose usar el niceness tanto en make.conf ( yo lo tengo a 10) como en particular para ciertas cosas( yo no lo uso asi ni se como funciona).

En el kernel General Setup hay dos opciones al respecto

Automatic process group scheduling  que lo tengo desactivado,

en su lugar tengo activado Control group support-->group cpu scheduler-->group scheduling for SCHED_OTHER que según parece es como activar la anterior opción por defecto. Supongo sera exactamente lo mismo hacerlo de las dos maneras, pero esta última permite personalizar más las opciones, las cuales desconozco totalmente.  ¿no?

http://img801.imageshack.us/i/20052308.png/

saludos, adéu.

----------

## gringo

 *Quote:*   

> Supongo sera exactamente lo mismo hacerlo de las dos maneras

 

supones mal, cgroup es la infraestructura que necesita CONFIG_SCHED_AUTOGROUP para funcionar, habilitando sólo eso y sin hacer nada mas incluso hasta creo que el sistema irá mas lento porque falta una política que lo gestione. de hecho si activas CONFIG_SCHED_AUTOGROUP notaréis que el soporte cgroup necesario se activará automágicamente.

saluetes

----------

## papu

 *gringo wrote:*   

>  *Quote:*   Supongo sera exactamente lo mismo hacerlo de las dos maneras 
> 
> supones mal, cgroup es la infraestructura que necesita CONFIG_SCHED_AUTOGROUP para funcionar, habilitando sólo eso y sin hacer nada mas incluso hasta creo que el sistema irá mas lento porque falta una política que lo gestione. de hecho si activas CONFIG_SCHED_AUTOGROUP notaréis que el soporte cgroup necesario se activará automágicamente.
> 
> saluetes

 

entonces no entiendo  porque se pueden activar por separado  ambas opciones, ¿dices que sino activo el CONFIG_SCHED_AUTOGROUP, activar el CGROUP , no tiene efecto? busqué información al respecto pero no conseguí encontrar nada que explique, el que, de activar o no ambas opciones por separado, y es algo me interesaría mucho conocerlo.

hasta que punto es recomendable activar todas las opciones que lleva CGROUP o solo las que hay por defecto ( que son las que tengo puestas)...

saludos, adéu.

----------

## gringo

 *Quote:*   

> entonces no entiendo porque se pueden activar por separado ambas opciones

 

cgroup es mucho anterior a CONFIG_SCHED_AUTOGROUP, lleva años en el kernel si mal no recuerdo. Se puede usar para "particionar" procesos en árboles jerarquizados según el criterio X. 

CONFIG_SCHED_AUTOGROUP lo único que hace es usar la infraestructura ya existente.

 *Quote:*   

> ¿dices que sino activo el CONFIG_SCHED_AUTOGROUP, activar el CGROUP , no tiene efecto?

 

a menos que ejecutes otras políticas, no. El único efecto que tiene es seguramente negativo.

 *Quote:*   

> hasta que punto es recomendable activar todas las opciones que lleva CGROUP

 

nunca es recomendable a menos que sepas lo que estás haciendo. 

Al activar CONFIG_SCHED_AUTOGROUP se activarán tb. las opciones del kernel necesarias para que funcione, no hay porque tocar nada mas.

Mas info sobre cgroups -> /usr/src/linux/Documentation/cgroups

saluetes

----------

## papu

 *gringo wrote:*   

>  *Quote:*   entonces no entiendo porque se pueden activar por separado ambas opciones 
> 
> cgroup es mucho anterior a CONFIG_SCHED_AUTOGROUP, lleva años en el kernel si mal no recuerdo. Se puede usar para "particionar" procesos en árboles jerarquizados según el criterio X. 
> 
> CONFIG_SCHED_AUTOGROUP lo único que hace es usar la infraestructura ya existente.
> ...

 

pues acabo de hacer la prueba, sin CONFIG_SCHED_AUTOGROUP activado y poniendo sus mismas opciones en CGROUP pero  forma manual me va mejor el escritorio ( se nota en los videos que no ratean practicamente bajo carga intensa). No activando ninguna de las dos opciones va igual de mal ( parece) que activando  CONFIG_SCHED_AUTOGROUP , algo muy extraño la verdad.

muchas gracias.

----------

