Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

177
Vistas
¿Es necesario invocar rcu_read_lock en contexto softirq?

El implemento de rcu_read_lock es deshabilitar prevención y barrera. Y el contexto softirq no será reemplazado. Entonces, es necesario invocar rcu_read_lock en el contexto softirq. ¿Es importante la barrera?

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Sí, es necesario usar rcu_read_lock para acceder a punteros que están bajo protección rcu, incluso en contexto softirq.

Como señala, algunas implementaciones (por ejemplo, TINY_RCU) de rcu_read_lock y softirqs hacen que no haya riesgo de corrupción, incluso si no delimita las secciones críticas del lado de lectura de rcu con rcu_read_lock . Sin embargo, eso no es una garantía de la API de rcu, solo un "truco" debido a la implementación específica. Este truco podría fallar con una implementación diferente de rcu (por ejemplo: PREEMPT_RCU).

Si desea tratar los softirqs como secciones críticas explícitas del lado de lectura de rcu, debe usar la API programada de RCU: Documentation/RCU/whatisRCU.txt

La siguiente sección de un artículo escrito por el autor principal de RCU aborda directamente su pregunta: Requisitos para la parte 1 de RCU: los fundamentos: la desactivación de la preferencia no bloquea los períodos de gracia

Agregaría ese código que hace rcu_dereference fuera de rcu_read_lock activará advertencias de bloqueo si CONFIG_PROVE_RCU=y.

over 4 years ago · Santiago Trujillo Denunciar

0

El rcu_read_lock es para proteger algunos recursos del kernel que se modifican de forma simultánea y que causan un error de condición de carrera.

Lo que un recurso debe evitar es: ser utilizado y modificado simultáneamente por dos tareas/contextos de software.

En Linux, la modificación simultánea puede ocurrir en:

  1. cambio de contexto de una tarea a otra,
  2. cambio de contexto de tarea a contexto IRQ
  3. acceso simultáneo desde la tarea en diferentes núcleos de VCPU

El evento en un entorno de CPU de un solo núcleo, el 1) y el 2) aún pueden ocurrir. En la tarea de modificar un recurso crítico, una IRQ de software aumenta, ingresa el contexto de IRQ de software, ejecuta el controlador de IRQ y modifica el mismo recurso simultáneamente.

over 4 years ago · Santiago Trujillo Denunciar

0

Es una buena idea invocar rcu_read_lock en un contexto softirq para propósitos de documentos, para que usted y otros desarrolladores sepan que aquí se usan datos protegidos por RCU.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda