Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

124
Visualizações
Coherencia de contador de reloj multinúcleo

Estoy tratando de medir una diferencia de contadores de reloj entre dos puntos de tiempo en un módulo del kernel. Uso la siguiente función llamada get_ccnt() para obtener un valor de contador de reloj en un momento determinado:

 static __inline__ long long int get_ccnt(void) { #if defined(__i386__) long long int x; __asm__ volatile (".byte 0x0f, 0x31" : "=A" (x)); return x; #elif defined(__x86_64__) unsigned int hi, lo; __asm__ __volatile__ ("rdtsc" : "=a"(lo), "=d"(hi)); return ( (long long int)lo)|( ((long long int)hi)<<32 ); #endif }

Lo que me preocupa es que estoy usando HP EliteBook 2530p en el que Intel Core 2 Duo SL9400 ( referencia de especificación)

Escuché que las CPU después de Nehalem tienen un contador de reloj constante en todos los núcleos. ( Si me equivoco, indíquelo). Sin embargo, Intel Core 2 Duo SL 9400 tiene un nombre en clave Penryn .

Por lo tanto, creo que si un módulo del núcleo se mueve de un núcleo a otro entre dos puntos de tiempo, la consistencia entre dos núcleos se ve comprometida y no puedo obtener una diferencia de reloj correcta.

¿Es correcto lo que estoy pensando? Si es así, ¿hay alguna forma de arreglarlo (por ejemplo, arreglar un módulo del kernel para que no mueva un núcleo a otro núcleo?)

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Uno de los comentarios vinculados menciona que establecer la afinidad del proceso puede lograr lo que desea. También sugeriría hacer una versión personalizada de get_ccnt() reemplazando RDTSC con RDTSCP . Este último es una variante del primero que también devuelve el cpuid con el contador de ciclos. Puede verificar que el cpuid de su medición inicial sea igual al cpuid de la medición final.

Eche un vistazo a la Sección 3.2 de este manual de Intel . Asegúrese de hacer una prueba primero para verificar que su procesador admita esta instrucción.

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda