linux-input.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Mika Kuoppala <mika.kuoppala@nokia.com>
To: ext Dmitry Torokhov <dmitry.torokhov@gmail.com>
Cc: linux-input@vger.kernel.org, rydberg@euromail.se
Subject: Re: [PATCH] input: allocate event circular buffer separately
Date: Fri, 18 May 2012 11:52:54 +0300	[thread overview]
Message-ID: <1337331174.28599.22.camel@rosetta.research.nokia.com> (raw)
In-Reply-To: <20120516194018.GB15920@core.coreip.homeip.net>

On ke, 2012-05-16 at 12:40 -0700, ext Dmitry Torokhov wrote:
> Hi Mika,
> 
> On Tue, May 15, 2012 at 03:46:24PM +0300, Mika Kuoppala wrote:
> > If struct evdev_client is added to the already power of two
> > buffer allocation and the buffer is large, for multitouch devices,
> > the allocation will spill over into the the next page.
> > Alloc buffer separately instead of binding it to evdev_client struct
> > to avoid multipage kmalloc.
> 
> Not counting the event buffer, size of evdev_client is fairly small
> (under 100 bytes?) so I wonder how often this split actually helps (i.e.
> buffer and client each are less than page size but combined are more).

With normal input devices this never happens as the default event buffer
size seem to be 1024 (64 * 16) bytes. But the event buffer size
heuristics for multi touch devices this happens very easily. The
heuristics will look for ABS_MT_TRACKING_ID min and max values to
determine the amount of contacts delivered between two syn events. With
10 contacts and moderate amount of ABS_MT* events between MT_SYNS, you
end up easily to more than a page worth of stuff.

See driver/input/input.c:input_estimate_events_per_packet()

-Mika



  reply	other threads:[~2012-05-18  8:53 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-05-15 12:46 [PATCH] input: allocate event circular buffer separately Mika Kuoppala
2012-05-16 19:40 ` Dmitry Torokhov
2012-05-18  8:52   ` Mika Kuoppala [this message]
2012-05-18 15:22     ` Dmitry Torokhov

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=1337331174.28599.22.camel@rosetta.research.nokia.com \
    --to=mika.kuoppala@nokia.com \
    --cc=dmitry.torokhov@gmail.com \
    --cc=linux-input@vger.kernel.org \
    --cc=rydberg@euromail.se \
    /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).