From: Thomas Renninger <mail@renninger.de>
To: Yasunori Goto <y-goto@jp.fujitsu.com>
Cc: Thomas Renninger <trenn@suse.de>,
akpm@osdl.org, "Brown, Len" <len.brown@intel.com>,
keith mannthey <kmannth@us.ibm.com>,
ACPI-ML <linux-acpi@vger.kernel.org>,
Linux Kernel ML <linux-kernel@vger.kernel.org>,
Linux Hotplug Memory Support <lhms-devel@lists.sourceforge.net>,
naveen.b.s@intel.com
Subject: Re: [PATCH](memory hotplug) Repost remove useless message at boot time from 2.6.18-rc4.
Date: Mon, 28 Aug 2006 23:16:58 +0200 [thread overview]
Message-ID: <1156799818.12158.9.camel@linux-1vxn.site> (raw)
In-Reply-To: <20060828223538.F622.Y-GOTO@jp.fujitsu.com>
On Mon, 2006-08-28 at 23:12 +0900, Yasunori Goto wrote:
> Hmm.
> Ok. Followings are current my understanding of sequence
> with your patch.
>
> At boot time, acpi_memory_device_init() is called.
>
> acpi_memory_device_init()
> |
> +---> acpi_bus_register_driver()
> |
> +---> acpi_driver_attach()
> |
> +---> acpi_bus_driver_init()
> |
> +---> acpi_memory_device_add()
> |
> +---> acpi_install_notify_handler().
>
>
> The problem is in acpi_driver_attach(). This function is using
> "acpi_device_list" to call acpi_bus_driver_init().
>
> This list is registered by acpi_device_register() which is called by
> acpi_add_single_object().
> However, acpi_add_single_object() skips calling it if _STA is not on.
>
> 1015 switch (type) {
> 1016 case ACPI_BUS_TYPE_PROCESSOR:
> 1017 case ACPI_BUS_TYPE_DEVICE:
> 1018 result = acpi_bus_get_status(device);
> 1019 if (ACPI_FAILURE(result) || !device->status.present) {
> 1020 result = -ENOENT;
> 1021 goto end;
> 1022 }
> 1023 break;
>
> So, notify handler is registered just for memory device which is enable
> at boot time.
> If notify event occurs for new memory device, there is no notify handler
> for it....
>
Ah, good point. That should also be the reason why a battery inserted
after module loading won't get noticed (I didn't try right now, but I
remember complains about that).
I wonder whether the "!device->status.present" condition can just be
deleted here or checking for device HIDs that potentially can be
ejected/inserted, not sure. Hopefully someone else could comment on that
one.
> Old code registers handler for all of memory devices even if it is not
> enabled.
Yeah, therefore the mem_device cannot be passed as callback data as it
might get generated in the notify handler func and all the additional
stuff is needed..., ouch.
>
> If my understanding is wrong, please let me know. ;-)
It's me who is wrong, thanks a lot for checking!
> Memory device might not have _EJ0/_EJD, but parent device
> (like one NUMA node) might be able to be ejectable.
> In this case, only the parent device has _EJ0/_EJD.
> So, one more check is necessary.
I feared something like that (should have add a comment...), as the EJ0
and _STA functions are only used on the device itself I thought checking
for them makes sense, but for a missing EJ0 func powering down the
device just fails and it should not be harmful.
So the only useful thing from my patch (as long as .add is only invoked
if device is present) is using the general acpi_bus_get_status() func.
Hmm, it must be used if the _STA function on the memory device is also
missing and the parent _STA must be used then? Could make sense on a
machine where a whole node must be inserted/ejected? The
acpi_bus_get_status() function already contains the checking for the
parent's _STA function and uses this one if the device itself has none.
Thomas
next prev parent reply other threads:[~2006-08-28 21:17 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-08-04 12:37 [PATCH](memory hotplug) remove useless message at boot time from 2.6.18-rc3 Yasunori Goto
2006-08-10 5:32 ` [PATCH](memory hotplug) Repost remove useless message at boot time from 2.6.18-rc4 Yasunori Goto
2006-08-10 20:26 ` Prarit Bhargava
2006-08-10 20:54 ` Len Brown
2006-08-10 20:55 ` Prarit Bhargava
2006-08-15 12:03 ` Thomas Renninger
2006-08-15 21:36 ` Yasunori Goto
2006-08-25 11:59 ` Yasunori Goto
2006-08-27 12:50 ` Thomas Renninger
2006-08-28 14:12 ` Yasunori Goto
2006-08-28 21:16 ` Thomas Renninger [this message]
2006-08-29 1:57 ` Yasunori Goto
2006-08-31 22:22 ` Bjorn Helgaas
2006-08-27 15:19 ` [PATCH 2/2] ACPI memory_hotplug cleanups Thomas Renninger
2006-08-27 17:19 ` [PATCH 1/2] acpi hotplug cleanups, move install notifier to add function Thomas Renninger
2006-08-30 21:48 ` keith mannthey
2006-08-27 17:58 ` [PATCH 2/2] " Thomas Renninger
2006-08-28 8:08 ` Yasunori Goto
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1156799818.12158.9.camel@linux-1vxn.site \
--to=mail@renninger.de \
--cc=akpm@osdl.org \
--cc=kmannth@us.ibm.com \
--cc=len.brown@intel.com \
--cc=lhms-devel@lists.sourceforge.net \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=naveen.b.s@intel.com \
--cc=trenn@suse.de \
--cc=y-goto@jp.fujitsu.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox