Re: [RFC PATCH 00/11] Hot-plug and Online/Offline framework

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Dec 12, 2012 at 08:37:44PM -0700, Toshi Kani wrote:
> On Wed, 2012-12-12 at 16:55 -0800, Greg KH wrote:
> > On Wed, Dec 12, 2012 at 05:39:36PM -0700, Toshi Kani wrote:
> > > On Wed, 2012-12-12 at 15:56 -0800, Greg KH wrote:
> > > > On Wed, Dec 12, 2012 at 04:17:12PM -0700, Toshi Kani wrote:
> > > > > This patchset is an initial prototype of proposed hot-plug framework
> > > > > for design review.  The hot-plug framework is designed to provide 
> > > > > the common framework for hot-plugging and online/offline operations
> > > > > of system devices, such as CPU, Memory and Node.  While this patchset
> > > > > only supports ACPI-based hot-plug operations, the framework itself is
> > > > > designed to be platform-neural and can support other FW architectures
> > > > > as necessary.
> > > > > 
> > > > > The patchset has not been fully tested yet, esp. for memory hot-plug.
> > > > > Any help for testing will be very appreciated since my test setup
> > > > > is limited.
> > > > > 
> > > > > The patchset is based on the linux-next branch of linux-pm.git tree.
> > > > > 
> > > > > Overview of the Framework
> > > > > =========================
> > > > 
> > > > <snip>
> > > > 
> > > > Why all the new framework, doesn't the existing bus infrastructure
> > > > provide everything you need here?  Shouldn't you just be putting your
> > > > cpus and memory sticks on a bus and handle stuff that way?  What makes
> > > > these types of devices so unique from all other devices that Linux has
> > > > been handling in a dynamic manner (i.e. hotplugging them) for many many
> > > > years?
> > > > 
> > > > Why are you reinventing the wheel?
> > > 
> > > Good question.  Yes, USB and PCI hotplug operate based on their bus
> > > structures.  USB and PCI cards only work under USB and PCI bus
> > > controllers.  So, their framework can be composed within the bus
> > > structures as you pointed out.
> > > 
> > > However, system devices such CPU and memory do not have their standard
> > > bus.  ACPI allows these system devices to be enumerated, but it does not
> > > make ACPI as the HW bus hierarchy for CPU and memory, unlike PCI and
> > > USB.  Therefore, CPU and memory modules manage CPU and memory outside of
> > > ACPI.  This makes sense because CPU and memory can be used without ACPI.
> > > 
> > > This leads us an issue when we try to manage system device hotplug
> > > within ACPI, because ACPI does not control everything.  This patchset
> > > provides a common hotplug framework for system devices, which both ACPI
> > > and non-ACPI modules (i.e. CPU and memory modules) can participate and
> > > are coordinated for their hotplug operations.  This is analogous to the
> > > boot-up sequence, which ACPI and non-ACPI modules can participate to
> > > enable CPU and memory.
> > 
> > Then create a "virtual" bus and put the devices you wish to control on
> > that.  That is what the "system bus" devices were supposed to be, it's
> > about time someone took that code and got it all working properly in
> > this way, that is why it was created oh so long ago.
> 
> It may be the ideal, but it will take us great effort to make such
> things to happen based on where we are now.  It is going to be a long
> way.  I believe the first step is to make the boot-up flow and hot-plug
> flow consistent for system devices.  This is what this patchset is
> trying to do.

If you use the system "bus" for this, the "flow" will be identical, that
is what the driver core provides for you.  I don't see why you need to
implement something that sits next to it and not just use what we
already have here.

thanks,

greg k-h

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@xxxxxxxxx.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@xxxxxxxxx";> email@xxxxxxxxx </a>


[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]