Awkward Questions

I hope I can post this in an inoffensive way, because offense is not my
intent.

I’m wondering what’s up with USB in Windows. Windows supported EHCI
practically as soon as the spec was released, and in my opinion, that
support was one of the things that helped USB 2.0 to become ubiquitous
and reliable. Everyone used it, because it worked the same everywhere.
Windows had USB Audio Class support very shortly after the specification
was finalized, and again, this allowed people to build cool and
inexpensive USB audio devices, leading to simplicity and ubiquity.

That situation seems to have changed. The USB Audio Class 2.0 spec is
now 5 years old, and there is still no Windows support. The USB 3.0
XHCI spec is now 2 years old, and again there is no Windows support. In
my opinion, this situation is dangerous. It is leading developers to
come up with solutions that are delicate, unstable, and proprietary.
It’s going to lead to fragmentation and pain. Imagine what would have
happened if USBAudio.sys had not been released until 2003 (the 5 year
anniversary of the spec). USB audio in Windows would be a hopeless mess.

I’m familiar with the corporate mantra “what’s the use case”, but isn’t
this a situation where Microsoft ought to be leading by example, rather
than picking up the pieces later?


Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.

I guess the resources were spent for such useless things as help system redesign (completely useless in Vista+), thread scheduler service (horrible kludge), ReadyBoost (let’s make a kludge instead of fixing the cache retention policies).

But seriously, there doesn’t seem to be a global strategy in Windows development. Everybody tends to his own corner.

Do you have any specific issues with readyboost or cache retention policies? I’m assuming you’re talking about the standby cache here, since on most client machines the system cache working set holds only a relatively small portion of the overall cache.

Also note that readyboost cache can be larger than the total RAM size, so there are configurations/workloads where no amount of tweaking in-memory cache retention policies would give you the same benefits as being able to satisfy most of your small random reads from a low latency readyboost cache.

Thanks,
Pavel

-----Original Message-----
From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of xxxxx@broadcom.com
Sent: Wednesday, April 20, 2011 11:53 AM
To: Windows System Software Devs Interest List
Subject: RE:[ntdev] Awkward Questions

I guess the resources were spent for such useless things as help system redesign (completely useless in Vista+), thread scheduler service (horrible kludge), ReadyBoost (let’s make a kludge instead of fixing the cache retention policies).

But seriously, there doesn’t seem to be a global strategy in Windows development. Everybody tends to his own corner.

On Thu, Apr 21, 2011 at 1:03 AM, Tim Roberts wrote:
> That situation seems to have changed. ?The USB Audio Class 2.0 spec is
> now 5 years old, and there is still no Windows support. ?The USB 3.0
> XHCI spec is now 2 years old, and again there is no Windows support. ?In
> my opinion, this situation is dangerous. ?It is leading developers to
> come up with solutions that are delicate, unstable, and proprietary.
> It’s going to lead to fragmentation and pain. ?Imagine what would have
> happened if USBAudio.sys had not been released until 2003 (the 5 year
> anniversary of the spec). ?USB audio in Windows would be a hopeless mess.

Blame Intel (and AMD) for the USB 3.0 issue – no native support
for USB 3.0 now from Intel and AMD.

As for USB audio 2.0, maybe the use case is not that strong
anyway.


Xiaofan

Xiaofan Chen wrote:

On Thu, Apr 21, 2011 at 1:03 AM, Tim Roberts wrote:
>> That situation seems to have changed. The USB Audio Class 2.0 spec is
>> now 5 years old, and there is still no Windows support. The USB 3.0
>> XHCI spec is now 2 years old, and again there is no Windows support…
> Blame Intel (and AMD) for the USB 3.0 issue – no native support
> for USB 3.0 now from Intel and AMD.

I don’t see how that’s relevant in the slightest. EHCI was not built-in
to chipsets at the time Microsoft released its EHCI driver. XHCI is a
released specification, and it will obviously become mainstream at some
point.

> As for USB audio 2.0, maybe the use case is not that strong
> anyway.

That may be the thinking, but that’s backwards. If the support were
there, people would be more inclined to build compelling products.
Right now, the lack of support is a barrier to entry. The people who
are doing fancy audio products have to do it themselves, painfully.


Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.

I have trouble getting on board the questioning train here.

I don’t know anything about USB Audio 2.0, so I can’t speak to that at all.

But for USB 3.0, certainly, controllers and devices are mostly still being cooked, are far from ubiquitous, and many of those that DO exist are pretty horrible.

Given that Microsoft is working on the next version of Windows, we can all probably GUESS that this new version will bring USB 3.0 support.

So… if our guess that USB 3.0 will come in Windows .Next don’t you think that’s “soon enough”? It’ll get here, we’ll have it, and in the mean time vendors will have time to get their devices right, the cost of silicon and bus analyzers will come down… so, what’s the hurry?

Sorry if I’m missing the plot on this, but I just don’t see the issue,

Peter
OSR

xxxxx@osr.com wrote:

I have trouble getting on board the questioning train here.

But for USB 3.0, certainly, controllers and devices are mostly still being cooked, are far from ubiquitous, and many of those that DO exist are pretty horrible.

How do you know? I’ve not heard those stories. But, assuming that it
is true, how do we know that the horribleness is not the result of
drivers being created in a panic – in a vacuum – without the benefit
of Microsoft’s vast past experience?

Given that Microsoft is working on the next version of Windows, we can all probably GUESS that this new version will bring USB 3.0 support.

So… if our guess that USB 3.0 will come in Windows .Next don’t you think that’s “soon enough”?

I’m not sure that it is. Windows 2000 got EHCI early in 2002, and XP
shipped with it. That was less than two years after the release of the
USB 2.0 spec. The USB 3.0 spec was released in final form in November
2008, a full year before Windows 7, and it was clearly solid enough to
implement long before that. That was 2.5 years ago, and there are still
no official releases.

I’m just seeing this as a huge change from the N-1 versions of these
same specs. Now, maybe my memory is too idealistic, but it seems to me
that the early, built-in support for USB 2 is partly what led to its
ubiquity. People trust USB 2.

Many of the laptops you can buy today have USB 3 ports. If their
support sucks, does that permanently damage USB 3 in the minds of the
consumer? Aren’t they going to blame Windows when their USB 3 hard disk
doesn’t work the way they expect?

It’ll get here, we’ll have it, and in the mean time vendors will have time to get their devices right, the cost of silicon and bus analyzers will come down… so, what’s the hurry?
Sorry if I’m missing the plot on this, but I just don’t see the issue,

Well, I’m perfectly willing to admit that I might be in outer space
here. The question was largely rhetorical – in the new Redmond, no one
who knows the real story can say anything about it anyway.


Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.

“Windows 2000 got EHCI early in 2002, and XP shipped with it.”

My recollections are that EHCI support was not included in XP RTM and was shipped as a later update, even though XP RTM had the new USBPORT architecture (which sucked a lot in the beginning, by the way) for future EHCI support.

On 04/22/2011 10:23 PM, xxxxx@osr.com wrote:

[…] what’s the hurry?

Interface definitions need to be in place before anyone uses the
interface or makes drivers for it.

With USB1.1 and 2.0, you can write a Windows driver without caring about
the exact USB protocol version. [Even with an ancient BulkUSB template!]

Not so for USB 3.0: see the NTDEV thread about querying USB3.0
descriptors. The OP was forwarded to the USB host chip vendor(!).

Sorry if I’m missing the plot on this, but I just don’t see the
issue,

Well, here is a far-fetched “what-if” scenario: :wink:

Imagine you had a new “OSRUSBFX” device with USB 3.0 planned. Of course,
end-users want to see the higher USB 3.0 speed. They regard USB “just
like a cable”, and they won’t sympathize if anything does not work.

So better get that driver up and running before the first “OSRUSBFX”
device with USB 3.0 ships. Now your design questions are:

  • Can I use our existing Windows driver for it?

  • If not, how do I support our USB 3.0 device on Windows?

Without an official Windows USB 3.0 API specification, the current
prospect is: I have to write a special driver that talks to the
proprietary API of each USB3.0 host chip vendor. (Only to throw these
away in the future and make another one for a unified USB driver model.)

Tim explained it very clearly: with no Windows USB 3.0 support,

[no Windows USB 3.0 support] this situation is dangerous. It is leading developers to come
up with solutions that are delicate, unstable, and proprietary. It’s
going to lead to fragmentation and pain.

+1


Just my very personal opinion.

Right. Except, I would have worded what you said another way:

“Without an official Windows USB 3.0 API specification, few people seriously care about USB 3.0 and will therefore wait until there IS such a specification.”

I know that describes me, certainly.

Everybody “keep their pants on”… we’ll get USB 3.0 as part of Windows when we get USB 3.0 as part of Windows. It’s not exactly a world-changing, paradigm shifting, technology, is it? It’s just “faster and better” with funny blue connectors, some of which are compatible.

Peter
OSR

xxxxx@osr.com wrote:

Right. Except, I would have worded what you said another way:

“Without an official Windows USB 3.0 API specification, few people seriously care about USB 3.0 and will therefore wait until there IS such a specification.”

I know that describes me, certainly.

Understood. On the other hand, you’re a services vendor. If you were a
Far East hardware vendor, trying to build up a corral of products to
offer to OEMs for 2012 shipment, your story would be different.

Everybody “keep their pants on”… we’ll get USB 3.0 as part of Windows when we get USB 3.0 as part of Windows. It’s not exactly a world-changing, paradigm shifting, technology, is it? It’s just “faster and better” with funny blue connectors, some of which are compatible.

Perhaps you’re right. USB 2.0 was “world-changing”, in a sense, because
there were many very reasonable tasks that were simply impractical at
USB 1 speeds (hard disk backup, for instance). These days, USB 2.0 is
fast enough for everything except folks who are looking to push the
envelope, and they will be willing to live on the “bleeding edge” for a
while.

Cypress just announced they are sampling their FX3 chip with USB 3
support. We’ll see whether that spurs a spike in USB 3 interest.


Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.

>

> Everybody “keep their pants on”… we’ll get USB 3.0 as part of
Windows when
> we get USB 3.0 as part of Windows. It’s not exactly a
world-changing,
> paradigm shifting, technology, is it? It’s just “faster and better”
with
> funny blue connectors, some of which are compatible.

Perhaps you’re right. USB 2.0 was “world-changing”, in a sense,
because
there were many very reasonable tasks that were simply impractical at
USB 1 speeds (hard disk backup, for instance). These days, USB 2.0 is
fast enough for everything except folks who are looking to push the
envelope, and they will be willing to live on the “bleeding edge” for
a
while.

I strongly disagree with that last bit. USB2 gives me a maximum of
20-30MB/second throughput on a disk that will do 80-120MB/second, and it
consumes a stupid amount of CPU while doing it. I’ve never used USB3 so
I don’t actually know what it’s throughput and CPU usage amounts to, but
USB2 isn’t fast enough for a lot of uses these days and hasn’t been for
a few years.

eSATA is the obvious alternative but it isn’t quite as convenient.

James

At 00:25 27/04/2011, James Harper wrote:

>
> > Everybody “keep their pants on”… we’ll get USB 3.0 as part of
Windows when
> > we get USB 3.0 as part of Windows. It’s not exactly a
world-changing,
> > paradigm shifting, technology, is it? It’s just “faster and better”
with
> > funny blue connectors, some of which are compatible.
>
> Perhaps you’re right. USB 2.0 was “world-changing”, in a sense,
because
> there were many very reasonable tasks that were simply impractical at
> USB 1 speeds (hard disk backup, for instance). These days, USB 2.0 is
> fast enough for everything except folks who are looking to push the
> envelope, and they will be willing to live on the “bleeding edge” for
a
> while.
>

I strongly disagree with that last bit. USB2 gives me a maximum of
20-30MB/second throughput on a disk that will do 80-120MB/second, and it
consumes a stupid amount of CPU while doing it. I’ve never used USB3 so
I don’t actually know what it’s throughput and CPU usage amounts to, but
USB2 isn’t fast enough for a lot of uses these days and hasn’t been for
a few years.

eSATA is the obvious alternative but it isn’t quite as convenient.

USB3 should get you 400 MB/s. Funny you mention disk access over
USB3. The storage editor at The Register ran several articles late
last year testing the first external USB3 disk drives. He concluded
that USB3 was smoke and mirrors because he only got 100 MB/s to the
disk when he was told USB3 could do 400 MB/s. Several people told
him the flaw in his thinking, only for him to repeat it when he found
an external two disk unit that disappointed him because he only got
200 MB/s from it - but he did conclude USB3 was getting better :wink:

As for eSATA, my laptop combines USB3 and eSATA in a single port, so
I can swap them around. I run eSATA right now but I’d really like to
get to having a USB3 hub that I can plug multiple drives in to.

Mark.

Intel seems to have a very strong influence on Microsoft. Even though it is past due for USB 3, Intel instead can be found pushing thunderbolt which might explain why they still do not have USB 3 hardware and the awkward industry status.

Just remember x64…how long was it before Windows added an x64 edition? It wasn’t until Intel released processors! AMD64 was ready years earlier, but at that time Intel was out trumpeting Itanium.

