All of lore.kernel.org
 help / color / mirror / Atom feed
From: Toshi Kani <toshi.kani@hp.com>
To: Yinghai Lu <yinghai@kernel.org>
Cc: ZhangRui <rui.zhang@intel.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Len Brown <lenb@kernel.org>, "Rafael J. Wysocki" <rjw@sisk.pl>,
	Tang Chen <tangchen@cn.fujitsu.com>,
	bhelgaas@google.com, jiang.liu@huawei.com,
	izumi.taku@jp.fujitsu.com, isimatu.yasuaki@jp.fujitsu.com,
	linux-acpi@vger.kernel.org, linux-pci@vger.kernel.org,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH v3 3/3] Improve container_notify_cb() to support container hot-remove.
Date: Thu, 01 Nov 2012 13:17:58 -0600	[thread overview]
Message-ID: <1351797478.19172.103.camel@misato.fc.hp.com> (raw)
In-Reply-To: <CAE9FiQXxHz_RntOc2gxxDscv8+mDQ2XBL0sHSrptj_arwUb8-A@mail.gmail.com>

On Thu, 2012-11-01 at 11:28 -0700, Yinghai Lu wrote:
> On Thu, Nov 1, 2012 at 9:43 AM, Toshi Kani <toshi.kani@hp.com> wrote:
> >
> > Rafael pointed out in my CPU hot-remove patch that
> > acpi_bus_hot_remove_device() was not exported for modules.  Looks like
> > you have the same problem here.  FYI, I just sent the following patch
> > that exports acpi_bus_hot_remove_device() and acpi_os_hotplug_execute().
> >
> > https://lkml.org/lkml/2012/11/1/225
> 
> acpi_os_hotplug_execute() does not like having good quality yet.
> 
> c02256be (Zhang Rui           2009-06-23 10:20:29 +0800  941)   /*
> c02256be (Zhang Rui           2009-06-23 10:20:29 +0800  942)    * We
> can't run hotplug code in keventd_wq/kacpid_wq/kacpid_notify_wq
> c02256be (Zhang Rui           2009-06-23 10:20:29 +0800  943)    *
> because the hotplug code may call driver .remove() functions,
> c02256be (Zhang Rui           2009-06-23 10:20:29 +0800  944)    *
> which invoke flush_scheduled_work/acpi_os_wait_events_complete
> c02256be (Zhang Rui           2009-06-23 10:20:29 +0800  945)    * to
> flush these workqueues.
> c02256be (Zhang Rui           2009-06-23 10:20:29 +0800  946)    */
> c02256be (Zhang Rui           2009-06-23 10:20:29 +0800  947)   queue
> = hp ? kacpi_hotplug_wq :
> c02256be (Zhang Rui           2009-06-23 10:20:29 +0800  948)
>  (type == OSL_NOTIFY_HANDLER ? kacpi_notify_wq : kacpid_wq);
> 9ac61856 (Bjorn Helgaas       2009-08-31 22:32:10 +0000  949)
> dpc->wait = hp ? 1 : 0;
> bc73675b (Zhang Rui           2010-03-22 15:48:54 +0800  950)
> bc73675b (Zhang Rui           2010-03-22 15:48:54 +0800  951)   if
> (queue == kacpi_hotplug_wq)
> bc73675b (Zhang Rui           2010-03-22 15:48:54 +0800  952)
>  INIT_WORK(&dpc->work, acpi_os_execute_deferred);
> bc73675b (Zhang Rui           2010-03-22 15:48:54 +0800  953)   else
> if (queue == kacpi_notify_wq)
> bc73675b (Zhang Rui           2010-03-22 15:48:54 +0800  954)
>  INIT_WORK(&dpc->work, acpi_os_execute_deferred);
> bc73675b (Zhang Rui           2010-03-22 15:48:54 +0800  955)   else
> bc73675b (Zhang Rui           2010-03-22 15:48:54 +0800  956)
>  INIT_WORK(&dpc->work, acpi_os_execute_deferred);
> bc73675b (Zhang Rui           2010-03-22 15:48:54 +0800  957)
> 
> really don't know why checking queue and call same code in every branch.
> 
> from comm:
> 
> commit bc73675b99fd9850dd914be01d71af99c5d2a1ae
> Author: Zhang Rui <rui.zhang@intel.com>
> Date:   Mon Mar 22 15:48:54 2010 +0800
> 
>     ACPI: fixes a false alarm from lockdep
> 
>     fixes a false alarm from lockdep, as acpi hotplug workqueue waits other
>     workqueues.
>     http://bugzilla.kernel.org/show_bug.cgi?id=14553
>     https://bugzilla.kernel.org/show_bug.cgi?id=15521
> 
>     Original-patch-from: Andrew Morton <akpm@linux-foundation.org>
>     Signed-off-by: Shaohua Li <shaohua.li@intel.com>
>     Signed-off-by: Zhang Rui <rui.zhang@intel.com>
>     Signed-off-by: Len Brown <len.brown@intel.com>
> 
> diff --git a/drivers/acpi/osl.c b/drivers/acpi/osl.c
> index 8e6d866..900da68 100644
> --- a/drivers/acpi/osl.c
> +++ b/drivers/acpi/osl.c
> @@ -758,7 +758,14 @@ static acpi_status
> __acpi_os_execute(acpi_execute_type type,
>         queue = hp ? kacpi_hotplug_wq :
>                 (type == OSL_NOTIFY_HANDLER ? kacpi_notify_wq : kacpid_wq);
>         dpc->wait = hp ? 1 : 0;
> -       INIT_WORK(&dpc->work, acpi_os_execute_deferred);
> +
> +       if (queue == kacpi_hotplug_wq)
> +               INIT_WORK(&dpc->work, acpi_os_execute_deferred);
> +       else if (queue == kacpi_notify_wq)
> +               INIT_WORK(&dpc->work, acpi_os_execute_deferred);
> +       else
> +               INIT_WORK(&dpc->work, acpi_os_execute_deferred);
> +
>         ret = queue_work(queue, &dpc->work);
> 
>         if (!ret) {
> 
> 
> Len or Rafael,
> can you just revert that silly patch?

Hi Yinghai,

Per the following thread, the code seems to be written in this way to
allocate a separate lock_class_key for each work queue.  It should have
had some comment to explain this, though.

https://lkml.org/lkml/2009/12/13/304

Thanks,
-Toshi



> 
> Yinghai



  reply	other threads:[~2012-11-01 19:25 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-10-31  7:27 [PATCH v3 0/3] ACPI: container hot remove support Tang Chen
2012-10-31  7:27 ` [PATCH v3 1/3] Use acpi_os_hotplug_execute() instead of alloc_acpi_hp_work() Tang Chen
2012-11-01  3:52   ` Yinghai Lu
2012-11-01  6:07     ` Tang Chen
2012-10-31  7:27 ` [PATCH v3 2/3] Use kacpi_hotplug_wq to handle container hotplug event Tang Chen
2012-10-31  7:27 ` [PATCH v3 3/3] Improve container_notify_cb() to support container hot-remove Tang Chen
2012-11-01 16:43   ` Toshi Kani
2012-11-01 18:28     ` Yinghai Lu
2012-11-01 19:17       ` Toshi Kani [this message]
2012-11-01 20:17         ` Rafael J. Wysocki
2012-11-01 20:16           ` Yinghai Lu
2012-11-01 21:31             ` Rafael J. Wysocki
2012-11-01 21:51               ` Toshi Kani
2012-11-01 22:15               ` Yinghai Lu
2012-11-01 23:15                 ` Rafael J. Wysocki
2012-11-01 23:39                   ` Yinghai Lu
2012-11-02  1:16                     ` Rafael J. Wysocki
2012-11-01 20:16       ` Rafael J. Wysocki
2012-11-02  1:21     ` Tang Chen
2012-10-31 11:09 ` [PATCH v3 0/3] ACPI: container hot remove support Yasuaki Ishimatsu
2012-10-31 11:09   ` Yasuaki Ishimatsu
2012-10-31 16:48   ` Yinghai Lu
2012-11-01  1:48     ` Tang Chen
2012-11-04 16:33     ` Jiang Liu
2012-11-01  1:40   ` Tang Chen
2012-11-26  5:42   ` Hanjun Guo
2012-11-26  5:42     ` Hanjun Guo
2012-11-26  6:06     ` Tang Chen
2012-11-26 13:04       ` Hanjun Guo
2012-11-26 13:04         ` Hanjun Guo
2012-11-27  1:08       ` Hanjun Guo
2012-11-27  1:08         ` Hanjun Guo
2012-11-27  2:38         ` Tang Chen
2012-11-27 11:24           ` Hanjun Guo
2012-11-27 11:24             ` Hanjun Guo

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=1351797478.19172.103.camel@misato.fc.hp.com \
    --to=toshi.kani@hp.com \
    --cc=akpm@linux-foundation.org \
    --cc=bhelgaas@google.com \
    --cc=isimatu.yasuaki@jp.fujitsu.com \
    --cc=izumi.taku@jp.fujitsu.com \
    --cc=jiang.liu@huawei.com \
    --cc=lenb@kernel.org \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=rjw@sisk.pl \
    --cc=rui.zhang@intel.com \
    --cc=tangchen@cn.fujitsu.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: link
Be 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.