Surement pas, non.
Il n’y a qu’une occurrence du mot « vmx » dans la liste (des drapeaux possibles) que tu donnes, tout comme une occurrence de smv. C’est l’état du drapeau concerné, à 0 ou à 1, qui est intéressant !
Lecture de ce que c’est qu’un flag Drapeau (informatique) — Wikipédia et avec un dessin RFLAGS — Wikipédia
Astuce : lance gparted
et regarde Partition / Gérer les drapeaux : il s’agit de simples cases à cocher genre « oui/non boot » et pareil pour les autres.
un drapal des drapaux, on est propres…
Sinon, ta sortie est la même que cat /proc/cpuinfo
(où crois-tu que lscpu
va chercher les infos qu’il propose ?)
Allez, un peu de prise de tête (à peine, à peine !)
Extrait de util-linux/2.20.1/sys-utils/lscpu.c
(pas tout jeune mais je n’ai que ça sous la main) :
Dans le début du fichier,
#define _PATH_PROC_CPUINFO "/proc/cpuinfo"
et dans le corps du fichier :
static void
read_basicinfo(struct lscpu_desc *desc)
{
FILE *fp = path_fopen("r", 1, _PATH_PROC_CPUINFO);
char buf[BUFSIZ];
struct utsname utsbuf;
/* architecture */
if (uname(&utsbuf) == -1)
err(EXIT_FAILURE, _("error: uname failed"));
desc->arch = xstrdup(utsbuf.machine);
/* count CPU(s) */
while(path_exist(_PATH_SYS_SYSTEM "/cpu/cpu%d", desc->ncpus))
desc->ncpus++;
/* details */
while (fgets(buf, sizeof(buf), fp) != NULL) {
if (lookup(buf, "vendor", &desc->vendor)) ;
else if (lookup(buf, "vendor_id", &desc->vendor)) ;
else if (lookup(buf, "family", &desc->family)) ;
else if (lookup(buf, "cpu family", &desc->family)) ;
else if (lookup(buf, "model", &desc->model)) ;
else if (lookup(buf, "stepping", &desc->stepping)) ;
else if (lookup(buf, "cpu MHz", &desc->mhz)) ;
else if (lookup(buf, "flags", &desc->flags)) ; /* x86 */
else if (lookup(buf, "features", &desc->flags)) ; /* s390 */
else if (lookup(buf, "type", &desc->flags)) ; /* sparc64 */
else if (lookup(buf, "bogomips", &desc->bogomips)) ;
else if (lookup(buf, "bogomips per cpu", &desc->bogomips)) ; /* s390 */
else
continue;
}
desc->mode = init_mode();
if (desc->flags) {
snprintf(buf, sizeof(buf), " %s ", desc->flags);
if (strstr(buf, " svm "))
desc->virtflag = strdup("svm");
else if (strstr(buf, " vmx "))
desc->virtflag = strdup("vmx");
if (strstr(buf, " lm "))
desc->mode |= MODE_32BIT | MODE_64BIT; /* x86_64 */
if (strstr(buf, " zarch "))
desc->mode |= MODE_32BIT | MODE_64BIT; /* s390x */
if (strstr(buf, " sun4v ") || strstr(buf, " sun4u "))
desc->mode |= MODE_32BIT | MODE_64BIT; /* sparc64 */
}
fclose(fp);
/* enlevé d'autres infos inutiles ici, pour alléger */
}
EDIT :
Par contre, ce qui est troublant, c’est ce « 8 » remonté par l’op, car en examinant cpufeatures.h
(cpufeatures.h « asm « include « x86 « arch - kernel/git/stable/linux.git - Linux kernel stable tree)
on se rend compte qu’on devrait avoir « 32 » (6e bit à 1).
Et là, je veux bien une explication (son egrep
qui se mélange les pinceaux ?)