Visualizzazione dei risultati da 1 a 7 su 7

Discussione: cpu affinity

  1. #1
    Utente di HTML.it L'avatar di alexmaz
    Registrato dal
    May 2001
    Messaggi
    972

    cpu affinity

    Non avendo trovato nessun tool per settare l'affinity di un processo su un particolare processore in sistemi SMP ho provato a scriverne una io
    In teoria funziona, lettura e scrittura dell'affinity vanno a buon fine, bisogna però capire se funziona sul serio, e io sul kernel 2.6.4 non ho trovato un modo per vedere a manina l'affinity di un processo da qualche parte in /proc/<pid>

    Premettendo che:

    1- Probabilmente tutto questo è inutile perchè ci sarà gia un tool che lo fa meglio e sono rincoglionito e non l'ho trovato

    2- Probabilmente in realtà non funziona oppure ho toppato il modo di settare i processori, ossia con un banale int

    3- Sono anni che non programmo in C e non mi ricordavo nulla, ho dovuto tirare fuori il K&R :rollo:

    4- Il programmino serve giusto allo scopo, non fa controlli particolari sulla validita dei parametri


    Il programma si usa così:

    salvate il file sorgente chiamandolo come vi pare e lo compilate con gcc, es gcc -o pippo pippo.c

    eseguite il tutto con:

    pippo PID CPU per settare l'affinity del processo PID sulla CPU cpu dove 0 è il primo precessore, 1 il secondo, ecc.

    pippo PID per sapere che affinity ha il processo e il programma vi risponde dicendo 1 se è il primo processore, 2 se è il secondo, ecc. (si lo so, quando la setti parte da 0, ma non avevo voglia di cambiare). Se vi risponde con un numero maggiore del numero di processori che avete è perchè il processo può girare su tutti i processori. Non ho idea se si possa settare l'affinity su x processori dove x è minore del numero di processori ma maggiore di 1

    Vabbè, il mirabolante codice lo trovate qui:

    http://alexmaz.supereva.it/schedtest.txt

    Se qualcuno con un sistema SMP lo volesse provare
    Il tutto è stato scritto e testato su un kernel 2.6.4-gentoo con glibc 2.3.4. Lo dico perchè pare che queste syscall cambino ogni 2x3 e sulle glibc prima delle 2.3.2 sono diverse, stesso vale per i vari kernel, possono cambiare da release a release


    Per la cronaca, ho preso spunto da qui:

    http://linuxgazette.net/103/pramode.html
    The individual has always had to struggle to keep from being overwhelmed by the tribe. If you try it, you will be lonely often, and sometimes frightened. But no price is too high to pay for the privilege of owning yourself.

  2. #2
    Utente di HTML.it L'avatar di alexmaz
    Registrato dal
    May 2001
    Messaggi
    972
    The individual has always had to struggle to keep from being overwhelmed by the tribe. If you try it, you will be lonely often, and sometimes frightened. But no price is too high to pay for the privilege of owning yourself.

  3. #3
    difficile trovare qualcuno con un sistema multiprocessore


    complimenti comunque

  4. #4
    Io ho un P4 3.0 ghz HT ...
    Il kernel l'ho dovuto compilare come se fosse un biprocessore...
    Funziona anche sul mio?

  5. #5
    Utente di HTML.it L'avatar di alexmaz
    Registrato dal
    May 2001
    Messaggi
    972
    Originariamente inviato da Neon87
    Io ho un P4 3.0 ghz HT ...
    Il kernel l'ho dovuto compilare come se fosse un biprocessore...
    Funziona anche sul mio?
    Si

    ecco dimenticavo: dovrebbe funzionare su qualunque sistema HT

    Il problema è questo: il programma di per se funziona, nel senso che la syscall va a buon fine, quello che mi preme capire è se poi l'affinity viene effettivamente settata come vorrei io.
    The individual has always had to struggle to keep from being overwhelmed by the tribe. If you try it, you will be lonely often, and sometimes frightened. But no price is too high to pay for the privilege of owning yourself.

  6. #6
    Utente di HTML.it L'avatar di alexmaz
    Registrato dal
    May 2001
    Messaggi
    972
    The individual has always had to struggle to keep from being overwhelmed by the tribe. If you try it, you will be lonely often, and sometimes frightened. But no price is too high to pay for the privilege of owning yourself.

  7. #7
    Originariamente inviato da alexmaz
    Si

    ecco dimenticavo: dovrebbe funzionare su qualunque sistema HT

    Il problema è questo: il programma di per se funziona, nel senso che la syscall va a buon fine, quello che mi preme capire è se poi l'affinity viene effettivamente settata come vorrei io.
    Appena ho tempo provo ... ora esco sta' notte ci do un'occhiata e ti so' dire

    Ciao!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.