linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Chester Lin <clin@suse.com>
To: Chester Lin <clin@suse.com>
Cc: "lenb@kernel.org" <lenb@kernel.org>,
	"gregkh@linuxfoundation.org" <gregkh@linuxfoundation.org>,
	"rjw@rjwysocki.net" <rjw@rjwysocki.net>,
	"Joey Lee" <JLee@suse.com>, Michal Hocko <MHocko@suse.com>,
	"linux-acpi@vger.kernel.org" <linux-acpi@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH v2 0/3] ACPI: New eject flow to remove devices cautiously
Date: Mon, 5 Aug 2019 07:45:39 +0000	[thread overview]
Message-ID: <20190805074455.GA25210@linux-8mug> (raw)
In-Reply-To: <20190703101348.3506-1-clin@suse.com>

On Wed, Jul 03, 2019 at 10:14:39AM +0000, Chester Lin wrote:
> Currently there are two ways to handle ACPI device ejection. When an eject
> event happens on a container, the kernel just sends KOBJ_CHANGE to
> userland and userland should handle offline operation. For other device
> types, acpi_scan_try_to_offline() is called and it tries to put target
> device(s) offline and then removes all nodes once they are all offline.
> 
> However we found that sometimes applications could intensively access
> resources on ejectable devices therefore they could have risk if ejection
> suddenly happens and removes devices without any notification. In stead
> of executing the offline callbakcs directly, we want to introduce a new
> approach, which sends change events to notify all target nodes beforehand
> and hands over offline handling to userland so that userland can have a
> chance to schedule an offline task based on current workload. The online
> function to recover from failure is also changed, it follows the same
> approach to send change events rather than putting devices online directly
> , which means userland will also need to take care of online handling.
> 
> To ensure that eject function can work properly since normal users might
> not have their own offline/online handling, we will submit a generic udev
> rule to systemd upstream as default in order to deal with change events
> and take [offline/online] action accordingly. But the Hot-Removing part
> still remains so the hotplug function can run to it once target nodes are
> all offline.
> 
> To easily monitor eject status and start over an eject process, there's a
> status trace mechanism in this eject flow, which helps to count current
> online devices under the ejectable target, and it can reschedule an eject
> event when all nodes within the device tree have been put offline.
> 
> v2:
> - device_sysfs: Add descriptions in /Document/ABI/testing/sysfs-bus-acpi
> - device_sysfs: Replace the declartion with DEVICE_ATTR_RW and add cancel
>   option in eject_store.
> - scan: Add a retry mechanism when userspace fail to put device offline.
> - scan: Add ready-to-remove state.
> 
> Chester Lin (3):
>   ACPI / hotplug: Send change events for offline/online requests when
>     eject is triggered
>   ACPI / hotplug: Eject status trace and auto-remove approach
>   ACPI / device_sysfs: Add eject_show and add a cancel option in
>     eject_store
> 
>  Documentation/ABI/testing/sysfs-bus-acpi |   9 +-
>  drivers/acpi/container.c                 |   2 +-
>  drivers/acpi/device_sysfs.c              |  94 ++++++-
>  drivers/acpi/glue.c                      | 146 +++++++++++
>  drivers/acpi/internal.h                  |  34 ++-
>  drivers/acpi/scan.c                      | 318 +++++++++++++++++------
>  drivers/base/core.c                      |   4 +
>  include/acpi/acpi_bus.h                  |   3 +-
>  include/linux/acpi.h                     |   6 +
>  9 files changed, 523 insertions(+), 93 deletions(-)
>

Gentle ping. I will appreciate any comment on this series.

Thanks,
Chester

      parent reply	other threads:[~2019-08-05  7:47 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-07-03 10:14 [PATCH v2 0/3] ACPI: New eject flow to remove devices cautiously Chester Lin
2019-07-03 10:14 ` [PATCH v2 1/3] ACPI / hotplug: Send change events for offline/online requests when eject is triggered Chester Lin
2019-07-03 10:14 ` [PATCH v2 2/3] ACPI / hotplug: Eject status trace and auto-remove approach Chester Lin
2019-07-03 10:14 ` [PATCH v2 3/3] ACPI / device_sysfs: Add eject_show and add a cancel option in eject_store Chester Lin
2019-07-03 10:42 ` [PATCH v2 0/3] ACPI: New eject flow to remove devices cautiously Chester Lin
2019-08-05  7:45 ` Chester Lin [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=20190805074455.GA25210@linux-8mug \
    --to=clin@suse.com \
    --cc=JLee@suse.com \
    --cc=MHocko@suse.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=lenb@kernel.org \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=rjw@rjwysocki.net \
    /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).