J'ai lu cela depuis un certain temps mais cela n'a pas de sens pour moi .. Probablement parce que je suis nouveau dans tout cela et que je ne comprends toujours pas quelques concepts de noyau.Pourquoi spinlock no-op dans le noyau Linux (non-SMP)?
C'était ce que je suis venu avec (pas d'erreur ou de la remise NULL, il est juste pour le plaisir de la question):
spinlocks noyau sont exécutées à l'intérieur des fils du noyau, ce qui est préemptif.
void spinlock_acquire(spinlock_t *spinlock)
{
tryagain:
while(spinlock->plock != UNLOCKED) ;
context_switch_block;
if(spinlock->plock != UNLOCKED) {
context_switch_unblock;
goto tryagain;
}
spinlock_lock(spinlock, current_thread);
context_switch_unblock;
}
Je ne comprends pas la question. Ou au moins, je ne comprends pas comment le code que vous avez inclus est lié à la question. – sblom
spinlock sur un seul CPU, quel est le problème dans le code? J'ai lu que sous Linux sur CPU unique, le code spinlock est plutôt équivalent à aucun op, mais pourquoi? – sgupta
Totalement ne pas comprendre votre code .... – Ace