From: Greg KH <greg@kroah.com>
To: linux-hotplug@vger.kernel.org
Subject: Re: [Pcihpd-discuss] Hot Plug I/O Node spec 0.2.1
Date: Sun, 03 Feb 2002 08:19:15 +0000 [thread overview]
Message-ID: <marc-linux-hotplug-101272450629952@msgid-missing> (raw)
On Mon, Jan 28, 2002 at 10:36:35AM +0900, Hiroshi Aono wrote:
> Hello hotplug developers,
>
> I'm working on Hot Plug I/O Node work that is on Atlas project.
> I've been considering the specification of Hot Plug IO node and I've started
> the development about this.
> Now I post Hot Plug I/O Node specification I want to do.
> This isn't fixed yet. If you're interested, please feel free to add your ideas.
This looks good, a few minor points below.
> 3.1. Functions overview
>
> This is the IO node hot plug function block diagram.
>
> +---------------+ +-------------+
> |Hotplug | +---------/Configuration/
> |Application | | / File /
> +---------------+ | +-------------+
> ---------|--------------|------------------------------------
> +---------------+ +-------------------+ [kernel]
> | Hotplug | |Object Registration|
> | Filesystem | |Interface | User API
> +---------------+ +-------------------+
What is the "Object Redistration Interface" going to look like? What is
needed to be sent from a configuration file to the IO Node resource
manager? Doesn't the IO Node resource manager get all of the
information it needs from the BIOS/ACPI interface?
> 3.3. Hotplug Filesystem
>
> We'd like to use the hotplug filesystem. This is for PCI hotplug
> filesystem and we feel this is most suitable for the generic hotplug
> interface. The hotplug filesystem will be used for user interfaces.
> We will improve this to treat a hierarchical structure for describing
> IO node objects.
>
> IO node hotplug hierarchical structure will be as follows:
>
> --+ ionodeXX
> + bridgeXX
> + slotXX
> + slotXX
> + pic
"pic"? What is this?
> 3.4.2. Interface between IO node manager and PCI hotplug function
>
> IO node hotplug uses the /sbin/hotplug script.
How? Doesn't a IO node just show up as a PCI device being added to the
system?
> When an IO node is added, a script for IO node will be executed and the
> PCI hotplug driver will be loaded.
Doesn't the PCI Hotplug driver have to be loaded to recognize that a IO
node was inserted into the system?
> Conversely, when an IO node is removed, a script for IO node will be
> executed and the PCI hotplug driver will stop all PCI devices under
> the IO node.
Will the removal event fire for every PCI slot, or just once for the
node? If just once, I now understand why you need this IO node driver :)
> 3.4.3. Solutions for assignment of bus number, I/O address and
> interruption
>
> Our 1st solution is to use the resources that the BIOS has allocated
> when booting. In this case, we expect that the BIOS supports the
> reservation of IO/Memory space gap and the bus numbers for hotplugging.
I am not aware of any other method of getting this information. I
thought the BIOS _had_ to do this. Is there another way of doing this?
> 3.4.4. IRQ management
>
> (We should discuss, later.)
>
> 3.4.5. Advanced solution
>
> For more advanced solutions, we should consider active configuration of
> the IO node memory region and bus number region.
>
> For example, when we want to expand region A because of insufficient IO
> memory area, we should do the following things:
>
> o Narrow region B.
> o Expand region A.
>
> MEMORY MAP MEMORY MAP
> +-------------+ +-------------+
> | | | |
> +-------------+-- +-------------+--
> | |A (IO node 1) | |A (IO node 1)
> | | -> | |
> +-------------+-- | |
> | |B (IO node 2) +-------------+
> | | | |B' (IO node 2)
> +-------------+-- +-------------+--
> | | | |
>
> Figure 4 Advanced solution
> --------------------------
>
> In addition, when some PCI cards work on IO node B, we should consider
> the following things:
>
> o Suspend all of the devices on IO node 1
> o Suspend the cards working on IO node 2
> o Move card resources to region B'
> o Re-program the configuration space for cards on IO node 2
> o Resume the cards on IO node 2
> o Resume all the devices on IO node 1
I can't see users tolerating their already working and configured
devices shutting down, and then requiring to be reconfigured when you
insert a new node. Is this an acceptable thing to you?
> 3.8. State and transition for IO node
>
> This is the outline for the hot plug procedure:
>
> 1 Not Present
> | (Insertion)
> (1.1) FW: rises an interruption (SCI) (Note: FW: Firmware)
> |
> v
> 2 Present but not communicating
> (2.1) OS: ACPI driver handles SCI interruption and
> sends message "Inserted IO nodeXX" to the syslog. (for
> debugging)
> (2.2) FW: rises an interruption (SCI)
> |
> v
> 3 Communicating
> (3.1) OS: ACPI driver handles SCI interruption and
> sends message "Communicating" to the syslog. (for debugging)
> |
> v
> 4 Ready to Join
> (4.1) FW: scans buses.
> (4.2) FW: maps IO spaces.
> (4.3) OS: scans buses and devices on IO node.
> (4.4) OS: add IO node resources.
> (4.5) OS: sets interrupt vectors.
> (4.6) OS: call /sbin/hotplug with notification of the new devices seen.
> |
> v
> 5 Running
> | (Removal)
> (5.1) FW: calls an interruption (SCI) or user request
> |
> v
> 6 Prepare to disable
> (6.1) OS: ACPI driver handles SCI interruption.
> (6.2) OS: ACPI driver or node manager calls IO node event handler
> functions for pre-removal.
> (6.3) OS: call remove method of port drivers on IO node and stops the IO
> requests.
> (6.4) OS: changes IO node state to be unavailable.
> (6.5) OS: executes _PS3, _EJ0 methods. (Power off and Eject)
> (6.6) OS: executes _STA to verify the node ejected successfully.
> |
> v
> 7 Ready to Remove (Present but not communicating)
> |(Physical removal)
> (7.1) User: removes the IO node.
> (7.1) FW: calls an interruption (SCI)
> (7.2) OS: ACPI driver handles SCI interruption.
> (7.3) OS: deletes the IO node resource.
> |
> v
> Go to 1
IBM's BIOS does not work this way. Does this matter? On insertion, it
only notifies the OS when the card has been powered up and configured
(skipping steps 2 and 3 above). If an error occured when configuring
(bus speed mismatch, etc.) this error is reported. Then the OS can
assign physical resources, call /sbin/hotplug with the notification that
a new device has been seen, and allows the driver to be loaded.
Most of the removal steps are not present too. The BIOS does most of
it, and again, only notifies the OS when everything is done.
Because of this, a number of places where you will be notifing the OS
user of something, the IBM driver can not. Do you see this being a
problem?
thanks,
greg k-h
_______________________________________________
Linux-hotplug-devel mailing list http://linux-hotplug.sourceforge.net
Linux-hotplug-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel
next reply other threads:[~2002-02-03 8:19 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-02-03 8:19 Greg KH [this message]
2002-02-05 5:16 ` [Pcihpd-discuss] Hot Plug I/O Node spec 0.2.1 Hiroshi Aono
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=marc-linux-hotplug-101272450629952@msgid-missing \
--to=greg@kroah.com \
--cc=linux-hotplug@vger.kernel.org \
/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;
as well as URLs for NNTP newsgroup(s).