W2K or WXP? Seriously...

Page 2 - Seeking answers? Join the AnandTech community: where nearly half-a-million members share solutions and discuss the latest tech.

kylef

Golden Member
Jan 25, 2000
1,430
0
0
Originally posted by: VirtualLarry
I'm going to be stubborn here, and ask what exactly 'true support' means.
Sure. First of all, you should understand how spin-locks perform horribly on HT processors in this Intel article. Second, note that Win2k basically "spins" in its Idle Thread Loop when one CPU has nothing to do. So therein lies the problem: Win2k's Idle Thread inadvertently uses resources that the other logical CPU could be using. XP, on the other hand, as we know, is HT-aware, so it recognizes the idle loop is running on a logical (HT) cpu and avoids spinning in a manner that consumes resources wanted by the 'active' logical cpu. Win2k has no idea this is an issue and spins away happily, thereby decreasing perf whenever only a single thread is actively running.

But the actual operation of HT, and the possible performance degradation that occurs, depends on the two threads scheduled, and the processor itself, not in any way the OS.
I think you're missing something: the OS itself is often one (or more) of the threads scheduled. Whether it's due to interrupt processing (which handles preemptive thread scheduling), DPC threads, other kernel threads, or the Idle Thread (if there is nothing else to do), the OS often finds itself the thread running alongside user threads in MP systems. Normally, this isn't a problem, because this kernel work has to be done whether it might slow down the other Logical CPU or not. But in the case of the Idle Thread, any cycles stolen from the "active" Logical CPU are wasted (i.e., 'fake' work that didn't need to be done).

MS's line on requiring XP for HT is marketing FUD designed to push people to upgrade to XP. The only real issue is software licensing, and that has nothing to do with CPU execution efficiency.
I'm sorry you feel that way.

Hate to tell you, but the bundled ones in XP are nearly just as bad, especially when dealing with malformed data formats.
I'll admit I have seen the built-in picture viewer crash explorer.exe before. I did not debug into it, though.

Again, hate to tell you, but WinXP's Explorer can do that even without DivX installed, and Explorer.exe has an open-file-handle leak itself, without any dodgy shell extensions loaded. (Yes, even in W2K SP2.)
If you can describe the steps for reproduction of the leak, I can file a bug. Or if you can get Explorer.exe to crash consistently without a plug-in causing it, please let me know and I'll file a bug.

That's not a valid excuse here, unfortunately. Most of those user-mode components are already segregated in the installer .INFs.
No, you see INFs don't have enough information to solve the problem. Let's consider a scenario: say Bob wants to install Windows Messenger on a hypothetical "minimal windows" machine. But Windows Messenger requires RTC. RTC requires something else, and so on. The installer that Bob runs MUST know about these dependencies. Currently, this information is not maintained in INFs (or in the registry in any consistent manner), and app installers assume that certain components are guaranteed to be installed and don't even check for them at install/runtime, as unfortunate as that is. So a hypothetical "minimal" Windows installation would be very minimal, and it would be VERY difficult to install anything because you'd be missing too many other components for the components you want to function.

The simple fact is that MS doesn't give the user the choice, that's all. MS wants to make the choice for them, to force as much of their "crapware" onto the user as possible.
Again, I'm sorry you feel that way.

As for the compontization of system-level stuff, MS has been selling "Windows Embedded" based on the XP source code base for some time now. It's already componentized. So even if that were the reason for the above, that reason wouldn't be valid any longer.
XP Embedded is an entirely different release from XP. Its components were hand-picked to guarantee that nothing relied on dependencies not available in XP Embedded (i.e., self consistency). Software designed to run on XP Embedded is aware of the reduced dependencies, and knows EXACTLY what is and is not guaranteed to be available.
Note that this is not true with a user-defined system: newly installed software needs a way to learn, at runtime or install time, what is and what is not present on the system. THAT is the technology Microsoft is working on.

EDIT: fixed broken Intel link.
 

n0cmonkey

Elite Member
Jun 10, 2001
42,936
1
0
Originally posted by: Sunner
ShadeX, I agree on the part about educating users. unfortunately, that kind of utopia seems entirely impossible since a majority of the world's people don't want to learn anything they don't absolutely have to.
This doesn't just go for computers, but for just about anything more advanced than a toaster.
I still think there should be a license to be allowed to use computers

VirtualLarry maybe this will explain the Linux NX support.
Granted, that is how OpenBSD does it, but AFAIK they were first, and the Linux guys probably did something similar.

Less technical, but more Linux centric.
 

VirtualLarry

No Lifer
Aug 25, 2001
56,552
10,171
126
Originally posted by: kylef
Originally posted by: VirtualLarry
I'm going to be stubborn here, and ask what exactly 'true support' means.
Sure. First of all, you should understand how spin-locks perform horribly on HT processors in this Intel article. Second, note that Win2k basically "spins" in its Idle Thread Loop when one CPU has nothing to do.

You've got to be kidding me, right? As far as I was aware, NT-based OSes used a HALT or other similar opcode, that would trigger the processor's own internal power-saving modes, in order to save power/run cooler. If one thread is in "HALT" state, it should remain that way until an interrupt is signaled.

I read that linked article from Intel, and no-where in there does it specifically reference Microsoft, Windows, or NT, anywhere. I think that the point of that article is, that while spin-loops are, and have always been, an expensive and generally-poor method of thread-syncronization, they perform necessarily even worse on a HT-enabled CPU, since the processor resources are not independent, but shared.

Please contrast that with this article, from SysInternals , that clearly mentions that NT executes "HLT" during the idle loop, not a spin-loop. However, that article does also mention "uniprocessor x86", so I'm going to have to do some more research to determine if the MPS and ACPI HALs also execute HALT. As far as I know, for power-saving purposes, they do.

Originally posted by: kylef
So therein lies the problem: Win2k's Idle Thread inadvertently uses resources that the other logical CPU could be using. XP, on the other hand, as we know, is HT-aware, so it recognizes the idle loop is running on a logical (HT) cpu and avoids spinning in a manner that consumes resources wanted by the 'active' logical cpu. Win2k has no idea this is an issue and spins away happily, thereby decreasing perf whenever only a single thread is actively running.

That's simply not true. You have provided no evidence that W2K's idle-thread executes a spin-loop, or that XP's does not.

It's also kind of strange, that you haven't actually mentioned the manner in which XP's scheduler was modified to deal with HT CPUs, AFAIK it has nothing to do with idle threads "spinning" away, but of process and processor affinity and L2 cache thrashing. When scheduling two threads, XP attempts to schedule them from the same process, in order to maximize locality of reference. Other than that one optimization, the issue of CPU-level hardware resource-contention, cannot be mitigated by the OS. The slowdown that results due to things like write/write-combine buffer contention, affect any OS that schedules multiple threads to run on that HT CPU. Intel's other docs on the subject basically say just that.

Originally posted by: kylef
I think you're missing something: the OS itself is often one (or more) of the threads scheduled. Whether it's due to interrupt processing (which handles preemptive thread scheduling), DPC threads, other kernel threads, or the Idle Thread (if there is nothing else to do), the OS often finds itself the thread running alongside user threads in MP systems. Normally, this isn't a problem, because this kernel work has to be done whether it might slow down the other Logical CPU or not. But in the case of the Idle Thread, any cycles stolen from the "active" Logical CPU are wasted (i.e., 'fake' work that didn't need to be done).

Alright, but excluding your unproven assertion that the idle thread runs a spin-loop, all of the other "real work", such as interrupt processing, has to be done regardless, and that's not something that XP vs. W2K can somehow magically go away. So therefore, HT functionality and performance in both OSes should be the same.

Originally posted by: kylef
MS's line on requiring XP for HT is marketing FUD designed to push people to upgrade to XP. The only real issue is software licensing, and that has nothing to do with CPU execution efficiency.

I'm sorry you feel that way.

Well, there is not a significant technical difference, so what does that leave for other possibilities? It's not like MS has never been (rightfully) accused of using "marketing FUD" to push upgrades before (like NT4 vs W2K.. for example)... no, of course not...

Originally posted by: kylef
I'll admit I have seen the built-in picture viewer crash explorer.exe before. I did not debug into it, though.
If you can describe the steps for reproduction of the leak, I can file a bug. Or if you can get Explorer.exe to crash consistently without a plug-in causing it, please let me know and I'll file a bug.

Alright. For a common and trivial example, consider this. Opening the (mini-explorer-based common-dialog) file open/save dialog from within an application, that requires navigating to a different directory, after saving the file or otherwise closing the "common dialog", causes that directory that I navigated to, to be undeletable in another copy of Explorer.exe that I have open. Basically, the embedded Explorer process maintains an open file-handle to the directory last used, even after the dialog is closed, which is very un-intuitive to the user.

The only way to close that lingering open handle, is to close that other app entirely, which could be a prohibitive thing, if the user has a lot of other unsaved documents in that app.

I can reproduce this with nearly any of the apps on my system, it's not app-specific.

There are other similar issues too, like plugging in a USB flash-memory drive, copying files from the HD to a particular directory on that drive, after navigating to a different directory, using Explorer.exe, or double-clicking on a file from that drive, using Explorer.exe, and then closing down the app that opened. Then, try to use the PnP "Safe Hardware Removal" applet in the system tray area, to shut down the USB flash-memory drive, in order to properly remove it. Often, you cannot, because Explorer.exe still keeps (leaked?) open handles to files and directories on that volume. The only way to safely remove the USB flash device, is to shut down the entire OS.

Note that I do not run any sort of AV scanner, or any other sort of background resident file-scanner, so that cannot be the cause of these issues.

Originally posted by: kylef
That's not a valid excuse here, unfortunately. Most of those user-mode components are already segregated in the installer .INFs.
No, you see INFs don't have enough information to solve the problem. Let's consider a scenario: say Bob wants to install Windows Messenger on a hypothetical "minimal windows" machine. But Windows Messenger requires RTC. RTC requires something else, and so on. The installer that Bob runs MUST know about these dependencies. Currently, this information is not maintained in INFs (or in the registry in any consistent manner), and app installers assume that certain components are guaranteed to be installed and don't even check for them at install/runtime, as unfortunate as that is. So a hypothetical "minimal" Windows installation would be very minimal, and it would be VERY difficult to install anything because you'd be missing too many other components for the components you want to function.

You are being highly dis-ingenious here. I'm talking strictly about user-mode components (applets). You started talking about system-level components, that provide services to user-mode components. The two are clearly not the same. MS could provide a choice to the user to install user-mode components or not, but they simply don't give the user that choice.

And as far as dependencies, MS could use their own .MSI technology to install their components, instead of an .INF/binary-files arrangement, if that were even at issue here.

I don't have any problems with the initial OS installer choosing to install the full complement of system-level, non-user-visible components. It's the fact that MS chooses to force things like Messenger to get installed, simply to increase their market share, that gets on my nerves.

Originally posted by: kylef
The simple fact is that MS doesn't give the user the choice, that's all. MS wants to make the choice for them, to force as much of their "crapware" onto the user as possible.
Again, I'm sorry you feel that way.

I'm sorry that MS doesn't have a clue, and/or give a damn about their customers feelings in this regard. I know that I'm certainly not alone.

Originally posted by: kylef
XP Embedded is an entirely different release from XP. Its components were hand-picked to guarantee that nothing relied on dependencies not available in XP Embedded (i.e., self consistency). Software designed to run on XP Embedded is aware of the reduced dependencies, and knows EXACTLY what is and is not guaranteed to be available.

Perhaps it is an entirely different "release" than XP (in terms of binary distribution), but my understanding was that it was from the exact same source-code base.

The "reduced dependencies", being that the XP Embedded customer gets to choose only what they want included in the package, to bundle with their embedded application.

The point being, that XP's source-code base is already highly componentized. MS's embedded customers demanded that. To claim that such a thing does not exist, is again dis-ingenious MS FUD.

Originally posted by: kylef
Note that this is not true with a user-defined system: newly installed software needs a way to learn, at runtime or install time, what is and what is not present on the system. THAT is the technology Microsoft is working on.

Huh? That can't be difficult, whatever happened to COM's IUnknown QueryInterface(IID) functionality, or better yet, simply having the application check for the existance of certain .DLL binaries in the system dir, dynamically load them using LoadLibrary, and call a DLL interface function to determine what's available, just like WinSock? Or using something like the NT ObjectManager Namespace, and enumerate supported subsystems from there?
 

dclive

Elite Member
Oct 23, 2003
5,626
2
81
*This* rocks. Keep it coming, gentlemen. I look forward especially to the HT discussion going on in more detail.
 

bsobel

Moderator Emeritus<br>Elite Member
Dec 9, 2001
13,346
0
0
HT is a processor feature. W2K supports it, in as much as it properly recognizes and schedules for two virtual CPUs.

I think you meant to say and schedules for two physical CPU's.

XP's improvements in HT support:

1) API extensions to determine physical vs logical CPU's (important for licensing)

2) Scheduling changes to properly schedule threads (you don't want a maintence thread on the second virtual CPU taking work units from a high priority thread on the main virutal CPU (or vise versa). In your example you are presuming a single proc HT system. My primary rig is a dual Xeon with HT. The worst thing for performance that 2k will do (and XP will not) is schedule two threads on the same physical proc and leave the second one idle vs making sure at least one thread is running on each physical proc before adding additional threads onto the virtual procs.

The benchmarks show that 2k is (in many cases) slower with HT turned on than off.

But Hibernate is still broken, by design, for all but the most minimalist of scenarios, which MS doesn't adequately describe, nor protect against the mis-use of, leading to issues and data-corruption in most cases.

Your back to this again? Hibernation does NOT cause data corruption in 'most cases'. You point on this previously is that while hibernated, one could mount the volume from another OS. Tough, thats not supported (nor can it be).

Bill
 

McMadman

Senior member
Mar 25, 2000
938
0
76
Originally posted by: kylef
Originally posted by: VirtualLarry
Again, hate to tell you, but WinXP's Explorer can do that even without DivX installed, and Explorer.exe has an open-file-handle leak itself, without any dodgy shell extensions loaded. (Yes, even in W2K SP2.)
If you can describe the steps for reproduction of the leak, I can file a bug. Or if you can get Explorer.exe to crash consistently without a plug-in causing it, please let me know and I'll file a bug.

I realize I'm kinda getting off topic here.. but here's a common bug that I've been able to recreate on 98/ME/2k/XP. I'm not too sure of the exact cause of the behavior though.

Open up windows explorer, make a directory with a lot of files in it. You can use random junk, a good example of such a directory would be "c:\windows\system32" (no, do not actually delete this directory of course) it probably has 1000-3000 files, select all in the right pane and do shift+delete to bypass recycle bin, it'll work and at this point explorer should start to act kind of funny. If you then select any file, hit the delete key, and no (so you aren't actually deleting anything) the explorer window will "hang" for a few seconds to a few minutes until you can actually click in it again.

This is a very common problem for me, I've noticed it simply copying large numbers of files/dirs from one drive to another for backup purposes, I've found that this is the easiest way to recreate the problem. It's rather difficult to describe the way that it acts.
 

VirtualLarry

No Lifer
Aug 25, 2001
56,552
10,171
126
Originally posted by: bsobel
HT is a processor feature. W2K supports it, in as much as it properly recognizes and schedules for two virtual CPUs.

I think you meant to say and schedules for two physical CPU's.

No, I meant two virtual CPUs, as there would be in the case of a single HT-enabled P4 desktop system.

Originally posted by: bsobel
XP's improvements in HT support:
1) API extensions to determine physical vs logical CPU's (important for licensing)

Which I mentioned.

Originally posted by: bsobel
2) Scheduling changes to properly schedule threads (you don't want a maintence thread on the second virtual CPU taking work units from a high priority thread on the main virutal CPU (or vise versa). In your example you are presuming a single proc HT system.

Yes, that was the context of the discussion, and whether or not W2K would support HT properly, and what XP has done (or not done) to improve HT support. Attempting to seperate the MS FUD from the technical reality.

Originally posted by: bsobel
My primary rig is a dual Xeon with HT. The worst thing for performance that 2k will do (and XP will not) is schedule two threads on the same physical proc and leave the second one idle vs making sure at least one thread is running on each physical proc before adding additional threads onto the virtual procs.

Good for you, but that's totally irrelevant to the discussion thus far. If you want to extend the theoretical performance cases to include a system that involves both SMP and SMT at the same time, that's fine. But a dual-Xeon rig certainly doesn't apply in the general case of desktop performance of a single HT CPU, which is, as far as I am aware, what the discussion thus far was revolving around.

Originally posted by: bsobel
The benchmarks show that 2k is (in many cases) slower with HT turned on than off.
I believe that to be true in most cases, regardless of the OS, because the types of workloads that benefit from HT are server-oriented, multi-transaction workloads. Intel's own docs suggest this as well, and that in certain cases, it may actually reduce performance for desktop workloads. These affects are due to the nature of the tasks scheduled, and the operations of the CPU itself, and are largely OS-independent effects.

Originally posted by: bsobel
But Hibernate is still broken, by design, for all but the most minimalist of scenarios, which MS doesn't adequately describe, nor protect against the mis-use of, leading to issues and data-corruption in most cases.

Your back to this again? Hibernation does NOT cause data corruption in 'most cases'. You point on this previously is that while hibernated, one could mount the volume from another OS. Tough, thats not supported (nor can it be).
Bill

Hibernate does not result in data-corruption, in most cases of mis-use?

Like booting to another OS, while one is hibernated? Like using Hibernate, to swap out hardware?

Real users do this - and while I'm sure you're response would be, "That's unsupported", that's my point - MS doesn't make it clearly and widely known, that the majority of real-world uses that Hibernate is being used for, are wrong. Therefore, because of the very real risks to data (not to mention the pre-SP2 48-bit LBA/cache-flush/hibernation issue), I recommend that people don't use Hibernate, period.
 

DonPMitchell

Member
Aug 2, 2004
26
0
0
Win2000 was the last of the pure Windows NT systems, with Windows 9x separately solving the Applications Compatability problem. From the perspective of inside Microsoft, that was the big issue of XP, merging the functionality of the two systems into one. XP is supposed to run all the crazy buggy insane win32-violating applications that used to work on Windows 98, but it is the more stable NT kernel under the hood. You really cannot imagine what a difficult task "apps compat" was. Windows 98 had three virtual memory systems, two of which were required just to allow some badly written third-party apps to run. It would push bubbles onto the stack to catch bad pointer dereferences in Eudora, and the list went on and on.

I think it would be a mistake to run Win2000 today, after all the improvements in XP. It still has, under the hood, a newer version of the NT kernel after all.
 

dc5

Senior member
Jul 10, 2004
791
0
0
everyone has already told you the main differences between the two OS. you are making a big deal out of this. if you dont like win2k or winxp then dont use microsoft products. end of story.
 

bsobel

Moderator Emeritus<br>Elite Member
Dec 9, 2001
13,346
0
0
Originally posted by: VirtualLarry
Originally posted by: bsobel
HT is a processor feature. W2K supports it, in as much as it properly recognizes and schedules for two virtual CPUs.
I think you meant to say and schedules for two physical CPU's.
No, I meant two virtual CPUs, as there would be in the case of a single HT-enabled P4 desktop system.

Maybe I'm not reading your original quote right. But my point was W2K doesn't properly recognize two virtual cpu's, it treats them as two physical cpu's. But from my interpretation, that makes your quote is false, as W2K does not properly recognize the CPU's.

Yes, that was the context of the discussion, and whether or not W2K would support HT properly, and what XP has done (or not done) to improve HT support. Attempting to seperate the MS FUD from the technical reality.

Good for you, but that's totally irrelevant to the discussion thus far. If you want to extend the theoretical performance cases to include a system that involves both SMP and SMT at the same time, that's fine. But a dual-Xeon rig certainly doesn't apply in the general case of desktop performance of a single HT CPU, which is, as far as I am aware, what the discussion thus far was revolving around.

I dont' see how that is irrelevant, as you said the context of the discussion was whether or not W2K would support HT properly. This is yet another case where it does not (and in this case with often much more of a performance hit than in the single cpu case).

Hibernate does not result in data-corruption, in most cases of mis-use? Like booting to another OS, while one is hibernated? Like using Hibernate, to swap out hardware?

From your quote it sounded like you were saying that hibernation will lead to data loss in all cases. If you refering to the cases you mentioned (doing the dual boot or hardware change) you are correct. That said, that simply isn't realisitcly how people are using hibernation today. Saying that dual booting and hardware changes are 'the majority of real-world uses that Hibernation is being used for" is simply false. Hibernation is used for power savings, period. Users are using it, and it does work (these users, unlike you, aren't dual booting).

I'm still curious, something you never answered (as I recall). How has an implementation of hibernation you think is safe? How would you deal with the hardware change / dual boot scenario?

[soapbox] I like discussing these things with you, but I wish it didn't always seem like you think MS is out to get you personally [/soapbox]

Best,
Bill
 

CyraKrin

Senior member
Dec 25, 2003
523
2
0
Originally posted by: ShadeX
Box specs : A7N8X Deluxe AMD 2600+ 1GBDDR400, 40GB Seagate 7200 ATA100 Sys HD 120GB Seagate 7200 SATA Data HD, GF4-4200. So, my box isnt holding XP back ,)

I work as tech support for a living and do some gfx/video work and some web design. Some dev, but not much nowadays. A couple of games (Mostly Q3A, my REAL games box is a P233MMX with old games, cause most stuff nowadays plain suckx). Nothing really new, no cutting edge apps (unless i have to test the for work related issues).

As for frequently launching apps, its a matter of opinion I usually have 4/6 apps open, plus a fair few browser windows and Windows Explorer windows. Couple of Putty/SSH windows. Plus my regular stuff like Daemon Tools, TightVNC, Gaim, FF/TB, etc ...

But honestly, since you already have XP, I have no earthly idea why you'd want to revert to Win2k. What advantage do you think you're going to get?

Peace of mind? Not getting treated as a moron? Not even even Apple treated its users to such a degree of "you are too dumb to do anything without 10 warnings and 5 requesters...

