LinuxQuestions.org
Visit Jeremy's Blog.
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions
User Name
Password
Linux - Distributions This forum is for Distribution specific questions.
Red Hat, Slackware, Debian, Novell, LFS, Mandriva, Ubuntu, Fedora - the list goes on and on... Note: An (*) indicates there is no official participation from that distribution here at LQ.

Notices


Reply
  Search this Thread
Old 04-06-2015, 02:18 AM   #1
turboscrew
Member
 
Registered: Apr 2009
Location: Nokia (town), Finland
Distribution: Mint, Debian
Posts: 601

Rep: Reputation: 46
x86 vs amd64 distros on old laptop


Can anyone explain why on older laptops, at least Fujitsu-Siemens Amilo A1630, amd64-distros are MUCH slower than x86-distros?

I've tried several distros on it (mostly live sessions, but some installed as well).

Linux Mint 17.1 fxce amd64 was unusable totally, but the x86 version is bearably fast. Worst this far has been 64-bit Zorin. When it had been booting twice the time boot time of the 64-bit Mint, I got tired of waiting, so I don't know about how it might have run. Also Linux Lite 64-bit was slow - about the same as the 64-bit Mint.

I'll post the specs later.

[edit]
It's later now, so:

Code:
sirpa@sirpa-mint ~ $ inxi -b
System:    Host: sirpa-mint Kernel: 3.13.0-37-generic i686 (32 bit) Desktop: Xfce 4.11.6 Distro: Linux Mint 17.1 Rebecca
Machine:   System: FUJITSU SIEMENS (portable) product: Amilo A Series version: 0.01
           Mobo: Uniwill model: 258KA0 version: 0.01 Bios: American Megatrends version: 080011 date: 05/27/2004
CPU:       Single core AMD Athlon 64 3000+ (-UP-) clocked at 800.00 MHz 
Graphics:  Card: Advanced Micro Devices [AMD/ATI] RV350/M10 [Mobility Radeon 9600 PRO Turbo] 
           X.Org: 1.15.1 drivers: ati,radeon (unloaded: fbdev,vesa) Resolution: 1280x800@60.0hz 
           GLX Renderer: Gallium 0.4 on ATI RV350 GLX Version: 2.1 Mesa 10.1.3
Network:   Card-1: Ralink RT2500 Wireless 802.11bg driver: rt2500pci 
           Card-2: Silicon Integrated Systems [SiS] SiS900 PCI Fast Ethernet driver: sis900 
Drives:    HDD Total Size: 40.0GB (10.8 used)
Info:      Processes: 143 Uptime: 1:53 Memory: 339.9/495.2MB Client: Shell inxi: 1.8.4
Oh, and one thing: does anyone know what's the difference between Mint 17 and Mint 17.1 such that in Mint 17 the (notorious) rt2500pci doesn't work (hard blocked) but in 17.1 it works? So if i find a better suited distro, I can still get the wifi to work.

Last edited by turboscrew; 04-06-2015 at 03:40 AM.
 
Old 04-06-2015, 05:29 AM   #2
TobiSGD
Moderator
 
Registered: Dec 2009
Location: Germany
Distribution: Whatever fits the task best
Posts: 17,148
Blog Entries: 2

Rep: Reputation: 4886Reputation: 4886Reputation: 4886Reputation: 4886Reputation: 4886Reputation: 4886Reputation: 4886Reputation: 4886Reputation: 4886Reputation: 4886Reputation: 4886
It might be that the 512MB of RAM on that machine is at fault here, possibly the 64 bit versions, that are indeed a bit more memory hungry, hit that limit faster, especially on a live-session, where all changes are stored in RAM. If you look at that inxi info, even on the 32 bit system you already have about 340MB in use, this will be more on a 64 bit system.
 
1 members found this post helpful.
Old 04-06-2015, 06:37 AM   #3
turboscrew
Member
 
Registered: Apr 2009
Location: Nokia (town), Finland
Distribution: Mint, Debian
Posts: 601

Original Poster
Rep: Reputation: 46
Could the memory itself affect: one 512 MB module instead of 2x256 MB?
 
Old 04-06-2015, 08:19 AM   #4
johnsfine
LQ Guru
 
Registered: Dec 2007
Distribution: Centos
Posts: 5,286

