Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752853AbbGAHZR (ORCPT ); Wed, 1 Jul 2015 03:25:17 -0400 Received: from lgeamrelo02.lge.com ([156.147.1.126]:55635 "EHLO lgeamrelo02.lge.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750910AbbGAHZL (ORCPT ); Wed, 1 Jul 2015 03:25:11 -0400 X-Original-SENDERIP: 10.168.96.66 X-Original-MAILFROM: cleaneye.kim@lge.com Subject: Re: Re: [PATCH] PM / Sleep: Use workqueue for user space wakeup sources garbage collector To: k.kozlowski.k@gmail.com References: <1435718938-19088-1-git-send-email-cleaneye.kim@lge.com> Cc: rjw@rjwysocki.net, pavel@ucw.cz, len.brown@intel.com, linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org From: "SungEun Kim(cleaneye.kim@lge.com)" Message-ID: <559395D2.4070906@lge.com> Date: Wed, 1 Jul 2015 16:25:06 +0900 User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:38.0) Gecko/20100101 Thunderbird/38.0.1 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 3031 Lines: 99 On 2015-07-01 오후 12:51, k.kozlowski.k@gmail.com wrote: > 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. 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? > > Hi, I'm sorry for my lack knowledge of submitting patch. I have read that document but not carefully. I will correct signed-off and please forgive my mistake of three times sending generously. And, I have not done compiling with no CONFIG_PM_WAKELOCKS_GC . It's my fault. I will send v2. Thank you. SungEun Kim >> --- >> 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/