L'en-tête est principalement utilisé pour les tests de l'espace utilisateur, comme virtio_test
.
Depuis le git-log de tools/virtio/virtio_test.c
:
Il s'agit de la partie espace utilisateur de l'outil :elle comprend un tas de stubs pour les API Linux, quelque peu similaires à linuxsched. Cela permet de recompiler le ring code en espace utilisateur.
Un petit exemple de test est implémenté en le combinant avec vhost_testmodule.
Alors oui, le code est un peu dangereux (un codage propre testerait un NULL
pointeur avant memset()
et renflouer avec un message d'erreur approprié), mais comme il ne s'agit que d'un outil de test, il semble avoir été considéré comme non critique de sauter ce test.
Oui, cela ressemble vraiment à un bug.
Le tools/
Le sous-répertoire est une collection d'outils de l'espace utilisateur (comme son nom l'indique). Vous pouvez également voir cela par le fait que plusieurs en-têtes de bibliothèque standard C sont inclus. Donc, bien sûr, ce n'est pas un bogue du noyau (cela aurait été très mauvais), juste un oubli mineur dans le virtio
outil de test.
Ce virtio
L'outil de test semble redéfinir certaines API du noyau pour simuler leur comportement dans l'espace utilisateur. Cette fonction ne semble cependant jamais être utilisée dans la pratique, juste simplement définie.
marco:~/git/linux/tools/virtio$ grep -r kzalloc
linux/kernel.h:static inline void *kzalloc(size_t s, gfp_t gfp)
ringtest/ptr_ring.c:static inline void *kzalloc(unsigned size, gfp_t flags)
marco:~/git/linux/tools/virtio$
Il est probablement destiné à être utilisé par quelqu'un qui souhaite tester du code du noyau virtio dans l'espace utilisateur.
Dans tous les cas, vous pouvez essayer de signaler le bogue. Le get_mantainer.pl
le script suggère :
$ perl scripts/get_maintainer.pl -f tools/virtio/linux/kernel.h
Bad divisor in main::vcs_assign: 0
"Michael S. Tsirkin" <[email protected]> (maintainer:VIRTIO CORE AND NET DRIVERS)
Jason Wang <[email protected]> (maintainer:VIRTIO CORE AND NET DRIVERS)
[email protected] (open list:VIRTIO CORE AND NET DRIVERS)
[email protected] (open list)