* Latest 2.4 IA64 Baseline (Bjorn) + Latest ACPI testing report
@ 2003-11-12 11:22 Yu, Luming
2003-11-19 13:08 ` Yu, Luming
` (15 more replies)
0 siblings, 16 replies; 17+ messages in thread
From: Yu, Luming @ 2003-11-12 11:22 UTC (permalink / raw)
To: linux-ia64
[-- Attachment #1: Type: text/plain, Size: 2671 bytes --]
ACPI Test Report for 2.4 ia64 kernel + latest ACPI
=========================
Hardware Configuration:
-----------------------
System Name: ACPI-LION
System Type: 4 way 800M Itanium, Lion
M/B revision: N/A
Processor version: N/A
Firmware Versions: N/A
I/O configuration summary:
QLogic QLA12160, Seagate ST39205LC boot drive
IDE floppy and CDROM
Serial console
PS/2 keyboard and mouse
USB mouse
Ethernet Pro 100
Software Configuration:
-----------------------
1.Bk pull form http://lia64.bkbits.net/linux-ia64-2.4 on 11/11 (Shanghai time)
2.Bk pull from http://linux-acpi.bkbits.net/linux-acpi-test-2.4.22 on 11/11 (Shanhai time)
Successfully automerged by bk without out any manually work.
ACPI Features Tested: (prioritized).
--------------------
1. Boot off SCSI disk tested ok
2. serial console tested ok
3. PS/2 keyboard tested ok
4. ATI (run X window system) tested ok
5. PS/2 mouse tested ok
6. USB mouse Doesn't work
7. NIC (eg. Ping or ftp) tested ok
8. IDE (eg. r/w floppy or CDROM) tested ok
9. SCI (eg. Press power button) tested ok
CPU0 CPU1 CPU2 CPU3
32: 955 3 18 4 IO-SAPIC-edge keyboard
33: 758 1 12 2 IO-SAPIC-edge ide1
34: 35 3 0 0 IO-SAPIC-edge ide0
36: 1155 1 62 5 IO-SAPIC-edge PS/2 Mouse
39: 5 0 0 0 IO-SAPIC-level acpi
44: 8 0 0 0 IO-SAPIC-edge serial
45: 17 0 0 0 IO-SAPIC-edge serial
48: 50 0 0 0 IO-SAPIC-level usb-uhci
49: 416 2 16 3 IO-SAPIC-level eth0
51: 6711 50 317 33 IO-SAPIC-level qla1280
239: 415744 405691 414447 414241 LSAPIC timer
254: 16595 17569 17140 16850 LSAPIC IPI
NMI: 0 0 0 0
ERR: 0
Problems:
1. Unalignment issue.( It appeared when testing power button)
kernel unaligned access to 0xe000000004c2f199, ip=0xe000000004615fb1
2. USB doesn't work
3.PCI: no interrupt route for 00:00:03 pin B
4.alloc 0x0-0xcf7 from PCI IO for PCI Bus 00:00 failed (Bjron said it is harmless)
5.> 1. After login, the dmesg return below message. (Bjorn said these are unimplemented system call, Need a patch to turn off them)
> ...
> ifup-post(864): <sc1236(0,1008,0,20000000000d5b20)>
<<dmesg.24.ZIP>> <<lspci.24.TXT>> <<conf.TXT>>
Thanks,
Luming
[-- Attachment #2: dmesg.24.ZIP --]
[-- Type: application/x-zip-compressed, Size: 5048 bytes --]
[-- Attachment #3: lspci.24.TXT --]
[-- Type: text/plain, Size: 965 bytes --]
PK\x03\x04\x14\0\0\0\b\0çl/épLI\x03\0\0H\x10\0\0\r\0\0\0lspci_241.TXTÝ[Oâ@\x14ÇßMü\x0eç\x11\x12ÑéJ²\x0f·fíV6$i;
fÛi3-ºúé÷´ÜH¹¸»ö\x01H9çüÏÿ7s\bi\x11åi·Á\x117d-0yÆBèÄ"9\x06CVòå\x19tM³¯\x15«j=\x01ê\a0}.C:L[àSh1q\x04\x11óq\x04\x1e{JYx\x04!Í\x18w_\x1c\x1e\x1c\x1e"¥\x04æù\x05\x04JøÔÎ\vgY¡xØ\b|0\b<ZEºA©\x16{ì¤/ø2Z
Ø\x1eÿÅãgW\x14¸\fTIu÷\x11 «]æÉ-$±ÈR \x19H`=iðʾIú`!S}EðLÄaÈDÎ|åªÎ<nïºcþWG`Þßj¬Q«ûÆL"Ô*`[gã´Jd±à\x1d>"iIÆÝ /H©\x132o°ê§ kvk×\r
h
tÑ\vA£(ß[ü/Ä8Éà|RÓªg2¦2okýz£!\a\x1f;+\x1a\x16và\fe¬%IÓ'ÆÉ)<Î×bÕ9iÆÆn\x17QNá\x12\v[d¼iÿ\x15ç/
o\x1f5s¤N\x17»-\x16Åâ%7L\x1fú,ÿ"7 ;\x02\x1eóF"Ï2ww¿>5Ný>XËæü$êê :[llU
Ô¡ u0È\x02Ú\x1f=w\0Ýø °(§C\x161Á\x13\x13i]g&êhâÏ«6ú\x17%4\vrÊV¶\x1fLx`îÇa<ĸè\v÷\x18\rú7\x13ûäæ;\x01£ý+\x01?$àÃNj¤²·\x0eÙ¶·ºµÖJcn¥¬é^[¼ôýíò-sñ;¡¼pêþÖz\x13Ï-â^\x19²ñ}=\rÚ64H\x04i¸ñ½7rU\õ¡\x01:ùe\x17¶BÛó\x04KÓÒ,ÝîÔ§§[ÙÈ®W0ñó{avÉ¢\x10©Ed\x14bwl\x13±Ek\x19ê»^[dÙ&7í®$K:ó1ÅFs,¬\x17f*\x10x]¹XG,¦ô÷\x15£®à5+ñÖukôºmi\rÆ\x0eDJ\x7fHi?"UµHif¤O¿Tf$\x1c\x0f+\x06ªë\bOþ\x0egbƼbO7ßS&ȼîÎÙÜcÎ\x13IvªçüÔ)y\a[ÎØ\võ«ö5·åqÞ\vã\x13÷B©ê
çíÜ\v÷ËöBÛ¹\x17þ'î
ZÕ\vwg.$ùËöb'.þ\0PK\x01\x02\x14\v\x14\0\0\0\b\0çl/épLI\x03\0\0H\x10\0\0\r\0\0\0\0\0\0\0\x01\0 \0\0\0\0\0\0\0lspci_241.TXTPK\x05\x06\0\0\0\0\x01\0\x01\0;\0\0\0t\x03\0\0\0\0
[-- Attachment #4: conf.TXT --]
[-- Type: text/plain, Size: 0 bytes --]
^ permalink raw reply [flat|nested] 17+ messages in thread
* Latest 2.4 IA64 Baseline (Bjorn) + Latest ACPI testing report
2003-11-12 11:22 Latest 2.4 IA64 Baseline (Bjorn) + Latest ACPI testing report Yu, Luming
@ 2003-11-19 13:08 ` Yu, Luming
2003-11-20 0:33 ` Bjorn Helgaas
` (14 subsequent siblings)
15 siblings, 0 replies; 17+ messages in thread
From: Yu, Luming @ 2003-11-19 13:08 UTC (permalink / raw)
To: linux-ia64
[-- Attachment #1: Type: text/plain, Size: 2669 bytes --]
ACPI Test Report for 2.4 ia64 kernel + latest ACPI
=========================
Hardware Configuration:
-----------------------
System Name: ACPI-LION
System Type: 4 way 800M Itanium, Lion
M/B revision: N/A
Processor version: N/A
Firmware Versions: N/A
I/O configuration summary:
QLogic QLA12160, Seagate ST39205LC boot drive
IDE floppy and CDROM
Serial console
PS/2 keyboard and mouse
USB mouse
Ethernet Pro 100
Software Configuration:
-----------------------
1.Bk pull form http://lia64.bkbits.net/linux-ia64-2.4 on 11/19 (Shanghai time)
2.Bk pull from http://linux-acpi.bkbits.net/linux-acpi-test-2.4.22 on 11/19 (Shanhai time)
Successfully automerged by bk without out any manually work.
3. patch from http://bugzilla.kernel.org/show_bug.cgi?id=1533 to solve kernel unaligned access when pressing power button
ACPI Features Tested: (prioritized).
--------------------
1. Boot off SCSI disk tested ok
2. serial console tested ok
3. PS/2 keyboard tested ok
4. ATI (run X window system) tested ok
5. PS/2 mouse tested ok
6. USB mouse Doesn't work
7. NIC (eg. Ping or ftp) tested ok
8. IDE (eg. r/w floppy or CDROM) tested ok
9. SCI (eg. Press power button) tested ok
10. Soft Power off tested ok
CPU0 CPU1 CPU2 CPU3
32: 617 6 1 0 IO-SAPIC-edge keyboard
33: 317 3 0 1 IO-SAPIC-edge ide1
34: 36 0 0 2 IO-SAPIC-edge ide0
36: 460 4 0 0 IO-SAPIC-edge PS/2 Mouse
39: 4 0 0 0 IO-SAPIC-level acpi
44: 9 0 0 0 IO-SAPIC-edge serial
45: 16 1 0 0 IO-SAPIC-edge serial
48: 51 1 0 0 IO-SAPIC-level usb-uhci
49: 270 7 4 0 IO-SAPIC-level eth0
51: 5620 314 33 4 IO-SAPIC-level qla1280
239: 231404 230443 230141 220616 LSAPIC timer
254: 15752 15328 15507 15285 LSAPIC IPI
NMI: 0 0 0 0
ERR: 0
Problems:
1. USB mouse doesn't work. ( I need to verify config file)
2.PCI: no interrupt route for 00:00:03 pin B
3.alloc 0x0-0xcf7 from PCI IO for PCI Bus 00:00 failed (Known issue)
4.> 1. After login, the dmesg return below message. (Known issue)
> ...
> ifup-post(864): <sc1236(0,1008,0,20000000000d5b20)>
<<conf.TXT>> <<dmesg.24.ZIP>> <<lspci.24.ZIP>>
Thanks,
Luming
[-- Attachment #2: conf.TXT --]
[-- Type: text/plain, Size: 0 bytes --]
[-- Attachment #3: dmesg.24.ZIP --]
[-- Type: application/x-zip-compressed, Size: 5108 bytes --]
[-- Attachment #4: lspci.24.ZIP --]
[-- Type: application/x-zip-compressed, Size: 1201 bytes --]
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: Latest 2.4 IA64 Baseline (Bjorn) + Latest ACPI testing report
2003-11-12 11:22 Latest 2.4 IA64 Baseline (Bjorn) + Latest ACPI testing report Yu, Luming
2003-11-19 13:08 ` Yu, Luming
@ 2003-11-20 0:33 ` Bjorn Helgaas
2003-11-20 3:28 ` Matthew Wilcox
` (13 subsequent siblings)
15 siblings, 0 replies; 17+ messages in thread
From: Bjorn Helgaas @ 2003-11-20 0:33 UTC (permalink / raw)
To: linux-ia64
On Wednesday 19 November 2003 6:08 am, Yu, Luming wrote:
Thanks for doing this work and posting the results.
> 1. USB mouse doesn't work. ( I need to verify config file)
The driver seems to know about the device:
Product: USB Wheel Mouse
host/usb-uhci.c: interrupt, status 3, frame# 1415
input: USB HID v1.00 Mouse [04fc:0003] on usb1:2.0
although it looks unhappy about it. The "interrupt, status 3" message
seems to be a warning about an interrupt when the driver didn't expect
it. I wonder whether this can be reproduced on an x86 box?
You could also try the CONFIG_USB_UHCI_ALT driver instead of the
CONFIG_USB_UHCI one you seem to be using, and see whether that
makes a difference.
> 2.PCI: no interrupt route for 00:00:03 pin B
You say this is a known issue for 2.6, but I can't find any details
or discussion about it. It looks to me like a firmware problem.
The function at 00:00:03.3 (2.6 nicely tells us which function)
claims it's using INTB, but ACPI isn't telling us which GSI that
corresponds to. Can you ask your BIOS guys about this?
> 3.alloc 0x0-0xcf7 from PCI IO for PCI Bus 00:00 failed (Known issue)
I poked at this again. The reason this fails is because the
VGA console driver starts up very early and allocates ports
0x3c0-0x3df. It would be nice if we could figure out a way
to allocate those ports later, after the PCI bridge has been
discovered, so we get the ioport resources correct, but I
don't know a reasonable way to do that.
> 4.> 1. After login, the dmesg return below message. (Known issue)
> > ifup-post(864): <sc1236(0,1008,0,20000000000d5b20)>
I just added a patch to remove these messages, so this should
be fixed.
> <<conf.TXT>> <<dmesg.24.ZIP>> <<lspci.24.ZIP>>
The conf.TXT attachment was empty.
Bjorn
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: Latest 2.4 IA64 Baseline (Bjorn) + Latest ACPI testing report
2003-11-12 11:22 Latest 2.4 IA64 Baseline (Bjorn) + Latest ACPI testing report Yu, Luming
2003-11-19 13:08 ` Yu, Luming
2003-11-20 0:33 ` Bjorn Helgaas
@ 2003-11-20 3:28 ` Matthew Wilcox
2003-11-20 17:09 ` Bjorn Helgaas
` (12 subsequent siblings)
15 siblings, 0 replies; 17+ messages in thread
From: Matthew Wilcox @ 2003-11-20 3:28 UTC (permalink / raw)
To: linux-ia64
On Wed, Nov 19, 2003 at 05:33:20PM -0700, Bjorn Helgaas wrote:
> > 3.alloc 0x0-0xcf7 from PCI IO for PCI Bus 00:00 failed (Known issue)
>
> I poked at this again. The reason this fails is because the
> VGA console driver starts up very early and allocates ports
> 0x3c0-0x3df. It would be nice if we could figure out a way
> to allocate those ports later, after the PCI bridge has been
> discovered, so we get the ioport resources correct, but I
> don't know a reasonable way to do that.
Ah, I introduced a mechanism for doing the opposite of this in 2.6-test8
(it's credited to Ben Herrenschmidt since he did the debugging and got
it merged). If you call insert_resource() instead of request_resource(),
conflicting resources get the new resource added as their parent.
I knew this was going to be handy for more than just PPC ;-)
--
"It's not Hollywood. War is real, war is primarily not about defeat or
victory, it is about death. I've seen thousands and thousands of dead bodies.
Do you think I want to have an academic debate on this subject?" -- Robert Fisk
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: Latest 2.4 IA64 Baseline (Bjorn) + Latest ACPI testing report
2003-11-12 11:22 Latest 2.4 IA64 Baseline (Bjorn) + Latest ACPI testing report Yu, Luming
` (2 preceding siblings ...)
2003-11-20 3:28 ` Matthew Wilcox
@ 2003-11-20 17:09 ` Bjorn Helgaas
2003-11-20 17:29 ` Luck, Tony
` (11 subsequent siblings)
15 siblings, 0 replies; 17+ messages in thread
From: Bjorn Helgaas @ 2003-11-20 17:09 UTC (permalink / raw)
To: linux-ia64
On Wednesday 19 November 2003 8:28 pm, Matthew Wilcox wrote:
> On Wed, Nov 19, 2003 at 05:33:20PM -0700, Bjorn Helgaas wrote:
> > > 3.alloc 0x0-0xcf7 from PCI IO for PCI Bus 00:00 failed (Known issue)
> >
> > I poked at this again. The reason this fails is because the
> > VGA console driver starts up very early and allocates ports
> > 0x3c0-0x3df. It would be nice if we could figure out a way
> > to allocate those ports later, after the PCI bridge has been
> > discovered, so we get the ioport resources correct, but I
> > don't know a reasonable way to do that.
>
> Ah, I introduced a mechanism for doing the opposite of this in 2.6-test8
> (it's credited to Ben Herrenschmidt since he did the debugging and got
> it merged). If you call insert_resource() instead of request_resource(),
> conflicting resources get the new resource added as their parent.
>
> I knew this was going to be handy for more than just PPC ;-)
Nice! I'll send a patch to Tony for 2.6.1.
^ permalink raw reply [flat|nested] 17+ messages in thread
* RE: Latest 2.4 IA64 Baseline (Bjorn) + Latest ACPI testing report
2003-11-12 11:22 Latest 2.4 IA64 Baseline (Bjorn) + Latest ACPI testing report Yu, Luming
` (3 preceding siblings ...)
2003-11-20 17:09 ` Bjorn Helgaas
@ 2003-11-20 17:29 ` Luck, Tony
2003-12-10 10:29 ` Yu, Luming
` (10 subsequent siblings)
15 siblings, 0 replies; 17+ messages in thread
From: Luck, Tony @ 2003-11-20 17:29 UTC (permalink / raw)
To: linux-ia64
> Nice! I'll send a patch to Tony for 2.6.1.
Isn't the plan that David will keep running 2.6
until Linus opens 2.7? Won't there be a few "dot"
releases in 2.6 before that happens?
-Tony
^ permalink raw reply [flat|nested] 17+ messages in thread
* RE: Latest 2.4 IA64 Baseline (Bjorn) + Latest ACPI testing report
2003-11-12 11:22 Latest 2.4 IA64 Baseline (Bjorn) + Latest ACPI testing report Yu, Luming
` (4 preceding siblings ...)
2003-11-20 17:29 ` Luck, Tony
@ 2003-12-10 10:29 ` Yu, Luming
2003-12-11 0:34 ` Bjorn Helgaas
` (9 subsequent siblings)
15 siblings, 0 replies; 17+ messages in thread
From: Yu, Luming @ 2003-12-10 10:29 UTC (permalink / raw)
To: linux-ia64
>> 1. USB mouse doesn't work. ( I need to verify config file)
>
>The driver seems to know about the device:
>
> Product: USB Wheel Mouse
> host/usb-uhci.c: interrupt, status 3, frame# 1415
> input: USB HID v1.00 Mouse [04fc:0003] on usb1:2.0
>
>although it looks unhappy about it. The "interrupt, status 3" message
>seems to be a warning about an interrupt when the driver didn't expect
>it. I wonder whether this can be reproduced on an x86 box?
>
>You could also try the CONFIG_USB_UHCI_ALT driver instead of the
>CONFIG_USB_UHCI one you seem to be using, and see whether that
>makes a difference.
USB mouse still doesn't work on lion, but it works on tiger, and this kind of symptom cannot be reproduced on ia32 box.
>> 2.PCI: no interrupt route for 00:00:03 pin B
>You say this is a known issue for 2.6, but I can't find any details
>or discussion about it. It looks to me like a firmware problem.
>The function at 00:00:03.3 (2.6 nicely tells us which function)
>claims it's using INTB, but ACPI isn't telling us which GSI that
>corresponds to. Can you ask your BIOS guys about this?
There is only 1 PRT entry in DSDT for bus 0, slot 3, but it is for pin D not for pin B . And the error message reflect that fact.
This error is for device 00:03.3 --SMBus. I don't know how to test that device.
Actually 2.6 will call acpi_pci_irq_derive try to derive IRQ from parent bridge, if nothing found from PRT List, But 2.4 will not do that.
Actually, acpi_pci_irq_enable will not be called in 2.4. Maybe this is a issue. But it will not help this case.
Package (0x04)
{
0x0003FFFF,
0x03,
0x00,
0x32
},
>> 3.alloc 0x0-0xcf7 from PCI IO for PCI Bus 00:00 failed (Known issue)
>I poked at this again. The reason this fails is because the
>VGA console driver starts up very early and allocates ports
>0x3c0-0x3df. It would be nice if we could figure out a way
>to allocate those ports later, after the PCI bridge has been
>discovered, so we get the ioport resources correct, but I
>don't know a reasonable way to do that.
Since VGA console driver faile to allocate that port range, why it still can work?
Does it mean 0x3c0-0x3df is inessential to VGA console driver.
> 4.> 1. After login, the dmesg return below message. (Known issue)
> > ifup-post(864): <sc1236(0,1008,0,20000000000d5b20)>
>I just added a patch to remove these messages, so this should
>be fixed.
It's gone!
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: Latest 2.4 IA64 Baseline (Bjorn) + Latest ACPI testing report
2003-11-12 11:22 Latest 2.4 IA64 Baseline (Bjorn) + Latest ACPI testing report Yu, Luming
` (5 preceding siblings ...)
2003-12-10 10:29 ` Yu, Luming
@ 2003-12-11 0:34 ` Bjorn Helgaas
2003-12-11 19:32 ` Bjorn Helgaas
` (8 subsequent siblings)
15 siblings, 0 replies; 17+ messages in thread
From: Bjorn Helgaas @ 2003-12-11 0:34 UTC (permalink / raw)
To: linux-ia64
On Wednesday 10 December 2003 3:29 am, Yu, Luming wrote:
> >> 2.PCI: no interrupt route for 00:00:03 pin B
>
> >You say this is a known issue for 2.6, but I can't find any details
> >or discussion about it. It looks to me like a firmware problem.
> >The function at 00:00:03.3 (2.6 nicely tells us which function)
> >claims it's using INTB, but ACPI isn't telling us which GSI that
> >corresponds to. Can you ask your BIOS guys about this?
>
> There is only 1 PRT entry in DSDT for bus 0, slot 3, but it is for pin D not for pin B . And the error message reflect that fact.
> This error is for device 00:03.3 --SMBus. I don't know how to test that device.
> Actually 2.6 will call acpi_pci_irq_derive try to derive IRQ from parent bridge, if nothing found from PRT List, But 2.4 will not do that.
But your testing report from 2.6 shows the same message. Did you
get any response from your BIOS guys?
> >> 3.alloc 0x0-0xcf7 from PCI IO for PCI Bus 00:00 failed (Known issue)
>
> >I poked at this again. The reason this fails is because the
> >VGA console driver starts up very early and allocates ports
> >0x3c0-0x3df. It would be nice if we could figure out a way
> >to allocate those ports later, after the PCI bridge has been
> >discovered, so we get the ioport resources correct, but I
> >don't know a reasonable way to do that.
>
> Since VGA console driver faile to allocate that port range, why it still can work?
> Does it mean 0x3c0-0x3df is inessential to VGA console driver.
No, I think those ports are essential. The driver just uses them,
even if the allocation fails. I have a 2.6 patch that cleans this
up. It doesn't change any functionality; it just gets rid of the
message and makes /proc/ioports more correct. I'll submit it as
soon as it makes sense to put non-critical changes into 2.6.
Bjorn
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: Latest 2.4 IA64 Baseline (Bjorn) + Latest ACPI testing report
2003-11-12 11:22 Latest 2.4 IA64 Baseline (Bjorn) + Latest ACPI testing report Yu, Luming
` (6 preceding siblings ...)
2003-12-11 0:34 ` Bjorn Helgaas
@ 2003-12-11 19:32 ` Bjorn Helgaas
2003-12-16 9:37 ` Yu, Luming
` (7 subsequent siblings)
15 siblings, 0 replies; 17+ messages in thread
From: Bjorn Helgaas @ 2003-12-11 19:32 UTC (permalink / raw)
To: linux-ia64
On Wednesday 10 December 2003 5:34 pm, I wrote:
> > >> 3.alloc 0x0-0xcf7 from PCI IO for PCI Bus 00:00 failed (Known issue)
> >
> > Since VGA console driver faile to allocate that port range, why it still can work?
> > Does it mean 0x3c0-0x3df is inessential to VGA console driver.
>
> No, I think those ports are essential. The driver just uses them,
> even if the allocation fails. I have a 2.6 patch that cleans this
> up. It doesn't change any functionality; it just gets rid of the
> message and makes /proc/ioports more correct. I'll submit it as
> soon as it makes sense to put non-critical changes into 2.6.
I didn't answer this quite right. The VGA driver allocates ports
0x3c0-0x3df early, and that allocation succeeds. Later, we
discover the PCI root bridges, and try to allocate the port ranges
for each. It's the PCI root bridge allocation that fails, because
it's trying to allocate a range that includes the VGA ports.
So we end up with something like this in /proc/ioports (this is a
made-up example, but same idea):
000003c0-000003df : vga+
00004000-00009fff : PCI Bus 00:00
00004000-000040ff : sym53c8xx
00004100-000041ff : sym53c8xx
when we should have this:
00000000-00000cf7 : PCI Bus 00:00
000003c0-000003df : vga+
00004000-00009fff : PCI Bus 00:00
00004000-000040ff : sym53c8xx
00004100-000041ff : sym53c8xx
The patch just changes the PCI root bridge allocation so that
instead of failing if part of the range has already been allocated,
it inserts a new range up one level, so it encloses the previous
VGA allocation.
Bjorn
^ permalink raw reply [flat|nested] 17+ messages in thread
* RE: Latest 2.4 IA64 Baseline (Bjorn) + Latest ACPI testing report
2003-11-12 11:22 Latest 2.4 IA64 Baseline (Bjorn) + Latest ACPI testing report Yu, Luming
` (7 preceding siblings ...)
2003-12-11 19:32 ` Bjorn Helgaas
@ 2003-12-16 9:37 ` Yu, Luming
2003-12-16 12:17 ` Matthew Wilcox
` (6 subsequent siblings)
15 siblings, 0 replies; 17+ messages in thread
From: Yu, Luming @ 2003-12-16 9:37 UTC (permalink / raw)
To: linux-ia64
>> > >> 3.alloc 0x0-0xcf7 from PCI IO for PCI Bus 00:00 failed (Known issue)
>> >
>> > Since VGA console driver faile to allocate that port range, why it still can work?
>> > Does it mean 0x3c0-0x3df is inessential to VGA console driver.
>>
>> No, I think those ports are essential. The driver just uses them,
>> even if the allocation fails. I have a 2.6 patch that cleans this
>> up. It doesn't change any functionality; it just gets rid of the
>> message and makes /proc/ioports more correct. I'll submit it as
>> soon as it makes sense to put non-critical changes into 2.6.
>I didn't answer this quite right. The VGA driver allocates ports
>0x3c0-0x3df early, and that allocation succeeds. Later, we
>discover the PCI root bridges, and try to allocate the port ranges
>for each. It's the PCI root bridge allocation that fails, because
>it's trying to allocate a range that includes the VGA ports.
>So we end up with something like this in /proc/ioports (this is a
>made-up example, but same idea):
>
> 000003c0-000003df : vga+
> 00004000-00009fff : PCI Bus 00:00
> 00004000-000040ff : sym53c8xx
> 00004100-000041ff : sym53c8xx
>
>when we should have this:
>
> 00000000-00000cf7 : PCI Bus 00:00
> 000003c0-000003df : vga+
> 00004000-00009fff : PCI Bus 00:00
> 00004000-000040ff : sym53c8xx
> 00004100-000041ff : sym53c8xx
>
>The patch just changes the PCI root bridge allocation so that
>instead of failing if part of the range has already been allocated,
>it inserts a new range up one level, so it encloses the previous
>VGA allocation.
Could you let me see what are you patch doing.
I think "To bus device, resources returned from _CRS method means that bus device will
supply those resouces to its children devices. So it's unreasonable to call
request_resource for them."
I have a patch for above statement. Please take http://bugzilla.kernel.org/show_bug.cgi?id\x1685 a look.
Thanks,
Luming
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: Latest 2.4 IA64 Baseline (Bjorn) + Latest ACPI testing report
2003-11-12 11:22 Latest 2.4 IA64 Baseline (Bjorn) + Latest ACPI testing report Yu, Luming
` (8 preceding siblings ...)
2003-12-16 9:37 ` Yu, Luming
@ 2003-12-16 12:17 ` Matthew Wilcox
2003-12-16 16:23 ` Bjorn Helgaas
` (5 subsequent siblings)
15 siblings, 0 replies; 17+ messages in thread
From: Matthew Wilcox @ 2003-12-16 12:17 UTC (permalink / raw)
To: linux-ia64
On Tue, Dec 16, 2003 at 05:37:35PM +0800, Yu, Luming wrote:
> >So we end up with something like this in /proc/ioports (this is a
> >made-up example, but same idea):
> >
> > 000003c0-000003df : vga+
> > 00004000-00009fff : PCI Bus 00:00
> > 00004000-000040ff : sym53c8xx
> > 00004100-000041ff : sym53c8xx
> >
> >when we should have this:
> >
> > 00000000-00000cf7 : PCI Bus 00:00
> > 000003c0-000003df : vga+
> > 00004000-00009fff : PCI Bus 00:00
> > 00004000-000040ff : sym53c8xx
> > 00004100-000041ff : sym53c8xx
> >
> >The patch just changes the PCI root bridge allocation so that
> >instead of failing if part of the range has already been allocated,
> >it inserts a new range up one level, so it encloses the previous
> >VGA allocation.
>
> Could you let me see what are you patch doing.
I haven't seen Bjorn's patch yet, but it'll be something like:
--- arch/ia64/pci/pci.c 12 Aug 2003 19:10:49 -0000 1.3
+++ arch/ia64/pci/pci.c 16 Dec 2003 12:13:53 -0000
@@ -153,7 +153,7 @@ alloc_resource (char *name, struct resou
res->end = end;
res->flags = flags;
- if (request_resource(root, res))
+ if (insert_resource(root, res))
return -EBUSY;
return 0;
> I think "To bus device, resources returned from _CRS method means that bus device will
> supply those resouces to its children devices. So it's unreasonable to call
> request_resource for them."
That's faulty logic. Resources can either be busy (used at the leaf
by a driver) or merely containers for other resources (as they are in
this case).
> I have a patch for above statement. Please take http://bugzilla.kernel.org/show_bug.cgi?id\x1685 a look.
No. That will lose the information about which areas are under which
busses, which is rather useful information to have. For example, when
PCI needs to allocate resources, if we don't partition the root resource
amongst the child busses, we could inadvertently allocate resources that
straddle two PCI busses, and that just won't work.
--
"Next the statesmen will invent cheap lies, putting the blame upon
the nation that is attacked, and every man will be glad of those
conscience-soothing falsities, and will diligently study them, and refuse
to examine any refutations of them; and thus he will by and by convince
himself that the war is just, and will thank God for the better sleep
he enjoys after this process of grotesque self-deception." -- Mark Twain
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: Latest 2.4 IA64 Baseline (Bjorn) + Latest ACPI testing report
2003-11-12 11:22 Latest 2.4 IA64 Baseline (Bjorn) + Latest ACPI testing report Yu, Luming
` (9 preceding siblings ...)
2003-12-16 12:17 ` Matthew Wilcox
@ 2003-12-16 16:23 ` Bjorn Helgaas
2003-12-17 2:54 ` Yu, Luming
` (4 subsequent siblings)
15 siblings, 0 replies; 17+ messages in thread
From: Bjorn Helgaas @ 2003-12-16 16:23 UTC (permalink / raw)
To: linux-ia64
On Tuesday 16 December 2003 5:17 am, Matthew Wilcox wrote:
> On Tue, Dec 16, 2003 at 05:37:35PM +0800, Yu, Luming wrote:
> > Could you let me see what are you patch doing.
>
> I haven't seen Bjorn's patch yet, but it'll be something like:
>
> --- arch/ia64/pci/pci.c 12 Aug 2003 19:10:49 -0000 1.3
> +++ arch/ia64/pci/pci.c 16 Dec 2003 12:13:53 -0000
> @@ -153,7 +153,7 @@ alloc_resource (char *name, struct resou
> res->end = end;
> res->flags = flags;
>
> - if (request_resource(root, res))
> + if (insert_resource(root, res))
> return -EBUSY;
>
> return 0;
Yup, that's exactly the patch.
And I agree with Matthew about preferring this over your patch.
Did you look at /proc/iomem with and without your patch? The
value of keeping the request_resource() (or insert_resource())
should be obvious.
Bjorn
^ permalink raw reply [flat|nested] 17+ messages in thread
* RE: Latest 2.4 IA64 Baseline (Bjorn) + Latest ACPI testing report
2003-11-12 11:22 Latest 2.4 IA64 Baseline (Bjorn) + Latest ACPI testing report Yu, Luming
` (10 preceding siblings ...)
2003-12-16 16:23 ` Bjorn Helgaas
@ 2003-12-17 2:54 ` Yu, Luming
2003-12-17 3:07 ` Yu, Luming
` (3 subsequent siblings)
15 siblings, 0 replies; 17+ messages in thread
From: Yu, Luming @ 2003-12-17 2:54 UTC (permalink / raw)
To: linux-ia64
>> I think "To bus device, resources returned from _CRS method means that bus device will
>> supply those resouces to its children devices. So it's unreasonable to call
>> request_resource for them."
>That's faulty logic. Resources can either be busy (used at the leaf
>by a driver) or merely containers for other resources (as they are in
>this case).
My concern is that if a device driver want to request a resource,
but that resource has been allocated by bus device (which supply this resources to its children devices)
then -EBUSY get returned. Maybe device driver can
ignore this error. But how to detect a real resource conflict with other device (another resource consumer)? All of them return -EBUSY.
>> I have a patch for above statement. Please take http://bugzilla.kernel.org/show_bug.cgi?id\x1685 a look.
>No. That will lose the information about which areas are under which
>busses, which is rather useful information to have.
Yes, I agree.
> For example, when
>PCI needs to allocate resources, if we don't partition the root resource
>amongst the child busses, we could inadvertently allocate resources that
>straddle two PCI busses, and that just won't work.
All resources info returned from _CRS has been saved in pci_root_info->controller->window. Is it enough?
Thanks,
Luming
^ permalink raw reply [flat|nested] 17+ messages in thread
* RE: Latest 2.4 IA64 Baseline (Bjorn) + Latest ACPI testing report
2003-11-12 11:22 Latest 2.4 IA64 Baseline (Bjorn) + Latest ACPI testing report Yu, Luming
` (11 preceding siblings ...)
2003-12-17 2:54 ` Yu, Luming
@ 2003-12-17 3:07 ` Yu, Luming
2003-12-17 12:23 ` Matthew Wilcox
` (2 subsequent siblings)
15 siblings, 0 replies; 17+ messages in thread
From: Yu, Luming @ 2003-12-17 3:07 UTC (permalink / raw)
To: linux-ia64
>Did you look at /proc/iomem with and without your patch? The
>value of keeping the request_resource() (or insert_resource())
>should be obvious.
My patch just eliminate resources provider from resource tree.
Maybe it's not good, but it will not confuse device driver.
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: Latest 2.4 IA64 Baseline (Bjorn) + Latest ACPI testing report
2003-11-12 11:22 Latest 2.4 IA64 Baseline (Bjorn) + Latest ACPI testing report Yu, Luming
` (12 preceding siblings ...)
2003-12-17 3:07 ` Yu, Luming
@ 2003-12-17 12:23 ` Matthew Wilcox
2003-12-18 2:42 ` Yu, Luming
2003-12-18 12:14 ` Matthew Wilcox
15 siblings, 0 replies; 17+ messages in thread
From: Matthew Wilcox @ 2003-12-17 12:23 UTC (permalink / raw)
To: linux-ia64
On Wed, Dec 17, 2003 at 10:54:09AM +0800, Yu, Luming wrote:
> >> I think "To bus device, resources returned from _CRS method means that bus device will
> >> supply those resouces to its children devices. So it's unreasonable to call
> >> request_resource for them."
>
> >That's faulty logic. Resources can either be busy (used at the leaf
> >by a driver) or merely containers for other resources (as they are in
> >this case).
>
> My concern is that if a device driver want to request a resource,
> but that resource has been allocated by bus device (which supply this resources to its children devices)
> then -EBUSY get returned. Maybe device driver can
> ignore this error. But how to detect a real resource conflict with other device (another resource consumer)? All of them return -EBUSY.
No, you don't understand how resources work. When device drivers request
them, they're marked as busy. When busses claim them, they're marked
as not-busy. Take a look at __request_region in kernel/resource.c.
It checks IORESOURCE_BUSY to see whether it can have the new resource
as a child of the existing one.
> > For example, when
> >PCI needs to allocate resources, if we don't partition the root resource
> >amongst the child busses, we could inadvertently allocate resources that
> >straddle two PCI busses, and that just won't work.
>
> All resources info returned from _CRS has been saved in pci_root_info->controller->window. Is it enough?
No, the generic PCI code knows nothing about this ACPI-specific
information. It relies on the resources being set up correctly.
--
"Next the statesmen will invent cheap lies, putting the blame upon
the nation that is attacked, and every man will be glad of those
conscience-soothing falsities, and will diligently study them, and refuse
to examine any refutations of them; and thus he will by and by convince
himself that the war is just, and will thank God for the better sleep
he enjoys after this process of grotesque self-deception." -- Mark Twain
^ permalink raw reply [flat|nested] 17+ messages in thread
* RE: Latest 2.4 IA64 Baseline (Bjorn) + Latest ACPI testing report
2003-11-12 11:22 Latest 2.4 IA64 Baseline (Bjorn) + Latest ACPI testing report Yu, Luming
` (13 preceding siblings ...)
2003-12-17 12:23 ` Matthew Wilcox
@ 2003-12-18 2:42 ` Yu, Luming
2003-12-18 12:14 ` Matthew Wilcox
15 siblings, 0 replies; 17+ messages in thread
From: Yu, Luming @ 2003-12-18 2:42 UTC (permalink / raw)
To: linux-ia64
>> >> I think "To bus device, resources returned from _CRS method means that bus device will
>> >> supply those resouces to its children devices. So it's unreasonable to call
>> >> request_resource for them."
>>
>> >That's faulty logic. Resources can either be busy (used at the leaf
>> >by a driver) or merely containers for other resources (as they are in
>> >this case).
>>
>> My concern is that if a device driver want to request a resource,
>> but that resource has been allocated by bus device (which supply this resources to its children devices)
>> then -EBUSY get returned. Maybe device driver can
>> ignore this error. But how to detect a real resource conflict with other device (another resource consumer)? All of them return -EBUSY.
>
>No, you don't understand how resources work. When device drivers request
>them, they're marked as busy. When busses claim them, they're marked
>as not-busy.
I didn't find the busy flag for resources you mentioned is being used in request_resource function.
Actually, based on whether there is a resource conflict happened, request_resource determine whether return -EBUSY . (2.6/kernel/resources.c)
Does device drivers use different function to request resources with bus device? If they are using same function without any additional information
, how could request_resource understand this is busses claiming resources, that is device requesting resources?
According to comments of code, insert_resource is equivalent of request_resource when no conflict happens. If a conflict happens, and the
conflicting resources entirely fit within the range of the new resource, then the new resource is inserted and the conflicting resources become
childs of the new resource.
Obviously, if device drivers want to consume some resources, then they cannot use insert_resource, because insert_resource will not report conflict.
If they use request_resource, and that resources has been claimed by bus devices, then conflict will get returned.
To anyone using request_resource to consume some resources, how to handle conflict situation? If this conflict is between resources supplier (BUS device)
and resources consumer (Device ) , then device driver should ignore this conflict, because it's not a true conflict.
If this conflict is betwwen resources consumer (Device) and resources consumer (another device), then the device driver should think of it as a serious bug.
But when conflict happend, the device driver have no idea to tell with who it is conflicted. (Resource consumer, or Resource supplier)
Do you have any idea?
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: Latest 2.4 IA64 Baseline (Bjorn) + Latest ACPI testing report
2003-11-12 11:22 Latest 2.4 IA64 Baseline (Bjorn) + Latest ACPI testing report Yu, Luming
` (14 preceding siblings ...)
2003-12-18 2:42 ` Yu, Luming
@ 2003-12-18 12:14 ` Matthew Wilcox
15 siblings, 0 replies; 17+ messages in thread
From: Matthew Wilcox @ 2003-12-18 12:14 UTC (permalink / raw)
To: linux-ia64
On Thu, Dec 18, 2003 at 10:42:04AM +0800, Yu, Luming wrote:
> >No, you don't understand how resources work. When device drivers request
> >them, they're marked as busy. When busses claim them, they're marked
> >as not-busy.
>
> I didn't find the busy flag for resources you mentioned is being used
> in request_resource function.
That's right, it's used in request_region().
> Actually, based on whether there is a resource conflict happened,
> request_resource determine whether return -EBUSY . (2.6/kernel/resources.c)
request_resource() is used when you know what the parent resource is.
It's assumed to be not-busy; all it's checking for are existing children
of the parent resource which would conflict.
> According to comments of code, insert_resource is equivalent of request_resource when no conflict happens. If a conflict happens, and the
> conflicting resources entirely fit within the range of the new resource, then the new resource is inserted and the conflicting resources become
> childs of the new resource.
Yes, I wrote that comment ;-)
> Obviously, if device drivers want to consume some resources, then they cannot use insert_resource, because insert_resource will not report conflict.
Right, device drivers wouldn't use either request_resource or insert_resource.
They're used by the bus drivers which know a lot more about the system
topology than device drivers (which in general do not care).
> To anyone using request_resource to consume some resources, how to handle
> conflict situation? If this conflict is between resources supplier (BUS
> device) and resources consumer (Device ) , then device driver should ignore
> this conflict, because it's not a true conflict.
Drivers never see a conflict because they use request_region() which handles
the resource hierarchy for them.
Look at the patch I sent earlier in the thread. We change the bus driver
to call insert_resource; we don't change the vga driver at all.
--
"Next the statesmen will invent cheap lies, putting the blame upon
the nation that is attacked, and every man will be glad of those
conscience-soothing falsities, and will diligently study them, and refuse
to examine any refutations of them; and thus he will by and by convince
himself that the war is just, and will thank God for the better sleep
he enjoys after this process of grotesque self-deception." -- Mark Twain
^ permalink raw reply [flat|nested] 17+ messages in thread
end of thread, other threads:[~2003-12-18 12:14 UTC | newest]
Thread overview: 17+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2003-11-12 11:22 Latest 2.4 IA64 Baseline (Bjorn) + Latest ACPI testing report Yu, Luming
2003-11-19 13:08 ` Yu, Luming
2003-11-20 0:33 ` Bjorn Helgaas
2003-11-20 3:28 ` Matthew Wilcox
2003-11-20 17:09 ` Bjorn Helgaas
2003-11-20 17:29 ` Luck, Tony
2003-12-10 10:29 ` Yu, Luming
2003-12-11 0:34 ` Bjorn Helgaas
2003-12-11 19:32 ` Bjorn Helgaas
2003-12-16 9:37 ` Yu, Luming
2003-12-16 12:17 ` Matthew Wilcox
2003-12-16 16:23 ` Bjorn Helgaas
2003-12-17 2:54 ` Yu, Luming
2003-12-17 3:07 ` Yu, Luming
2003-12-17 12:23 ` Matthew Wilcox
2003-12-18 2:42 ` Yu, Luming
2003-12-18 12:14 ` Matthew Wilcox
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox