2005-03-11 20:29:58

by Felix von Leitner

[permalink] [raw]
Subject: 2.6.11: USB broken on nforce4, ipv6 still broken, centrino speedstep even more broken than in 2.6.10

Linux is getting less and less usable for me. :-(


My new nForce 4 mainboard has 10 or so USB 2.0 outlets. In Windows,
they all work. In Linux, two of them work. Putting my USB stick or
anything else in one of the others produces nothing in Linux.
Apparently no IRQ getting through or something?

This is what /proc/interrupts has to say:

177: 9503618 IO-APIC-level ohci_hcd, eth0

These are the USB boot messages:

usbcore: registered new driver usbfs
usbcore: registered new driver hub
ehci_hcd 0000:00:02.1: new USB bus registered, assigned bus number 1
ehci_hcd 0000:00:02.1: USB 2.0 initialized, EHCI 1.00, driver 26 Oct 2004
hub 1-0:1.0: USB hub found
ohci_hcd: 2004 Nov 08 USB 1.1 'Open' Host Controller (OHCI) Driver (PCI)
ohci_hcd 0000:00:02.0: new USB bus registered, assigned bus number 2
hub 2-0:1.0: USB hub found
usbcore: registered new driver usblp
drivers/usb/class/usblp.c: v0.13: USB Printer Device Class driver
Initializing USB Mass Storage driver...
usb 2-4: new low speed USB device using ohci_hcd and address 2
usbcore: registered new driver usb-storage
USB Mass Storage support registered.
input: USB HID v1.10 Mouse [B16_b_02 USB-PS/2 Optical Mouse] on
usb-0000:00:02.0-4
usbcore: registered new driver usbhid
drivers/usb/input/hid-core.c: v2.0:USB HID core driver
HUB0 XVR0 XVR1 XVR2 XVR3 USB0 USB2 MMAC MMCI UAR1

As you can see, it appears to work in principle.



Now about IPv6: npush and npoll are two applications I wrote. npush
sends multicast announcements and opens a TCP socket. npoll receives
the multicast announcement and connects to the source IP/port/scope_id
of the announcement. If both are run on the same machine, npoll sees
the link local address of eth0 as source IP, and the interface number of
eth0 as scope_id. So far so good. Trying to connect() however hangs.
Since this has been broken in different ways for as long as I can
remember in Linux, and I keep complaining about it every half a year or
so. Can't someone fix this once and for all? IPv4 checks whether we
are connecting to our own address and reroutes through loopback, why
can't IPv6?



Finally Centrino SpeedStep.
I have a "Intel(R) Pentium(R) M processor 1.80GHz" in my notebook.
Linux does not support it. This architecture has been out there for
months now, and there even was a patch to support it posted here a in
October last year or so. Linux still does not include it. Until
2.6.11-rc4-bk8 or so, the old patched file from back then still worked.
Now it doesn't. Because some interface changed. Now what? Using a
Centrino notebook without CPU throttling is completely out of the
question. Linux might as well not boot on it at all.



Did I mention that I'm really tired of you putting stones into ATI's
way? You might believe you have a right to piss everyone off, after all
people get what they paid for. Or maybe you think you are on a crusade
to promote open source software. But if you keep alienating me (I'm a
software developer) like this, I spend more time working around this
bullshit and less time writing free software. In the end, everyone
loses. I sincerely hope some day you people are done pissing in the
pool and can create at least some semblance of semi-stable APIs. This
house is never going to be safe for living until you stop digging around
the foundation.

You know, people are actually spending time (and money!) to learn how to
write Linux kernel modules. And all this API shifting makes sure their
knowledge is completely obsolete a few months down the road. That's not
how you create a community of people working on a shared goal.


Enough ranting for today. Sigh.

Felix


2005-03-12 01:34:47

by Andrew Morton

[permalink] [raw]
Subject: Re: 2.6.11: USB broken on nforce4, ipv6 still broken, centrino speedstep even more broken than in 2.6.10

Felix von Leitner <[email protected]> wrote:
>
> My new nForce 4 mainboard has 10 or so USB 2.0 outlets. In Windows,
> they all work. In Linux, two of them work. Putting my USB stick or
> anything else in one of the others produces nothing in Linux.
> Apparently no IRQ getting through or something?
>
> This is what /proc/interrupts has to say:
>
> 177: 9503618 IO-APIC-level ohci_hcd, eth0
>
> These are the USB boot messages:
>
> usbcore: registered new driver usbfs
> usbcore: registered new driver hub
> ehci_hcd 0000:00:02.1: new USB bus registered, assigned bus number 1
> ehci_hcd 0000:00:02.1: USB 2.0 initialized, EHCI 1.00, driver 26 Oct 2004
> hub 1-0:1.0: USB hub found
> ohci_hcd: 2004 Nov 08 USB 1.1 'Open' Host Controller (OHCI) Driver (PCI)
> ohci_hcd 0000:00:02.0: new USB bus registered, assigned bus number 2
> hub 2-0:1.0: USB hub found
> usbcore: registered new driver usblp
> drivers/usb/class/usblp.c: v0.13: USB Printer Device Class driver
> Initializing USB Mass Storage driver...
> usb 2-4: new low speed USB device using ohci_hcd and address 2
> usbcore: registered new driver usb-storage
> USB Mass Storage support registered.
> input: USB HID v1.10 Mouse [B16_b_02 USB-PS/2 Optical Mouse] on
> usb-0000:00:02.0-4
> usbcore: registered new driver usbhid
> drivers/usb/input/hid-core.c: v2.0:USB HID core driver
> HUB0 XVR0 XVR1 XVR2 XVR3 USB0 USB2 MMAC MMCI UAR1
>
> As you can see, it appears to work in principle.

Did it work correctly on any earlier kernel? If so, which one(s)?

2005-03-12 01:42:31

by Andrew Morton

[permalink] [raw]
Subject: Re: 2.6.11: USB broken on nforce4, ipv6 still broken, centrino speedstep even more broken than in 2.6.10


(Added netdev cc)

Felix von Leitner <[email protected]> wrote:
>
> Now about IPv6: npush and npoll are two applications I wrote. npush
> sends multicast announcements and opens a TCP socket. npoll receives
> the multicast announcement and connects to the source IP/port/scope_id
> of the announcement. If both are run on the same machine, npoll sees
> the link local address of eth0 as source IP, and the interface number of
> eth0 as scope_id. So far so good. Trying to connect() however hangs.
> Since this has been broken in different ways for as long as I can
> remember in Linux, and I keep complaining about it every half a year or
> so. Can't someone fix this once and for all? IPv4 checks whether we
> are connecting to our own address and reroutes through loopback, why
> can't IPv6?
>

2005-03-12 01:38:45

by Andrew Morton

[permalink] [raw]
Subject: Re: 2.6.11: USB broken on nforce4, ipv6 still broken, centrino speedstep even more broken than in 2.6.10

Felix von Leitner <[email protected]> wrote:
>
> Finally Centrino SpeedStep.
> I have a "Intel(R) Pentium(R) M processor 1.80GHz" in my notebook.
> Linux does not support it. This architecture has been out there for
> months now, and there even was a patch to support it posted here a in
> October last year or so. Linux still does not include it. Until
> 2.6.11-rc4-bk8 or so, the old patched file from back then still worked.
> Now it doesn't. Because some interface changed. Now what? Using a
> Centrino notebook without CPU throttling is completely out of the
> question. Linux might as well not boot on it at all.

Could you please dig out the old patch, send it?

2005-03-12 03:54:47

by Adam Belay

[permalink] [raw]
Subject: Re: 2.6.11: USB broken on nforce4, ipv6 still broken, centrino speedstep even more broken than in 2.6.10

On Fri, 2005-03-11 at 20:21 +0000, Felix von Leitner wrote:
> Linux is getting less and less usable for me. :-(
>
>
> My new nForce 4 mainboard has 10 or so USB 2.0 outlets. In Windows,
> they all work. In Linux, two of them work. Putting my USB stick or
> anything else in one of the others produces nothing in Linux.
> Apparently no IRQ getting through or something?

Could you also include lspci -vv.

Thanks,
Adam


2005-03-12 03:57:18

by Adam Belay

[permalink] [raw]
Subject: Re: 2.6.11: USB broken on nforce4, ipv6 still broken, centrino speedstep even more broken than in 2.6.10

On Fri, 2005-03-11 at 17:35 -0800, Andrew Morton wrote:
> Felix von Leitner <[email protected]> wrote:
> >
> > Finally Centrino SpeedStep.
> > I have a "Intel(R) Pentium(R) M processor 1.80GHz" in my notebook.
> > Linux does not support it. This architecture has been out there for
> > months now, and there even was a patch to support it posted here a in
> > October last year or so. Linux still does not include it. Until
> > 2.6.11-rc4-bk8 or so, the old patched file from back then still worked.
> > Now it doesn't. Because some interface changed. Now what? Using a
> > Centrino notebook without CPU throttling is completely out of the
> > question. Linux might as well not boot on it at all.
>
> Could you please dig out the old patch, send it?

Why not use ACPI for CPU scaling?

Thanks,
Adam


2005-03-12 05:06:38

by Robert Hancock

[permalink] [raw]
Subject: Re: 2.6.11: USB broken on nforce4, ipv6 still broken, centrino speedstep even more broken than in 2.6.10

Felix von Leitner wrote:
> My new nForce 4 mainboard has 10 or so USB 2.0 outlets. In Windows,
> they all work. In Linux, two of them work. Putting my USB stick or
> anything else in one of the others produces nothing in Linux.
> Apparently no IRQ getting through or something?

Likely similar to the problem I reported in this thread on
linux-usb-devel - the patch that David Brownell posted fixed the problem
for me..

http://sourceforge.net/mailarchive/message.php?msg_id=10755097


2005-03-12 05:24:26

by Andrew Morton

[permalink] [raw]
Subject: Re: 2.6.11: USB broken on nforce4, ipv6 still broken, centrino speedstep even more broken than in 2.6.10


(Restoring email headers. Please always use reply-to-all)

Robert Hancock <[email protected]> wrote:
>
> Felix von Leitner wrote:
> > My new nForce 4 mainboard has 10 or so USB 2.0 outlets. In Windows,
> > they all work. In Linux, two of them work. Putting my USB stick or
> > anything else in one of the others produces nothing in Linux.
> > Apparently no IRQ getting through or something?
>
> Likely similar to the problem I reported in this thread on
> linux-usb-devel - the patch that David Brownell posted fixed the problem
> for me..
>
> http://sourceforge.net/mailarchive/message.php?msg_id=10755097
>
>
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/

2005-03-12 10:20:10

by Stefan Rompf

[permalink] [raw]
Subject: Re: 2.6.11: USB broken on nforce4, ipv6 still broken, centrino speedstep even more broken than in 2.6.10

Hi,

Felix von Leitner wrote:

> Did I mention that I'm really tired of you putting stones into ATI's
> way? You might believe you have a right to piss everyone off, after all
> people get what they paid for. Or maybe you think you are on a crusade
> to promote open source software. But if you keep alienating me (I'm a
> software developer) like this, I spend more time working around this
> bullshit and less time writing free software. In the end, everyone
> loses. I sincerely hope some day you people are done pissing in the
> pool and can create at least some semblance of semi-stable APIs. This
> house is never going to be safe for living until you stop digging around
> the foundation.

I cannot agree more. Many developers and maintainers say they don't care about
binary modules - but I do have the impression a few of them care a lot by
doing changes in a way that they break the current NVIDIA drivers on every
new kernel release. As I read now, it seems to be the same way with ATI. Even
GPL drivers developed outside the kernel are disfigured over and over with
#ifdefs on KERNEL_VERSION.

While I fully understand that no developer wants to support binary modules, I
would appreciate a little less hostile behaviour. And btw., instable API
leads to an instable kernel because not everyone can follow the changes.

Stefan

2005-03-12 16:35:34

by David Brownell

[permalink] [raw]
Subject: Re: [linux-usb-devel] Re: 2.6.11: USB broken on nforce4, ipv6 still broken, centrino speedstep even more broken than in 2.6.10

On Friday 11 March 2005 9:19 pm, Andrew Morton wrote:
>
> (Restoring email headers. Please always use reply-to-all)
>
> Robert Hancock <[email protected]> wrote:
> >
> > Felix von Leitner wrote:
> > > My new nForce 4 mainboard has 10 or so USB 2.0 outlets. In Windows,
> > > they all work. In Linux, two of them work. Putting my USB stick or
> > > anything else in one of the others produces nothing in Linux.
> > > Apparently no IRQ getting through or something?
> >
> > Likely similar to the problem I reported in this thread on
> > linux-usb-devel - the patch that David Brownell posted fixed the problem
> > for me..
> >
> > http://sourceforge.net/mailarchive/message.php?msg_id=10755097
> >

My thoughts exactly. However, 2.6.11 includes that fix. Are you
sure that dmesg output came from 2.6.11?

To repeat what Alan Stern said yesterday: provide full "dmesg"
output, with CONFIG_USB_DEBUG enabled. I think that falls into
the category of "how to provide a usable bug report" ... :)


2005-03-13 00:02:11

by Greg KH

[permalink] [raw]
Subject: Re: 2.6.11: USB broken on nforce4, ipv6 still broken, centrino speedstep even more broken than in 2.6.10

On Sat, Mar 12, 2005 at 11:24:16AM +0100, Stefan Rompf wrote:
> Hi,
>
> Felix von Leitner wrote:
>
> > Did I mention that I'm really tired of you putting stones into ATI's
> > way? You might believe you have a right to piss everyone off, after all
> > people get what they paid for. Or maybe you think you are on a crusade
> > to promote open source software. But if you keep alienating me (I'm a
> > software developer) like this, I spend more time working around this
> > bullshit and less time writing free software. In the end, everyone
> > loses. I sincerely hope some day you people are done pissing in the
> > pool and can create at least some semblance of semi-stable APIs. This
> > house is never going to be safe for living until you stop digging around
> > the foundation.
>
> I cannot agree more. Many developers and maintainers say they don't care about
> binary modules - but I do have the impression a few of them care a lot by
> doing changes in a way that they break the current NVIDIA drivers on every
> new kernel release.

Oh no, our secret is out! :)

> As I read now, it seems to be the same way with ATI. Even GPL drivers
> developed outside the kernel are disfigured over and over with #ifdefs
> on KERNEL_VERSION.

Then get those GPL drivers into the kernel tree, and that will not be
needed at all.

> While I fully understand that no developer wants to support binary modules, I
> would appreciate a little less hostile behaviour. And btw., instable API
> leads to an instable kernel because not everyone can follow the changes.

Please read Documentation/stable_api_nonesense.txt for more info on
exactly _why_ the kernel changes like this.

thanks,

greg k-h

2005-03-13 21:37:42

by Felix von Leitner

[permalink] [raw]
Subject: Re: 2.6.11: USB broken on nforce4, ipv6 still broken, centrino speedstep even more broken than in 2.6.10

Thus spake Andrew Morton ([email protected]):
> > My new nForce 4 mainboard has 10 or so USB 2.0 outlets. In Windows,
> > they all work. In Linux, two of them work. Putting my USB stick or
> > anything else in one of the others produces nothing in Linux.
> > Apparently no IRQ getting through or something?

> Did it work correctly on any earlier kernel? If so, which one(s)?

It turns out the ports do work with 2.6.11; I was running rc4 when I
last observed it break.

Sorry for the bad bug report.

Felix

2005-03-13 21:38:44

by Felix von Leitner

[permalink] [raw]
Subject: Re: 2.6.11: USB broken on nforce4, ipv6 still broken, centrino speedstep even more broken than in 2.6.10

Thus spake Andrew Morton ([email protected]):
> > Finally Centrino SpeedStep.
> > I have a "Intel(R) Pentium(R) M processor 1.80GHz" in my notebook.
> > Linux does not support it. This architecture has been out there for
> > months now, and there even was a patch to support it posted here a in
> > October last year or so. Linux still does not include it. Until
> > 2.6.11-rc4-bk8 or so, the old patched file from back then still worked.
> > Now it doesn't. Because some interface changed. Now what? Using a
> > Centrino notebook without CPU throttling is completely out of the
> > question. Linux might as well not boot on it at all.
> Could you please dig out the old patch, send it?

I didn't keep the patch, but I kept the patched C file.
I'll attach it.

Felix


Attachments:
(No filename) (770.00 B)
centrino-speedstep.tar.gz (5.38 kB)
Download all attachments

2005-03-22 01:27:43

by Adam Belay

[permalink] [raw]
Subject: Re: 2.6.11: USB broken on nforce4, ipv6 still broken, centrino speedstep even more broken than in 2.6.10

On Mon, 2005-03-21 at 19:32, Andrew Morton wrote:
> Adam Belay <[email protected]> wrote:
> >
> > On Fri, 2005-03-11 at 17:35 -0800, Andrew Morton wrote:
> > > Felix von Leitner <[email protected]> wrote:
> > > >
> > > > Finally Centrino SpeedStep.
> > > > I have a "Intel(R) Pentium(R) M processor 1.80GHz" in my notebook.
> > > > Linux does not support it. This architecture has been out there for
> > > > months now, and there even was a patch to support it posted here a in
> > > > October last year or so. Linux still does not include it. Until
> > > > 2.6.11-rc4-bk8 or so, the old patched file from back then still worked.
> > > > Now it doesn't. Because some interface changed. Now what? Using a
> > > > Centrino notebook without CPU throttling is completely out of the
> > > > question. Linux might as well not boot on it at all.
> > >
> > > Could you please dig out the old patch, send it?
> >
> > Why not use ACPI for CPU scaling?
> >
>
> Felix, did you try this?
>

ACPI is the preferred (and only standardized) method of controlling cpu
throttling on x86 systems.

Also, as I said earlier, I wanted to see an lspci for the usb issues.

Thanks,
Adam


2005-03-22 00:35:28

by Andrew Morton

[permalink] [raw]
Subject: Re: 2.6.11: USB broken on nforce4, ipv6 still broken, centrino speedstep even more broken than in 2.6.10

Adam Belay <[email protected]> wrote:
>
> On Fri, 2005-03-11 at 17:35 -0800, Andrew Morton wrote:
> > Felix von Leitner <[email protected]> wrote:
> > >
> > > Finally Centrino SpeedStep.
> > > I have a "Intel(R) Pentium(R) M processor 1.80GHz" in my notebook.
> > > Linux does not support it. This architecture has been out there for
> > > months now, and there even was a patch to support it posted here a in
> > > October last year or so. Linux still does not include it. Until
> > > 2.6.11-rc4-bk8 or so, the old patched file from back then still worked.
> > > Now it doesn't. Because some interface changed. Now what? Using a
> > > Centrino notebook without CPU throttling is completely out of the
> > > question. Linux might as well not boot on it at all.
> >
> > Could you please dig out the old patch, send it?
>
> Why not use ACPI for CPU scaling?
>

Felix, did you try this?

2005-03-22 00:35:24

by Andrew Morton

[permalink] [raw]
Subject: Re: 2.6.11: USB broken on nforce4, ipv6 still broken, centrino speedstep even more broken than in 2.6.10

Andrew Morton <[email protected]> wrote:
>
>
> (Added netdev cc)
>
> Felix von Leitner <[email protected]> wrote:
> >
> > Now about IPv6: npush and npoll are two applications I wrote. npush
> > sends multicast announcements and opens a TCP socket. npoll receives
> > the multicast announcement and connects to the source IP/port/scope_id
> > of the announcement. If both are run on the same machine, npoll sees
> > the link local address of eth0 as source IP, and the interface number of
> > eth0 as scope_id. So far so good. Trying to connect() however hangs.
> > Since this has been broken in different ways for as long as I can
> > remember in Linux, and I keep complaining about it every half a year or
> > so. Can't someone fix this once and for all? IPv4 checks whether we
> > are connecting to our own address and reroutes through loopback, why
> > can't IPv6?

afaik, this problem is still open. If you have time, please provide
additional info for the net developers. Maybe the source to npoll anbd
npush?

2005-03-22 03:03:47

by Johannes Stezenbach

[permalink] [raw]
Subject: Re: 2.6.11: USB broken on nforce4, ipv6 still broken, centrino speedstep even more broken than in 2.6.10

Andrew Morton wrote:
> Andrew Morton <[email protected]> wrote:
> >
> >
> > (Added netdev cc)
> >
> > Felix von Leitner <[email protected]> wrote:
> > >
> > > Now about IPv6: npush and npoll are two applications I wrote. npush
> > > sends multicast announcements and opens a TCP socket. npoll receives
> > > the multicast announcement and connects to the source IP/port/scope_id
> > > of the announcement. If both are run on the same machine, npoll sees
> > > the link local address of eth0 as source IP, and the interface number of
> > > eth0 as scope_id. So far so good. Trying to connect() however hangs.
> > > Since this has been broken in different ways for as long as I can
> > > remember in Linux, and I keep complaining about it every half a year or
> > > so. Can't someone fix this once and for all? IPv4 checks whether we
> > > are connecting to our own address and reroutes through loopback, why
> > > can't IPv6?
>
> afaik, this problem is still open. If you have time, please provide
> additional info for the net developers. Maybe the source to npoll anbd
> npush?

Grab the ncp package from http://www.fefe.de/ncp/, or more specifically
ftp://ftp.fu-berlin.de/unix/network/ncp/ncp-1.2.3.tar.bz2.

It's a very useful and handy tool for pushing around data within
a LAN of a small workgroup, one guy does "npush foo" and yells
at the intended recepient "do npoll". The first one to do
it wins and gets foo ;-)

Johannes

2005-03-22 16:19:03

by Johannes Stezenbach

[permalink] [raw]
Subject: Re: 2.6.11: USB broken on nforce4, ipv6 still broken, centrino speedstep even more broken than in 2.6.10

Johannes Stezenbach wrote:
> Grab the ncp package from http://www.fefe.de/ncp/, or more specifically
> ftp://ftp.fu-berlin.de/unix/network/ncp/ncp-1.2.3.tar.bz2.
>
> It's a very useful and handy tool for pushing around data within
> a LAN of a small workgroup, one guy does "npush foo" and yells
> at the intended recepient "do npoll". The first one to do
> it wins and gets foo ;-)

In case that description sounded too silly: The essential feature
of ncp is that it requires no configuration or installation of a
server daemon, and you don't even need to worry about host names or the
IP address of the source or destination machine. Just hook two computers
to the same network and you're ready to npush/npoll. Similar to
netcat + tar, but way more convenient.

Johannes

2005-03-22 22:32:49

by Felix von Leitner

[permalink] [raw]
Subject: Re: 2.6.11: USB broken on nforce4, ipv6 still broken, centrino speedstep even more broken than in 2.6.10

Thus spake Adam Belay ([email protected]):
> > > Why not use ACPI for CPU scaling?
> > Felix, did you try this?
> ACPI is the preferred (and only standardized) method of controlling cpu
> throttling on x86 systems.

1. I don't trust ACPI
2. my battery runs out quicker with ACPI compared to cpufreq

I _really_ _really_ don't want ACPI. No, really not. This is no idle
decision. My current notebook is the only hardware I have ever seen
enabling ACPI not completely break Linux. Of all my 10+ machines,
including my other 3 ones that are actually in use.

Which ACPI way to you mean, by the way? Just enabling ACPI with thermal
and CPU or the cpufreq ACPI driver? I think I tried that driver and did
not get the /sys interface to switch frequencies and governors. If I
must, I can try again with 2.6.11, but I really really really do not
want to use ACPI, unless someone with a big shotgun is standing behind
me.

> Also, as I said earlier, I wanted to see an lspci for the usb issues.

0000:00:00.0 Memory controller: nVidia Corporation CK804 Memory Controller (rev a3)
0000:00:01.0 ISA bridge: nVidia Corporation: Unknown device 0050 (rev a3)
0000:00:01.1 SMBus: nVidia Corporation CK804 SMBus (rev a2)
0000:00:02.0 USB Controller: nVidia Corporation CK804 USB Controller (rev a2)
0000:00:02.1 USB Controller: nVidia Corporation CK804 USB Controller (rev a3)
0000:00:04.0 Multimedia audio controller: nVidia Corporation CK804 AC'97 Audio Controller (rev a2)
0000:00:06.0 IDE interface: nVidia Corporation CK804 IDE (rev a2)
0000:00:07.0 IDE interface: nVidia Corporation CK804 Serial ATA Controller (rev a3)
0000:00:08.0 IDE interface: nVidia Corporation CK804 Serial ATA Controller (rev a3)
0000:00:09.0 PCI bridge: nVidia Corporation CK804 PCI Bridge (rev a2)
0000:00:0a.0 Bridge: nVidia Corporation CK804 Ethernet Controller (rev a3)
0000:00:0b.0 PCI bridge: nVidia Corporation CK804 PCIE Bridge (rev a3)
0000:00:0c.0 PCI bridge: nVidia Corporation CK804 PCIE Bridge (rev a3)
0000:00:0d.0 PCI bridge: nVidia Corporation CK804 PCIE Bridge (rev a3)
0000:00:0e.0 PCI bridge: nVidia Corporation CK804 PCIE Bridge (rev a3)
0000:00:18.0 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] HyperTransport Technology Configuration
0000:00:18.1 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Address Map
0000:00:18.2 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] DRAM Controller
0000:00:18.3 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Miscellaneous Control
0000:01:00.0 VGA compatible controller: nVidia Corporation: Unknown device 0141 (rev a2)
0000:05:0b.0 FireWire (IEEE 1394): Texas Instruments TSB43AB22/A IEEE-1394a-2000 Controller (PHY/Link)
0000:05:0c.0 Ethernet controller: Marvell Technology Group Ltd. Gigabit Ethernet Controller (rev 13)

This kernel is stock 2.6.11 with CONFIG_USB_DEBUG=y.

When I put in my USB hub with my USB webcam, I get this:

Mar 22 23:25:40 demilich kernel: hub 1-0:1.0: state 5 ports 10 chg 0000 evt 0400
Mar 22 23:25:40 demilich kernel: ehci_hcd 0000:00:02.1: GetStatus port 10 status 001803 POWER sig=j CSC CONNECT
Mar 22 23:25:40 demilich kernel: hub 1-0:1.0: port 10, status 0501, change 0001, 480 Mb/s
Mar 22 23:25:40 demilich kernel: hub 1-0:1.0: debounce: port 10: total 100ms stable 100ms status 0x501
Mar 22 23:25:40 demilich kernel: ehci_hcd 0000:00:02.1: port 10 high speed
Mar 22 23:25:40 demilich kernel: ehci_hcd 0000:00:02.1: GetStatus port 10 status 001005 POWER sig=se0 PE CONNECT
Mar 22 23:25:40 demilich kernel: usb 1-10: new high speed USB device using ehci_hcd and address 3
Mar 22 23:25:40 demilich kernel: ehci_hcd 0000:00:02.1: port 10 reset error -110
Mar 22 23:25:40 demilich kernel: hub 1-0:1.0: hub_port_status failed (err = -32)
Mar 22 23:25:40 demilich kernel: hub 1-0:1.0: port 10 not enabled, trying reset again...
Mar 22 23:25:40 demilich kernel: ehci_hcd 0000:00:02.1: port 10 reset error -110
Mar 22 23:25:40 demilich kernel: hub 1-0:1.0: hub_port_status failed (err = -32)
Mar 22 23:25:40 demilich kernel: hub 1-0:1.0: port 10 not enabled, trying reset again...
Mar 22 23:25:40 demilich kernel: ehci_hcd 0000:00:02.1: port 10 reset error -110
Mar 22 23:25:40 demilich kernel: hub 1-0:1.0: hub_port_status failed (err = -32)
Mar 22 23:25:40 demilich kernel: hub 1-0:1.0: port 10 not enabled, trying reset again...
Mar 22 23:25:41 demilich kernel: ehci_hcd 0000:00:02.1: port 10 high speed
Mar 22 23:25:41 demilich kernel: ehci_hcd 0000:00:02.1: GetStatus port 10 status 001005 POWER sig=se0 PE CONNECT
Mar 22 23:25:41 demilich kernel: usb 1-10: new device strings: Mfr=0, Product=0, SerialNumber=0
Mar 22 23:25:41 demilich kernel: usb 1-10: hotplug
Mar 22 23:25:41 demilich kernel: usb 1-10: adding 1-10:1.0 (config #1, interface 0)
Mar 22 23:25:41 demilich kernel: usb 1-10:1.0: hotplug

(the line with Mfr=0 looks wrong to me).

Now pulling the device and putting it on through my USB hub (same hardware port
on the mainboard), I get:

Mar 22 23:27:04 demilich kernel: hda: dma_intr: status=0x51 { DriveReady SeekComplete Error }
Mar 22 23:27:04 demilich kernel: hda: dma_intr: error=0x84 { DriveStatusError BadCRC }
Mar 22 23:27:04 demilich kernel: ide: failed opcode was: unknown
Mar 22 23:27:51 demilich kernel: hub 1-0:1.0: state 5 ports 10 chg 0000 evt 0400
Mar 22 23:27:51 demilich kernel: ehci_hcd 0000:00:02.1: GetStatus port 10 status 001002 POWER sig=se0 CSC
Mar 22 23:27:51 demilich kernel: hub 1-0:1.0: port 10, status 0100, change 0001, 12 Mb/s
Mar 22 23:27:51 demilich kernel: usb 1-10: USB disconnect, address 3
Mar 22 23:27:51 demilich kernel: usb 1-10: usb_disable_device nuking all URBs
Mar 22 23:27:51 demilich kernel: usb 1-10: unregistering interface 1-10:1.0
Mar 22 23:27:51 demilich kernel: usb 1-10:1.0: hotplug
Mar 22 23:27:51 demilich kernel: usb 1-10: unregistering device
Mar 22 23:27:51 demilich kernel: usb 1-10: hotplug
Mar 22 23:27:51 demilich kernel: hub 1-0:1.0: debounce: port 10: total 100ms stable 100ms status 0x100
Mar 22 23:28:36 demilich kernel: hub 1-0:1.0: state 5 ports 10 chg 0000 evt 0400
Mar 22 23:28:36 demilich kernel: ehci_hcd 0000:00:02.1: GetStatus port 10 status 001803 POWER sig=j CSC CONNECT
Mar 22 23:28:36 demilich kernel: hub 1-0:1.0: port 10, status 0501, change 0001, 480 Mb/s
Mar 22 23:28:36 demilich kernel: hub 1-0:1.0: debounce: port 10: total 100ms stable 100ms status 0x501
Mar 22 23:28:36 demilich kernel: ehci_hcd 0000:00:02.1: port 10 reset error -110
Mar 22 23:28:36 demilich kernel: hub 1-0:1.0: hub_port_status failed (err = -32)
Mar 22 23:28:36 demilich kernel: hub 1-0:1.0: port 10 not enabled, trying reset again...
Mar 22 23:28:37 demilich kernel: ehci_hcd 0000:00:02.1: port 10 full speed --> companion
Mar 22 23:28:37 demilich kernel: ehci_hcd 0000:00:02.1: GetStatus port 10 status 003001 POWER OWNER sig=se0 CONNECT
Mar 22 23:28:37 demilich kernel: hub 1-0:1.0: state 5 ports 10 chg 0000 evt 0400
Mar 22 23:28:37 demilich kernel: ehci_hcd 0000:00:02.1: GetStatus port 10 status 001002 POWER sig=se0 CSC
Mar 22 23:28:37 demilich kernel: hub 1-0:1.0: port 10, status 0100, change 0001, 12 Mb/s
Mar 22 23:28:37 demilich kernel: hub 1-0:1.0: debounce: port 10: total 100ms stable 100ms status 0x100

Now the webcam gets power (the light is on) but lsusb does not show it
and the device is suddenly only full speed, not high speed.

Felix

2005-03-24 11:58:12

by YOSHIFUJI Hideaki

[permalink] [raw]
Subject: [PATCH] [IPV6] Fix address/interface handling according to the scoping architecture (is Re: 2.6.11: USB broken on nforce4, ipv6 still broken, centrino speedstep even more broken than in 2.6.10)

In article <[email protected]> (at Fri, 11 Mar 2005 17:33:08 -0800), Andrew Morton <[email protected]> says:

> Felix von Leitner <[email protected]> wrote:
> >
> > Now about IPv6: npush and npoll are two applications I wrote. npush
> > sends multicast announcements and opens a TCP socket. npoll receives
> > the multicast announcement and connects to the source IP/port/scope_id
> > of the announcement. If both are run on the same machine, npoll sees
> > the link local address of eth0 as source IP, and the interface number of
> > eth0 as scope_id. So far so good. Trying to connect() however hangs.
> > Since this has been broken in different ways for as long as I can
> > remember in Linux, and I keep complaining about it every half a year or
> > so. Can't someone fix this once and for all? IPv4 checks whether we
> > are connecting to our own address and reroutes through loopback, why
> > can't IPv6?

I think this has been there for long time (maybe since 2.4...).

With the following patch, I can connect local link-local address.
- Change incoming interface according to the scoping architecture
- Choose source address on appropriate interface, according to the
scoping architecture.

Signed-off-by: Hideaki YOSHIFUJI <[email protected]>

===== net/ipv6/ip6_input.c 1.23 vs edited =====
--- 1.23/net/ipv6/ip6_input.c 2005-03-10 14:12:11 +09:00
+++ edited/net/ipv6/ip6_input.c 2005-03-24 17:49:15 +09:00
@@ -71,10 +71,18 @@
goto out;
}

- /* Store incoming device index. When the packet will
- be queued, we cannot refer to skb->dev anymore.
+ /*
+ * Store incoming device index. When the packet will
+ * be queued, we cannot refer to skb->dev anymore.
+ *
+ * BTW, when we send a packet for our own local address on a
+ * non-loopback interface (e.g. ethX), it is being delivered
+ * via the loopback interface (lo) here; skb->dev = &loopback_dev.
+ * It, however, should be considered as if it is being
+ * arrived via the sending interface (ethX), because of the
+ * nature of scoping architecture. --yoshfuji
*/
- IP6CB(skb)->iif = dev->ifindex;
+ IP6CB(skb)->iif = skb->dst ? ((struct rt6_info *)skb->dst)->rt6i_idev->dev->ifindex : dev->ifindex;

if (skb->len < sizeof(struct ipv6hdr))
goto err;
===== net/ipv6/addrconf.c 1.134 vs edited =====
--- 1.134/net/ipv6/addrconf.c 2005-03-15 14:21:11 +09:00
+++ edited/net/ipv6/addrconf.c 2005-03-24 11:52:17 +09:00
@@ -942,7 +942,7 @@
int ipv6_get_saddr(struct dst_entry *dst,
struct in6_addr *daddr, struct in6_addr *saddr)
{
- return ipv6_dev_get_saddr(dst ? dst->dev : NULL, daddr, saddr);
+ return ipv6_dev_get_saddr(dst ? ((struct rt6_info *)dst)->rt6i_idev->dev : NULL, daddr, saddr);
}



