* RE: Re: [Lhms-devel] [PATCH 1/1] patch to fix acpi_memhotplug.c
@ 2005-11-18 20:51 Moore, Robert
[not found] ` <971FCB6690CD0E4898387DBF7552B90E0378BEE7-sBd4vmA9Se5Qxe9IK+vIArfspsVTdybXVpNB7YpNyf8@public.gmane.org>
0 siblings, 1 reply; 20+ messages in thread
From: Moore, Robert @ 2005-11-18 20:51 UTC (permalink / raw)
To: Moore, Robert, KAMEZAWA Hiroyuki, keith
Cc: Yasunori Goto, Brown, Len, S, Naveen B, acpi-devel,
external hotplug mem list, Tolentino, Matthew E
FYI, here are the strings supported:
/*
* Strings supported by the _OSI predefined (internal) method.
* When adding strings, be sure to update ACPI_NUM_OSI_STRINGS.
*/
const char
*AcpiGbl_ValidOsiStrings[ACPI_NUM_OSI_STRINGS] =
{
/* Operating System Vendor Strings */
"Linux",
"Windows 2000",
"Windows 2001",
"Windows 2001.1",
"Windows 2001 SP0",
"Windows 2001 SP1",
"Windows 2001 SP2",
"Windows 2001 SP3",
"Windows 2001 SP4",
/* Feature Group Strings */
"Extended Address Space Descriptor"
};
> -----Original Message-----
> From: acpi-devel-admin-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org [mailto:acpi-devel-
> admin-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org] On Behalf Of Moore, Robert
> Sent: Friday, November 18, 2005 11:47 AM
> To: KAMEZAWA Hiroyuki; keith
> Cc: Yasunori Goto; Brown, Len; S, Naveen B; acpi-devel; external
hotplug
> mem list; Tolentino, Matthew E
> Subject: RE: [ACPI] Re: [Lhms-devel] [PATCH 1/1] patch to fix
> acpi_memhotplug.c
>
> The ACPICA code supports _OSI and will respond TRUE when shown the
> "Windows 2001" string.
> Bob
>
>
> > -----Original Message-----
> > From: acpi-devel-admin-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org [mailto:acpi-devel-
> > admin-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org] On Behalf Of KAMEZAWA Hiroyuki
> > Sent: Thursday, November 17, 2005 6:57 PM
> > To: keith
> > Cc: Yasunori Goto; Brown, Len; S, Naveen B; acpi-devel; external
> hotplug
> > mem list; Tolentino, Matthew E
> > Subject: Re: [ACPI] Re: [Lhms-devel] [PATCH 1/1] patch to fix
> > acpi_memhotplug.c
> >
> > keith wrote:
> > >> >
> > >>Could you show your AML tree around Memory ?
> > >
> > >
> > > See attached SSDT.
> > >
> > Thanks, at the first look.....
> >
> > > Device (ME00)
> > > {
> > <snip>
> > > Method (_STA, 0, NotSerialized)
> > > {
> > > If (CondRefOf (_OSI, Local0))
> > > {
> > > If (\_OSI ("Windows 2001"))
> > > {
> > > If (LAnd (LEqual (BADH, EADH), LEqual
(BADL,
> > EADL)))
> > > {
> > > Or (MEID, \_SB.MEMI, \_SB.MEMI)
> > > Return (0x00)
> > > }
> > > Else
> > > {
> > > And (Not (MEID), \_SB.MEMI, \_SB.MEMI)
> > > Return (0x0F)
> > > }
> > > }
> > > }
> > >
> > > Return (0x00)
> > > }
> > It seems memory device's _STA never returns 0xF always returns 0x0.
> > (Device is online and enabled) when OS is not Windows2001.
> > All PNP0C80 decvices in this SSDT has same _STA function.
> >
> > So, I think why your hot add failes is _STA has no present bit.
> > ==
> > drivers/acpi/scan.c
> >
> > acpi_add_single_object()
> > <snip>
> > case ACPI_BUS_TYPE_DEVICE:
> > result = acpi_bus_get_status(device); in
> > drivers/acpi/bus.c
> > if (ACPI_FAILURE(result) ||
!device->status.present)
> { <-
> > ---(*)
> > result = -ENOENT;
> > goto end;
> > }
> > break;
> > ==
> >
> > rewriting your DSDT would be sane approach.
> >
> > -- Kame
> >
> >
> >
> >
> >
> > -------------------------------------------------------
> > This SF.Net email is sponsored by the JBoss Inc. Get Certified
Today
> > Register for a JBoss Training Course. Free Certification Exam
> > for All Training Attendees Through End of 2005. For more info visit:
> > http://ads.osdn.com/?ad_id=7628&alloc_id=16845&op=click
> > _______________________________________________
> > Acpi-devel mailing list
> > Acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
> > https://lists.sourceforge.net/lists/listinfo/acpi-devel
>
>
> -------------------------------------------------------
> This SF.Net email is sponsored by the JBoss Inc. Get Certified Today
> Register for a JBoss Training Course. Free Certification Exam
> for All Training Attendees Through End of 2005. For more info visit:
> http://ads.osdn.com/?ad_idv28&alloc_id\x16845&op=ick
> _______________________________________________
> Acpi-devel mailing list
> Acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
> https://lists.sourceforge.net/lists/listinfo/acpi-devel
-------------------------------------------------------
This SF.Net email is sponsored by the JBoss Inc. Get Certified Today
Register for a JBoss Training Course. Free Certification Exam
for All Training Attendees Through End of 2005. For more info visit:
http://ads.osdn.com/?ad_idv28&alloc_id\x16845&op=click
^ permalink raw reply [flat|nested] 20+ messages in thread[parent not found: <971FCB6690CD0E4898387DBF7552B90E0378BEE7-sBd4vmA9Se5Qxe9IK+vIArfspsVTdybXVpNB7YpNyf8@public.gmane.org>]
* RE: Re: [Lhms-devel] [PATCH 1/1] patch to fix acpi_memhotplug.c [not found] ` <971FCB6690CD0E4898387DBF7552B90E0378BEE7-sBd4vmA9Se5Qxe9IK+vIArfspsVTdybXVpNB7YpNyf8@public.gmane.org> @ 2005-11-19 10:44 ` Erik Slagter 2005-11-19 12:15 ` Kamezawa Hiroyuki 1 sibling, 0 replies; 20+ messages in thread From: Erik Slagter @ 2005-11-19 10:44 UTC (permalink / raw) To: Moore, Robert; +Cc: acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f [-- Attachment #1: Type: text/plain, Size: 635 bytes --] On Fri, 2005-11-18 at 12:51 -0800, Moore, Robert wrote: [ ... ] > { > /* Operating System Vendor Strings */ > > "Linux", > "Windows 2000", > "Windows 2001", > "Windows 2001.1", > "Windows 2001 SP0", > "Windows 2001 SP1", > "Windows 2001 SP2", > "Windows 2001 SP3", > "Windows 2001 SP4", > > /* Feature Group Strings */ > > "Extended Address Space Descriptor" > }; Can you please explain to me what is the relation between ACPI and a certain OS implementation, seen from the BIOS code? I always failed to see that, I thought ACPI was to be OS-independent? [-- Attachment #2: smime.p7s --] [-- Type: application/x-pkcs7-signature, Size: 2115 bytes --] ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: Re: [Lhms-devel] [PATCH 1/1] patch to fix acpi_memhotplug.c [not found] ` <971FCB6690CD0E4898387DBF7552B90E0378BEE7-sBd4vmA9Se5Qxe9IK+vIArfspsVTdybXVpNB7YpNyf8@public.gmane.org> 2005-11-19 10:44 ` Erik Slagter @ 2005-11-19 12:15 ` Kamezawa Hiroyuki [not found] ` <1150853300.5873.49.camel@keithlap> 1 sibling, 1 reply; 20+ messages in thread From: Kamezawa Hiroyuki @ 2005-11-19 12:15 UTC (permalink / raw) To: Moore, Robert Cc: keith, Yasunori Goto, Brown, Len, S, Naveen B, acpi-devel, external hotplug mem list, Tolentino, Matthew E Moore, Robert wrote: > FYI, here are the strings supported: > > /* > * Strings supported by the _OSI predefined (internal) method. > * When adding strings, be sure to update ACPI_NUM_OSI_STRINGS. > */ > const char > *AcpiGbl_ValidOsiStrings[ACPI_NUM_OSI_STRINGS] = > { > /* Operating System Vendor Strings */ > > "Linux", > "Windows 2000", > "Windows 2001", > "Windows 2001.1", > "Windows 2001 SP0", > "Windows 2001 SP1", > "Windows 2001 SP2", > "Windows 2001 SP3", > "Windows 2001 SP4", > > /* Feature Group Strings */ > > "Extended Address Space Descriptor" > }; Ah..Okay.. This means _OSI("Windows2001") returns true. - kame ------------------------------------------------------- This SF.Net email is sponsored by the JBoss Inc. Get Certified Today Register for a JBoss Training Course. Free Certification Exam for All Training Attendees Through End of 2005. For more info visit: http://ads.osdn.com/?ad_id=7628&alloc_id=16845&op=click ^ permalink raw reply [flat|nested] 20+ messages in thread
[parent not found: <1150853300.5873.49.camel@keithlap>]
* Re: [Lhms-devel] [RFC] Patch [1/1] for acpi_memhotplug.c [not found] ` <1150853300.5873.49.camel@keithlap> @ 2006-06-21 2:10 ` keith mannthey [not found] ` <20060621114334.1b954854.kamezawa.hiroyu@jp.fujitsu.com> 1 sibling, 0 replies; 20+ messages in thread From: keith mannthey @ 2006-06-21 2:10 UTC (permalink / raw) To: linux-acpi; +Cc: Prarit Bhargava--redhat, konrad, external hotplug mem list [-- Attachment #1: Type: text/plain, Size: 1620 bytes --] On Tue, 2006-06-20 at 18:28 -0700, keith mannthey wrote: > Hello again, > I am still without a working acpi memory driver for my hardware (with > extra patches). I posted patches a long while ago but have been off > doing other things for a while. > > 1. The current driver is unable to created the mem_device from the hot- > add event and the hot-add fails with out adding any memory to the > system. I have address_resources attached to the acpi handle but in > acpi_memory_get_device calling the path of > > acpi_bus_get_device > acpi_get_parent > acpi_bus_get_device /*for parent*/ > acpi_bus_add /*to created the memory device */ > > just doesn't create the memory_device and I don't know why. Perhaps > something about the event is off but I have had a fair amount of > communication with the bios writers about this issue and everything > looks ok to us. The odd things is acpi_bus_add doesn't complain it > happily returns success but no memory_device was attached to the > device. > > If you know how to debug this event better please advise. > > If I look at the resources associated with the handle there is > appropriate data to do the hot-add event (memory range data). I simply > insert a function that creates the memory device directly from the > handle and it's data(See attached patch) and the event carries on as > expected. > > The patch applies and work just fine against 2.6.17 and it doesn't break > the current call implementation. > > Any ideas? > > Signed-off-by: Keith Mannthey <kmannth@us.ibm.com> Sorry for the repost to some I had the old acpi list on the cc. [-- Attachment #2: acpi_mem_fixv3.patch --] [-- Type: text/x-patch, Size: 1741 bytes --] --- linux-2.6.15-rc1-orig/drivers/acpi/acpi_memhotplug.c 2005-11-14 10:56:13.000000000 -0800 +++ linux-2.6.15-rc1/drivers/acpi/acpi_memhotplug.c 2005-11-16 20:06:47.000000000 -0800 @@ -110,6 +110,32 @@ return_VALUE(0); } +static int +acpi_memory_get_current_resource(acpi_handle handle, struct acpi_memory_device **return_device) { + + int result; + struct acpi_memory_device *mem_device; + + ACPI_FUNCTION_TRACE("acpi_memory_get_current_resource"); + + mem_device = kmalloc(sizeof(struct acpi_memory_device), GFP_KERNEL); + if (!mem_device) + return_VALUE(-ENOMEM); + memset(mem_device,0, sizeof(struct acpi_memory_device)); + + mem_device->handle = handle; + result = acpi_memory_get_device_resources(mem_device); + if (result) { + kfree(mem_device); + return_VALUE(result); + } + mem_device->state = MEMORY_POWER_ON_STATE; + *return_device = mem_device; + + return_VALUE(result); +} + + static int acpi_memory_get_device(acpi_handle handle, struct acpi_memory_device **mem_device) @@ -118,6 +144,7 @@ acpi_handle phandle; struct acpi_device *device = NULL; struct acpi_device *pdevice = NULL; + int result; ACPI_FUNCTION_TRACE("acpi_memory_get_device"); @@ -147,14 +174,17 @@ ACPI_DEBUG_PRINT((ACPI_DB_ERROR, "Error in acpi_bus_add\n")); return_VALUE(-EINVAL); } - end: *mem_device = acpi_driver_data(device); + if (!(*mem_device)) { - printk(KERN_ERR "\n driver data not found"); - return_VALUE(-ENODEV); + /* Try and get the memory_device from the current handle */ + result = acpi_memory_get_current_resource(handle,mem_device); + if (result) { + printk(KERN_ERR "\nThere is no data for this memory device\n"); + return_VALUE(-EINVAL); + } } - return_VALUE(0); } [-- Attachment #3: SSDT.dsl.gz --] [-- Type: application/x-gzip, Size: 7562 bytes --] ^ permalink raw reply [flat|nested] 20+ messages in thread
[parent not found: <20060621114334.1b954854.kamezawa.hiroyu@jp.fujitsu.com>]
[parent not found: <1150863525.7865.6.camel@keithlap>]
[parent not found: <20060621194832.37124aae.kamezawa.hiroyu@jp.fujitsu.com>]
* Re: [Lhms-devel] [RFC] Patch [1/2] for acpi_memhotplug.c [not found] ` <20060621194832.37124aae.kamezawa.hiroyu@jp.fujitsu.com> @ 2006-06-21 18:43 ` keith mannthey 2006-06-21 23:23 ` keith mannthey 0 siblings, 1 reply; 20+ messages in thread From: keith mannthey @ 2006-06-21 18:43 UTC (permalink / raw) To: KAMEZAWA Hiroyuki Cc: Prarit Bhargava--redhat, konrad, robert.moore, lhms-devel, linux acpi [-- Attachment #1: Type: text/plain, Size: 1909 bytes --] On Wed, 2006-06-21 at 19:48 +0900, KAMEZAWA Hiroyuki wrote: > On Tue, 20 Jun 2006 21:18:45 -0700 > keith mannthey <kmannth@us.ibm.com> wrote: > > > On Wed, 2006-06-21 at 11:43 +0900, KAMEZAWA Hiroyuki wrote: > > > On Tue, 20 Jun 2006 18:28:19 -0700 > > > keith mannthey <kmannth@us.ibm.com> wrote: > > > > 1. The current driver is unable to created the mem_device from the hot- > > > > add event and the hot-add fails with out adding any memory to the > > > > system. I have address_resources attached to the acpi handle but in > > > > acpi_memory_get_device calling the path of > > > > > > > > acpi_bus_get_device > > > > acpi_get_parent > > > > acpi_bus_get_device /*for parent*/ > > > > acpi_bus_add /*to created the memory device */ > > > > > > > > > > Do you know where it fails ? > > > 1st acpi_bus_get_device() fails or acpi_bus_add() doesn't allocate memory_device ? > > > > if (!acpi_bus_get_device(handle, &device) && device) > > goto end; > > fails right away. Looks like I fail later that I thought. When I apply your patch and do a hot add I see ACPI Exception (acpi_bus-0070): AE_NOT_FOUND, No context for object [ffff81017fc74240] [20060310] ACPI Exception (acpi_bus-0070): AE_NOT_FOUND, No context for object [ffff81017fc74240] [20060310] driver data not foundACPI Error (acpi_memory-0338): Cannot find driver data [20060310] (I have attaced the whole dmesg as well) This implies that I have called acpi_bus_add but didn't create the memory_device. > Could you tell me whether the device you want to add is visible in sysfs's > acpi name space before hot-add event ? > If kobject(sysfs) is registerd, it's considered as Enabled && Present. > (In my understanding) There are no off lined memory objects in sysfs after boot all memory listed is present in the system and online. -- keith mannthey <kmannth@us.ibm.com> Linux Technology Center IBM [-- Attachment #2: debug-mess --] [-- Type: text/plain, Size: 30604 bytes --] otdata ok (command line is root=/dev/sda4 vga=791 ip=9.47.66.153:9.47.66.169:9.47.66.1:255.255.255.0 resume=/dev/sda2 splash=silent showopts console=ttyS0,115200 console=tty0 earlyprintk=ttyS0,115200 debug numa=hotadd=100) Linux version 2.6.17-rc6-mm2-smp (root@linux-65o4) (gcc version 4.1.0 (SUSE Linux)) #4 SMP Wed Jun 21 14:08:13 EDT 2006 BIOS-provided physical RAM map: BIOS-e820: 0000000000000000 - 0000000000099c00 (usable) BIOS-e820: 0000000000099c00 - 00000000000a0000 (reserved) BIOS-e820: 00000000000e0000 - 0000000000100000 (reserved) BIOS-e820: 0000000000100000 - 000000007ff8da40 (usable) BIOS-e820: 000000007ff8da40 - 000000007ff98880 (ACPI data) BIOS-e820: 000000007ff98880 - 0000000080000000 (reserved) BIOS-e820: 00000000fec00000 - 0000000100000000 (reserved) BIOS-e820: 0000000100000000 - 0000000180000000 (usable) DMI 2.3 present. ACPI: RSDP (v000 IBM ) @ 0x00000000000fdcf0 ACPI: RSDT (v001 IBM EXA01ZEU 0x00001000 IBM 0x45444f43) @ 0x000000007ff98800 ACPI: FADT (v001 IBM EXA01ZEU 0x00001000 IBM 0x45444f43) @ 0x000000007ff98780 ACPI: MADT (v001 IBM EXA01ZEU 0x00001000 IBM 0x45444f43) @ 0x000000007ff98600 ACPI: SRAT (v001 IBM EXA01ZEU 0x00001000 IBM 0x45444f43) @ 0x000000007ff98400 ACPI: SSDT (v001 IBM VIGSSDT0 0x00001000 INTL 0x20030122) @ 0x000000007ff90800 ACPI: DSDT (v001 IBM EXA01ZEU 0x00001000 INTL 0x20030122) @ 0x0000000000000000 SRAT: PXM 0 -> APIC 0 -> Node 0 SRAT: PXM 0 -> APIC 1 -> Node 0 SRAT: PXM 0 -> APIC 2 -> Node 0 SRAT: PXM 0 -> APIC 3 -> Node 0 SRAT: PXM 0 -> APIC 38 -> Node 0 SRAT: PXM 0 -> APIC 39 -> Node 0 SRAT: PXM 0 -> APIC 36 -> Node 0 SRAT: PXM 0 -> APIC 37 -> Node 0 SRAT: PXM 0 -> APIC 16 -> Node 0 SRAT: PXM 0 -> APIC 17 -> Node 0 SRAT: PXM 0 -> APIC 18 -> Node 0 SRAT: PXM 0 -> APIC 19 -> Node 0 SRAT: PXM 0 -> APIC 54 -> Node 0 SRAT: PXM 0 -> APIC 55 -> Node 0 SRAT: PXM 0 -> APIC 52 -> Node 0 SRAT: PXM 0 -> APIC 53 -> Node 0 SRAT: Node 0 PXM 0 0-80000000 SRAT: Node 0 PXM 0 0-180000000 NUMA: Using 63 for the hash shift. Bootmem setup node 0 0000000000000000-0000000180000000 On node 0 totalpages: 1025617 DMA zone: 2700 pages, LIFO batch:0 DMA32 zone: 505797 pages, LIFO batch:31 Normal zone: 517120 pages, LIFO batch:31 ACPI: PM-Timer IO Port: 0x9c ACPI: Local APIC address 0xfee00000 ACPI: LAPIC (acpi_id[0x00] lapic_id[0x00] enabled) Processor #0 15:4 APIC version 20 ACPI: LAPIC (acpi_id[0x01] lapic_id[0x01] enabled) Processor #1 15:4 APIC version 20 ACPI: LAPIC (acpi_id[0x02] lapic_id[0x02] enabled) Processor #2 15:4 APIC version 20 ACPI: LAPIC (acpi_id[0x03] lapic_id[0x03] enabled) Processor #3 15:4 APIC version 20 ACPI: LAPIC (acpi_id[0x04] lapic_id[0x26] enabled) Processor #38 15:4 APIC version 20 ACPI: LAPIC (acpi_id[0x05] lapic_id[0x27] enabled) Processor #39 15:4 APIC version 20 ACPI: LAPIC (acpi_id[0x06] lapic_id[0x24] enabled) Processor #36 15:4 APIC version 20 ACPI: LAPIC (acpi_id[0x07] lapic_id[0x25] enabled) Processor #37 15:4 APIC version 20 ACPI: LAPIC (acpi_id[0x08] lapic_id[0x10] enabled) Processor #16 15:4 APIC version 20 ACPI: LAPIC (acpi_id[0x09] lapic_id[0x11] enabled) Processor #17 15:4 APIC version 20 ACPI: LAPIC (acpi_id[0x0a] lapic_id[0x12] enabled) Processor #18 15:4 APIC version 20 ACPI: LAPIC (acpi_id[0x0b] lapic_id[0x13] enabled) Processor #19 15:4 APIC version 20 ACPI: LAPIC (acpi_id[0x0c] lapic_id[0x36] enabled) Processor #54 15:4 APIC version 20 ACPI: LAPIC (acpi_id[0x0d] lapic_id[0x37] enabled) Processor #55 15:4 APIC version 20 ACPI: LAPIC (acpi_id[0x0e] lapic_id[0x34] enabled) Processor #52 15:4 APIC version 20 ACPI: LAPIC (acpi_id[0x0f] lapic_id[0x35] enabled) Processor #53 15:4 APIC version 20 ACPI: LAPIC_NMI (acpi_id[0x00] dfl dfl lint[0x1]) ACPI: LAPIC_NMI (acpi_id[0x01] dfl dfl lint[0x1]) ACPI: LAPIC_NMI (acpi_id[0x02] dfl dfl lint[0x1]) ACPI: LAPIC_NMI (acpi_id[0x03] dfl dfl lint[0x1]) ACPI: LAPIC_NMI (acpi_id[0x04] dfl dfl lint[0x1]) ACPI: LAPIC_NMI (acpi_id[0x05] dfl dfl lint[0x1]) ACPI: LAPIC_NMI (acpi_id[0x06] dfl dfl lint[0x1]) ACPI: LAPIC_NMI (acpi_id[0x07] dfl dfl lint[0x1]) ACPI: LAPIC_NMI (acpi_id[0x08] dfl dfl lint[0x1]) ACPI: LAPIC_NMI (acpi_id[0x09] dfl dfl lint[0x1]) ACPI: LAPIC_NMI (acpi_id[0x0a] dfl dfl lint[0x1]) ACPI: LAPIC_NMI (acpi_id[0x0b] dfl dfl lint[0x1]) ACPI: LAPIC_NMI (acpi_id[0x0c] dfl dfl lint[0x1]) ACPI: LAPIC_NMI (acpi_id[0x0d] dfl dfl lint[0x1]) ACPI: LAPIC_NMI (acpi_id[0x0e] dfl dfl lint[0x1]) ACPI: LAPIC_NMI (acpi_id[0x0f] dfl dfl lint[0x1]) ACPI: IOAPIC (id[0x0f] address[0xfec00000] gsi_base[0]) IOAPIC[0]: apic_id 15, version 17, address 0xfec00000, GSI 0-35 ACPI: IOAPIC (id[0x0e] address[0xfec01000] gsi_base[36]) IOAPIC[1]: apic_id 14, version 17, address 0xfec01000, GSI 36-71 ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl) ACPI: INT_SRC_OVR (bus 0 bus_irq 8 global_irq 8 low edge) ACPI: INT_SRC_OVR (bus 0 bus_irq 14 global_irq 14 low edge) ACPI: IRQ0 used by override. ACPI: IRQ2 used by override. ACPI: IRQ8 used by override. ACPI: IRQ9 used by override. ACPI: IRQ14 used by override. Setting APIC routing to clustered Using ACPI (MADT) for SMP configuration information Allocating PCI resources starting at 88000000 (gap: 80000000:7ec00000) SMP: Allowing 16 CPUs, 0 hotplug CPUs Built 1 zonelists. Total pages: 1025617 Kernel command line: root=/dev/sda4 vga=791 ip=9.47.66.153:9.47.66.169:9.47.66.1:255.255.255.0 resume=/dev/sda2 splash=silent showopts console=ttyS0,115200 console=tty0 earlyprintk=ttyS0,115200 debug numa=hotadd=100 Initializing CPU#0 PID hash table entries: 4096 (order: 12, 32768 bytes) disabling early console Console: colour dummy device 80x25 Dentry cache hash table entries: 524288 (order: 10, 4194304 bytes) Inode-cache hash table entries: 262144 (order: 9, 2097152 bytes) Checking aperture... PCI-DMA: Calgary IOMMU detected. TCE table spec is 7. Memory: 4059856k/6291456k available (1986k kernel code, 133576k reserved, 922k data, 200k init) Calibrating delay using timer specific routine.. 6012.23 BogoMIPS (lpj=12024464)Security Framework v1.0.0 initialized Mount-cache hash table entries: 256 CPU: Trace cache: 12K uops, L1 D cache: 16K CPU: L2 cache: 2048K CPU 0/0 -> Node 0 using mwait in idle threads. CPU: Physical Processor ID: 0 CPU: Processor Core ID: 0 CPU0: Thermal monitoring enabled (TM1) SMP alternatives: switching to UP code tbxface-0107 [01] load_tables : ACPI Tables successfully acquired Parsing all Control Methods: Table [DSDT](id 0006) - 176 Objects with 17 Devices 45 Methods 4 Regions Parsing all Control Methods: Table [SSDT](id 0004) - 990 Objects with 57 Devices 247 Methods 19 Regions ACPI Namespace successfully loaded at root ffffffff80551ec0 evxfevnt-0089 [02] enable : Transition to ACPI mode successful ..MP-BIOS bug: 8254 timer not connected to IO-APIC Using local APIC timer interrupts. result 10425667 Detected 10.425 MHz APIC timer. SMP alternatives: switching to SMP code Booting processor 1/16 APIC 0x1 Initializing CPU#1 Calibrating delay using timer specific routine.. 6005.50 BogoMIPS (lpj=12011002)CPU: Trace cache: 12K uops, L1 D cache: 16K CPU: L2 cache: 2048K CPU 1/1 -> Node 0 CPU: Physical Processor ID: 0 CPU: Processor Core ID: 0 CPU1: Thermal monitoring enabled (TM1) Genuine Intel(R) CPU 3.00GHz stepping 08 APIC error on CPU1: 00(40) CPU 1: Syncing TSC to CPU 0. CPU 1: synchronized TSC with CPU 0 (last diff -108 cycles, maxerr 927 cycles) SMP alternatives: switching to SMP code Booting processor 2/16 APIC 0x2 Initializing CPU#2 Calibrating delay using timer specific routine.. 6005.65 BogoMIPS (lpj=12011309)CPU: Trace cache: 12K uops, L1 D cache: 16K CPU: L2 cache: 2048K CPU 2/2 -> Node 0 CPU: Physical Processor ID: 0 CPU: Processor Core ID: 1 CPU2: Thermal monitoring enabled (TM1) Genuine Intel(R) CPU 3.00GHz stepping 08 APIC error on CPU2: 00(40) CPU 2: Syncing TSC to CPU 0. CPU 2: synchronized TSC with CPU 0 (last diff -45 cycles, maxerr 1602 cycles) SMP alternatives: switching to SMP code Booting processor 3/16 APIC 0x3 Initializing CPU#3 Calibrating delay using timer specific routine.. 6005.61 BogoMIPS (lpj=12011237)CPU: Trace cache: 12K uops, L1 D cache: 16K CPU: L2 cache: 2048K CPU 3/3 -> Node 0 CPU: Physical Processor ID: 0 CPU: Processor Core ID: 1 CPU3: Thermal monitoring enabled (TM1) Genuine Intel(R) CPU 3.00GHz stepping 08 APIC error on CPU3: 00(40) CPU 3: Syncing TSC to CPU 0. CPU 3: synchronized TSC with CPU 0 (last diff 45 cycles, maxerr 1602 cycles) SMP alternatives: switching to SMP code Booting processor 4/16 APIC 0x26 Initializing CPU#4 Calibrating delay using timer specific routine.. 6005.66 BogoMIPS (lpj=12011335)CPU: Trace cache: 12K uops, L1 D cache: 16K CPU: L2 cache: 2048K CPU 4/26 -> Node 0 CPU: Physical Processor ID: 9 CPU: Processor Core ID: 1 CPU4: Thermal monitoring enabled (TM1) Genuine Intel(R) CPU 3.00GHz stepping 08 APIC error on CPU4: 00(40) CPU 4: Syncing TSC to CPU 0. CPU 4: synchronized TSC with CPU 0 (last diff 31 cycles, maxerr 1593 cycles) SMP alternatives: switching to SMP code Booting processor 5/16 APIC 0x27 Initializing CPU#5 Calibrating delay using timer specific routine.. 6005.72 BogoMIPS (lpj=12011441)CPU: Trace cache: 12K uops, L1 D cache: 16K CPU: L2 cache: 2048K CPU 5/27 -> Node 0 CPU: Physical Processor ID: 9 CPU: Processor Core ID: 1 CPU5: Thermal monitoring enabled (TM1) Genuine Intel(R) CPU 3.00GHz stepping 08 APIC error on CPU5: 00(40) CPU 5: Syncing TSC to CPU 0. CPU 5: synchronized TSC with CPU 0 (last diff 14 cycles, maxerr 1602 cycles) SMP alternatives: switching to SMP code Booting processor 6/16 APIC 0x24 Initializing CPU#6 Calibrating delay using timer specific routine.. 6005.78 BogoMIPS (lpj=12011566)CPU: Trace cache: 12K uops, L1 D cache: 16K CPU: L2 cache: 2048K CPU 6/24 -> Node 0 CPU: Physical Processor ID: 9 CPU: Processor Core ID: 0 CPU6: Thermal monitoring enabled (TM1) Genuine Intel(R) CPU 3.00GHz stepping 08 APIC error on CPU6: 00(40) CPU 6: Syncing TSC to CPU 0. CPU 6: synchronized TSC with CPU 0 (last diff 81 cycles, maxerr 1746 cycles) SMP alternatives: switching to SMP code Booting processor 7/16 APIC 0x25 Initializing CPU#7 Calibrating delay using timer specific routine.. 6005.72 BogoMIPS (lpj=12011456)CPU: Trace cache: 12K uops, L1 D cache: 16K CPU: L2 cache: 2048K CPU 7/25 -> Node 0 CPU: Physical Processor ID: 9 CPU: Processor Core ID: 0 CPU7: Thermal monitoring enabled (TM1) Genuine Intel(R) CPU 3.00GHz stepping 08 APIC error on CPU7: 00(40) CPU 7: Syncing TSC to CPU 0. CPU 7: synchronized TSC with CPU 0 (last diff 14 cycles, maxerr 1602 cycles) SMP alternatives: switching to SMP code Booting processor 8/16 APIC 0x10 Initializing CPU#8 Calibrating delay using timer specific routine.. 6005.72 BogoMIPS (lpj=12011458)CPU: Trace cache: 12K uops, L1 D cache: 16K CPU: L2 cache: 2048K CPU 8/10 -> Node 0 CPU: Physical Processor ID: 4 CPU: Processor Core ID: 0 CPU8: Thermal monitoring enabled (TM1) Genuine Intel(R) CPU 3.00GHz stepping 08 APIC error on CPU8: 00(40) CPU 8: Syncing TSC to CPU 0. CPU 8: synchronized TSC with CPU 0 (last diff -9 cycles, maxerr 2340 cycles) SMP alternatives: switching to SMP code Booting processor 9/16 APIC 0x11 Initializing CPU#9 Calibrating delay using timer specific routine.. 6005.71 BogoMIPS (lpj=12011423)CPU: Trace cache: 12K uops, L1 D cache: 16K CPU: L2 cache: 2048K CPU 9/11 -> Node 0 CPU: Physical Processor ID: 4 CPU: Processor Core ID: 0 CPU9: Thermal monitoring enabled (TM1) Genuine Intel(R) CPU 3.00GHz stepping 08 APIC error on CPU9: 00(40) CPU 9: Syncing TSC to CPU 0. CPU 9: synchronized TSC with CPU 0 (last diff 9 cycles, maxerr 2358 cycles) SMP alternatives: switching to SMP code Booting processor 10/16 APIC 0x12 Initializing CPU#10 Calibrating delay using timer specific routine.. 6005.73 BogoMIPS (lpj=12011471)CPU: Trace cache: 12K uops, L1 D cache: 16K CPU: L2 cache: 2048K CPU 10/12 -> Node 0 CPU: Physical Processor ID: 4 CPU: Processor Core ID: 1 CPU10: Thermal monitoring enabled (TM1) Genuine Intel(R) CPU 3.00GHz stepping 08 APIC error on CPU10: 00(40) CPU 10: Syncing TSC to CPU 0. CPU 10: synchronized TSC with CPU 0 (last diff 22 cycles, maxerr 2367 cycles) SMP alternatives: switching to SMP code Booting processor 11/16 APIC 0x13 Initializing CPU#11 Calibrating delay using timer specific routine.. 6005.68 BogoMIPS (lpj=12011361)CPU: Trace cache: 12K uops, L1 D cache: 16K CPU: L2 cache: 2048K CPU 11/13 -> Node 0 CPU: Physical Processor ID: 4 CPU: Processor Core ID: 1 CPU11: Thermal monitoring enabled (TM1) Genuine Intel(R) CPU 3.00GHz stepping 08 APIC error on CPU11: 00(40) CPU 11: Syncing TSC to CPU 0. CPU 11: synchronized TSC with CPU 0 (last diff 18 cycles, maxerr 2340 cycles) SMP alternatives: switching to SMP code Booting processor 12/16 APIC 0x36 Initializing CPU#12 Calibrating delay using timer specific routine.. 6005.62 BogoMIPS (lpj=12011244)CPU: Trace cache: 12K uops, L1 D cache: 16K CPU: L2 cache: 2048K CPU 12/36 -> Node 0 CPU: Physical Processor ID: 13 CPU: Processor Core ID: 1 CPU12: Thermal monitoring enabled (TM1) Genuine Intel(R) CPU 3.00GHz stepping 08 APIC error on CPU12: 00(40) CPU 12: Syncing TSC to CPU 0. CPU 12: synchronized TSC with CPU 0 (last diff 9 cycles, maxerr 2358 cycles) SMP alternatives: switching to SMP code Booting processor 13/16 APIC 0x37 Initializing CPU#13 Calibrating delay using timer specific routine.. 6005.73 BogoMIPS (lpj=12011478)CPU: Trace cache: 12K uops, L1 D cache: 16K CPU: L2 cache: 2048K CPU 13/37 -> Node 0 CPU: Physical Processor ID: 13 CPU: Processor Core ID: 1 CPU13: Thermal monitoring enabled (TM1) Genuine Intel(R) CPU 3.00GHz stepping 08 APIC error on CPU13: 00(40) CPU 13: Syncing TSC to CPU 0. CPU 13: synchronized TSC with CPU 0 (last diff 2 cycles, maxerr 2340 cycles) SMP alternatives: switching to SMP code Booting processor 14/16 APIC 0x34 Initializing CPU#14 Calibrating delay using timer specific routine.. 6005.74 BogoMIPS (lpj=12011491)CPU: Trace cache: 12K uops, L1 D cache: 16K CPU: L2 cache: 2048K CPU 14/34 -> Node 0 CPU: Physical Processor ID: 13 CPU: Processor Core ID: 0 CPU14: Thermal monitoring enabled (TM1) Genuine Intel(R) CPU 3.00GHz stepping 08 APIC error on CPU14: 00(40) CPU 14: Syncing TSC to CPU 0. CPU 14: synchronized TSC with CPU 0 (last diff -18 cycles, maxerr 2304 cycles) SMP alternatives: switching to SMP code Booting processor 15/16 APIC 0x35 Initializing CPU#15 Calibrating delay using timer specific routine.. 6005.70 BogoMIPS (lpj=12011410)CPU: Trace cache: 12K uops, L1 D cache: 16K CPU: L2 cache: 2048K CPU 15/35 -> Node 0 CPU: Physical Processor ID: 13 CPU: Processor Core ID: 0 CPU15: Thermal monitoring enabled (TM1) Genuine Intel(R) CPU 3.00GHz stepping 08 APIC error on CPU15: 00(40) CPU 15: Syncing TSC to CPU 0. CPU 15: synchronized TSC with CPU 0 (last diff 5 cycles, maxerr 2340 cycles) Brought up 16 CPUs testing NMI watchdog ... OK. Disabling vsyscall due to use of PM timer time.c: Using 3.579545 MHz WALL PM GTOD PM timer. time.c: Detected 3002.623 MHz processor. migration_cost=22,1525 checking if image is initramfs... it is Freeing initrd memory: 2855k freed NET: Registered protocol family 16 ACPI: bus type pci registered PCI: Using configuration type 1 ACPI: Subsystem revision 20060310 evgpeblk-0951 [04] ev_create_gpe_block : GPE 00 to 1F [_GPE] 4 regs on int 0x9evgpeblk-0951 [04] ev_create_gpe_block : GPE 20 to 3F [_GPE] 4 regs on int 0x9evgpeblk-1048 [03] ev_initialize_gpe_bloc: Found 0 Wake, Enabled 0 Runtime GPEs in this block evgpeblk-1048 [03] ev_initialize_gpe_bloc: Found 0 Wake, Enabled 2 Runtime GPEs in this block Completing Region/Field/Buffer/Package initialization:........................................................................................................... Initialized 23/23 Regions 16/16 Fields 33/33 Buffers 35/35 Packages (1175 nodes)Executing all Device _STA and_INI methods:............................................................................................ 92 Devices found - executed 1 _STA, 9 _INI methods ACPI: Interpreter enabled ACPI: Using IOAPIC for interrupt routing ACPI: PCI Root Bridge [VP00] (0000:00) PCI: Probing PCI hardware (bus 00) Boot video device is 0000:00:01.0 PCI: Ignoring BAR0-3 of IDE controller 0000:00:0f.1 ACPI: PCI Interrupt Routing Table [\_SB_.VP00._PRT] ACPI: PCI Root Bridge [VP01] (0000:01) PCI: Probing PCI hardware (bus 01) ACPI: PCI Interrupt Routing Table [\_SB_.VP01._PRT] ACPI: PCI Root Bridge [VP02] (0000:02) PCI: Probing PCI hardware (bus 02) ACPI: PCI Interrupt Routing Table [\_SB_.VP02._PRT] ACPI: PCI Root Bridge [VP03] (0000:04) PCI: Probing PCI hardware (bus 04) ACPI: PCI Interrupt Routing Table [\_SB_.VP03._PRT] ACPI: PCI Root Bridge [VP04] (0000:06) PCI: Probing PCI hardware (bus 06) ACPI: PCI Interrupt Routing Table [\_SB_.VP04._PRT] ACPI: PCI Root Bridge [VP05] (0000:08) PCI: Probing PCI hardware (bus 08) ACPI: PCI Interrupt Routing Table [\_SB_.VP05._PRT] ACPI: PCI Root Bridge [VP06] (0000:0a) PCI: Probing PCI hardware (bus 0a) ACPI: PCI Interrupt Routing Table [\_SB_.VP06._PRT] ACPI: PCI Root Bridge [VP07] (0000:0c) PCI: Probing PCI hardware (bus 0c) ACPI: PCI Interrupt Routing Table [\_SB_.VP07._PRT] PCI: Using ACPI for IRQ routing PCI: If a device doesn't work, try "pci=routeirq". If it helps, post a report TC classifier action (bugs to netdev@vger.kernel.org cc hadi@cyberus.ca) PCI-DMA: Using Calgary IOMMU Calgary: enabling translation on PHB 0 Calgary: errant DMAs will now be prevented on this bus. Calgary: enabling translation on PHB 1 Calgary: errant DMAs will now be prevented on this bus. Calgary: enabling translation on PHB 4 Calgary: errant DMAs will now be prevented on this bus. Calgary: enabling translation on PHB 6 Calgary: errant DMAs will now be prevented on this bus. PCI-GART: No AMD northbridge found. PCI: Bridge: 0000:06:01.0 IO window: disabled. MEM window: ec500000-ec5fffff PREFETCH window: 88100000-881fffff ACPI (acpi_bus-0192): Device [S3F0] is not power manageable [20060310] NET: Registered protocol family 2 IP route cache hash table entries: 131072 (order: 8, 1048576 bytes) TCP established hash table entries: 262144 (order: 10, 4194304 bytes) TCP bind hash table entries: 65536 (order: 8, 1048576 bytes) TCP: Hash tables configured (established 262144 bind 65536) TCP reno registered audit: initializing netlink socket (disabled) audit(1150914281.504:1): initialized Total HugeTLB memory allocated, 0 VFS: Disk quotas dquot_6.5.1 Dquot-cache hash table entries: 512 (order 0, 4096 bytes) Initializing Cryptographic API io scheduler noop registered io scheduler anticipatory registered io scheduler deadline registered io scheduler cfq registered (default) vesafb: framebuffer at 0xe0000000, mapped to 0xffffc20000680000, using 3072k, total 16384k vesafb: mode is 1024x768x16, linelength=2048, pages=9 vesafb: scrolling: redraw vesafb: Truecolor: size=0:5:6:5, shift=0:11:5:0 Console: switching to colour frame buffer device 128x48 fb0: VESA VGA frame buffer device ACPI Exception (acpi_memory-0492): AE_ERROR, handle is no memory device [20060310] ACPI Exception (acpi_memory-0492): AE_ERROR, handle is no memory device [20060310] ACPI Exception (acpi_memory-0492): AE_ERROR, handle is no memory device [20060310] ACPI Exception (acpi_memory-0492): AE_ERROR, handle is no memory device [20060310] ACPI Exception (acpi_memory-0492): AE_ERROR, handle is no memory device [20060310] ACPI Exception (acpi_memory-0492): AE_ERROR, handle is no memory device [20060310] ACPI Exception (acpi_memory-0492): AE_ERROR, handle is no memory device [20060310] ACPI Exception (acpi_memory-0492): AE_ERROR, handle is no memory device [20060310] ACPI Exception (acpi_memory-0492): AE_ERROR, handle is no memory device [20060310] ACPI Exception (acpi_memory-0492): AE_ERROR, handle is no memory device [20060310] ACPI Exception (acpi_memory-0492): AE_ERROR, handle is no memory device [20060310] ACPI Exception (acpi_memory-0492): AE_ERROR, handle is no memory device [20060310] ACPI Exception (acpi_memory-0492): AE_ERROR, handle is no memory device [20060310] ACPI Exception (acpi_memory-0492): AE_ERROR, handle is no memory device [20060310] ACPI Exception (acpi_memory-0492): AE_ERROR, handle is no memory device [20060310] ACPI Exception (acpi_memory-0492): AE_ERROR, handle is no memory device [20060310] ACPI Exception (acpi_memory-0492): AE_ERROR, handle is no memory device [20060310] ACPI Exception (acpi_memory-0492): AE_ERROR, handle is no memory device [20060310] ACPI Exception (acpi_memory-0492): AE_ERROR, handle is no memory device [20060310] ACPI Exception (acpi_memory-0492): AE_ERROR, handle is no memory device [20060310] ACPI Exception (acpi_memory-0492): AE_ERROR, handle is no memory device [20060310] ACPI Exception (acpi_memory-0492): AE_ERROR, handle is no memory device [20060310] ACPI Exception (acpi_memory-0492): AE_ERROR, handle is no memory device [20060310] ACPI Exception (acpi_memory-0492): AE_ERROR, handle is no memory device [20060310] ACPI Exception (acpi_memory-0492): AE_ERROR, handle is no memory device [20060310] ACPI Exception (acpi_memory-0492): AE_ERROR, handle is no memory device [20060310] ACPI Exception (acpi_memory-0492): AE_ERROR, handle is no memory device [20060310] ACPI Exception (acpi_memory-0492): AE_ERROR, handle is no memory device [20060310] ACPI Exception (acpi_memory-0492): AE_ERROR, handle is no memory device [20060310] ACPI Exception (acpi_memory-0492): AE_ERROR, handle is no memory device [20060310] ACPI Exception (acpi_memory-0492): AE_ERROR, handle is no memory device [20060310] ACPI Exception (acpi_memory-0492): AE_ERROR, handle is no memory device [20060310] ACPI Exception (acpi_memory-0492): AE_ERROR, handle is no memory device [20060310] ACPI Exception (acpi_memory-0492): AE_ERROR, handle is no memory device [20060310] ACPI Exception (acpi_memory-0492): AE_ERROR, handle is no memory device [20060310] ACPI Exception (acpi_memory-0492): AE_ERROR, handle is no memory device [20060310] ACPI Exception (acpi_memory-0492): AE_ERROR, handle is no memory device [20060310] ACPI Exception (acpi_memory-0492): AE_ERROR, handle is no memory device [20060310] ACPI Exception (acpi_memory-0492): AE_ERROR, handle is no memory device [20060310] ACPI Exception (acpi_memory-0492): AE_ERROR, handle is no memory device [20060310] ACPI Exception (acpi_memory-0492): AE_ERROR, handle is no memory device [20060310] ACPI Exception (acpi_memory-0492): AE_ERROR, handle is no memory device [20060310] ACPI Exception (acpi_memory-0492): AE_ERROR, handle is no memory device [20060310] ACPI Exception (acpi_memory-0492): AE_ERROR, handle is no memory device [20060310] ACPI Exception (acpi_memory-0492): AE_ERROR, handle is no memory device [20060310] ACPI Exception (acpi_memory-0492): AE_ERROR, handle is no memory device [20060310] ACPI Exception (acpi_memory-0492): AE_ERROR, handle is no memory device [20060310] ACPI Exception (acpi_memory-0492): AE_ERROR, handle is no memory device [20060310] ACPI Exception (acpi_memory-0492): AE_ERROR, handle is no memory device [20060310] ACPI Exception (acpi_memory-0492): AE_ERROR, handle is no memory device [20060310] ACPI Exception (acpi_memory-0492): AE_ERROR, handle is no memory device [20060310] ACPI Exception (acpi_memory-0492): AE_ERROR, handle is no memory device [20060310] ACPI Exception (acpi_memory-0492): AE_ERROR, handle is no memory device [20060310] ACPI Exception (acpi_memory-0492): AE_ERROR, handle is no memory device [20060310] ACPI Exception (acpi_memory-0492): AE_ERROR, handle is no memory device [20060310] ACPI Exception (acpi_memory-0492): AE_ERROR, handle is no memory device [20060310] ACPI Exception (acpi_memory-0492): AE_ERROR, handle is no memory device [20060310] ACPI Exception (acpi_memory-0492): AE_ERROR, handle is no memory device [20060310] ACPI Exception (acpi_memory-0492): AE_ERROR, handle is no memory device [20060310] ACPI Exception (acpi_memory-0492): AE_ERROR, handle is no memory device [20060310] ACPI Exception (acpi_memory-0492): AE_ERROR, handle is no memory device [20060310] ACPI Exception (acpi_memory-0492): AE_ERROR, handle is no memory device [20060310] ACPI Exception (acpi_memory-0492): AE_ERROR, handle is no memory device [20060310] ACPI Exception (acpi_memory-0492): AE_ERROR, handle is no memory device [20060310] ACPI Exception (acpi_memory-0492): AE_ERROR, handle is no memory device [20060310] ACPI Exception (acpi_memory-0492): AE_ERROR, handle is no memory device [20060310] ACPI Exception (acpi_memory-0492): AE_ERROR, handle is no memory device [20060310] ACPI Exception (acpi_memory-0492): AE_ERROR, handle is no memory device [20060310] ACPI Exception (acpi_memory-0492): AE_ERROR, handle is no memory device [20060310] ACPI Exception (acpi_memory-0492): AE_ERROR, handle is no memory device [20060310] ACPI Exception (acpi_memory-0492): AE_ERROR, handle is no memory device [20060310] ACPI Exception (acpi_memory-0492): AE_ERROR, handle is no memory device [20060310] ACPI Exception (acpi_memory-0492): AE_ERROR, handle is no memory device [20060310] Real Time Clock Driver v1.12ac Non-volatile memory driver v1.2 Linux agpgart interface v0.101 (c) Dave Jones Serial: 8250/16550 driver $Revision: 1.90 $ 4 ports, IRQ sharing disabled serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A serial8250: ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A RAMDISK driver initialized: 16 RAM disks of 128000K size 1024 blocksize serio: i8042 AUX port at 0x60,0x64 irq 12 serio: i8042 KBD port at 0x60,0x64 irq 1 mice: PS/2 mouse device common for all mice input: PC Speaker as /class/input/input0 input: AT Translated Set 2 keyboard as /class/input/input1 md: md driver 0.90.3 MAX_MD_DEVS=256, MD_SB_DISKS=27 md: bitmap version 4.39 NET: Registered protocol family 1 ACPI: (supports S0 S5) Freeing unused kernel memory: 200k freed Write protecting the kernel read-only data: 395k logips2pp: Detected unknown logitech mouse model 1 Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2 input: PS/2 Logitech Mouse as /class/input/input2 ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx SCSI subsystem initialized SvrWks CSB6: IDE controller at PCI slot 0000:00:0f.1 SvrWks CSB6: chipset revision 160 SvrWks CSB6: not 100% native mode: will probe irqs later ide0: BM-DMA at 0x0700-0x0707, BIOS settings: hda:DMA, hdb:DMA SvrWks CSB6: simplex device: DMA disabled ide1: SvrWks CSB6 Bus-Master DMA disabled (BIOS) Probing IDE interface ide0... hda: HL-DT-STDVD-ROM GDR8082N, ATAPI CD/DVD-ROM drive ide0 at 0x1f0-0x1f7,0x3f6 on irq 14 Probing IDE interface ide1... Adaptec aacraid driver (1.1-5[2409]-mh1) GSI 16 sharing vector 0xA9 and IRQ 16 ACPI: PCI Interrupt 0000:01:02.0[A] -> GSI 25 (level, low) -> IRQ 169 AAC0: kernel 5.0-2[8264] AAC0: monitor 5.0-2[8264] AAC0: bios 5.0-2[8264] AAC0: serial 155fe5 AAC0: 64bit support enabled. AAC0: 64 Bit DAC enabled scsi0 : ServeRAID Vendor: IBM Model: Serve Volume Rev: V1.0 Type: Direct-Access ANSI SCSI revision: 02 SCSI device sda: 70840192 512-byte hdwr sectors (36270 MB) sda: assuming Write Enabled sda: assuming drive cache: write through SCSI device sda: 70840192 512-byte hdwr sectors (36270 MB) sda: assuming Write Enabled sda: assuming drive cache: write through sda: sda1 sda2 sda3 sda4 sd 0:0:1:0: Attached scsi removable disk sda sd 0:0:1:0: Attached scsi generic sg0 type 0 BIOS EDD facility v0.16 2004-Jun-25, 1 devices found ReiserFS: sda4: found reiserfs format "3.6" with standard journal Losing some ticks... checking if CPU frequency changed. ReiserFS: sda4: using ordered data mode ReiserFS: sda4: journal params: device sda4, size 8192, journal first block 18, max trans len 1024, max batch 900, max commit age 30, max trans age 30 ReiserFS: sda4: checking transaction log (sda4) ReiserFS: sda4: Using r5 hash to sort names Adding 2104504k swap on /dev/sda2. Priority:-1 extents:1 across:2104504k tg3.c:v3.59 (May 26, 2006) GSI 17 sharing vector 0xB1 and IRQ 17 ACPI: PCI Interrupt 0000:01:01.0[A] -> GSI 24 (level, low) -> IRQ 177 eth0: Tigon3 [partno(BCM95704A6) rev 2100 PHY(5704)] (PCIX:66MHz:64-bit) 10/100/1000BaseT Ethernet 00:0d:60:98:0c:20 eth0: RXcsums[1] LinkChgREG[0] MIirq[0] ASF[1] Split[0] WireSpeed[1] TSOcap[0] eth0: dma_rwctrl[769f0000] dma_mask[64-bit] GSI 18 sharing vector 0xB9 and IRQ 18 ACPI: PCI Interrupt 0000:01:01.1[B] -> GSI 28 (level, low) -> IRQ 185 eth1: Tigon3 [partno(BCM95704A6) rev 2100 PHY(5704)] (PCIX:66MHz:64-bit) 10/100/1000BaseT Ethernet 00:0d:60:98:0c:21 eth1: RXcsums[1] LinkChgREG[0] MIirq[0] ASF[0] Split[0] WireSpeed[1] TSOcap[1] eth1: dma_rwctrl[769f0000] dma_mask[64-bit] device-mapper: 4.6.0-ioctl (2006-02-17) initialised: dm-devel@redhat.com loop: loaded (max 8 devices) NET: Registered protocol family 10 lo: Disabled Privacy Extensions IPv6 over IPv4 tunneling driver ip6_tables: (C) 2000-2006 Netfilter Core Team ip_tables: (C) 2000-2006 Netfilter Core Team Netfilter messages via NETLINK v0.30. ip_conntrack version 2.4 (8192 buckets, 65536 max) - 288 bytes per conntrack ACPI: Power Button (FF) [PWRF] PM: Writing back config space on device 0000:01:01.0 at offset b (was 164814e4, writing 2e71014) PM: Writing back config space on device 0000:01:01.0 at offset 3 (was 804000, writing 80f010) PM: Writing back config space on device 0000:01:01.0 at offset 2 (was 2000000, writing 2000010) PM: Writing back config space on device 0000:01:01.0 at offset 1 (was 2b00000, writing 2b00146) ADDRCONF(NETDEV_UP): eth0: link is not ready audit(1150914305.764:2): audit_pid=3387 old=0 by auid=4294967295 tg3: eth0: Link is up at 100 Mbps, full duplex. tg3: eth0: Flow control is on for TX and on for RX. ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready IA-32 Microcode Update Driver: v1.14a <tigran@veritas.com> acpi_processor-0731 [00] processor_preregister_: Error while parsing _PSD domain information. Assuming no coordination acpi_processor-0731 [00] processor_preregister_: Error while parsing _PSD domain information. Assuming no coordination eth0: no IPv6 routers present ACPI Exception (acpi_bus-0070): AE_NOT_FOUND, No context for object [ffff81017fc74240] [20060310] ACPI Exception (acpi_bus-0070): AE_NOT_FOUND, No context for object [ffff81017fc74240] [20060310] driver data not foundACPI Error (acpi_memory-0338): Cannot find driver data [20060310] ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [Lhms-devel] [RFC] Patch [1/2] for acpi_memhotplug.c 2006-06-21 18:43 ` [Lhms-devel] [RFC] Patch [1/2] " keith mannthey @ 2006-06-21 23:23 ` keith mannthey 2006-06-22 0:13 ` KAMEZAWA Hiroyuki 0 siblings, 1 reply; 20+ messages in thread From: keith mannthey @ 2006-06-21 23:23 UTC (permalink / raw) To: KAMEZAWA Hiroyuki Cc: Prarit Bhargava--redhat, linux acpi, lhms-devel, konrad, robert.moore On Wed, 2006-06-21 at 11:43 -0700, keith mannthey wrote: > On Wed, 2006-06-21 at 19:48 +0900, KAMEZAWA Hiroyuki wrote: > > On Tue, 20 Jun 2006 21:18:45 -0700 > > keith mannthey <kmannth@us.ibm.com> wrote: > > > > > On Wed, 2006-06-21 at 11:43 +0900, KAMEZAWA Hiroyuki wrote: > > > > On Tue, 20 Jun 2006 18:28:19 -0700 > > > > keith mannthey <kmannth@us.ibm.com> wrote: > > > > > 1. The current driver is unable to created the mem_device from the hot- > > > > > add event and the hot-add fails with out adding any memory to the > > > > > system. I have address_resources attached to the acpi handle but in > > > > > acpi_memory_get_device calling the path of > > > > > > > > > > acpi_bus_get_device > > > > > acpi_get_parent > > > > > acpi_bus_get_device /*for parent*/ > > > > > acpi_bus_add /*to created the memory device */ > > > > > > > > > > > > > Do you know where it fails ? Update. I have moved to 2.6.17-rc6-mm2 to work with the development acpi_memhotplug driver there. I have added various debug statements and this is what I know. acpi_memory_get_device calls acpi_bus_add acpi_bus_add calls acpi_add_single_object (fails) acpi_add_single_object passes acpi_bus_get_flags finds the device present passes acpi_device_set_context calls acpi_device_register after calling acpi_bus_find_driver ends up if (!result) *child = device; and returns. I do know know much of the call path of what acpi_bus_scan called from acpi_bus_add does but the result from acpi_bus_add is not an ACPI_FAILURE. There is still no memory_device attached to the device and the same condition occurs (no memory_device added). I patched 2.6.17-rc6-mm2 with my patch to check out the rest of the driver and the system Oopsed. Calling acpi_memory_get_resource caused a panic (where as this call structure in the non -mm driver works). Unable to handle kernel NULL pointer dereference at 0000000000000000 RIP: [<ffffffff80345bf8>] acpi_memory_get_resource+0x5b/0xdb PGD 0 Oops: 0000 [2] SMP last sysfs file: /devices/pci0000:00/0000:00:01.0/resource CPU 1 Modules linked in: xt_pkttype ipt_LOG xt_limit acpi_cpufreq freq_table button battery ac ip6t_REJECT xt_tcpudp ipt_REJECT xt_state iptable_mangle iptable_nat ip_nat iptable_filter ip6table_mangle ip_conntrack nfnetlink ip_tables ip6table_filter ip6_tables x_tables ipv6 loop dm_mod tg3 reiserfs edd fan thermal processor sg ips aacraid serverworks sd_mod scsi_mod ide_disk ide_core Pid: 4282, comm: kacpid_notify Not tainted 2.6.17-rc6-mm2-smp #10 RIP: 0010:[<ffffffff80345bf8>] [<ffffffff80345bf8>] acpi_memory_get_resource+0x5b/0xdb RSP: 0018:ffff81017b44dda8 EFLAGS: 00010246 RAX: 0000000000000000 RBX: 0000000000000000 RCX: 0000000000000000 RDX: ffffffff8040b040 RSI: 0000000200000000 RDI: ffff81017b440001 RBP: ffff81017e0f4580 R08: ffff81017b440000 R09: ffffffff8042983e R10: ffff81017f6044c0 R11: ffffffff8042a921 R12: ffffffff80428e41 R13: ffff81017ff8cc5c R14: ffffffff80345b9d R15: ffff81017e0f4580 FS: 0000000000000000(0000) GS:ffff81017fcb1ac0(0000) knlGS:0000000000000000 CS: 0010 DS: 0018 ES: 0018 CR0: 000000008005003b CR2: 0000000000000000 CR3: 0000000000201000 CR4: 00000000000006e0 Process kacpid_notify (pid: 4282, threadinfo ffff81017b44c000, task ffff81017d1957d0) Stack: 0000010101000000 0000000000000000 0000020000000000 0000027fffffff00 0000000000000000 0000008000000000 0000000000000000 ffffffff00000000 ffff81017fc74240 ffff81017ff8cbc0 Call Trace: [<ffffffff803348c2>] acpi_walk_resources+0xf3/0x152 [<ffffffff8024402d>] keventd_create_kthread+0x0/0x61 [<ffffffff803453b2>] acpi_memory_get_device_resources+0x22/0x50 [<ffffffff80345930>] acpi_memory_device_notify+0x1c5/0x3ef [<ffffffff8032ce3d>] acpi_get_data+0x5d/0x6e [<ffffffff8031379b>] acpi_os_execute_thread+0x0/0x1e [<ffffffff8031379b>] acpi_os_execute_thread+0x0/0x1e [<ffffffff8031d5ce>] acpi_ev_notify_dispatch+0x5c/0x65 [<ffffffff803137aa>] acpi_os_execute_thread+0xf/0x1e [<ffffffff8024417a>] kthread+0xec/0x120 [<ffffffff8020a122>] child_rip+0x8/0x12 [<ffffffff8024402d>] keventd_create_kthread+0x0/0x61 [<ffffffff8024408e>] kthread+0x0/0x120 [<ffffffff8020a11a>] child_rip+0x0/0x12 Code: 48 8b 0b 0f 18 09 48 8d 45 10 48 39 c3 75 d1 48 8b 3d 52 1b RIP [<ffffffff80345bf8>] acpi_memory_get_resource+0x5b/0xdb RSP <ffff81017b44dda8> CR2: 0000000000000000 -- keith mannthey <kmannth@us.ibm.com> Linux Technology Center IBM ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [Lhms-devel] [RFC] Patch [1/2] for acpi_memhotplug.c 2006-06-21 23:23 ` keith mannthey @ 2006-06-22 0:13 ` KAMEZAWA Hiroyuki 2006-06-22 1:37 ` keith mannthey 0 siblings, 1 reply; 20+ messages in thread From: KAMEZAWA Hiroyuki @ 2006-06-22 0:13 UTC (permalink / raw) To: kmannth; +Cc: prarit, linux-acpi, robert.moore, darnok, lhms-devel On Wed, 21 Jun 2006 16:23:47 -0700 keith mannthey <kmannth@us.ibm.com> wrote: > Update. I have moved to 2.6.17-rc6-mm2 to work with the development > acpi_memhotplug driver there. I have added various debug statements and > this is what I know. > Thanks, looks informative. > acpi_memory_get_device calls acpi_bus_add > acpi_bus_add calls acpi_add_single_object (fails) > acpi_add_single_object passes acpi_bus_get_flags > finds the device present > passes acpi_device_set_context > calls acpi_device_register > after calling acpi_bus_find_driver > ends up > if (!result) *child = device; > and returns. > Then, "acpi_device" itself is added, but no driver data. acpi_add_single_object doesn't check return value of acpi_bus_find_driver(), as you know. So... === static int acpi_bus_find_driver(struct acpi_device *device) { <snip> list_for_each_safe(node, next, &acpi_bus_drivers) { <snip> if (!acpi_bus_match(device, driver)) { (*)----------- result = acpi_bus_driver_init(device, driver); if (!result) goto Done; } .... } === Next check point is: - acpi_bus_driver_init() is called or not - what acpi_bus_driver_init() returns in acpi_bus_driver_init() - driver->ops.add() is called or not - what it retruns int acpi_memory_device_add() - it is called or not - why this fails. If we can find why acpi_bus_driver_init() fails or is not called, we can find the problem , I think. -Kame ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [Lhms-devel] [RFC] Patch [1/2] for acpi_memhotplug.c 2006-06-22 0:13 ` KAMEZAWA Hiroyuki @ 2006-06-22 1:37 ` keith mannthey 2006-06-22 1:58 ` KAMEZAWA Hiroyuki 0 siblings, 1 reply; 20+ messages in thread From: keith mannthey @ 2006-06-22 1:37 UTC (permalink / raw) To: KAMEZAWA Hiroyuki Cc: Prarit Bhargava--redhat, linux acpi, robert.moore, konrad, lhms-devel On Thu, 2006-06-22 at 09:13 +0900, KAMEZAWA Hiroyuki wrote: > On Wed, 21 Jun 2006 16:23:47 -0700 > keith mannthey <kmannth@us.ibm.com> wrote: > > Update. I have moved to 2.6.17-rc6-mm2 to work with the development > > acpi_memhotplug driver there. I have added various debug statements and > > this is what I know. > > > Thanks, looks informative. > > > acpi_memory_get_device calls acpi_bus_add > > acpi_bus_add calls acpi_add_single_object (fails) > > acpi_add_single_object passes acpi_bus_get_flags > > finds the device present > > passes acpi_device_set_context > > calls acpi_device_register > > after calling acpi_bus_find_driver > > ends up > > if (!result) *child = device; > > and returns. > > > > Then, "acpi_device" itself is added, but no driver data. > acpi_add_single_object doesn't check return value of acpi_bus_find_driver(), > as you know. So... > === > static int acpi_bus_find_driver(struct acpi_device *device) > { > <snip> > list_for_each_safe(node, next, &acpi_bus_drivers) { > <snip> > if (!acpi_bus_match(device, driver)) { > (*)----------- result = acpi_bus_driver_init(device, driver); > if (!result) > goto Done; > } > .... > } > === > Next check point is: > - acpi_bus_driver_init() is called or not > - what acpi_bus_driver_init() returns result = acpi_bus_driver_init(device, driver); if (!result) goto Done; I goto Done. > in acpi_bus_driver_init() > - driver->ops.add() is called or not > - what it retruns It is called. But that is not the whole story. In acpi_bus_driver_init it calls driver->ops.add(device). This ops.add is not acpi_memory_device_add. I do get not any printks that I would expect from acpi_memory_device_add. If I print out in acpi_bus_driver_init printk(" device_add() about %s\n",acpi_device_name(device)); result = driver->ops.add(device); The device name is null. I don't think the device / driver combo that has been passed in are the right ones. > int acpi_memory_device_add() > - it is called or not > - why this fails. This is not called. After acpi_bus_driver_init calls the unknown .add it returns successfully. it sets device->driver = driver; and return 0; Maybe I am picking the wrong driver from list_for_each_safe(node, next, &acpi_bus_drivers) in acpi_bus_find_driver? Thanks for your help. -- keith mannthey <kmannth@us.ibm.com> Linux Technology Center IBM ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [Lhms-devel] [RFC] Patch [1/2] for acpi_memhotplug.c 2006-06-22 1:37 ` keith mannthey @ 2006-06-22 1:58 ` KAMEZAWA Hiroyuki 2006-06-22 2:19 ` keith mannthey 2006-06-22 2:28 ` keith mannthey 0 siblings, 2 replies; 20+ messages in thread From: KAMEZAWA Hiroyuki @ 2006-06-22 1:58 UTC (permalink / raw) To: kmannth; +Cc: prarit, linux-acpi, lhms-devel, robert.moore, darnok On Wed, 21 Jun 2006 18:37:00 -0700 keith mannthey <kmannth@us.ibm.com> wrote: > > in acpi_bus_driver_init() > > - driver->ops.add() is called or not > > - what it retruns > > It is called. But that is not the whole story. > In acpi_bus_driver_init it calls driver->ops.add(device). This ops.add > is not acpi_memory_device_add. I do get not any printks that I would > expect from acpi_memory_device_add. > > If I print out in acpi_bus_driver_init > printk(" device_add() about %s\n",acpi_device_name(device)); > result = driver->ops.add(device); > Good Catch :) Then, could you print driver name ? like this == printk("Call Add driver for name %s/class %s/id %s\n",driver->name,driver->class,driver->id); == > Maybe I am picking the wrong driver from list_for_each_safe(node, next, &acpi_bus_drivers) > in acpi_bus_find_driver? > looks so...BTW, your acpi_memhotplug driver is a module or built-in ? -Kame ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [Lhms-devel] [RFC] Patch [1/2] for acpi_memhotplug.c 2006-06-22 1:58 ` KAMEZAWA Hiroyuki @ 2006-06-22 2:19 ` keith mannthey 2006-06-22 3:13 ` KAMEZAWA Hiroyuki 2006-06-22 2:28 ` keith mannthey 1 sibling, 1 reply; 20+ messages in thread From: keith mannthey @ 2006-06-22 2:19 UTC (permalink / raw) To: KAMEZAWA Hiroyuki Cc: Prarit Bhargava--redhat, linux acpi, lhms-devel, robert.moore, konrad On Thu, 2006-06-22 at 10:58 +0900, KAMEZAWA Hiroyuki wrote: > On Wed, 21 Jun 2006 18:37:00 -0700 > keith mannthey <kmannth@us.ibm.com> wrote: > > > > in acpi_bus_driver_init() > > > - driver->ops.add() is called or not > > > - what it retruns > > > > It is called. But that is not the whole story. > > In acpi_bus_driver_init it calls driver->ops.add(device). This ops.add > > is not acpi_memory_device_add. I do get not any printks that I would > > expect from acpi_memory_device_add. > > > > If I print out in acpi_bus_driver_init > > printk(" device_add() about %s\n",acpi_device_name(device)); > > result = driver->ops.add(device); > > > Good Catch :) > > Then, could you print driver name ? like this > == > printk("Call Add driver for name %s/class %s/id %s\n",driver->name,driver->class,driver->id); > == Good idea! During the hot add I see. Call Add driver for name motherboard/class /id PNP0C01 That is the wrong driver for sure. > > > Maybe I am picking the wrong driver from list_for_each_safe(node, next, &acpi_bus_drivers) > > in acpi_bus_find_driver? > > > looks so...BTW, your acpi_memhotplug driver is a module or built-in ? Built-in. Thanks. -- keith mannthey <kmannth@us.ibm.com> Linux Technology Center IBM ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [Lhms-devel] [RFC] Patch [1/2] for acpi_memhotplug.c 2006-06-22 2:19 ` keith mannthey @ 2006-06-22 3:13 ` KAMEZAWA Hiroyuki 2006-06-22 3:55 ` keith mannthey 0 siblings, 1 reply; 20+ messages in thread From: KAMEZAWA Hiroyuki @ 2006-06-22 3:13 UTC (permalink / raw) To: kmannth; +Cc: prarit, linux-acpi, lhms-devel, robert.moore, darnok On Wed, 21 Jun 2006 19:19:58 -0700 keith mannthey <kmannth@us.ibm.com> wrote: > > Good Catch :) > > > > Then, could you print driver name ? like this > > == > > printk("Call Add driver for name %s/class %s/id %s\n",driver->name,driver->class,driver->id); > > == > > Good idea! > During the hot add I see. > Call Add driver for name motherboard/class /id PNP0C01 > > That is the wrong driver for sure. Hmm....curious..but no idead.. Then, could try this ? -Kame == Index: linux-2.6.17-rc6-mm2/drivers/acpi/scan.c =================================================================== --- linux-2.6.17-rc6-mm2.orig/drivers/acpi/scan.c +++ linux-2.6.17-rc6-mm2/drivers/acpi/scan.c @@ -227,6 +227,20 @@ static int acpi_bus_get_power_flags(stru return 0; } +int acpi_print_all_ids(struct acpi_device *device) +{ + printk("check BusID%s/ HID%s/ UID%s", + acpi_device_bid(device),acpi_device_hid(device), + acpi_device_uid(device)); + if (device->flags.compatible_ids) { + struct acpi_compatible_id_list *cid_list = device->pnp.cid_list; + int i; + for (i = 0; i < cid_list->count; i++) + printk("CID %s ",cid_list->id[i].value); + } + printk("\n"); +} + int acpi_match_ids(struct acpi_device *device, char *ids) { if (device->flags.hardware_id) @@ -487,6 +501,8 @@ acpi_bus_driver_init(struct acpi_device if (!driver->ops.add) return -ENOSYS; + printk("acpi_bus_driver_init() driver is %s\n", driver->name); + acpi_print_all_ids(device); result = driver->ops.add(device); if (result) { ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [Lhms-devel] [RFC] Patch [1/2] for acpi_memhotplug.c 2006-06-22 3:13 ` KAMEZAWA Hiroyuki @ 2006-06-22 3:55 ` keith mannthey 2006-06-22 5:20 ` KAMEZAWA Hiroyuki 0 siblings, 1 reply; 20+ messages in thread From: keith mannthey @ 2006-06-22 3:55 UTC (permalink / raw) To: KAMEZAWA Hiroyuki Cc: Prarit Bhargava--redhat, linux acpi, konrad, robert.moore, lhms-devel [-- Attachment #1: Type: text/plain, Size: 1178 bytes --] On Thu, 2006-06-22 at 12:13 +0900, KAMEZAWA Hiroyuki wrote: > On Wed, 21 Jun 2006 19:19:58 -0700 > keith mannthey <kmannth@us.ibm.com> wrote: > > > Good Catch :) > > > > > > Then, could you print driver name ? like this > > > == > > > printk("Call Add driver for name %s/class %s/id %s\n",driver->name,driver->class,driver->id); > > > == > > > > Good idea! > > During the hot add I see. > > Call Add driver for name motherboard/class /id PNP0C01 > > > > That is the wrong driver for sure. > > Hmm....curious..but no idead.. > Then, could try this ? I am trying to make the motherboard driver fail with it looks for resources and finds node. The motherboard add function alway returns AE_OK which is why the algorithm fails. See attached patch it allows the hot-add event to happen. With the event happening and I see Call Add driver for name Hotplug Mem Driver/class memory/id PNP0C80 acpi-memhotplug: device_add() called acpi-memhotplug: kmalloc mem_device success acpi-memhotplug: read CRS success But then On node -1 totalpages: 0 How do I tell if my event has the right _PXM data or what ever is needed? Signed-off-by: Keith Mannthey <kmannth@us.ibm.com> [-- Attachment #2: patch-acpi-motherboard-v1.patch --] [-- Type: text/x-patch, Size: 685 bytes --] --- linux-2.6.17-rc6-mm2-orig/drivers/acpi/motherboard.c 2006-06-21 23:35:26.000000000 -0400 +++ linux-2.6.17-rc6-mm2/drivers/acpi/motherboard.c 2006-06-21 23:04:44.000000000 -0400 @@ -86,6 +86,7 @@ } } else { /* Memory mapped IO? */ + return -EINVAL; } if (requested_res) @@ -95,12 +96,14 @@ static int acpi_motherboard_add(struct acpi_device *device) { + acpi_status status; if (!device) return -EINVAL; - acpi_walk_resources(device->handle, METHOD_NAME__CRS, + + status = acpi_walk_resources(device->handle, METHOD_NAME__CRS, acpi_reserve_io_ranges, NULL); - return 0; + return status; } static struct acpi_driver acpi_motherboard_driver1 = { ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [Lhms-devel] [RFC] Patch [1/2] for acpi_memhotplug.c 2006-06-22 3:55 ` keith mannthey @ 2006-06-22 5:20 ` KAMEZAWA Hiroyuki 2006-06-22 6:11 ` KAMEZAWA Hiroyuki ` (2 more replies) 0 siblings, 3 replies; 20+ messages in thread From: KAMEZAWA Hiroyuki @ 2006-06-22 5:20 UTC (permalink / raw) To: kmannth; +Cc: prarit, linux-acpi, darnok, robert.moore, lhms-devel [-- Attachment #1: Type: text/plain, Size: 1525 bytes --] On Wed, 21 Jun 2006 20:55:02 -0700 keith mannthey <kmannth@us.ibm.com> wrote: > > Hmm....curious..but no idead.. > > Then, could try this ? > > I am trying to make the motherboard driver fail with it looks for > resources and finds node. The motherboard add function alway returns > AE_OK which is why the algorithm fails. See attached patch it allows the > hot-add event to happen. > > With the event happening and I see > Um...my concern is - When notify comes, memory hotplug driver is called. - but at acpi_bus_add(), PNP0C01 motherboad driver is attached to the device. I think something is wrong....from your SSDT, ME00 and ME01 memory device has valid HID, PNP0C80. == Device (ME01) { Name (_HID, EisaId ("PNP0C80")) Name (_CID, 0x010CD041) == What I imagine now is. - acpi_memory_device_init() -> acpi_memory_register_notify_handler() installs notify handler for memory hotplug against device handle of memory This doesn't check _CID. - acpi_bus_add() attachs motherboard driver because of CID. Above _CID is 32bit compressed EISA-type ID (HID is string but..), it is PNP0C01...motherboad driver is called before PNP0C80 driver. (to covert 32bit ID to string, see acpi_ex_eisa_id_to_string(), I attached program.) Then what we should do here is...call HID:PNP0C80 driver instead if CID:PNP0C01 driver. Because it has driver for HID, calling driver for CID looks not good. (But we have to ask acpi people about this..) I'll try to write a patch. -Kame [-- Attachment #2: foo.c --] [-- Type: text/x-csrc, Size: 1650 bytes --] #include <stdio.h> typedef unsigned long u32; typedef unsigned char u8; static const char acpi_gbl_hex_to_ascii[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' }; char acpi_ut_hex_to_ascii_char(unsigned long integer, unsigned long position) { return (acpi_gbl_hex_to_ascii[(integer >> position) & 0xF]); } u32 acpi_ut_dword_byte_swap(u32 value) { union { u32 value; u8 bytes[4]; } out; union { u32 value; u8 bytes[4]; } in; in.value = value; out.bytes[0] = in.bytes[3]; out.bytes[1] = in.bytes[2]; out.bytes[2] = in.bytes[1]; out.bytes[3] = in.bytes[0]; return (out.value); } void acpi_ex_eisa_id_to_string(unsigned long numeric_id, char *out_string) { unsigned long eisa_id; /* Swap ID to big-endian to get contiguous bits */ eisa_id = acpi_ut_dword_byte_swap(numeric_id); out_string[0] = (char)('@' + (((unsigned long)eisa_id >> 26) & 0x1f)); out_string[1] = (char)('@' + ((eisa_id >> 21) & 0x1f)); out_string[2] = (char)('@' + ((eisa_id >> 16) & 0x1f)); out_string[3] = acpi_ut_hex_to_ascii_char(eisa_id, 12); out_string[4] = acpi_ut_hex_to_ascii_char(eisa_id, 8); out_string[5] = acpi_ut_hex_to_ascii_char(eisa_id, 4); out_string[6] = acpi_ut_hex_to_ascii_char(eisa_id, 0); out_string[7] = 0; } int main(int argc, char *argv[]) { unsigned long id = 0x010CD041; char name[16]; acpi_ex_eisa_id_to_string(id, name); printf("%s",name); } ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [Lhms-devel] [RFC] Patch [1/2] for acpi_memhotplug.c 2006-06-22 5:20 ` KAMEZAWA Hiroyuki @ 2006-06-22 6:11 ` KAMEZAWA Hiroyuki 2006-06-22 7:01 ` KAMEZAWA Hiroyuki 2006-06-22 17:25 ` keith mannthey 2 siblings, 0 replies; 20+ messages in thread From: KAMEZAWA Hiroyuki @ 2006-06-22 6:11 UTC (permalink / raw) To: KAMEZAWA Hiroyuki Cc: kmannth, prarit, linux-acpi, darnok, robert.moore, lhms-devel On Thu, 22 Jun 2006 14:20:38 +0900 KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> wrote: > - acpi_memory_device_init() -> acpi_memory_register_notify_handler() > installs notify handler for memory hotplug against device handle of memory > This doesn't check _CID. > > - acpi_bus_add() attachs motherboard driver because of CID. > Above _CID is 32bit compressed EISA-type ID (HID is string but..), > it is PNP0C01...motherboad driver is called before PNP0C80 driver. > (to covert 32bit ID to string, see acpi_ex_eisa_id_to_string(), > I attached program.) > > Then what we should do here is...call HID:PNP0C80 driver instead if CID:PNP0C01 driver. > Because it has driver for HID, calling driver for CID looks not good. > (But we have to ask acpi people about this..) > Ah... BTW, why PNP0C80(memory) and PNP0C01(motherboard) are described as "compatible device" ? Are they compatible ? -Kame ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [Lhms-devel] [RFC] Patch [1/2] for acpi_memhotplug.c 2006-06-22 5:20 ` KAMEZAWA Hiroyuki 2006-06-22 6:11 ` KAMEZAWA Hiroyuki @ 2006-06-22 7:01 ` KAMEZAWA Hiroyuki 2006-06-22 17:25 ` keith mannthey 2 siblings, 0 replies; 20+ messages in thread From: KAMEZAWA Hiroyuki @ 2006-06-22 7:01 UTC (permalink / raw) To: kmannth; +Cc: prarit, linux-acpi, lhms-devel, darnok, robert.moore On Thu, 22 Jun 2006 14:20:38 +0900 KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> wrote: > I'll try to write a patch. > This is a patch. (against 2.6.17-mm1 but maybe okay to other kernels.) Could you try this ? But I'm not sure this is sane way or not.. Regards, -Kame ===== Index: linux-2.6.17-mm1/drivers/acpi/scan.c =================================================================== --- linux-2.6.17-mm1.orig/drivers/acpi/scan.c +++ linux-2.6.17-mm1/drivers/acpi/scan.c @@ -231,6 +231,14 @@ static int acpi_bus_get_power_flags(stru return_VALUE(0); } +static int acpi_match_hid(struct acpi_device *device, char *id) +{ + if (device->flags.hardware_id) + if (strstr(id, device->pnp.hardware_id)) + return 0; + return -ENOENT; +} + int acpi_match_ids(struct acpi_device *device, char *ids) { if (device->flags.hardware_id) @@ -476,6 +484,14 @@ acpi_bus_match(struct acpi_device *devic return acpi_match_ids(device, driver->ids); } +static int +acpi_bus_hid_match(struct acpi_device *device, struct acpi_driver *driver) +{ + if (driver && driver->ops.match) + return driver->ops.match(device, driver); + return acpi_match_hid(device, driver->ids); +} + /** * acpi_bus_driver_init - add a device to a driver * @device: the device to add and initialize @@ -647,8 +663,24 @@ static int acpi_bus_find_driver(struct a struct list_head *node, *next; ACPI_FUNCTION_TRACE("acpi_bus_find_driver"); - spin_lock(&acpi_device_lock); + + /* At first, find driver for HID */ + list_for_each_safe(node, next, &acpi_bus_drivers) { + struct acpi_driver *driver = + container_of(node, struct acpi_driver, node); + + atomic_inc(&driver->references); + spin_unlock(&acpi_device_lock); + if (!acpi_bus_hid_match(device, driver)) { + result = acpi_bus_driver_init(device, driver); + if (!result) + goto Done; + } + atomic_dec(&driver->references); + spin_lock(&acpi_device_lock); + } + /* find driver for all IDs */ list_for_each_safe(node, next, &acpi_bus_drivers) { struct acpi_driver *driver = container_of(node, struct acpi_driver, node); ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [Lhms-devel] [RFC] Patch [1/2] for acpi_memhotplug.c 2006-06-22 5:20 ` KAMEZAWA Hiroyuki 2006-06-22 6:11 ` KAMEZAWA Hiroyuki 2006-06-22 7:01 ` KAMEZAWA Hiroyuki @ 2006-06-22 17:25 ` keith mannthey 2006-06-22 17:41 ` KAMEZAWA Hiroyuki 2 siblings, 1 reply; 20+ messages in thread From: keith mannthey @ 2006-06-22 17:25 UTC (permalink / raw) To: KAMEZAWA Hiroyuki Cc: Prarit Bhargava--redhat, linux acpi, lhms-devel, konrad, robert.moore On Thu, 2006-06-22 at 14:20 +0900, KAMEZAWA Hiroyuki wrote: > On Wed, 21 Jun 2006 20:55:02 -0700 > keith mannthey <kmannth@us.ibm.com> wrote: > > > Hmm....curious..but no idead.. > > > Then, could try this ? > > > > I am trying to make the motherboard driver fail with it looks for > > resources and finds node. The motherboard add function alway returns > > AE_OK which is why the algorithm fails. See attached patch it allows the > > hot-add event to happen. > > > > With the event happening and I see > > > Um...my concern is > - When notify comes, memory hotplug driver is called. > - but at acpi_bus_add(), PNP0C01 motherboad driver is attached to the device. The patch I sent keeps the motherboard driver from attaching and allows the PNP0C80 device to attach. > I think something is wrong....from your SSDT, ME00 and ME01 memory device has > valid HID, PNP0C80. > == > Device (ME01) > { > Name (_HID, EisaId ("PNP0C80")) > Name (_CID, 0x010CD041) > == > What I imagine now is. > > - acpi_memory_device_init() -> acpi_memory_register_notify_handler() > installs notify handler for memory hotplug against device handle of memory > This doesn't check _CID. > > - acpi_bus_add() attachs motherboard driver because of CID. > Above _CID is 32bit compressed EISA-type ID (HID is string but..), > it is PNP0C01...motherboad driver is called before PNP0C80 driver. > (to covert 32bit ID to string, see acpi_ex_eisa_id_to_string(), > I attached program.) This is a bug in the motherboard driver where it attached to any device it is presented to. > Then what we should do here is...call HID:PNP0C80 driver instead if CID:PNP0C01 driver. > Because it has driver for HID, calling driver for CID looks not good. > (But we have to ask acpi people about this..) The patch allows PNP0C80 driver to be used. -- keith mannthey <kmannth@us.ibm.com> Linux Technology Center IBM ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [Lhms-devel] [RFC] Patch [1/2] for acpi_memhotplug.c 2006-06-22 17:25 ` keith mannthey @ 2006-06-22 17:41 ` KAMEZAWA Hiroyuki 2006-06-22 18:29 ` keith mannthey 0 siblings, 1 reply; 20+ messages in thread From: KAMEZAWA Hiroyuki @ 2006-06-22 17:41 UTC (permalink / raw) To: kmannth; +Cc: prarit, linux-acpi, robert.moore, darnok, lhms-devel On Thu, 22 Jun 2006 10:25:24 -0700 keith mannthey <kmannth@us.ibm.com> wrote: > > Um...my concern is > > - When notify comes, memory hotplug driver is called. > > - but at acpi_bus_add(), PNP0C01 motherboad driver is attached to the device. > > The patch I sent keeps the motherboard driver from attaching and allows > the PNP0C80 device to attach. > My point is...motherboard is not memory. Then, it shouldn't have _CRS handler. Because your ME00/ME01 device has both HID for memory and CID for motherboard, motherboard handler is called. (acpi_add_single_object() attaches the driver which is found 1st.) > > == > > Device (ME01) > > { > > Name (_HID, EisaId ("PNP0C80")) > > Name (_CID, 0x010CD041) > > == As I wrote in other mail, why memory and motherboard is compatible device in your SSDT ? If this _CID is necessary for some reason, what should we do is acpi handling problem. So, what you should ask to acpi people is == my device has both _HID and _CID. But the driver for _HID is different from _CID. I'm glad if the driver for _HID is called but driver for _CID is found before driver for _HID. Then, driver for _CID is called. How should I do ? (or make patch to fix this..) == Cheers, -Kame ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [Lhms-devel] [RFC] Patch [1/2] for acpi_memhotplug.c 2006-06-22 17:41 ` KAMEZAWA Hiroyuki @ 2006-06-22 18:29 ` keith mannthey 2006-06-22 19:07 ` keith mannthey 0 siblings, 1 reply; 20+ messages in thread From: keith mannthey @ 2006-06-22 18:29 UTC (permalink / raw) To: KAMEZAWA Hiroyuki Cc: Prarit Bhargava--redhat, linux acpi, lhms-devel, robert.moore, konrad On Fri, 2006-06-23 at 02:41 +0900, KAMEZAWA Hiroyuki wrote: > On Thu, 22 Jun 2006 10:25:24 -0700 > keith mannthey <kmannth@us.ibm.com> wrote: > > > Um...my concern is > > > - When notify comes, memory hotplug driver is called. > > > - but at acpi_bus_add(), PNP0C01 motherboad driver is attached to the device. > > > > The patch I sent keeps the motherboard driver from attaching and allows > > the PNP0C80 device to attach. > > > My point is...motherboard is not memory. Then, it shouldn't have _CRS handler. > Because your ME00/ME01 device has both HID for memory and CID for motherboard, > motherboard handler is called. > (acpi_add_single_object() attaches the driver which is found 1st.) > > > == > > > Device (ME01) > > > { > > > Name (_HID, EisaId ("PNP0C80")) > > > Name (_CID, 0x010CD041) > > > == > As I wrote in other mail, why memory and motherboard is compatible device in > your SSDT ? If this _CID is necessary for some reason, what should we do is > acpi handling problem. > So, what you should ask to acpi people is > == > my device has both _HID and _CID. But the driver for _HID is different from > _CID. I'm glad if the driver for _HID is called but driver for _CID is found > before driver for _HID. Then, driver for _CID is called. > How should I do ? (or make patch to fix this..) > == I agree this is an acpi_handling problem where the wrong device is attached. I am pursuing ACPI folks today. I have my patch in place to work around the problem and am looking into the the memory driver. In acpi_memory_enable_device in list_for_each_entry(info, &mem_device->res_list, list) { if printk ("node: %d , start %08lx, end %08lx \n",node,info- >start_addr,info->start_addr+info->length); before doing the add memory I see node: -1 , start 1f0000000, end 270000000 On node -1 totalpages: 0 node: -1 , start 170000000, end 1f0000000 Finding the 2 ranges (these are the right ranges and the right chunks) is great but acpi_get_node is not working for my handle. I am continuing to debug. Thanks, Keith ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [Lhms-devel] [RFC] Patch [1/2] for acpi_memhotplug.c 2006-06-22 18:29 ` keith mannthey @ 2006-06-22 19:07 ` keith mannthey 0 siblings, 0 replies; 20+ messages in thread From: keith mannthey @ 2006-06-22 19:07 UTC (permalink / raw) To: KAMEZAWA Hiroyuki Cc: Prarit Bhargava--redhat, linux acpi, konrad, robert.moore, lhms-devel On Thu, 2006-06-22 at 11:29 -0700, keith mannthey wrote: > On Fri, 2006-06-23 at 02:41 +0900, KAMEZAWA Hiroyuki wrote: > > On Thu, 22 Jun 2006 10:25:24 -0700 > > keith mannthey <kmannth@us.ibm.com> wrote: > > > > Um...my concern is > > > > - When notify comes, memory hotplug driver is called. > > > > - but at acpi_bus_add(), PNP0C01 motherboad driver is attached to the device. > > > > > > The patch I sent keeps the motherboard driver from attaching and allows > > > the PNP0C80 device to attach. > > > > > My point is...motherboard is not memory. Then, it shouldn't have _CRS handler. > > Because your ME00/ME01 device has both HID for memory and CID for motherboard, > > motherboard handler is called. > > (acpi_add_single_object() attaches the driver which is found 1st.) > > > > == > > > > Device (ME01) > > > > { > > > > Name (_HID, EisaId ("PNP0C80")) > > > > Name (_CID, 0x010CD041) > > > > == > > As I wrote in other mail, why memory and motherboard is compatible device in > > your SSDT ? If this _CID is necessary for some reason, what should we do is > > acpi handling problem. > > So, what you should ask to acpi people is > > == > > my device has both _HID and _CID. But the driver for _HID is different from > > _CID. I'm glad if the driver for _HID is called but driver for _CID is found > > before driver for _HID. Then, driver for _CID is called. > > How should I do ? (or make patch to fix this..) > > == > > I agree this is an acpi_handling problem where the wrong device is > attached. I am pursuing ACPI folks today. > > I have my patch in place to work around the problem and am looking into > the the memory driver. > > In acpi_memory_enable_device > > in list_for_each_entry(info, &mem_device->res_list, list) { > > if > printk ("node: %d , start %08lx, end %08lx \n",node,info- > >start_addr,info->start_addr+info->length); > before doing the add memory I see > > node: -1 , start 1f0000000, end 270000000 > On node -1 totalpages: 0 > node: -1 , start 170000000, end 1f0000000 > > Finding the 2 ranges (these are the right ranges and the right chunks) > is great but acpi_get_node is not working for my handle. > > I am continuing to debug. > if acpi_get_pxm status = acpi_evaluate_integer(handle, "_PXM", NULL, &pxm); This is looking to get the _PXM value from the handle. I don't see a _PXM filed in my SSDT for my memory device. I don't think it is required to have the _PXM field. It would be nice if it had one but I don't think Linux should require one. If the handle doesn't contain the _PXM device it should ask the arch if it knows. If the arch doesn't know (by way of SRAT at boot) then it should set the node to 0. I will send along a patch today. Thanks, keith mannthey <kmannth@us.ibm.com> Linux Technology Center IBM ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [Lhms-devel] [RFC] Patch [1/2] for acpi_memhotplug.c 2006-06-22 1:58 ` KAMEZAWA Hiroyuki 2006-06-22 2:19 ` keith mannthey @ 2006-06-22 2:28 ` keith mannthey 1 sibling, 0 replies; 20+ messages in thread From: keith mannthey @ 2006-06-22 2:28 UTC (permalink / raw) To: KAMEZAWA Hiroyuki Cc: Prarit Bhargava--redhat, linux acpi, lhms-devel, robert.moore, konrad On Thu, 2006-06-22 at 10:58 +0900, KAMEZAWA Hiroyuki wrote: > On Wed, 21 Jun 2006 18:37:00 -0700 > keith mannthey <kmannth@us.ibm.com> wrote: > > > > in acpi_bus_driver_init() > > > - driver->ops.add() is called or not > > > - what it retruns > > > > It is called. But that is not the whole story. > > In acpi_bus_driver_init it calls driver->ops.add(device). This ops.add > > is not acpi_memory_device_add. I do get not any printks that I would > > expect from acpi_memory_device_add. > > > > If I print out in acpi_bus_driver_init > > printk(" device_add() about %s\n",acpi_device_name(device)); > > result = driver->ops.add(device); Looks like this motherboard driver always returns 0. I am going see about fixing this driver. -- keith mannthey <kmannth@us.ibm.com> Linux Technology Center IBM ^ permalink raw reply [flat|nested] 20+ messages in thread
end of thread, other threads:[~2006-06-22 19:07 UTC | newest]
Thread overview: 20+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-11-18 20:51 Re: [Lhms-devel] [PATCH 1/1] patch to fix acpi_memhotplug.c Moore, Robert
[not found] ` <971FCB6690CD0E4898387DBF7552B90E0378BEE7-sBd4vmA9Se5Qxe9IK+vIArfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2005-11-19 10:44 ` Erik Slagter
2005-11-19 12:15 ` Kamezawa Hiroyuki
[not found] ` <1150853300.5873.49.camel@keithlap>
2006-06-21 2:10 ` [Lhms-devel] [RFC] Patch [1/1] for acpi_memhotplug.c keith mannthey
[not found] ` <20060621114334.1b954854.kamezawa.hiroyu@jp.fujitsu.com>
[not found] ` <1150863525.7865.6.camel@keithlap>
[not found] ` <20060621194832.37124aae.kamezawa.hiroyu@jp.fujitsu.com>
2006-06-21 18:43 ` [Lhms-devel] [RFC] Patch [1/2] " keith mannthey
2006-06-21 23:23 ` keith mannthey
2006-06-22 0:13 ` KAMEZAWA Hiroyuki
2006-06-22 1:37 ` keith mannthey
2006-06-22 1:58 ` KAMEZAWA Hiroyuki
2006-06-22 2:19 ` keith mannthey
2006-06-22 3:13 ` KAMEZAWA Hiroyuki
2006-06-22 3:55 ` keith mannthey
2006-06-22 5:20 ` KAMEZAWA Hiroyuki
2006-06-22 6:11 ` KAMEZAWA Hiroyuki
2006-06-22 7:01 ` KAMEZAWA Hiroyuki
2006-06-22 17:25 ` keith mannthey
2006-06-22 17:41 ` KAMEZAWA Hiroyuki
2006-06-22 18:29 ` keith mannthey
2006-06-22 19:07 ` keith mannthey
2006-06-22 2:28 ` keith mannthey
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox