(Courriels de diversion: <antidemocratiques@rheostat-desserre.com> <comptes-cheques@curseurs-relierai.com> <tentiez@siffla-enliserons.com> <confrontent@adoption-microfilmes.com> <caricaturant@concedent-organisez.com> <plient@remarquent-predise.com> <enferres@tussor-assecherons.com> <cassures@entremêleraient-cuirasse.com> <goudronnais@epanouirais-combler.com> <rouges@surviendriez-surveillerais.com> )
Bon ... en fait pour faire simple : 32bits : SYSENTER/SYSEXIT 64bits : SYSCALL/SYSRET Dune2 .... ok je -->[] c.kumsta a écrit : > Bon alors petite rectification, car après relecture des datasheets d'intel, SYSENTER/SYSEXIT est opérationnel en mode 64bits aussi :) > > Mais dans le source du noyau (2.6.22.5) on s'aperçoit qu'il n'est utilisé _que_ pour les appels systèmes des applis 32bits fonctionnant > en mode ia32-émulé. > Cf : ./arch/x86_64/ia32/vsyscall-sysenter.S > [...] > movl %esp,%ebp > *-> sysenter > .space 7,0x90 > jmp .Lenter_kernel > /* 16: System call normal return point is here! */ > [...] > > Mais les appels systèmes sont plus simples en x86_64 grâce à l'adressage linéaire. > Cf : ./arch/x86_64/kernel/entry.S > [...] > jnz tracesys > cmpq $__NR_syscall_max,%rax > ja badsys > movq %r10,%rcx > *-> call *sys_call_table(,%rax,8) # XXX: rip relative > movq %rax,RAX-ARGOFFSET(%rsp) > [...] > > Donc ce n'est même pas évident que le changement de contexte user/kernel soit plus lent .... > > Bon ok .. j'arrête de me parler tout seul :) > > Dune2++ > > c.kumsta a écrit : >> Salut, >> >> la difficulté du mix 64/32 bits est un peu plus subtile que le simple gain de performance. >> Je vais essayer de faire dans ce mail un petit récap des avantages/inconvénients pour avoir une vue un peu plus poussé du problème. >> >> En ce qui me concerne, j'ai depuis 3 ans un portable Turion64 et maintenant >> un Core2Duo compatible em64t (appellation intel de l'amd64), >> et j'ai eu l'occasion d'utiliser (et d'avoir un retour d'expérience) : >> Gentoo en 32 et 64 bits ainsi que kubuntu (moments de faignantises :) ) en 32 et 64 bits. >> >> 1) En ce qui concerne les gains de perf à l'usage : >> - pas de gain significatif sur l'usage courant (firefox/thunderbird/openoffice) en 64bits >> - gain de perf pour tout outil de traitement de données (mplayer/transcode/gimp/blender) en 64bits >> >> 2) Quelques différences techniques permettant de comprendre la présence ou absence de gain : >> 32bits -> >> Limite du nombre de registres CPU. >> Utilisation des instructions SYSENTER/SYSEXIT pour les syscalls (appels systèmes en contexte noyau) >> facilitant le changement de contextes de manière hardware. >> Utilisation intensive du MMU pour les translations d'adresses composées (PAGE+OFFSET+...) non linéaire. >> 64bits -> >> Extension du nombre de registres (SSE 8->16, GP-> 8->16) et extension des registres classiques (GP) à 64bits >> SYSENTER/SYSEXIT non utilisables >> Translations d'adresses simplifiées par linéarisation de l'espace d'adressage sur 64bits >> >> cela à pour conséquence : >> 32 bits -> >> Meilleure efficacité lors des context-switching et appels systèmes >> Binaires plus petits (data 32bits) -> temps de chargement du binaire à partir du HDD meilleur. >> Cache CPU plus important (data et adresses 32 bits) >> 64 bits -> >> Moins de perte de temps avec les variables temporaires (plus de registres) >> Calculs plus précis (64bits) et plus rapides (plus de registres => moins de lecture mémoire) >> Adressage simplifié >> Cache CPU moindre (data et adresses en 64bits) >> Binaire plus gros -> temps de chargement allourdi >> >> On se rend donc compte qu'en terme d'utilisation bureautique, le gain en CPU est minime en 64bits et >> est compensé par des syscalls légèrement moins efficaces. D'où cette sensation de gain quasi-null. >> Par contre dés qu'on utilise des outils de traitement du signal ou image (vidéo,son,rendering ...), là >> le 64bits prend tout son intérêt car la perte des syscalls hardware est très vite compensé par le gain sur les temps de calcul. >> >> Il est donc "normal" d'avoir un avis divergeant sur l'intérêt du 64bits en fonction de ce qu'on recherche à faire. >> >> Pour ce qui concerne ensuite l'usage courant d'une distribution en 64bits, >> il est à noter pour commencer que le marché des architectures 64bits est encore jeune et est donc en plein évolution (stabilisation). >> Ceci a pour conséquence que l'interopérabilité des outils binaires (win32codecs par exemple) arrivent doucement >> (win64codecs vient juste de sortir). >> >> Je parle de win32codec car c'est généralement le 1er problème qu'on rencontre en 64bits pour pouvoir les vidéos, >> mais il en est de même pour tout ce qui est lecteur RealPlayer et autres binaires non-ouvert (pilotes proprio). >> >> La solution consiste effectivement à installer un système mixte (base en 64bits obligatoire, puis certains outils en 32bits >> fonctionnant en mode compatibilité 32bits sur un système 64bits) mais en acceptant une perte de perf pour ces outils >> (gênant si c'est par exemple mplayer lié avec les win32codec !!). >> Et ceci peut (pouvait car avec les derniers package 64bits qui arrivent ce problème se pose de moins en moins) être pénalisant : >> win32codec -> mplayer-32 -> firefox-32 (pour pour pouvoir integrer mplayer-32) -> thunderbird-32 (pour se lier à firefox-32)..... >> bref ... retour au 32bits mais en émulation !!! >> >> Donc, en espérant que le nombre de portages 64bits continue au rythme actuel, pour ma part, >> je considère que basculer en mode 64bits est aujourd'hui avantageux pour les CPUs qui le supportent. >> Et de plus, plus il y-aura d'utilisateurs 64bits, plus il y aura de retour de bugs, >> et donc plus il y aura de corrections et d'ajout de fonctionnalités ! >> >> Voili-voilou :) >> >> Dune2++ >> >> >> Michael.magoga a écrit : >>> B'jour à tous, >>> >>> Je viens de voir passer deux ou trois mails parlant des installations 64 >>> et 32 bits (ubuntu). >>> >>> Bon, il parait que les différences de perfs sont minuscules. Je veux >>> bien le croire pour une utilisation courante. Moi perso je développe et >>> travaille avec un logiciel tellement gourmand et manipulateur de données >>> que la différence devient sensible ... mais ce n'est pas une utilisation >>> classique. >>> >>> Mais la n'est pas la question. Ce qui m'interpelle (et m'inquiete un peu >>> aussi), c'est de voir que du coup on conseille de rester en 32 bits, car >>> tous les logiciels ne sont pas en 64bits. >>> >>> Or chez moi (mandriva), j'ai ... les deux. J'ai un rep lib64 et un rep >>> lib, j'ai des applis 32 bits et des applis 64bits. En fait j'installe la >>> version 64 si possible et me rabat sur la 32 sinon. Et pour l'instant >>> tout à l'air de marcher. J'ai pas noté de problemes particulier, pas de >>> bugs bizarre (sauf sur ktorrent, mais ca a l'air d'être autre chose). >>> >>> D'ou ma question : me leurre-je ? Est-ce que cette facon de faire serait >>> inutile, voire génératrice de problemes ? S'il y a parmi vous des >>> connaisseurs en la matiere, j'aimerais bien avoir un avis serieux la dessus. >>> >>> >>> Mick >> >> >> -------------------------------------------------------------------- >> Les listes de diffusion occultes: <URL:http://www.CULTe.org/listes/> >> >> >> > > -------------------------------------------------------------------- Les listes de diffusion occultes: <URL:http://www.CULTe.org/listes/>