--
Hideaki YOSHIFUJI @ USAGI Project <[email protected]>
GPG FP: 9022 65EB 1ECF 3AD1 0BDF 80D8 4807 F894 E062 0EEA

2005-03-24 23:34:04

by Jeremy Fitzhardinge

[permalink] [raw]
Subject: Re: 2.6.11: USB broken on nforce4, ipv6 still broken, centrino speedstep even more broken than in 2.6.10

Felix von Leitner wrote:

>>ACPI is the preferred (and only standardized) method of controlling cpu
>>throttling on x86 systems.
>>
>>
>
> 1. I don't trust ACPI
> 2. my battery runs out quicker with ACPI compared to cpufreq
>
>I _really_ _really_ don't want ACPI. No, really not. This is no idle
>decision. My current notebook is the only hardware I have ever seen
>enabling ACPI not completely break Linux. Of all my 10+ machines,
>including my other 3 ones that are actually in use.
>
>
Unfortunately, the Dothans *REQUIRE* some degree of ACPI support; the
speedfreq-centrino needs to extract a table from ACPI to know what are
valid operating (voltage/frequency) points to use for the CPU. The
patch you're using is definitely wrong in principle, though if it works
for you in practice then by all means use it.

The problem is that there are 4 different voltage grades of Dothan -
VID#A to VID#D - and there doesn't appear to be a way to tell what grade
a CPU is from software at runtime; this is a problem because there's no
one set of voltages you can use across all 4 grades (they have
non-overlapping voltage limits). It's unknown whether running a Dothan
out of voltage spec will cause reliability problems or damage.

J

2005-03-25 00:52:11

by Felix von Leitner

[permalink] [raw]
Subject: Re: 2.6.11: USB broken on nforce4, ipv6 still broken, centrino speedstep even more broken than in 2.6.10

Thus spake Jeremy Fitzhardinge ([email protected]):
> Unfortunately, the Dothans *REQUIRE* some degree of ACPI support; the
> speedfreq-centrino needs to extract a table from ACPI to know what are
> valid operating (voltage/frequency) points to use for the CPU. The
> patch you're using is definitely wrong in principle, though if it works
> for you in practice then by all means use it.

I enabled these:

CONFIG_CPU_FREQ=y
CONFIG_CPU_FREQ_STAT=y
CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
CONFIG_CPU_FREQ_GOV_POWERSAVE=y
CONFIG_CPU_FREQ_GOV_USERSPACE=y
CONFIG_CPU_FREQ_GOV_ONDEMAND=y
CONFIG_CPU_FREQ_TABLE=y
CONFIG_X86_SPEEDSTEP_CENTRINO=y
CONFIG_X86_SPEEDSTEP_CENTRINO_ACPI=y
CONFIG_X86_SPEEDSTEP_CENTRINO_TABLE=y

It should have worked, shouldn't it?

Well, it did not. You can look at the kernel messages at
http://dl.fefe.de/dmesg.gz if that helps.

No cpufreq, and as far as I can see, no speedstep.
The fan is running, that's all I can tell.

Felix

2005-03-25 13:37:48

by Bruno Ducrot

[permalink] [raw]
Subject: Re: 2.6.11: USB broken on nforce4, ipv6 still broken, centrino speedstep even more broken than in 2.6.10

On Mon, Mar 21, 2005 at 08:20:55PM -0500, Adam Belay wrote:
> On Mon, 2005-03-21 at 19:32, Andrew Morton wrote:
> > Adam Belay <[email protected]> wrote:
> > >
> > > On Fri, 2005-03-11 at 17:35 -0800, Andrew Morton wrote:
> > > > Felix von Leitner <[email protected]> wrote:
> > > > >
> > > > > Finally Centrino SpeedStep.
> > > > > I have a "Intel(R) Pentium(R) M processor 1.80GHz" in my notebook.
> > > > > Linux does not support it. This architecture has been out there for
> > > > > months now, and there even was a patch to support it posted here a in
> > > > > October last year or so. Linux still does not include it. Until
> > > > > 2.6.11-rc4-bk8 or so, the old patched file from back then still worked.
> > > > > Now it doesn't. Because some interface changed. Now what? Using a
> > > > > Centrino notebook without CPU throttling is completely out of the
> > > > > question. Linux might as well not boot on it at all.
> > > >
> > > > Could you please dig out the old patch, send it?
> > >
> > > Why not use ACPI for CPU scaling?
> > >
> >
> > Felix, did you try this?
> >
>
> ACPI is the preferred (and only standardized) method of controlling cpu
> throttling on x86 systems.
>

No. ACPI is the preferred method in order to *get configuration*
for cpu frequency and voltage scaling, but it's up to a
specific processor driver to control frequency (actually I'm
simplifying things since it's possible to control frequency
from ACPI only, but only in certain situation).

Throttling is another method to frequency control by throttling
the processor (and ACPI is then preferred for both configuration
and controlling how to throttle the processor), but there is
no voltage scaling at all as for frequency and voltage scaling.

Those far it's up to the OP to activate ACPI even if he do not trust
ACPI. It's the only way to get configuration from BIOS if he do not
want to hardcode a configuration in the speedstep-centrino driver.

Cheers,

--
Bruno Ducrot

-- Which is worse: ignorance or apathy?
-- Don't know. Don't care.

2005-04-25 19:57:41

by Felix von Leitner

[permalink] [raw]
Subject: IPv6 has trouble assigning an interface

I'm using stock 2.6.11.7 now.

Here is an strace of some piece of code of mine:

