Re: [PATCH] SCHED: remove proliferation of wait_on_bit action functions.

From: Ingo Molnar
Date: Thu Jun 05 2014 - 08:45:23 EST



* NeilBrown <neilb@xxxxxxx> wrote:

> On Thu, 22 May 2014 11:05:02 +0200 Ingo Molnar <mingo@xxxxxxxxxx> wrote:
>
> >
> > * NeilBrown <neilb@xxxxxxx> wrote:
> >
> > > [[ get_maintainer.pl suggested 61 email address for this patch.
> > > I've trimmed that list somewhat. Hope I didn't miss anyone
> > > important...
> > > I'm hoping it will go in through the scheduler tree, but would
> > > particularly like an Acked-by for the fscache parts. Other acks
> > > welcome.
> > > ]]
> > >
> > > The current "wait_on_bit" interface requires an 'action' function
> > > to be provided which does the actual waiting.
> > > There are over 20 such functions, many of them identical.
> > > Most cases can be satisfied by one of just two functions, one
> > > which uses io_schedule() and one which just uses schedule().
> > >
> > > So:
> > > Rename wait_on_bit and wait_on_bit_lock to
> > > wait_on_bit_action and wait_on_bit_lock_action
> > > to make it explicit that they need an action function.
> > >
> > > Introduce new wait_on_bit{,_lock} and wait_on_bit{,_lock}_io
> > > which are *not* given an action function but implicitly use
> > > a standard one.
> > > The decision to error-out if a signal is pending is now made
> > > based on the 'mode' argument rather than being encoded in the action
> > > function.
> >
> > this patch fails to build on x86-32 allyesconfigs.
>
> Could you share the build errors?

Sure, find it attached below.

> >
> > Could we keep the old names for a while, and remove them in the next
> > cycle or so?
>
> I don't see how changing the names later rather than now will reduce the
> chance of errors... maybe I'm missing something.

Well, it would reduce build errors?

Thanks,

Ingo

====================>
fs/cifs/file.c: In function âcifs_oplock_breakâ:
fs/cifs/file.c:3652:4: warning: passing argument 3 of âwait_on_bitâ makes integer from pointer without a cast [enabled by default]
cifs_pending_writers_wait, TASK_UNINTERRUPTIBLE);
^
In file included from include/linux/fs.h:6:0,
from fs/cifs/file.c:24:
include/linux/wait.h:878:1: note: expected âunsigned intâ but argument is of type âint (*)(void *)â
wait_on_bit(void *word, int bit, unsigned mode)
^
fs/cifs/file.c:3652:4: error: too many arguments to function âwait_on_bitâ
cifs_pending_writers_wait, TASK_UNINTERRUPTIBLE);
^
In file included from include/linux/fs.h:6:0,
from fs/cifs/file.c:24:
include/linux/wait.h:878:1: note: declared here
wait_on_bit(void *word, int bit, unsigned mode)
^
CC kernel/smp.o
CC kernel/trace/trace_event_perf.o
make[2]: *** [fs/cifs/file.o] Error 1
make[2]: *** Waiting for unfinished jobs....
CC drivers/bcma/sprom.o
CC fs/btrfs/locking.o
LD sound/isa/ad1848/snd-ad1848.o
LD sound/isa/ad1848/built-in.o
CC sound/isa/cs423x/cs4231.o
CC lib/fonts/fonts.o
CC lib/fonts/font_sun8x16.o
CC drivers/bcma/driver_chipcommon.o
CC lib/fonts/font_sun12x22.o
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/