Rep: Reputation: 1197Reputation: 1197Reputation: 1197Reputation: 1197Reputation: 1197Reputation: 1197Reputation: 1197Reputation: 1197Reputation: 1197
For that big a difference on that hardware, I suspect some failure to control for other differences in the experiment, rather than a true difference between 32-bit and 64-bit.
64-bit is more memory hungry, but 512MB is not that terribly small and the memory difference is not proportional: It is only significant at very low total memory sizes.
64-bit also needs more CPU-cache, so on an older CPU the disadvantage of 64-bit is magnified by having too little CPU-cache. I haven't looked up that level of hardware detail for this configuration, but typically having one 512MB module rather than 2x256MB would further magnify the impact of the CPU-cache being too small.

So I don't find it surprising that 32-bit is faster than 64-bit on that hardware. But the factors driving that difference are all relatively small (compared to the performance differences that might result from other install-time choices) so I'm not convinced a big performance difference is explained by 32-bit vs. 64-bit.
 
Old 04-06-2015, 08:45 AM   #5
rokytnji
LQ Veteran
 
Registered: Mar 2008
Location: Waaaaay out West Texas
Distribution: antiX 23, MX 23
Posts: 7,300
Blog Entries: 21

Rep: Reputation: 3505Reputation: 3505Reputation: 3505Reputation: 3505Reputation: 3505Reputation: 3505Reputation: 3505Reputation: 3505Reputation: 3505Reputation: 3505Reputation: 3505
Quote:
The Ralink RT2500 802.11g wireless LAN chipset is supported by the rt2500pci Linux kernel driver, introduced at Linux 2.6.24
Something weird going on with you not getting rt2500 running.
In any distro. Instead of just 1.

Makes one wonder if you are are getting corrupted iso downloads.

Real Men do md5sum checks.

Edit: I thought you had 1 gig of ram to work with.
Otherwise. I would never have mentioned any XFCE Distro.

MX-14.4 would have been the lightest running XFCE distro when
it comes to 512MB of ram.

I figure a Window Manager would give more joy though than a Desktop
Enviornment.

Yep. I thought something was weird here

Quote:
My Uniwill laptop from Novatech


System: Host antiX1 Kernel 2.6.36-1-mepis-smp i686 (32 bit) Distro antiX-M11-686 Jayaben Desai 01 May 2011
CPU: Single core AMD Athlon 64 3400+ (-UP-) cache 1024 KB flags (lm nx sse sse2) bmips 1596.6 clocked at 800.00 MHz
Graphics: Card: ATI RV350 [Mobility Radeon 9600 M10] bus-ID: 01:00.0 X.Org 1.11.1.902 Res: 1280x800@60.0hz
GLX Renderer Gallium 0.4 on ATI RV350 GLX Version 2.1 Mesa 7.11.1 Direct Rendering Yes
Audio: Card Silicon Integrated Systems [SiS] C-Media AC'97 Sound Controller driver Intel ICH ports e800 ec00 bus-ID: 00:02.7
Sound: Advanced Linux Sound Architecture Version 1.0.23
Network: Card-1 Ralink RT2500 802.11g driver rt2500pci v: 2.3.0 bus-ID: 00:0b.0
Card-2 Silicon Integrated Systems [SiS] SiS900 PCI Fast Ethernet driver sis900 port d800 bus-ID: 00:04.0
Disks: HDD Total Size: 80.0GB (16.8 used) 1: /dev/sda ST980829A 80.0GB
Partition: ID:/ size: 72G used: 13G (19) fs: ext3 ID:swap-1 size: 2.17GB used: 0.00GB (0%) fs: swap
Info: Processes 104 Uptime 20 min Memory 422.2/1008.7MB Runlevel 5 Client Shell inxi 1.4.95
Post is from > Posted: Tue Dec 20, 2011

Thread I am referring to

Last edited by rokytnji; 04-06-2015 at 09:18 AM.
 
Old 04-06-2015, 09:40 AM   #6
TobiSGD
Moderator
 
Registered: Dec 2009
Location: Germany
Distribution: Whatever fits the task best
Posts: 17,148
Blog Entries: 2

Rep: Reputation: 4886Reputation: 4886Reputation: 4886Reputation: 4886Reputation: 4886Reputation: 4886Reputation: 4886Reputation: 4886Reputation: 4886Reputation: 4886Reputation: 4886
Quote:
Originally Posted by turboscrew View Post
Could the memory itself affect: one 512 MB module instead of 2x256 MB?
Only slightly, if that CPU even does support dual-channel memory (socket 939 CPUs did, socket 754 CPUs did not). You would see, depending on the application, a difference of about 5% better performance on dual channel systems.
 
Old 04-06-2015, 10:54 AM   #7
turboscrew
Member
 
Registered: Apr 2009
Location: Nokia (town), Finland
Distribution: Mint, Debian
Posts: 601

Original Poster
Rep: Reputation: 46
Quote:
Originally Posted by johnsfine View Post
For that big a difference on that hardware, I suspect some failure to control for other differences in the experiment, rather than a true difference between 32-bit and 64-bit.
64-bit is more memory hungry, but 512MB is not that terribly small and the memory difference is not proportional: It is only significant at very low total memory sizes.
64-bit also needs more CPU-cache, so on an older CPU the disadvantage of 64-bit is magnified by having too little CPU-cache. I haven't looked up that level of hardware detail for this configuration, but typically having one 512MB module rather than 2x256MB would further magnify the impact of the CPU-cache being too small.

So I don't find it surprising that 32-bit is faster than 64-bit on that hardware. But the factors driving that difference are all relatively small (compared to the performance differences that might result from other install-time choices) so I'm not convinced a big performance difference is explained by 32-bit vs. 64-bit.
The only explanation for that big difference that comes to my mind is 64-bit CPU on 32-bit bus, but I don't think that such machines have been made...

I asked, because to me it looks unbelievable.
And I run the 'same' live CD/DVD images except 32-bit vs. 64-bit.
 
Old 04-06-2015, 10:55 AM   #8
turboscrew
Member
 
Registered: Apr 2009
Location: Nokia (town), Finland
Distribution: Mint, Debian
Posts: 601

Original Poster
Rep: Reputation: 46
Quote:
Originally Posted by TobiSGD View Post
Only slightly, if that CPU even does support dual-channel memory (socket 939 CPUs did, socket 754 CPUs did not). You would see, depending on the application, a difference of about 5% better performance on dual channel systems.
I wonder if dual channel was even invented yet, when the machine was made, ;-)
 
Old 04-06-2015, 11:16 AM   #9
Timothy Miller
Moderator
 
Registered: Feb 2003
Location: Arizona, USA
Distribution: Debian, EndeavourOS, OpenSUSE, KDE Neon
Posts: 4,031
Blog Entries: 27

Rep: Reputation: 1525Reputation: 1525Reputation: 1525Reputation: 1525Reputation: 1525Reputation: 1525Reputation: 1525Reputation: 1525Reputation: 1525Reputation: 1525Reputation: 1525
Most definitely was, Early Pentium-4's used dual channel RDRAM vs. AMD using DDR-SDRAM, which was eventually then extended into dual channel DDR-SDRAM to essentially achieve performance parity with RDRAM at a SIGNIFICANTLY reduced price.
 
Old 04-06-2015, 11:17 AM   #10
turboscrew
Member
 
Registered: Apr 2009
Location: Nokia (town), Finland
Distribution: Mint, Debian
Posts: 601

Original Poster
Rep: Reputation: 46
Quote:
Originally Posted by rokytnji View Post
Something weird going on with you not getting rt2500 running.
In any distro. Instead of just 1.

Makes one wonder if you are are getting corrupted iso downloads.

Real Men do md5sum checks.
I did check with md5sum. I also burned the disk with data check after burning.
Quote:
Edit: I thought you had 1 gig of ram to work with.
Otherwise. I would never have mentioned any XFCE Distro.

MX-14.4 would have been the lightest running XFCE distro when
it comes to 512MB of ram.
The funny thing is that 32-bit Mint 17.1 XFCE was tolerable. Quite close to
64-bit Sparky.
Quote:
I figure a Window Manager would give more joy though than a Desktop
Enviornment.

Yep. I thought something was weird here



Post is from > Posted: Tue Dec 20, 2011

Thread I am referring to
I think rl2500pci stopped working when the rl2500-stuff was replaced with more general rl2x00-stuff. In newer kernels rl2500-stuff seems to be back.
Looks like the the divider is somewhere between kernels 3.13 and 3.14. (although I wonder - Mint 17.1 has 3.13 according to distrowatch). Anyway, the card seems to work with any distro with kernel later than 3.13.

When I run a distro where the card works, lsmod didn't show a single module with 'rl2x00' in the name. Only 'rl2500'.
 
Old 04-06-2015, 12:21 PM   #11
johnsfine
LQ Guru
 
Registered: Dec 2007
Distribution: Centos
Posts: 5,286

Rep: Reputation: 1197Reputation: 1197Reputation: 1197Reputation: 1197Reputation: 1197Reputation: 1197Reputation: 1197Reputation: 1197Reputation: 1197
Quote:
Originally Posted by TobiSGD View Post
You would see, depending on the application, a difference of about 5 better performance on dual channel systems.
Remember we are not talking about the direct performance difference between dual channel and single channel, but about the relative impact of that difference for 32-bit vs. 64-bit.

64-bit will execute slightly fewer instructions for the same work accomplished, but those instructions are slightly larger, resulting in fewer accesses to the CPU cache, but (assuming that cache is "too small") more cache misses. The bigger factor is use of pointers within the compiled code. Because 64-bit has more registers it has fewer register "spills", so pointers are read/written between the registers and the cache less often. But those pointers are twice as big, so they take twice as much room in cache and cache miss more often.

It is the higher rate of cache misses (not the direct 64-bit operations, as the OP seems to assume) that results in 64-bit taking a bigger hit from single channel ram than 32-bit takes. The theoretical upper bound on that effect is very high: The cache miss rate could be pushed all the way from 0 to 100% by a change in pointer size (assuming a maximally BAD application behavior to cache size boundary). Then the performance impact is the cost of an entire cache line of dram accesses vs. a single 32-bit access to cache. So far more than 8 to 1, rather than your 1.05 to 1. But that is so spectacularly unlikely, the real world size of the effect should be barely measurable.
 
Old 04-06-2015, 12:58 PM   #12
TobiSGD
Moderator
 
Registered: Dec 2009
Location: Germany
Distribution: Whatever fits the task best
Posts: 17,148
Blog Entries: 2

Rep: Reputation: 4886Reputation: 4886Reputation: 4886Reputation: 4886Reputation: 4886Reputation: 4886Reputation: 4886Reputation: 4886Reputation: 4886Reputation: 4886Reputation: 4886
Quote:
Originally Posted by johnsfine View Post
Remember we are not talking about the direct performance difference between dual channel and single channel, but about the relative impact of that difference for 32-bit vs. 64-bit.

64-bit will execute slightly fewer instructions for the same work accomplished, but those instructions are slightly larger, resulting in fewer accesses to the CPU cache, but (assuming that cache is "too small") more cache misses. The bigger factor is use of pointers within the compiled code. Because 64-bit has more registers it has fewer register "spills", so pointers are read/written between the registers and the cache less often. But those pointers are twice as big, so they take twice as much room in cache and cache miss more often.

It is the higher rate of cache misses (not the direct 64-bit operations, as the OP seems to assume) that results in 64-bit taking a bigger hit from single channel ram than 32-bit takes. The theoretical upper bound on that effect is very high: The cache miss rate could be pushed all the way from 0 to 100% by a change in pointer size (assuming a maximally BAD application behavior to cache size boundary). Then the performance impact is the cost of an entire cache line of dram accesses vs. a single 32-bit access to cache. So far more than 8 to 1, rather than your 1.05 to 1. But that is so spectacularly unlikely, the real world size of the effect should be barely measurable.
Thanks for the clarification, the 5% I mentioned is what I remember from benchmarks at the time when dual-channel was widely introduced.
 
Old 04-09-2015, 02:22 PM   #13
turboscrew
Member
 
Registered: Apr 2009
Location: Nokia (town), Finland
Distribution: Mint, Debian
Posts: 601

Original Poster
Rep: Reputation: 46
Quote:
It is the higher rate of cache misses (not the direct 64-bit operations, as the OP seems to assume)
If, by the assumption here, this:
Quote:
The only explanation for that big difference that comes to my mind is 64-bit CPU on 32-bit bus, but I don't think that such machines have been made...
was meant, well that was kind of joke - I meant data bus multiplexing, like in old 386SX-machines. It loaded 32-bit value from memory to register with a single instruction, but through a 16-bit bus => 2 data fetches for one 32-bit value.

