All of lore.kernel.org
 help / color / mirror / Atom feed
From: Matt Mackall <mpm-VDJrAJ4Gl5ZBDgjK7y7TUQ@public.gmane.org>
To: Andrew Morton <akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org>
Cc: Eric Dumazet <dada1-fPLkHRcR87vqlBn2x/YWAg@public.gmane.org>,
	corbet-T1hC0tSOHrs@public.gmane.org,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	andi-Vw/NltI1exuRpAAqCnN02g@public.gmane.org,
	oleg-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org,
	viro-3bDd1+5oDREiFSDQTTA3OLVCufUGDwFn@public.gmane.org,
	davidel-AhlLAIvw+VEjIGhXcJzhZg@public.gmane.org,
	davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org,
	hch-jcswGhMUV9g@public.gmane.org,
	linux-api-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	alan-qBU/x9rampVanCEyBjwyrvXRex20P6io@public.gmane.org
Subject: Re: [PATCH 2/4] Convert epoll to a bitlock
Date: Tue, 03 Feb 2009 16:22:02 -0600	[thread overview]
Message-ID: <1233699722.3243.127.camel@calx> (raw)
In-Reply-To: <20090203140543.6e915f97.akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org>

On Tue, 2009-02-03 at 14:05 -0800, Andrew Morton wrote:
> On Tue, 03 Feb 2009 22:55:26 +0100
> Eric Dumazet <dada1-fPLkHRcR87vqlBn2x/YWAg@public.gmane.org> wrote:
> 
> > Andrew Morton a __crit :
> > > On Mon,  2 Feb 2009 11:20:09 -0700
> > > Jonathan Corbet <corbet-T1hC0tSOHrs@public.gmane.org> wrote:
> > > 
> > >> Matt Mackall suggested converting epoll's ep_lock to a bitlock as a way of
> > >> saving space in struct file.  This patch makes that change.
> > > 
> > > hrm.  bit_spin_lock() makes people upset (large penguiny people).  iirc
> > > it doesn't have all the correct/well-understood memory/compiler
> > > ordering semantics which spinlocks have.  And lockdep doesn't know about
> > > it.
> > > 
> > 
> > In a previous attempt (2005), I suggested using a single global lock.
> > 
> > http://search.luky.org/linux-kernel.2005/msg50862.html
> 
> ok..
> 
> > Probably an array of hashed spinlocks would be more than enough.
> > 
> 
> yes, f_ep_lock is a teeny innermost lock.  Perhaps using
> f->f_dentry->d_inode->i_lock would be a decent speed/space compromise.

That seems eminently reasonable.

But that re-opens the question of what to do about poor Jon's quest.

I got confused halfway through as he went from using a global fasync
spinlock to a non-locked but atomic flag bit. Not sure why using a
per-file or per-inode lock doesn't work for the fasync code.

-- 
http://selenic.com : development and support for Mercurial and Linux


--
To unsubscribe from this list: send the line "unsubscribe linux-api" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

WARNING: multiple messages have this Message-ID (diff)
From: Matt Mackall <mpm@selenic.com>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: Eric Dumazet <dada1@cosmosbay.com>,
	corbet@lwn.net, linux-kernel@vger.kernel.org,
	andi@firstfloor.org, oleg@redhat.com, viro@ZenIV.linux.org.uk,
	davidel@xmailserver.org, davem@davemloft.net, hch@lst.de,
	linux-api@vger.kernel.org, alan@lxorguk.ukuu.org.uk
Subject: Re: [PATCH 2/4] Convert epoll to a bitlock
Date: Tue, 03 Feb 2009 16:22:02 -0600	[thread overview]
Message-ID: <1233699722.3243.127.camel@calx> (raw)
In-Reply-To: <20090203140543.6e915f97.akpm@linux-foundation.org>

On Tue, 2009-02-03 at 14:05 -0800, Andrew Morton wrote:
> On Tue, 03 Feb 2009 22:55:26 +0100
> Eric Dumazet <dada1@cosmosbay.com> wrote:
> 
> > Andrew Morton a __crit :
> > > On Mon,  2 Feb 2009 11:20:09 -0700
> > > Jonathan Corbet <corbet@lwn.net> wrote:
> > > 
> > >> Matt Mackall suggested converting epoll's ep_lock to a bitlock as a way of
> > >> saving space in struct file.  This patch makes that change.
> > > 
> > > hrm.  bit_spin_lock() makes people upset (large penguiny people).  iirc
> > > it doesn't have all the correct/well-understood memory/compiler
> > > ordering semantics which spinlocks have.  And lockdep doesn't know about
> > > it.
> > > 
> > 
> > In a previous attempt (2005), I suggested using a single global lock.
> > 
> > http://search.luky.org/linux-kernel.2005/msg50862.html
> 
> ok..
> 
> > Probably an array of hashed spinlocks would be more than enough.
> > 
> 
> yes, f_ep_lock is a teeny innermost lock.  Perhaps using
> f->f_dentry->d_inode->i_lock would be a decent speed/space compromise.

That seems eminently reasonable.

But that re-opens the question of what to do about poor Jon's quest.

I got confused halfway through as he went from using a global fasync
spinlock to a non-locked but atomic flag bit. Not sure why using a
per-file or per-inode lock doesn't work for the fasync code.

-- 
http://selenic.com : development and support for Mercurial and Linux



  parent reply	other threads:[~2009-02-03 22:22 UTC|newest]

Thread overview: 46+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-02-02 18:20 [PATCH/RFC] F_SETFL/Fasync BKL removal, now without unsightly global locks Jonathan Corbet
2009-02-02 18:20 ` Jonathan Corbet
     [not found] ` <1233598811-6871-1-git-send-email-corbet-T1hC0tSOHrs@public.gmane.org>
2009-02-02 18:20   ` [PATCH 1/4] Use bit operations for file->f_flags Jonathan Corbet
2009-02-02 18:20     ` Jonathan Corbet
     [not found]     ` <1233598811-6871-2-git-send-email-corbet-T1hC0tSOHrs@public.gmane.org>
2009-02-03 21:37       ` Andrew Morton
2009-02-03 21:37         ` Andrew Morton
2009-02-02 18:20   ` [PATCH 2/4] Convert epoll to a bitlock Jonathan Corbet
2009-02-02 18:20     ` Jonathan Corbet
     [not found]     ` <1233598811-6871-3-git-send-email-corbet-T1hC0tSOHrs@public.gmane.org>
2009-02-03 21:39       ` Andrew Morton
2009-02-03 21:39         ` Andrew Morton
     [not found]         ` <20090203133942.2ecec281.akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org>
2009-02-03 21:55           ` Eric Dumazet
2009-02-03 21:55             ` Eric Dumazet
     [not found]             ` <4988BD4E.8080206-fPLkHRcR87vqlBn2x/YWAg@public.gmane.org>
2009-02-03 22:05               ` Andrew Morton
2009-02-03 22:05                 ` Andrew Morton
     [not found]                 ` <20090203140543.6e915f97.akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org>
2009-02-03 22:22                   ` Matt Mackall [this message]
2009-02-03 22:22                     ` Matt Mackall
2009-02-03 22:37                     ` Jonathan Corbet
2009-02-03 22:37                       ` Jonathan Corbet
     [not found]                       ` <20090203153740.363d0a04-vw3g6Xz/EtPk1uMJSBkQmQ@public.gmane.org>
2009-02-03 22:53                         ` Andrew Morton
2009-02-03 22:53                           ` Andrew Morton
     [not found]                           ` <20090203145346.8df40277.akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org>
2009-02-03 23:09                             ` Davide Libenzi
2009-02-03 23:09                               ` Davide Libenzi
     [not found]                               ` <alpine.DEB.1.10.0902031508280.23050-GPJ85BhbkB8RepQJljzAVbITYcZ0+W3JAL8bYrjMMd8@public.gmane.org>
2009-02-03 23:12                                 ` Davide Libenzi
2009-02-03 23:12                                   ` Davide Libenzi
2009-02-03 23:19                             ` Jonathan Corbet
2009-02-03 23:19                               ` Jonathan Corbet
     [not found]                               ` <20090203161931.4054a25e-vw3g6Xz/EtPk1uMJSBkQmQ@public.gmane.org>
2009-02-03 23:29                                 ` Andrew Morton
2009-02-03 23:29                                   ` Andrew Morton
2009-02-04  7:13                                 ` Christoph Hellwig
2009-02-04  7:13                                   ` Christoph Hellwig
     [not found]                                   ` <20090204071320.GA19348-jcswGhMUV9g@public.gmane.org>
2009-02-04  7:20                                     ` Nick Piggin
2009-02-04  7:20                                       ` Nick Piggin
     [not found]                                       ` <200902041820.20535.nickpiggin-/E1597aS9LT0CCvOHzKKcA@public.gmane.org>
2009-02-04 13:34                                         ` Jonathan Corbet
2009-02-04 13:34                                           ` Jonathan Corbet
2009-02-04 16:51                                     ` Davide Libenzi
2009-02-04 16:51                                       ` Davide Libenzi
2009-02-03 23:08               ` Davide Libenzi
2009-02-03 23:08                 ` Davide Libenzi
     [not found]                 ` <alpine.DEB.1.10.0902031446280.23050-GPJ85BhbkB8RepQJljzAVbITYcZ0+W3JAL8bYrjMMd8@public.gmane.org>
2009-02-04  2:48                   ` Eric Dumazet
2009-02-04  2:48                     ` Eric Dumazet
2009-02-04  1:00         ` wli
2009-02-04  4:54         ` Nick Piggin
2009-02-02 18:20   ` [PATCH 3/4] Move FASYNC bit handling to f_op->fasync() Jonathan Corbet
2009-02-02 18:20     ` Jonathan Corbet
2009-02-02 18:20   ` [PATCH 4/4] Rationalize fasync return values Jonathan Corbet
2009-02-02 18:20     ` Jonathan Corbet

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=1233699722.3243.127.camel@calx \
    --to=mpm-vdjraj4gl5zbdgjk7y7tuq@public.gmane.org \
    --cc=akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org \
    --cc=alan-qBU/x9rampVanCEyBjwyrvXRex20P6io@public.gmane.org \
    --cc=andi-Vw/NltI1exuRpAAqCnN02g@public.gmane.org \
    --cc=corbet-T1hC0tSOHrs@public.gmane.org \
    --cc=dada1-fPLkHRcR87vqlBn2x/YWAg@public.gmane.org \
    --cc=davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org \
    --cc=davidel-AhlLAIvw+VEjIGhXcJzhZg@public.gmane.org \
    --cc=hch-jcswGhMUV9g@public.gmane.org \
    --cc=linux-api-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=oleg-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
    --cc=viro-3bDd1+5oDREiFSDQTTA3OLVCufUGDwFn@public.gmane.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.