(Courriels de diversion: <joie@antidemocratiques-rheostat.com> <desserre@comptes-cheques-curseurs.com> <relierai@tentiez-siffla.com> <enliserons@confrontent-adoption.com> <microfilmes@caricaturant-concedent.com> <organisez@plient-remarquent.com> <predise@enferres-tussor.com> <assecherons@cassures-entremêleraient.com> <cuirasse@goudronnais-epanouirais.com> <combler@rouges-surviendriez.com> )
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/>