From: Yijing Wang <wangyijing@huawei.com> To: "Rafael J. Wysocki" <rjw@sisk.pl> Cc: ACPI Devel Maling List <linux-acpi@vger.kernel.org>, Bjorn Helgaas <bhelgaas@google.com>, LKML <linux-kernel@vger.kernel.org>, linux-pci@vger.kernel.org, Yinghai Lu <yinghai@kernel.org>, Toshi Kani <toshi.kani@hp.com>, Myron Stowe <myron.stowe@redhat.com>, Yijing Wang <wangyijing0307@gmail.com>, Jiang Liu <liuj97@gmail.com> Subject: Re: [PATCH rev.2 0/6] ACPI: Change the ACPI namespace scanning code ordering Date: Fri, 14 Dec 2012 17:56:46 +0800 [thread overview] Message-ID: <50CAF7DE.8000203@huawei.com> (raw) In-Reply-To: <1499423.ez5cZl2uAf@vostro.rjw.lan> On 2012/12/14 6:15, Rafael J. Wysocki wrote: > Hi All, > > On Sunday, December 09, 2012 11:58:42 PM Rafael J. Wysocki wrote: >> Hi, >> >> The following patches change the ordering of the ACPI namespace scanning code >> so that all struct acpi_device objects in the given scope are registered before >> ACPI drivers are probed against them. They also do some simplifications and >> clarifications of the code made possible by this main change. >> >> This is done for three basic reasons. First, we need the boot ACPI namespace >> scanning code to be as similar as reasonably possible to the hot-plug ACPI >> namespace scanning code. Second, the ordering of PCI devices enumeration >> versus ACPI-backed platform devices registration needs to be such that the PCI >> devices in the given scope are all registered first. Finally, when we start to >> actually manage ACPI device resources as appropriate (e.g. resolve resource >> conflicts properly) we'll need all struct acpi_device nodes to be registered >> before any "companion" physical nodes or ACPI drivers are bound to them. >> >> The patches have been tested on Toshiba Portege R500 without breaking stuff >> (I used some additional debug code to verify that the ordering of device >> discovery had not been modified by them), but if you see any problems with >> them regarding hot-plug, please let me know. >> >> [1/6] - Separate adding ACPI device objects from probing ACPI drivers. >> [2/6] - Change the ordering of PCI root bridge driver registration. >> [3/6] - Make acpi_bus_add() and acpi_bus_start() visibly different. >> [4/6] - Reduce the usage of struct acpi_bus_ops >> [5/6] - Replace struct acpi_bus_ops with an enum type >> [6/6] - Change the ordering of acpi_bus_check_add() to avoid unnecessary checks. > > The second revision is necessary to address problems found by Yijing Wang > during testing and explained by Jiang Liu (thanks guys!). > > The problem is that acpi_walk_namespace() doesn't execute the pre_order_visit > callback for the starting handle, so the callback routine has the be executed > for it directly, if necessary. > > I also modified a couple of changelogs to better explain the motivation of the > patches. > > Boot sequence tested on Toshiba Portege R500, but testing on systems with > hotplug will be appreciated. Hi rafael, I tested this version patchset in my ia64 hotplug machine, and the result looks ok. Thanks! Yijing > > Thanks, > Rafael > > -- Thanks! Yijing
WARNING: multiple messages have this Message-ID (diff)
From: Yijing Wang <wangyijing@huawei.com> To: "Rafael J. Wysocki" <rjw@sisk.pl> Cc: ACPI Devel Maling List <linux-acpi@vger.kernel.org>, Bjorn Helgaas <bhelgaas@google.com>, LKML <linux-kernel@vger.kernel.org>, <linux-pci@vger.kernel.org>, Yinghai Lu <yinghai@kernel.org>, Toshi Kani <toshi.kani@hp.com>, Myron Stowe <myron.stowe@redhat.com>, Yijing Wang <wangyijing0307@gmail.com>, Jiang Liu <liuj97@gmail.com> Subject: Re: [PATCH rev.2 0/6] ACPI: Change the ACPI namespace scanning code ordering Date: Fri, 14 Dec 2012 17:56:46 +0800 [thread overview] Message-ID: <50CAF7DE.8000203@huawei.com> (raw) In-Reply-To: <1499423.ez5cZl2uAf@vostro.rjw.lan> On 2012/12/14 6:15, Rafael J. Wysocki wrote: > Hi All, > > On Sunday, December 09, 2012 11:58:42 PM Rafael J. Wysocki wrote: >> Hi, >> >> The following patches change the ordering of the ACPI namespace scanning code >> so that all struct acpi_device objects in the given scope are registered before >> ACPI drivers are probed against them. They also do some simplifications and >> clarifications of the code made possible by this main change. >> >> This is done for three basic reasons. First, we need the boot ACPI namespace >> scanning code to be as similar as reasonably possible to the hot-plug ACPI >> namespace scanning code. Second, the ordering of PCI devices enumeration >> versus ACPI-backed platform devices registration needs to be such that the PCI >> devices in the given scope are all registered first. Finally, when we start to >> actually manage ACPI device resources as appropriate (e.g. resolve resource >> conflicts properly) we'll need all struct acpi_device nodes to be registered >> before any "companion" physical nodes or ACPI drivers are bound to them. >> >> The patches have been tested on Toshiba Portege R500 without breaking stuff >> (I used some additional debug code to verify that the ordering of device >> discovery had not been modified by them), but if you see any problems with >> them regarding hot-plug, please let me know. >> >> [1/6] - Separate adding ACPI device objects from probing ACPI drivers. >> [2/6] - Change the ordering of PCI root bridge driver registration. >> [3/6] - Make acpi_bus_add() and acpi_bus_start() visibly different. >> [4/6] - Reduce the usage of struct acpi_bus_ops >> [5/6] - Replace struct acpi_bus_ops with an enum type >> [6/6] - Change the ordering of acpi_bus_check_add() to avoid unnecessary checks. > > The second revision is necessary to address problems found by Yijing Wang > during testing and explained by Jiang Liu (thanks guys!). > > The problem is that acpi_walk_namespace() doesn't execute the pre_order_visit > callback for the starting handle, so the callback routine has the be executed > for it directly, if necessary. > > I also modified a couple of changelogs to better explain the motivation of the > patches. > > Boot sequence tested on Toshiba Portege R500, but testing on systems with > hotplug will be appreciated. Hi rafael, I tested this version patchset in my ia64 hotplug machine, and the result looks ok. Thanks! Yijing > > Thanks, > Rafael > > -- Thanks! Yijing
next prev parent reply other threads:[~2012-12-14 9:56 UTC|newest] Thread overview: 94+ messages / expand[flat|nested] mbox.gz Atom feed top 2012-12-09 22:58 [PATCH 0/6] ACPI: Change the ACPI namespace scanning code ordering Rafael J. Wysocki 2012-12-09 23:00 ` [PATCH 1/6] ACPI: Separate adding ACPI device objects from probing ACPI drivers Rafael J. Wysocki 2012-12-12 15:50 ` Jiang Liu 2012-12-12 22:34 ` Rafael J. Wysocki 2012-12-12 16:38 ` Jiang Liu 2012-12-12 22:32 ` Rafael J. Wysocki 2012-12-12 23:43 ` [update][PATCH " Rafael J. Wysocki 2012-12-13 13:05 ` [PATCH " Jiang Liu 2012-12-13 19:40 ` Rafael J. Wysocki 2012-12-13 1:00 ` Bjorn Helgaas 2012-12-13 11:41 ` Rafael J. Wysocki 2012-12-09 23:00 ` [PATCH 2/6] ACPI: Change the ordering of PCI root bridge driver registrarion Rafael J. Wysocki 2012-12-13 1:00 ` Bjorn Helgaas 2012-12-13 12:19 ` Rafael J. Wysocki 2012-12-09 23:01 ` [PATCH 3/6] ACPI: Make acpi_bus_add() and acpi_bus_start() visibly different Rafael J. Wysocki 2012-12-13 0:11 ` [Update][PATCH " Rafael J. Wysocki 2012-12-09 23:02 ` [PATCH 4/6] ACPI: Reduce the usage of struct acpi_bus_ops Rafael J. Wysocki 2012-12-09 23:03 ` [PATCH 5/6] ACPI: Replace struct acpi_bus_ops with enum type Rafael J. Wysocki 2012-12-10 5:34 ` Yinghai Lu 2012-12-10 14:46 ` Rafael J. Wysocki 2012-12-10 17:07 ` Yinghai Lu 2012-12-10 22:47 ` Rafael J. Wysocki 2012-12-10 23:09 ` Rafael J. Wysocki 2012-12-10 23:14 ` Yinghai Lu 2012-12-11 1:02 ` Rafael J. Wysocki 2012-12-11 1:28 ` Rafael J. Wysocki 2012-12-11 2:26 ` Yinghai Lu 2012-12-11 12:45 ` Rafael J. Wysocki 2012-12-11 15:09 ` Jiang Liu 2012-12-11 18:30 ` Rafael J. Wysocki 2012-12-12 14:34 ` Yijing Wang 2012-12-12 15:05 ` Jiang Liu 2012-12-12 15:05 ` Jiang Liu 2012-12-12 22:39 ` Rafael J. Wysocki 2012-12-10 23:22 ` Yinghai Lu 2012-12-11 0:48 ` Rafael J. Wysocki 2012-12-09 23:04 ` [PATCH 6/6] ACPI: Change the ordering of acpi_bus_check_add() Rafael J. Wysocki 2012-12-13 1:00 ` Bjorn Helgaas 2012-12-13 12:20 ` Rafael J. Wysocki 2012-12-13 11:45 ` [PATCH 0/6] ACPI: Change the ACPI namespace scanning code ordering Yijing Wang 2012-12-13 11:45 ` Yijing Wang 2012-12-13 22:15 ` [PATCH rev.2 " Rafael J. Wysocki 2012-12-13 22:17 ` [PATCH rev.2 1/6] ACPI: Separate adding ACPI device objects from probing ACPI drivers Rafael J. Wysocki 2012-12-18 0:08 ` Toshi Kani 2012-12-18 1:48 ` Rafael J. Wysocki 2012-12-18 16:10 ` Toshi Kani 2012-12-18 18:59 ` Yinghai Lu 2012-12-18 20:48 ` Toshi Kani 2012-12-18 21:11 ` Yinghai Lu 2012-12-18 22:05 ` Rafael J. Wysocki 2012-12-19 1:57 ` Yinghai Lu 2012-12-18 21:57 ` Rafael J. Wysocki 2012-12-18 22:15 ` Toshi Kani 2012-12-18 23:00 ` Rafael J. Wysocki 2012-12-18 23:19 ` Bjorn Helgaas 2012-12-19 11:13 ` Rafael J. Wysocki 2012-12-20 1:45 ` [PATCH 0/16] ACPI: Rework ACPI namespace scanning for devices Rafael J. Wysocki 2012-12-20 1:47 ` [PATCH 1/16] ACPI: Separate adding ACPI device objects from probing ACPI drivers Rafael J. Wysocki 2013-01-11 20:00 ` Mika Westerberg 2013-01-11 20:31 ` Rafael J. Wysocki 2013-01-11 20:37 ` Mika Westerberg 2013-01-11 20:58 ` Rafael J. Wysocki 2013-01-11 20:59 ` Mika Westerberg 2012-12-20 1:48 ` [PATCH 2/16] ACPI: Change the ordering of PCI root bridge driver registrarion Rafael J. Wysocki 2012-12-20 1:49 ` [PATCH 3/16] ACPI: Make acpi_bus_add() and acpi_bus_start() visibly different Rafael J. Wysocki 2012-12-20 1:50 ` [PATCH 4/16] ACPI: Reduce the usage of struct acpi_bus_ops Rafael J. Wysocki 2012-12-20 1:50 ` [PATCH 5/16] ACPI: Replace struct acpi_bus_ops with enum type Rafael J. Wysocki 2012-12-20 1:51 ` [PATCH 6/16] ACPI: Change the ordering of acpi_bus_check_add() Rafael J. Wysocki 2012-12-20 1:52 ` [PATCH 7/16] ACPI / PCI: Fold acpi_pci_root_start() into acpi_pci_root_add() Rafael J. Wysocki 2012-12-20 1:53 ` [PATCH 8/16] ACPI: Remove acpi_start_single_object() and acpi_bus_start() Rafael J. Wysocki 2012-12-20 1:54 ` [PATCH 9/16] ACPI: Remove the arguments of acpi_bus_add() that are not used Rafael J. Wysocki 2012-12-20 1:54 ` [PATCH 10/16] ACPI: Drop the second argument of acpi_bus_scan() Rafael J. Wysocki 2012-12-20 1:55 ` [PATCH 11/16] ACPI: Replace ACPI device add_type field with a match_driver flag Rafael J. Wysocki 2012-12-20 1:56 ` [PATCH 12/16] ACPI: Make acpi_bus_scan() and acpi_bus_add() take only one argument Rafael J. Wysocki 2012-12-20 1:57 ` [PATCH 13/16] ACPI: Add .setup() and .cleanup() callbacks to struct acpi_bus_type Rafael J. Wysocki 2012-12-20 1:58 ` [PATCH 14/16] ACPI / PCI: Rework the setup and cleanup of device wakeup Rafael J. Wysocki 2012-12-20 1:59 ` [PATCH 15/16] ACPI / PCI: Move the _PRT setup and cleanup code to pci-acpi.c Rafael J. Wysocki 2012-12-20 2:00 ` [PATCH 16/16] ACPI: Drop ACPI device .bind() and .unbind() callbacks Rafael J. Wysocki 2013-01-13 14:16 ` [PATCH] ACPI: remove unused acpi_op_bind and acpi_op_unbind Jiang Liu 2013-01-14 13:03 ` Rafael J. Wysocki 2012-12-20 2:06 ` [PATCH 0/16] ACPI: Rework ACPI namespace scanning for devices Yinghai Lu 2012-12-21 0:09 ` Rafael J. Wysocki 2012-12-21 3:59 ` Yinghai Lu 2012-12-21 22:23 ` Rafael J. Wysocki 2012-12-20 21:07 ` Toshi Kani 2012-12-20 23:20 ` Rafael J. Wysocki 2012-12-13 22:18 ` [PATCH rev.2 2/6] ACPI: Change the ordering of PCI root bridge driver registrarion Rafael J. Wysocki 2012-12-13 22:21 ` [PATCH rev.2 3/6] ACPI: Make acpi_bus_add() and acpi_bus_start() visibly different Rafael J. Wysocki 2012-12-13 22:21 ` [PATCH rev.2 4/6] ACPI: Reduce the usage of struct acpi_bus_ops Rafael J. Wysocki 2012-12-13 22:22 ` [PATCH rev.2 5/6] ACPI: Replace struct acpi_bus_ops with enum type Rafael J. Wysocki 2012-12-13 22:23 ` [PATCH rev.2 6/6] ACPI: Change the ordering of acpi_bus_check_add() Rafael J. Wysocki 2012-12-14 9:56 ` Yijing Wang [this message] 2012-12-14 9:56 ` [PATCH rev.2 0/6] ACPI: Change the ACPI namespace scanning code ordering Yijing Wang 2012-12-14 22:59 ` Rafael J. Wysocki
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=50CAF7DE.8000203@huawei.com \ --to=wangyijing@huawei.com \ --cc=bhelgaas@google.com \ --cc=linux-acpi@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-pci@vger.kernel.org \ --cc=liuj97@gmail.com \ --cc=myron.stowe@redhat.com \ --cc=rjw@sisk.pl \ --cc=toshi.kani@hp.com \ --cc=wangyijing0307@gmail.com \ --cc=yinghai@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: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.