public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Arnd Bergmann <arnd@arndb.de>
To: Frederic Weisbecker <fweisbec@gmail.com>
Cc: linux-kernel@vger.kernel.org, Matthew Wilcox <matthew@wil.cx>,
	Thomas Gleixner <tglx@linutronix.de>,
	jblunck@suse.de, Alan Cox <alan@linux.intel.com>,
	Ingo Molnar <mingo@elte.hu>
Subject: Re: [GIT, RFC] Killing the Big Kernel Lock
Date: Mon, 29 Mar 2010 23:18:09 +0200	[thread overview]
Message-ID: <201003292318.10212.arnd@arndb.de> (raw)
In-Reply-To: <20100329175935.GD5101@nowhere>

On Monday 29 March 2010 19:59:39 Frederic Weisbecker wrote:
> On Mon, Mar 29, 2010 at 12:04:24PM +0100, Arnd Bergmann wrote:
> > On Monday 29 March 2010, Frederic Weisbecker wrote:
> > > On Mon, Mar 29, 2010 at 01:18:48AM +0200, Frederic Weisbecker wrote:
> > > > @@ -1943,7 +1949,7 @@ static ssize_t proc_fdinfo_read(struct file *file, char __user *buf,
> > > >  }
> > > >  
> > > >  static const struct file_operations proc_fdinfo_file_operations = {
> > > > -     .open           = nonseekable_open,
> > > > +     .llseek         = generic_file_llseek,
> > > >       .read           = proc_fdinfo_read,
> > > >  };
> > > >  
> > > > 
> > > > Replacing default_llseek() by generic_file_llseek() as you
> > > > did for most of the other parts is fine.
> > > > 
> > > > But the above changes the semantics as it makes it seekable.
> > > > Why not just keeping it as is? It just ends up in no_llseek().
> > 
> > The default is default_llseek, which uses the BKL and cannot be
> > used if procfs is builtin and the BKL is a module.
> 
> Yeah, but you removed the nonseekable_open and made generic_file_llseek
> in llseek on this one.
> This makes it seekable while it wasn't, changing its ABI.
> It wasn't taking the bkl before that as it was calling
> no_llseek().

Ah, I see what you mean. That change was certainly not intentional
an should be reverted. Thanks for pointing this out.

> > The BKL in procfs is only for proc files that have registered
> > their own .ioctl instead of .unlocked_ioctl method. Converting
> > every file_operations instance to provide an unlocked_ioctl
> > (as one of the other patches does) makes sure that this path
> > is never taken. BTW, there are less than a handful of procfs files
> > that provide an ioctl operation, and those probably should never
> > have been merged.
> 
> 
> There are three of them. I'm going to make them .unlocked_ioctl
> and push the bkl inside, and warn on further uses of .ioctl,
> without applying the bkl there anymore.
> 
> That plus your bkl removal in proc seek, should totally remove the
> bkl from procfs.

Ok

	Arnd

  reply	other threads:[~2010-03-29 21:18 UTC|newest]

Thread overview: 49+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-03-24 21:40 [GIT, RFC] Killing the Big Kernel Lock Arnd Bergmann
2010-03-24 21:07 ` Andrew Morton
2010-03-25 10:26   ` Arnd Bergmann
2010-03-28 20:33     ` Frederic Weisbecker
2010-03-24 21:53 ` Roland Dreier
2010-03-24 21:59   ` Arnd Bergmann
2010-03-31  5:22     ` Roland Dreier
2010-03-24 22:10 ` Alan Cox
2010-03-24 22:25   ` Arnd Bergmann
2010-03-24 22:23 ` Ingo Molnar
2010-03-25 12:55 ` Jiri Kosina
2010-03-25 13:06   ` Arnd Bergmann
2010-03-25 13:38     ` Arnd Bergmann
2010-03-26 23:47       ` Stefan Richter
2010-03-27  9:16         ` [PATCH] firewire: char device files are not seekable (BKL removal) Stefan Richter
2010-03-27  9:20         ` [PATCH] ieee1394: " Stefan Richter
2010-03-27 10:40         ` [PATCH RFC] DVB: add dvb_generic_nonseekable_open, dvb_generic_unlocked_ioctl, use in firedtv Stefan Richter
2010-03-28 14:47           ` [PATCH RFC v2] " Stefan Richter
2010-03-27 14:37         ` [GIT, RFC] Killing the Big Kernel Lock Arnd Bergmann
2010-03-28 12:27           ` Stefan Richter
2010-03-28 20:05             ` Arnd Bergmann
2010-03-28 20:15               ` Frederic Weisbecker
2010-03-28 21:34                 ` Arnd Bergmann
2010-03-28 23:24                   ` Frederic Weisbecker
2010-04-08 20:45               ` Jan Blunck
2010-04-08 21:27                 ` Arnd Bergmann
2010-04-08 21:30                   ` Frederic Weisbecker
2010-04-09 11:02                   ` Jan Blunck
2010-04-10 15:13           ` Stefan Richter
2010-03-28 21:58   ` Andi Kleen
2010-03-29  1:07     ` [GIT, RFC] Killing the Big Kernel Lock II Andi Kleen
2010-03-29 11:48       ` Arnd Bergmann
2010-03-29 12:30         ` Andi Kleen
2010-03-29 14:43           ` Arnd Bergmann
2010-03-29 20:11             ` Andi Kleen
2010-03-31 15:30               ` Arnd Bergmann
2010-03-25 13:40 ` [GIT, RFC] Killing the Big Kernel Lock Dan Carpenter
2010-03-25 14:14   ` Arnd Bergmann
2010-03-28 20:04 ` Frederic Weisbecker
2010-03-28 20:11 ` Frederic Weisbecker
2010-03-28 23:18 ` Frederic Weisbecker
2010-03-28 23:38   ` Frederic Weisbecker
2010-03-29 11:04     ` Arnd Bergmann
2010-03-29 17:59       ` Frederic Weisbecker
2010-03-29 21:18         ` Arnd Bergmann [this message]
2010-03-29 12:45 ` John Kacur
2010-03-31 22:11 ` Roland Dreier
2010-03-31 22:20   ` Frederic Weisbecker
2010-04-01  8:50   ` Arnd Bergmann

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=201003292318.10212.arnd@arndb.de \
    --to=arnd@arndb.de \
    --cc=alan@linux.intel.com \
    --cc=fweisbec@gmail.com \
    --cc=jblunck@suse.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=matthew@wil.cx \
    --cc=mingo@elte.hu \
    --cc=tglx@linutronix.de \
    /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