Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752813AbbGADyb (ORCPT ); Tue, 30 Jun 2015 23:54:31 -0400 Received: from mail-vn0-f43.google.com ([209.85.216.43]:46802 "EHLO mail-vn0-f43.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751862AbbGADyX (ORCPT ); Tue, 30 Jun 2015 23:54:23 -0400 MIME-Version: 1.0 In-Reply-To: <1435718938-19088-1-git-send-email-cleaneye.kim@lge.com> References: <1435718938-19088-1-git-send-email-cleaneye.kim@lge.com> Date: Wed, 1 Jul 2015 12:54:23 +0900 Message-ID: Subject: Re: [PATCH] PM / Sleep: Use workqueue for user space wakeup sources garbage collector From: =?UTF-8?Q?Krzysztof_Koz=C5=82owski?= To: SungEun Kim Cc: rjw@rjwysocki.net, pavel@ucw.cz, len.brown@intel.com, linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2857 Lines: 84 2015-07-01 11:48 GMT+09:00 SungEun Kim : > From: "cleaeye.kim" > > The synchronous synchronize_rcu in wakeup_source_remove makes user process > which writes to /sys/kernel/wake_unlock blocked sometimes. > > For example, when android eventhub tries to release wakelock, > this blocking process can occur, and eventhub can't get input event > for a while. > > Using workqueue instead of direct function call at pm_wake_unlock > can prevent this unnecessary delay of an user space process. > > Signed-off-by: cleaeye.kim Hi, You send this patch for third time, without changelog and any versioning. Please put proper vesion indicating what have changed. Do not resend continuously (unless you encountered some SMTP problems?). The signed-off and from fields look incorrect (no real name?). What is more important I have doubts that it even compiles (see below). Could you follow the Documentation/SubmittingPatches? > --- > kernel/power/wakelock.c | 11 ++++++++--- > 1 file changed, 8 insertions(+), 3 deletions(-) > > diff --git a/kernel/power/wakelock.c b/kernel/power/wakelock.c > index 019069c..ea10baa 100644 > --- a/kernel/power/wakelock.c > +++ b/kernel/power/wakelock.c > @@ -17,6 +17,7 @@ > #include > #include > #include > +#include > > #include "power.h" > > @@ -96,7 +97,7 @@ static inline void wakelocks_lru_most_recent(struct wakelock *wl) > list_move(&wl->lru, &wakelocks_lru_list); > } > > -static void wakelocks_gc(void) > +static void wakelocks_gc(struct work_struct *work) > { > struct wakelock *wl, *aux; > ktime_t now; > @@ -105,6 +106,7 @@ static void wakelocks_gc(void) > return; > > now = ktime_get(); > + mutex_lock(&wakelocks_lock); > list_for_each_entry_safe_reverse(wl, aux, &wakelocks_lru_list, lru) { > u64 idle_time_ns; > bool active; > @@ -126,12 +128,15 @@ static void wakelocks_gc(void) > decrement_wakelocks_number(); > } > } > + mutex_unlock(&wakelocks_lock); > wakelocks_gc_count = 0; > } > + > +static DECLARE_WORK(wakelock_work, wakelocks_gc); > #else /* !CONFIG_PM_WAKELOCKS_GC */ > static inline void wakelocks_lru_add(struct wakelock *wl) {} > static inline void wakelocks_lru_most_recent(struct wakelock *wl) {} > -static inline void wakelocks_gc(void) {} > +static void wakelocks_gc(struct worksturct) {} worksturct? Does it compile? Best regards, Krzysztof -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/