What is it about XP in particular that you don't like? Please be specific. "Too intrusive" or "I've read horror stories about SP2" won't get responses.

I have to reconf it to look like W2K classic, "Best performance" rings a bell to you? After SP2 i have to get rid of a firewall I NEVER ASKED FOR. I got Auto updates back on again, even tough i HAD TURNED THEM OFF. I need to hack sys files because of TCP connection rate limiting??? As i said i do it for a living, so, its not "horror stories" its everyday life to me...

Kylef, tough it might sound like it, im neither pro or con Windows/MS. From where i stand now, i got boxes running stuff from Linux to DOS to QNX to Windows, so im not OS centric as some ppl.

NT4->W2K was a good upgrade for the reasons i mentioned and some else. From W2K->WXP i dont see many. Therefore the original question. What did XP bring to the table that i somehow missed and is lacking in W2K?

p.s. Just a matter of "feeling" but XP does seem to get "dirtier" faster. After 8 months, my XP box feels slugish than my W2K did after 2 1/2years.


lets not forget that damned exe warning where you cant just *disable it completely* without going around into the registry, and the 'dont ask again' means just for that ONE exe.. gets old fast and annoying even quicker.
 

VirtualLarry

No Lifer
Aug 25, 2001
56,552
10,171
126
Originally posted by: bsobel
Originally posted by: VirtualLarry
Originally posted by: bsobel
HT is a processor feature. W2K supports it, in as much as it properly recognizes and schedules for two virtual CPUs.
I think you meant to say and schedules for two physical CPU's.
No, I meant two virtual CPUs, as there would be in the case of a single HT-enabled P4 desktop system.

Maybe I'm not reading your original quote right. But my point was W2K doesn't properly recognize two virtual cpu's, it treats them as two physical cpu's. But from my interpretation, that makes your quote is false, as W2K does not properly recognize the CPU's.

Actually, W2K doesn't make the distinction between virtual and physical CPUs at all. It gets the number of logical CPUs from the MPS-spec tables that the BIOS sets up during the boot process. As it should be, because Intel designed the MPS spec that way.

So if we both agree to simply drop the adjective, and say "CPUs" instead, then I think that we would agree.

Originally posted by: bsobel
Yes, that was the context of the discussion, and whether or not W2K would support HT properly, and what XP has done (or not done) to improve HT support. Attempting to seperate the MS FUD from the technical reality.

Good for you, but that's totally irrelevant to the discussion thus far. If you want to extend the theoretical performance cases to include a system that involves both SMP and SMT at the same time, that's fine. But a dual-Xeon rig certainly doesn't apply in the general case of desktop performance of a single HT CPU, which is, as far as I am aware, what the discussion thus far was revolving around.

I dont' see how that is irrelevant, as you said the context of the discussion was whether or not W2K would support HT properly. This is yet another case where it does not (and in this case with often much more of a performance hit than in the single cpu case).

But actually, if you read the MPS spec, with the addendum for HT CPUs, Intel specifies that the logical CPUs described in the MPS table, should be layed out in a way that the individual physical CPUs will be used before the logical ones. So unless your platform (mobo/BIOS) is totally b0rked and they blatently violated Intel's guidelines on this, your scenario can't/shouldn't happen. If it does, then it's not the OSes fault. Intel specifically designed HT in such a way that it would be drop-in backwards compatible with existing SMP systems (that conform to the MPS spec guidelines). In that respect, I assert that W2K supports HT perfectly fine. I agree, that it is possible to further optimize, slightly, for HT-enabled systems, and I don't deny that W2K was written before the introduction of HT, so that it lacks those optimizations (mostly process thread-scheduling issues and CPU affinity that affect L2 cache-thrashing), but that those are over and above basic support, of which W2K supports fully.

Not to mention, the predominant version of W2K for desktop is the "Pro" version, which is only licensed for two CPUs, which means that it would treat a dual HT-enabled Xeon system as a dual-proc SMP system. But that's an OS-licensing issue, not a technical one. Given a version of W2K with suitable licensing, it would still schedule two tasks on both physical CPUs first, before assigning tasks to the virtual ones.

Originally posted by: bsobel
From your quote it sounded like you were saying that hibernation will lead to data loss in all cases. If you refering to the cases you mentioned (doing the dual boot or hardware change) you are correct. That said, that simply isn't realisitcly how people are using hibernation today. Saying that dual booting and hardware changes are 'the majority of real-world uses that Hibernation is being used for" is simply false. Hibernation is used for power savings, period.

I was only saying that it resulted in data-corruption, when being mis-used (aside from the hotfix for the 48-bit LBA/cache-flush issue, which should be resolved in SP2).

But I think that you are sorely mistaken how most (granted, unclued) users are using Hibernate. MS markets it (for desktop machines) as a way to save time, when shutting down or starting up the system.
So users are using it for exactly that! They don't understand the semantics, of how Hibernate is still different than a full real shutdown/cold-boot sequence. That's why they think nothing, of swapping hardware after invoking Hibernate! I know, to you and me, that sounds absolutely crazy and abusive of the system, because we know better. The point is, they don't, and MS has failed to clearly warn them of the potential dangers lurking within, when using Hibernate. That's why I still strongly recommened to users never to use that feature. That's all.

As an additional point, I was thinking about a report that I read from someone, that when un-Hibernating, their firewall app would suddenly die. It got me thinking, about how XP's boot-up process is largely asynchronous now - supposedly an optimization - and how that might lead to non-deterministic loading order among device-drivers and whatnot. I'm actually quite curious - how does the Hibernate mechanism deal with this, and hardware enumeration in general, especially if the hardware schema has changed out from under the OS while hibernated?

Originally posted by: bsobel
Users are using it, and it does work (these users, unlike you, aren't dual booting).

I'm still curious, something you never answered (as I recall). How has an implementation of hibernation you think is safe? How would you deal with the hardware change / dual boot scenario?

Slight parse error here, is that something that I said that wasn't quoted, or are you asking me that?

The only scenario that I think Hibernate might be remotely safe to use, would be a laptop, in which the hardware doesn't change, and a quick persistance of system-state and restoration might actually be useful. I'm guessing that's what it was originally designed for (actually, older laptops supported restore partitions on FAT16 filesystems, handled entirely by the APM BIOS in SMM, before Windows even supported it, but I digress). The problem is that the marketing geniuses at MS decided that it was a marketable performance feature for desktop systems too, but they never detailed the risks to the users. I consider that highly irresponsible. IMHO, the hibernate feature should be disabled and locked-out unless running on laptop hardware.

Originally posted by: bsobel
[soapbox] I like discussing these things with you, but I wish it didn't always seem like you think MS is out to get you personally [/soapbox]

Best,
Bill

I don't think MS is out to get me personally, but I guess: 1) I hate to see mis-information, and 2) The MS FUD is everywhere! It's like a fire that spreads easily, and has to be stamped-out where you see it.
The worst part is when I see otherwise very technically-aware people repeating the FUD, without any proof to back it up in a meaningful way, and they should know better. I'm not afraid to say, "Guess what people?? The emperor isn't wearing any clothes!".

Perhaps it gets some people's ire up, that I dare confront the FUD, but I have a penchant for ranting, and for technical minutiae, so I feel like I should express myself. I sincerely hope that no-one has been personally offended in any way, because I don't mean any of my rants in that manner, although I guess I do sometimes spit things out about certain corporations when I know that I'm talking to one of their employees. It is true, that you (speaking in general) are an embassador for your "corporate nation", in a way.
 

bsobel

Moderator Emeritus<br>Elite Member
Dec 9, 2001
13,346
0
0
Actually, W2K doesn't make the distinction between virtual and physical CPUs at all.

That was the point I was trying to make (apparently I didn't realize you were making it too). My further point was the fact that since it doesn't make a distinction it misschedules threads (specifically in a SMP/HT machine, but to a bad enough way to a single proc/HT machine).

Not to mention, the predominant version of W2K for desktop is the "Pro" version, which is only licensed for two CPUs, which means that it would treat a dual HT-enabled Xeon system as a dual-proc SMP system. But that's an OS-licensing issue, not a technical one. Given a version of W2K with suitable licensing, it would still schedule two tasks on both physical CPUs first, before assigning tasks to the virtual ones.

The OS has to participate in that scheduling. You can layout the physical procs first, but the OS is going to evenly distribute work load across the all procs, where what it should do is distribute the most work intensive items to the physical procs. Further, it needs to make affinity decisions if one of the physical cpu's becomes more available, a thread may need to take the hit to move to the other cpu.

But I think that you are sorely mistaken how most (granted, unclued) users are using Hibernate. MS markets it (for desktop machines) as a way to save time, when shutting down or starting up the system.
So users are using it for exactly that! They don't understand the semantics, of how Hibernate is still different than a full real shutdown/cold-boot sequence. That's why they think nothing, of swapping hardware after invoking Hibernate! I know, to you and me, that sounds absolutely crazy and abusive of the system, because we know better. The point is, they don't, and MS has failed to clearly warn them of the potential dangers lurking within, when using Hibernate. That's why I still strongly recommened to users never to use that feature. That's all.

Your going to need to provide data to backup that assertion, as I assert that is NOT how home users are using (abusing hibernation), nor have I seen any evidence to the contrary.

As an additional point, I was thinking about a report that I read from someone, that when un-Hibernating, their firewall app would suddenly die. It got me thinking, about how XP's boot-up process is largely asynchronous now - supposedly an optimization - and how that might lead to non-deterministic loading order among device-drivers and whatnot. I'm actually quite curious - how does the Hibernate mechanism deal with this, and hardware enumeration in general, especially if the hardware schema has changed out from under the OS while hibernated?

If the enum is different hibernation will tell the user that the old hibernation data must be discarded. The file system is guarenteed to be intact, but any open unsaved data will (obviously) be lost.

Slight parse error here, is that something that I said that wasn't quoted, or are you asking me that?

Asking....

Perhaps it gets some people's ire up, that I dare confront the FUD, but I have a penchant for ranting, and for technical minutiae, so I feel like I should express myself. I sincerely hope that no-one has been personally offended in any way, because I don't mean any of my rants in that manner, although I guess I do sometimes spit things out about certain corporations when I know that I'm talking to one of their employees. It is true, that you (speaking in general) are an embassador for your "corporate nation", in a way.

Oh great, and I just answered your other thread about where I work And as much as you say you don't like, I think your doing the same to an extent (especially around the hibernation issue).

Best,
Bill
 

VirtualLarry

No Lifer
Aug 25, 2001
56,552
10,171
126
Originally posted by: bsobel
Actually, W2K doesn't make the distinction between virtual and physical CPUs at all.

That was the point I was trying to make (apparently I didn't realize you were making it too). My further point was the fact that since it doesn't make a distinction it misschedules threads (specifically in a SMP/HT machine, but to a bad enough way to a single proc/HT machine).

Well, my contention is that if the MPS-spec tables are layed out correctly, then the first two active tasks should be spread out to the first two active (physical) CPUs, and only when there are three or more tasks should they be scheduled on the following two (virtual) CPUs. W2K can do this, because it relies on MPS. So your worst-case scenario, that of always scheduling tasks on a physical+virtual CPU, instead of physical+physical, should never happen in practice.

Originally posted by: bsobel
The OS has to participate in that scheduling. You can layout the physical procs first, but the OS is going to evenly distribute work load across the all procs, where what it should do is distribute the most work intensive items to the physical procs. Further, it needs to make affinity decisions if one of the physical cpu's becomes more available, a thread may need to take the hit to move to the other cpu.

I'll give you that, that in the scenario of three tasks running, two on physical CPUs, and one on a virtual CPU, if one of the tasks scheduled on the physical CPU completes, W2K is not likely to be HT-aware enough to re-schedule the task running on the virtual CPU to the one running on the other physical CPU. But there are performance costs with doing that too, in terms of non-shared L2 cache-thrashing. Regardless, that is a potential performance optimization, not a core feature of support.

(Not to mention, one aspect of HT, is to squeeze more efficiency out of the long-pipeline P4, and by scheduling two tasks across two physical CPUs, the potential performance efficiencies of HT are actually lost that way, although I'm pretty-sure overall system performance would still be slightly higher if running on indepedent physical CPUs because of the execution resources available, even if more of those resources "go to waste".)


To make my point quite simple, and not to drag this out any longer:

Intel specifically designed their implementation of SMT, "HT Technology", to be a backwards-compatible, drop-in replacement for existing SMP systems, in order to remain compatible with the existing base of SMP-capable OSes. (IMHO, in order to assure the acceptance of that technology, they really didn't have much of a choice other than to make it backwards-compatible that way. It was quite clever.)

My assertion is, therefore, that any MPS-spec-compatible SMP x86 OS, should support HT fine, and guess what - they do.

I guess the point of contention is the term "fully".

In that respect, I do clearly admit, that it is possible to slightly optimize scheduling, based on the knowledge that one CPU is really only phantom, and doesn't have its own set of execution resources.

My contention, with the "MS FUD", is that MS has clearly prompted XP as being "optimized for HT Technology".. but that does not mean that Win2K is somehow not compatible, or does not support HT. How optimization of one OS to support a feature, implies that older OSes don't support that feature, is beyond me, especially since Intel spent a lot of time and effort insuring that backwards-compatible support.

If the meaning of "fully" support HT, means that there is a requirement for greater performance overall with it enabled, vs. disabled, I totally disagree with that, because that is entirely dependent on what kind of execution tasks there are to run. I'm sure that there are plenty of example cases that I could dig up, under XP, that enabling HT causes a performance hit (desktop loads), whereas, with a different set of test cases, it could show that enabling HT under W2K causes a performance advantage (server loads).

Originally posted by: bsobel
Your going to need to provide data to backup that assertion, as I assert that is NOT how home users are using (abusing hibernation), nor have I seen any evidence to the contrary.

Here's two that I've seen recently, only in the past week:
http://www.dslreports.com/foru...ark,11279052~mode=flat
http://forums.storagereview.ne...ex.php?showtopic=16817

If MS hands the users a gun, pointed right at their data, but totally neglects to teach the user how to hold it, aim it, clean it, and otherwise use it responsibly, then what is the responsible message to send to users in that case, generally? Mine is: "Don't ever pick up that gun." Quite simple, really.

And I did say "mis-use" in my original statement about Hibernation in this thread. Sorry if that was overlooked, or if I had some extra commas in there that caused it to not parse out correctly.

Originally posted by: bsobel
If the enum is different hibernation will tell the user that the old hibernation data must be discarded. The file system is guarenteed to be intact, but any open unsaved data will (obviously) be lost.

Well, to me, that's still dataloss (unsaved docs), which goes against the concept of a workable hibernation scheme (reliable persistance). Therefore it is unsafe.

Again my question with regards to XP's ansync boot-up loading process - wouldn't that tend to, due to various hardware-initialization race-conditions, necessarily make hibernation under XP totally unsafe? Because there would be no guarantee of deterministic initialization, even when the hardware wasn't changed? I guess the question is, how much does the hardware enum data have to be different, in order for XP to "punt" and dump the user's data? Would PnP resource-allocation changes, that cause enumeration-order differences between multiple instances of hardware with the same PnP ID, cause that to happen? (Eg. "Clear CMOS", "Clear NVRAM", "PnP OS: Yes/No" changes, etc.?)

And as a correlary to that, if, hypothetically-speaking, XP does switch into some sort of non-prefetched, deterministic, wait-state-based boot process when loading from Hibernation (although that would seem to directly oppose the apparent goal of Hibernation - speed - so I feel it is unlikely), then is there any way to activate that sort of boot mode during normal OS usage, and bring back the deterministic boot-order of W2K? That is, if this feature exists in XP for backwards-compatibility... which I sincerely doubt, mostly because MS spent so much time on XP boot-time optimization work (probably as much time as they did on all of the othe added "fluff" features for the user-shell).

This is actually a real problem with XP for some people, that has been empirically-tested. It causes multiple system-level device-drivers and whatnot, that "hook" certain other things, to occasionally change the order in which they load their hooks, which changes the behaviour of the system. Specifically things like layered software firewalls. (Whether that is a good idea or not in general, I refuse to get into, but suffice to say that some users do that, and it was at least deterministic with respect to installation order with W2K. Not everyone wants to squeeze an extra three seconds out of their OS boot-up times.)

Originally posted by: bsobel
Perhaps it gets some people's ire up, that I dare confront the FUD, but I have a penchant for ranting,

Oh great, and I just answered your other thread about where I work And as much as you say you don't like, I think your doing the same to an extent (especially around the hibernation issue).

Best,
Bill

Perhaps, but I believe all of my statements to be accurate, at least technically. I only kept on about the Hibernation thing as long as you kept bringing it up. But a good discussion nonetheless.
(I am still curious about the hardware enum vs. Hibernation interactions though, that is interesting.)
 

Auric

Diamond Member
Oct 11, 1999
9,591
2
71
The primary significance of 5.1 versus 5.0 is the spin-off of a reduced functionality home version, allowing MS to standardize on one OS while continuing to maintain higher margins for bidness customers. The only real improvements I can think of are better support for HT, multiple monitors and LCD's (ClearType), restorability and a somewhat quicker boot time for whatever that is worth. The vast majority of users will not make use of the first three. Everything else is just more flash and trash to be disabled but I suppose was meant to appeal to potential upgraders from MS-DOS based derivatives. The extra stuff in and wider user-base of 5.1 has inevitably caused and/or revealed problems and an argument could be made that it has been less important to MS short-term relative to 5.0 (due to its exclusive use by bidnesses), with its four service packs issued long before 5.1 was at two. At this point, if you need those few extra features of 5.1 then it is no contest but if you are already using 5.0 and do not need them then there is no compelling reason to change.
 

erikistired

Diamond Member
Sep 27, 2000
9,739
0
0
so um, i should disable HT? i just upgraded to a 3.06 p4 (highest my old m/b would take) to have HT. doh. oh well, i can sell this chip to someone who doesn't read the OS forum and buy an 800mhz fsb chip now! hehe.
 

bsobel

Moderator Emeritus<br>Elite Member
Dec 9, 2001
13,346
0
0
Originally posted by: fisher
so um, i should disable HT? i just upgraded to a 3.06 p4 (highest my old m/b would take) to have HT. doh. oh well, i can sell this chip to someone who doesn't read the OS forum and buy an 800mhz fsb chip now! hehe.

Depends, what OS are you running? If your on XP, no leave it enabled, if your on something older, it might be better to turn it off.

Bill
 

erikistired

Diamond Member
Sep 27, 2000
9,739
0
0
Originally posted by: bsobel
Originally posted by: fisher
so um, i should disable HT? i just upgraded to a 3.06 p4 (highest my old m/b would take) to have HT. doh. oh well, i can sell this chip to someone who doesn't read the OS forum and buy an 800mhz fsb chip now! hehe.

Depends, what OS are you running? If your on XP, no leave it enabled, if your on something older, it might be better to turn it off.

Bill

xp home. i got out of that stuff larry posted that i should disable it regardless of OS, but i'm reading while juggling a 2 year old so i might have missed something.

thanks.
 

bsobel

Moderator Emeritus<br>Elite Member
Dec 9, 2001
13,346
0
0
xp home. i got out of that stuff larry posted that i should disable it regardless of OS, but i'm reading while juggling a 2 year old so i might have missed something.

Those articles are about 2k/NT and the 9x platform, XP and above fully supports HT and on those OSs you should leave it on.

Bill
 

classy

Lifer
Oct 12, 1999
15,219
1
81
Originally posted by: Canterwood
Originally posted by: classy
XP is better. Not even a comparison
Wow! With an in depth argument like that, I'm gonna switch to XP immediately!

XP is more robust, more features, better networking support, and handles even running older apps better. Its just a better os and I like 2000pro a lot. But its not better than XP. Thats just the way it is.
 
sale-70-410-exam    | Exam-200-125-pdf    | we-sale-70-410-exam    | hot-sale-70-410-exam    | Latest-exam-700-603-Dumps    | Dumps-98-363-exams-date    | Certs-200-125-date    | Dumps-300-075-exams-date    | hot-sale-book-C8010-726-book    | Hot-Sale-200-310-Exam    | Exam-Description-200-310-dumps?    | hot-sale-book-200-125-book    | Latest-Updated-300-209-Exam    | Dumps-210-260-exams-date    | Download-200-125-Exam-PDF    | Exam-Description-300-101-dumps    | Certs-300-101-date    | Hot-Sale-300-075-Exam    | Latest-exam-200-125-Dumps    | Exam-Description-200-125-dumps    | Latest-Updated-300-075-Exam    | hot-sale-book-210-260-book    | Dumps-200-901-exams-date    | Certs-200-901-date    | Latest-exam-1Z0-062-Dumps    | Hot-Sale-1Z0-062-Exam    | Certs-CSSLP-date    | 100%-Pass-70-383-Exams    | Latest-JN0-360-real-exam-questions    | 100%-Pass-4A0-100-Real-Exam-Questions    | Dumps-300-135-exams-date    | Passed-200-105-Tech-Exams    | Latest-Updated-200-310-Exam    | Download-300-070-Exam-PDF    | Hot-Sale-JN0-360-Exam    | 100%-Pass-JN0-360-Exams    | 100%-Pass-JN0-360-Real-Exam-Questions    | Dumps-JN0-360-exams-date    | Exam-Description-1Z0-876-dumps    | Latest-exam-1Z0-876-Dumps    | Dumps-HPE0-Y53-exams-date    | 2017-Latest-HPE0-Y53-Exam    | 100%-Pass-HPE0-Y53-Real-Exam-Questions    | Pass-4A0-100-Exam    | Latest-4A0-100-Questions    | Dumps-98-365-exams-date    | 2017-Latest-98-365-Exam    | 100%-Pass-VCS-254-Exams    | 2017-Latest-VCS-273-Exam    | Dumps-200-355-exams-date    | 2017-Latest-300-320-Exam    | Pass-300-101-Exam    | 100%-Pass-300-115-Exams    |
http://www.portvapes.co.uk/    | http://www.portvapes.co.uk/    |