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

From: NeilBrown
Date: Thu Jun 05 2014 - 20:23:27 EST


On Thu, 5 Jun 2014 14:45:09 +0200 Ingo Molnar <mingo@xxxxxxxxxx> wrote:

>
> * 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.

Thanks.

It looks like this is a wait_on_bit usage that was added after I created the
patch.

How about you drop my patch for now, we wait for -rc1 to come out, then I
submit a new version against -rc1 and we get that into -rc2.
That should minimise such conflicts.

Does that work for you?

Thanks,
NeilBrown


>
> > >
> > > 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

Attachment: signature.asc
Description: PGP signature