xxxxx@gmail.com wrote:

Just remember x64…how long was it before Windows added an x64 edition? It wasn’t until Intel released processors! AMD64 was ready years earlier, but at that time Intel was out trumpeting Itanium.

A fascinating conspiracy theory, but untrue. The first AMD 64-bit chip
came out in April, 2003. The first Intel EM64T chip came out in June,
2004. The first Windows support was released in March, 2005. The
operating system changes are quite significant, so the development was
clearly well underway before Intel came (late) to the party.


Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.

>

xxxxx@gmail.com wrote:
> Just remember x64…how long was it before Windows added an x64
edition? It
wasn’t until Intel released processors! AMD64 was ready years earlier,
but at
that time Intel was out trumpeting Itanium.

A fascinating conspiracy theory, but untrue. The first AMD 64-bit
chip
came out in April, 2003. The first Intel EM64T chip came out in June,
2004. The first Windows support was released in March, 2005. The
operating system changes are quite significant, so the development was
clearly well underway before Intel came (late) to the party.

I wonder if any of the groundwork had already been done for the other
architectures that NT4 supported that were essentially 64 bits. AFAIK
NT4 on Alpha was essentially a 32 bit OS but the Alpha itself was 64
bits. I seem to remember Linux on AMD64 being fairly painless because it
already had 64 bit support on other architectures…

James

James Harper wrote:

I wonder if any of the groundwork had already been done for the other
architectures that NT4 supported that were essentially 64 bits. AFAIK
NT4 on Alpha was essentially a 32 bit OS but the Alpha itself was 64
bits. I seem to remember Linux on AMD64 being fairly painless because it
already had 64 bit support on other architectures…

Well, there is truth in that. I saw a demonstration of NT 4 running in
64-bit mode on an Alpha in the late 1990s at some Microsoft conference.
They said at the time that SQL Server was really, really happy with a
64-bit address space – that was the biggest win they had encountered.

In addition, much of the groundwork had already been laid for the Itanium.


Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.

Having known several consultants who have worked with Intel negotiating
with Microsoft none of them would support your statement that Intel has
a strong influence. Itanium and USB debugging which were both pushed by
Intel came about because Intel and its partners came up with lots of
money to make it worthwhile for them to do it.

On the X64 you got your history wrong, Microsoft was getting AMD64 ready
when Intel announced an incompatible architecture to extend x86.
Microsoft told Intel we are only supporting AMD64, use it or lose. I
knew several people at Intel on their incompatible extension project who
were told go back and copy AMD.

Don Burn (MVP, Windows DKD)
Windows Filesystem and Driver Consulting
Website: http://www.windrvr.com
Blog: http://msmvps.com/blogs/WinDrvr

xxxxx@gmail.com” wrote in message
news:xxxxx@ntdev:

> Intel seems to have a very strong influence on Microsoft. Even though it is past due for USB 3, Intel instead can be found pushing thunderbolt which might explain why they still do not have USB 3 hardware and the awkward industry status.
>
> Just remember x64…how long was it before Windows added an x64 edition? It wasn’t until Intel released processors! AMD64 was ready years earlier, but at that time Intel was out trumpeting Itanium.

xxxxx@gmail.com wrote:

Just remember x64…how long was it before Windows added an x64 edition? It wasn’t until Intel released processors! AMD64 was ready years earlier, but at that time Intel was out trumpeting Itanium.

I do remember and it wasn’t like that. Microsoft was developing Windows
for AMD’s 64-bit x86 architecture long before Intel got round to copying
it. That’s why all the build environments and various other bits and
pieces were named in terms of AMD for years.

Tim Roberts wrote:

James Harper wrote:
> I wonder if any of the groundwork had already been done for the other
> architectures that NT4 supported that were essentially 64 bits. AFAIK
> NT4 on Alpha was essentially a 32 bit OS but the Alpha itself was 64
> bits. I seem to remember Linux on AMD64 being fairly painless because it
> already had 64 bit support on other architectures…

Well, there is truth in that. I saw a demonstration of NT 4 running in
64-bit mode on an Alpha in the late 1990s at some Microsoft conference.
They said at the time that SQL Server was really, really happy with a
64-bit address space – that was the biggest win they had encountered.

In addition, much of the groundwork had already been laid for the Itanium.

Yes, the Itanium port was key. “64 bit Windows” meant the Itanium port
for a long time (and long after the x64 port was released in some
corners of the MSDN documentation).