socket(PF_INET6, SOCK_DGRAM, IPPROTO_IP) = 3
setsockopt(3, SOL_SOCKET, SO_REUSEADDR, [12884901889], 4) = 0
bind(3, {sa_family=AF_INET6, sin6_port=htons(8002), inet_pton(AF_INET6, "::", &sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, 28) = 0
setsockopt(3, SOL_IPV6, IPV6_MULTICAST_LOOP, "\1", 1) = 0
[...]
sendto(3, "ncp-lowfat-1.2.2", 16, 0, {sa_family=AF_INET6, sin6_port=htons(8002), inet_pton(AF_INET6, "ff02::6e63:7030", &sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, 28) = -1 EADDRNOTAVAIL (Cannot assign requested address)

ff02 is a link-local multicast address. I've bound to ::. How can this
fail? link-local should always work, even if no routes are set and no
router has been found.

Felix

2005-04-25 21:01:45

by Pekka Savola

[permalink] [raw]
Subject: Re: IPv6 has trouble assigning an interface

On Mon, 25 Apr 2005, Felix von Leitner wrote:
> Here is an strace of some piece of code of mine:
>
> socket(PF_INET6, SOCK_DGRAM, IPPROTO_IP) = 3
> setsockopt(3, SOL_SOCKET, SO_REUSEADDR, [12884901889], 4) = 0
> bind(3, {sa_family=AF_INET6, sin6_port=htons(8002), inet_pton(AF_INET6, "::", &sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, 28) = 0
> setsockopt(3, SOL_IPV6, IPV6_MULTICAST_LOOP, "\1", 1) = 0
> [...]
> sendto(3, "ncp-lowfat-1.2.2", 16, 0, {sa_family=AF_INET6, sin6_port=htons(8002), inet_pton(AF_INET6, "ff02::6e63:7030", &sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, 28) = -1 EADDRNOTAVAIL (Cannot assign requested address)
>
> ff02 is a link-local multicast address. I've bound to ::. How can this
> fail? link-local should always work, even if no routes are set and no
> router has been found.

Umm.. link-local unicast and multicast both require that you specify
the interface, because otherwise it's ambiguous -- how could the
kernel know which interface should be used to send the packet?

--
Pekka Savola "You each name yourselves king, yet the
Netcore Oy kingdom bleeds."
Systems. Networks. Security. -- George R.R. Martin: A Clash of Kings

2005-04-26 06:10:19

by Felix von Leitner

[permalink] [raw]
Subject: Re: IPv6 has trouble assigning an interface

Thus spake Pekka Savola ([email protected]):
> >Here is an strace of some piece of code of mine:
> >
> >socket(PF_INET6, SOCK_DGRAM, IPPROTO_IP) = 3
> >setsockopt(3, SOL_SOCKET, SO_REUSEADDR, [12884901889], 4) = 0
> >bind(3, {sa_family=AF_INET6, sin6_port=htons(8002), inet_pton(AF_INET6,
> >"::", &sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, 28) = 0
> >setsockopt(3, SOL_IPV6, IPV6_MULTICAST_LOOP, "\1", 1) = 0
> >[...]
> >sendto(3, "ncp-lowfat-1.2.2", 16, 0, {sa_family=AF_INET6,
> >sin6_port=htons(8002), inet_pton(AF_INET6, "ff02::6e63:7030", &sin6_addr),
> >sin6_flowinfo=0, sin6_scope_id=0}, 28) = -1 EADDRNOTAVAIL (Cannot assign
> >requested address)
> >
> >ff02 is a link-local multicast address. I've bound to ::. How can this
> >fail? link-local should always work, even if no routes are set and no
> >router has been found.
> Umm.. link-local unicast and multicast both require that you specify
> the interface, because otherwise it's ambiguous -- how could the
> kernel know which interface should be used to send the packet?

OK for unicast.
But multicast? I expected link-local multicast to send on _all_
interfaces if I don't specify one.

Felix

2005-04-27 22:57:34

by Kyle Moffett

[permalink] [raw]
Subject: Re: IPv6 has trouble assigning an interface

On Apr 26, 2005, at 02:10, Felix von Leitner wrote:
> OK for unicast. But multicast? I expected link-local multicast
> to send on _all_ interfaces if I don't specify one.

This statement makes no sense. "link-local ... on all interfaces".
Isn't "link-local" supposed to mean that the address is unique and
available only on that interface (ethernet segment)? It's possible
to get the _same_ link-local address on multiple ethernet segments,
so in that case, where would you send the packet??? When you send
link-local packets, you must specify the link to which it is local.

Cheers,
Kyle Moffett

-----BEGIN GEEK CODE BLOCK-----
Version: 3.12
GCM/CS/IT/U d- s++: a18 C++++>$ UB/L/X/*++++(+)>$ P+++(++++)>$
L++++(+++) E W++(+) N+++(++) o? K? w--- O? M++ V? PS+() PE+(-) Y+
PGP+++ t+(+++) 5 X R? tv-(--) b++++(++) DI+ D+ G e->++++$ h!*()>++$ r
!y?(-)
------END GEEK CODE BLOCK------


2005-04-27 23:31:25

by David Stevens

[permalink] [raw]
Subject: Re: IPv6 has trouble assigning an interface

[email protected] wrote on 04/27/2005 03:57:05 PM:

> On Apr 26, 2005, at 02:10, Felix von Leitner wrote:
> > OK for unicast. But multicast? I expected link-local multicast
> > to send on _all_ interfaces if I don't specify one.

(I didn't see the article this is quoting-- apparently wasn't CC-ed
to "netdev" as the original was).
Multicasting doesn't work that way. Multicast group memberships
are per-device (whether or not they are link-local). If you join
the same group address on two different devices, they'll only be the
same group if there are multicast routers on the two links connecting
them in the same multicast routing hierarchy. With a scope broader
than link-local, and a multicast router on that link, the packets
can be forwarded to other links, but they won't be forwarded to
every host on the internet in that group (!), and there are sometimes
good reasons for having different partitions of the same group
within a single organization. So, the same group number on two
different links is not necessarily the same group. It depends
entirely on whether the two groups have common multicast routers
with no policy restricting forwarding for that group between them.
This is how IPv4 multicasting works, too. You join a group
on a particular device.

+-DLS