(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/>