From: Hiroshi Aono <h-aono@ap.jp.nec.com>
To: linux-hotplug@vger.kernel.org
Subject: Re: [Pcihpd-discuss] Hot Plug I/O Node spec 0.2.1
Date: Tue, 05 Feb 2002 05:16:20 +0000 [thread overview]
Message-ID: <marc-linux-hotplug-101288628323819@msgid-missing> (raw)
In-Reply-To: <marc-linux-hotplug-101272450629952@msgid-missing>
At Sun, 3 Feb 2002 00:19:15 -0800,
Greg KH wrote:
Hello Greg,
> 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.
Thank you for your comments.
>
> > 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?
I expect that this mainly works for debugging.
I think the hardware like this may not work sufficiently at first.
or it may be used for non-ACPI machine.
This configuration file will be stored hardware information.
Of course IO Node resource manager should get all information from
BIOS/ACPI.
I think the IO node driver and the Object Registration
interface between IO node resource manager should have same 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?
"pic" means programmable interrupt controller like an IOSAPIC.
>
> > 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?
Our IO node doesn't show up as a PCI device.
Does IBM work so?
I can know the hardware structure through ACPI name space in advance.
>
> > 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?
If so, I think PCI hotplug driver should be loaded in advance.
>
> > 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 :)
Yes, I think it's just once.
>
> > 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?
This means we can specify the IO/Memory space gap and bus numbers on a BIOS
menu.
I think this is same rule for PCI hotplug. Is this right?
>
> > 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?
As a matter of fact, I think this is not realistic now.
So I say this is "Advanced". At first, this is difficult for
hardware implementation.
>
> > 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.
Actually, hardware spec doesn't fix yet, so we can suggest this for our
hardware people.
Personally, I feel that we don't need steps 2 and 3.
>
> 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?
I feel those hardware dependency part should be implement as a local IO node
driver.
I think it will be ok if we decide the interface definitely between IO
node driver and IO node resource manager.
Regards,
---
Hiroshi Aono, NEC Solutions
(h-aono@ap.jp.nec.com)
_______________________________________________
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
prev parent reply other threads:[~2002-02-05 5:16 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-02-03 8:19 [Pcihpd-discuss] Hot Plug I/O Node spec 0.2.1 Greg KH
2002-02-05 5:16 ` Hiroshi Aono [this message]
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-101288628323819@msgid-missing \
--to=h-aono@ap.jp.nec.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).