Comment fonctionnent les macros probables / improbables du noyau Linux et quel est leur avantage?

J'ai fouillé certaines parties du noyau Linux et j'ai trouvé des appels comme celui-ci: if (unlikely(fd < 0)) { /* Do something */ } ou if (likely(!err)) { /* Do something */ } J'en ai trouvé la définition: #define likely(x) __builtin_expect((x),1) #define unlikely(x) __builtin_expect((x),0) Je...