@johnsfine: Did I understand correctly: the cache misses are more heavy since cache lines are twice the size of a 32-bit iron, and that causes twice the bus traffic? Especially when the cache happens to be the same size as in a 32-bit iron, a 64-bit access is almost twice as prone to cache miss as 32-bit?
Or am I totally lost?
 
Old 04-10-2015, 06:45 AM   #14
johnsfine
LQ Guru
 
Registered: Dec 2007
Distribution: Centos
Posts: 5,286

Rep: Reputation: 1197Reputation: 1197Reputation: 1197Reputation: 1197Reputation: 1197Reputation: 1197Reputation: 1197Reputation: 1197Reputation: 1197
Quote:
Originally Posted by turboscrew View Post
was meant, well that was kind of joke - I meant data bus multiplexing, like in old 386SX-machines. It loaded 32-bit value from memory to register with a single instruction, but through a 16-bit bus => 2 data fetches for one 32-bit value.
That whole concept is obsolete because of caches inside the CPU.

A 64-bit instruction may look like it transfers a 64-bit item of data to or from ram. But it really transfers a 64-bit item to or from cache. The pathway between registers and cache is wider than 64 bits on even the 32-bit CPUs that supported the earliest SSE versions.

The transfer between cache and ram is separate and its width is independent of the width of whatever transfers between registers and cache might have caused the transfer between cache and ram.

Quote:
@johnsfine: Did I understand correctly: the cache misses are more heavy since cache lines are twice the size of a 32-bit iron, and that causes twice the bus traffic? Especially when the cache happens to be the same size as in a 32-bit iron, a 64-bit access is almost twice as prone to cache miss as 32-bit?
Or am I totally lost?
I think you are lost.

First, we are not comparing hardware to hardware, but rather use of the same hardware for 32-bit vs. 64-bit software.
Second, the important aspect of the comparison is not the size of transfers, nor the size of cache lines (cache line size doesn't change anyway for 32-bit vs. 64-bit use of the same CPU).

The important difference is quantity of data that must be kept in the cache for efficient operations. In some programs, the bulk of the frequently accessed data consists of pointers. This may seem counter-intuitive to non programmers or to inexperienced programmers. You would expect the "real" data to dominate the total and the pointers to be a small fraction of the total. That is in fact true in some applications. But in many situations that would surprise a non programmer, pointers are the dominant data type used by an application.

64-bit programs typically use the same size characters, the same size integers, and the same size floating point data as 32-bit programs. So if any of those types dominate, the amount of data accessed is basically the same (while the higher register count of 64-bit means that data moves less often between registers and cache and the 64-bit version runs a little faster).

But if the dominant data type is pointers, the size is 64-bit vs. 32-bit. A 64-bit pointer moves between register and cache at exactly the same speed as a 32-bit. A cache line containing a 64-bit pointer moves between cache and ram at exactly the same speed as a cache line containing a 32-bit pointer. The direct impact of the size difference is not what matters.

What matters is that a large number of pointers together take twice as much room inside the cache in 64-bit as 32-bit and crowd each other and other frequently used data out of the cache. So the miss rate is higher.

Last edited by johnsfine; 04-10-2015 at 06:48 AM.
 
1 members found this post helpful.
Old 04-10-2015, 02:47 PM   #15
turboscrew
Member
 
Registered: Apr 2009
Location: Nokia (town), Finland
Distribution: Mint, Debian
Posts: 601

Original Poster
Rep: Reputation: 46
So it's about that a cache line can only contain about half the number of 64-bit entities compared to 32-bit entities? More entities, better chance for hit?

I take that you mean assembly-level when you are talking about pointers (=addresses)?
 
  


Reply


Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
Is there much of a difference in performance between x86 and amd64 distros? Cultist Linux - General 9 09-08-2010 08:08 PM
can boot X86 livecds but not AMD64 livecd to repair my AMD64 Gentoo system ldemaey Gentoo 8 07-23-2009 12:20 PM
Can I install a package for x86 in amd64? Zyndarius Linux - Newbie 7 12-19-2008 08:18 PM
state of x86-64 (ie., amd64) ? ashwin_cse Linux - General 4 04-06-2007 07:46 PM
Install x86 on to amd64 ? Because of Flash robertpolson Linux - Software 4 01-12-2007 11:18 AM

LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions

All times are GMT -5. The time now is 09:15 AM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration