linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: KOSAKI Motohiro <kosaki.motohiro@gmail.com>
To: Anton Vorontsov <anton.vorontsov@linaro.org>
Cc: Pekka Enberg <penberg@kernel.org>,
	Leonid Moiseichuk <leonid.moiseichuk@nokia.com>,
	KOSAKI Motohiro <kosaki.motohiro@gmail.com>,
	Minchan Kim <minchan@kernel.org>,
	Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>,
	John Stultz <john.stultz@linaro.org>,
	linux-mm@kvack.org, linux-kernel@vger.kernel.org,
	linaro-kernel@lists.linaro.org, patches@linaro.org,
	kernel-team@android.com
Subject: Re: [PATCH 2/5] vmevent: Convert from deferred timer to deferred work
Date: Thu, 07 Jun 2012 23:25:30 -0400	[thread overview]
Message-ID: <4FD170AA.10705@gmail.com> (raw)
In-Reply-To: <1338553446-22292-2-git-send-email-anton.vorontsov@linaro.org>

(6/1/12 8:24 AM), Anton Vorontsov wrote:
> We'll need to use smp_function_call() in the sampling routines, and the
> call is not supposed to be called from the bottom halves. So, let's
> convert vmevent to dffered workqueues.
> 
> As a side effect, we also fix the swap reporting (we cannot call
> si_swapinfo from the interrupt context), i.e. the following oops should
> be fixed now:
> 
>   =================================
>   [ INFO: inconsistent lock state ]
>   3.4.0-rc1+ #37 Not tainted
>   ---------------------------------
>   inconsistent {SOFTIRQ-ON-W} ->  {IN-SOFTIRQ-W} usage.
>   swapper/0/0 [HC0[0]:SC1[1]:HE1:SE0] takes:
>    (swap_lock){+.?...}, at: [<ffffffff8110449d>] si_swapinfo+0x1d/0x90
>   {SOFTIRQ-ON-W} state was registered at:
>     [<ffffffff8107ca7f>] mark_irqflags+0x15f/0x1b0
>     [<ffffffff8107e5e3>] __lock_acquire+0x493/0x9d0
>     [<ffffffff8107f20e>] lock_acquire+0x9e/0x200
>     [<ffffffff813e9071>] _raw_spin_lock+0x41/0x50
>     [<ffffffff8110449d>] si_swapinfo+0x1d/0x90
>     [<ffffffff8117e7c8>] meminfo_proc_show+0x38/0x3f0
>     [<ffffffff81141209>] seq_read+0x139/0x3f0
>     [<ffffffff81174cc6>] proc_reg_read+0x86/0xc0
>     [<ffffffff8111c19c>] vfs_read+0xac/0x160
>     [<ffffffff8111c29a>] sys_read+0x4a/0x90
>     [<ffffffff813ea652>] system_call_fastpath+0x16/0x1b
> 
> Signed-off-by: Anton Vorontsov<anton.vorontsov@linaro.org>

As I already told you, vmevent shouldn't deal a timer at all. It is
NOT familiar to embedded world. Because of, time subsystem is one of
most complex one on linux. Our 'time' is not simple concept. time.h
says we have 5 possibilities user want, at least.

include/linux/time.h
------------------------------------------
#define CLOCK_REALTIME			0
#define CLOCK_MONOTONIC			1
#define CLOCK_MONOTONIC_RAW		4
#define CLOCK_REALTIME_COARSE		5
#define CLOCK_MONOTONIC_COARSE		6

And, some people want to change timer slack for optimize power 
consumption.

So, Don't reinventing the wheel. Just use posix tiemr apis.








  reply	other threads:[~2012-06-08  3:25 UTC|newest]

Thread overview: 94+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-05-01 13:24 [PATCH 0/3] vmevent: Implement 'low memory' attribute Anton Vorontsov
2012-05-01 13:25 ` [PATCH 1/3] vmevent: Implement equal-to attribute state Anton Vorontsov
2012-05-01 13:25 ` [PATCH 2/3] vmevent: Pass attr argument to sampling functions Anton Vorontsov
2012-05-01 13:26 ` [PATCH 3/3] vmevent: Implement special low-memory attribute Anton Vorontsov
2012-05-03 10:33   ` Pekka Enberg
2012-05-04  4:26   ` Minchan Kim
2012-05-04  7:38     ` Anton Vorontsov
2012-05-07  7:14       ` Pekka Enberg
2012-05-07  8:26         ` KOSAKI Motohiro
2012-05-07 12:15           ` Anton Vorontsov
2012-05-07 19:19             ` KOSAKI Motohiro
2012-05-08  0:31               ` Anton Vorontsov
2012-05-08  5:20               ` Pekka Enberg
2012-05-08  5:42                 ` KOSAKI Motohiro
2012-05-08  5:53                   ` Pekka Enberg
2012-05-08  7:11                     ` KOSAKI Motohiro
2012-05-08  7:36                       ` Pekka Enberg
2012-05-08  7:50                         ` KOSAKI Motohiro
2012-05-08  8:03                           ` Pekka Enberg
2012-05-08  9:15                             ` leonid.moiseichuk
2012-05-08  9:19                               ` Pekka Enberg
2012-05-08 10:38                                 ` leonid.moiseichuk
2012-06-01 12:21                         ` [PATCH 0/5] Some vmevent fixes Anton Vorontsov
2012-06-01 12:24                           ` [PATCH 1/5] vmstat: Implement refresh_vm_stats() Anton Vorontsov
2012-06-05 14:30                             ` Christoph Lameter
2012-06-08  3:17                             ` KOSAKI Motohiro
2012-06-01 12:24                           ` [PATCH 2/5] vmevent: Convert from deferred timer to deferred work Anton Vorontsov
2012-06-08  3:25                             ` KOSAKI Motohiro [this message]
2012-06-08  6:58                               ` Anton Vorontsov
2012-06-08  7:03                                 ` Pekka Enberg
2012-06-08  8:07                                   ` Anton Vorontsov
2012-06-08  7:05                                 ` leonid.moiseichuk
2012-06-08  7:10                                   ` KOSAKI Motohiro
2012-06-08  7:18                                     ` leonid.moiseichuk
2012-06-08  7:23                                       ` KOSAKI Motohiro
2012-06-08  7:28                                         ` leonid.moiseichuk
2012-06-08  7:33                                           ` KOSAKI Motohiro
2012-06-08  7:49                                             ` leonid.moiseichuk
2012-06-08  7:58                                   ` Anton Vorontsov
2012-06-08  8:16                                     ` leonid.moiseichuk
2012-06-08  8:41                                       ` Anton Vorontsov
2012-06-08  8:57                                         ` leonid.moiseichuk
2012-06-08 10:35                                           ` Anton Vorontsov
2012-06-08 11:03                                             ` leonid.moiseichuk
2012-06-08 12:13                                               ` Anton Vorontsov
2012-06-08 12:25                                                 ` leonid.moiseichuk
2012-06-01 12:24                           ` [PATCH 3/5] vmevent: Refresh vmstats before sampling Anton Vorontsov
2012-06-05 14:36                             ` Christoph Lameter
2012-06-01 12:24                           ` [PATCH 4/5] vmevent: Hide meaningful names from the user-visible header Anton Vorontsov
2012-06-01 12:24                           ` [PATCH 5/5] vmevent: Rename one-shot mode to edge trigger mode Anton Vorontsov
2012-06-03 18:26                           ` [PATCH 0/5] Some vmevent fixes Pekka Enberg
2012-06-04  8:45                             ` Minchan Kim
2012-06-04  9:20                               ` Pekka Enberg
2012-06-04 12:23                                 ` Minchan Kim
2012-06-04 11:38                               ` Anton Vorontsov
2012-06-04 12:17                                 ` Minchan Kim
2012-06-04 13:35                                   ` Anton Vorontsov
2012-06-05  7:53                                     ` Pekka Enberg
2012-06-05  8:00                                       ` Minchan Kim
2012-06-05  8:01                                         ` Pekka Enberg
2012-06-05  8:16                                           ` leonid.moiseichuk
2012-06-05  8:27                                             ` Minchan Kim
2012-06-08  3:35                                             ` KOSAKI Motohiro
2012-06-04 20:05                                 ` KOSAKI Motohiro
2012-06-04 22:39                                   ` Anton Vorontsov
2012-06-08  3:45                                     ` KOSAKI Motohiro
2012-06-08  6:57                                       ` Pekka Enberg
2012-06-05  7:47                                   ` Pekka Enberg
2012-06-05  8:39                                     ` Anton Vorontsov
2012-06-07  2:41                                       ` Minchan Kim
2012-06-08  7:49                                         ` Anton Vorontsov
2012-06-08  8:43                                           ` Minchan Kim
2012-06-08  8:48                                             ` Pekka Enberg
2012-06-08  9:12                                               ` leonid.moiseichuk
2012-06-08  9:45                                                 ` Anton Vorontsov
2012-06-08 10:42                                                   ` Minchan Kim
2012-06-08 11:14                                                     ` Anton Vorontsov
2012-06-11  4:50                                                       ` Minchan Kim
2012-06-05  7:52                                   ` Pekka Enberg
2012-06-08  3:55                                     ` KOSAKI Motohiro
2012-06-08  6:54                                       ` Pekka Enberg
2012-06-08  6:57                                         ` KOSAKI Motohiro
2012-06-08  6:59                                           ` Pekka Enberg
2012-06-04 19:50                               ` KOSAKI Motohiro
2012-05-08  8:32                       ` [PATCH 3/3] vmevent: Implement special low-memory attribute Minchan Kim
2012-05-08  9:27                         ` Pekka Enberg
2012-06-05 14:40                       ` Christoph Lameter
2012-05-08  6:58                   ` Anton Vorontsov
2012-05-08  7:16                     ` KOSAKI Motohiro
2012-05-08  8:13                       ` Anton Vorontsov
2012-05-08  8:21                         ` Anton Vorontsov
2012-05-03  8:10 ` [PATCH 0/3] vmevent: Implement 'low memory' attribute Pekka Enberg
2012-05-03  9:44   ` Anton Vorontsov
2012-05-03 10:54 ` Pekka Enberg

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=4FD170AA.10705@gmail.com \
    --to=kosaki.motohiro@gmail.com \
    --cc=anton.vorontsov@linaro.org \
    --cc=b.zolnierkie@samsung.com \
    --cc=john.stultz@linaro.org \
    --cc=kernel-team@android.com \
    --cc=leonid.moiseichuk@nokia.com \
    --cc=linaro-kernel@lists.linaro.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=minchan@kernel.org \
    --cc=patches@linaro.org \
    --cc=penberg@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 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).