2013-05-06 14:45:01

by Marc Dionne

[permalink] [raw]
Subject: Re: workqueue: inline trivial wrappers

On Mon, Apr 29, 2013 at 10:31 PM, Linux Kernel Mailing List
<[email protected]> wrote:
> Gitweb: http://git.kernel.org/linus/;a=commit;h=8425e3d5bdbe8e741d2c73cf3189ed59b4038b84
> Commit: 8425e3d5bdbe8e741d2c73cf3189ed59b4038b84
> Parent: 611c92a0203091bb022edec7e2d8b765fe148622
> Author: Tejun Heo <[email protected]>
> AuthorDate: Wed Mar 13 16:51:36 2013 -0700
> Committer: Tejun Heo <[email protected]>
> CommitDate: Wed Mar 13 16:51:36 2013 -0700
>
> workqueue: inline trivial wrappers
>
> There's no reason to make these trivial wrappers full (exported)
> functions. Inline the followings.
>
> queue_work()
> queue_delayed_work()
> mod_delayed_work()
> schedule_work_on()
> schedule_work()
> schedule_delayed_work_on()
> schedule_delayed_work()
> keventd_up()
>
> Signed-off-by: Tejun Heo <[email protected]>

Hi Tejun,

This commit has the side effect of making some functions
EXPORT_SYMBOL_GPL that had been previously exported with EXPORT_SYMBOL
for a long time, such as schedule_work(). This is used by OpenAFS and
probably other out of tree modules. Past exchanges on this list (ex:
http://marc.info/?l=linux-fsdevel&m=123550631318910) suggest the
license requirements for existing interfaces shouldn't change, at
least without providing an alternate means of getting the same
functionality. Any thoughts on whether this can be adjusted within
the current release cycle?

Thanks,
Marc


2013-05-06 18:42:38

by Tejun Heo

[permalink] [raw]
Subject: Re: workqueue: inline trivial wrappers

Hello,

On Mon, May 06, 2013 at 10:44:58AM -0400, Marc Dionne wrote:
> On Mon, Apr 29, 2013 at 10:31 PM, Linux Kernel Mailing List
> <[email protected]> wrote:
> > Gitweb: http://git.kernel.org/linus/;a=commit;h=8425e3d5bdbe8e741d2c73cf3189ed59b4038b84
> > Commit: 8425e3d5bdbe8e741d2c73cf3189ed59b4038b84
> > Parent: 611c92a0203091bb022edec7e2d8b765fe148622
> > Author: Tejun Heo <[email protected]>
> > AuthorDate: Wed Mar 13 16:51:36 2013 -0700
> > Committer: Tejun Heo <[email protected]>
> > CommitDate: Wed Mar 13 16:51:36 2013 -0700
> >
> > workqueue: inline trivial wrappers
> >
> > There's no reason to make these trivial wrappers full (exported)
> > functions. Inline the followings.
> >
> > queue_work()
> > queue_delayed_work()
> > mod_delayed_work()
> > schedule_work_on()
> > schedule_work()
> > schedule_delayed_work_on()
> > schedule_delayed_work()
> > keventd_up()
> >
> > Signed-off-by: Tejun Heo <[email protected]>
>
> This commit has the side effect of making some functions
> EXPORT_SYMBOL_GPL that had been previously exported with EXPORT_SYMBOL
> for a long time, such as schedule_work(). This is used by OpenAFS and
> probably other out of tree modules. Past exchanges on this list (ex:
> http://marc.info/?l=linux-fsdevel&m=123550631318910) suggest the
> license requirements for existing interfaces shouldn't change, at
> least without providing an alternate means of getting the same
> functionality. Any thoughts on whether this can be adjusted within
> the current release cycle?

Hah, so schedule_work() was EXPORT_SYMBOL() and queue_work*() were
EXPORT_SYMBOL_GPL()? It'd be rather silly to avoid inlining those
wrappers for license reasons. Can you please send a patch changing
the necessary functions to EXPORT_SYMBOL()?

Thanks.

--
tejun

2013-05-06 22:03:08

by Marc Dionne

[permalink] [raw]
Subject: Re: workqueue: inline trivial wrappers

On Mon, May 6, 2013 at 2:42 PM, Tejun Heo <[email protected]> wrote:
> Hello,
>
> On Mon, May 06, 2013 at 10:44:58AM -0400, Marc Dionne wrote:
>> On Mon, Apr 29, 2013 at 10:31 PM, Linux Kernel Mailing List
>> <[email protected]> wrote:
>> > Gitweb: http://git.kernel.org/linus/;a=commit;h=8425e3d5bdbe8e741d2c73cf3189ed59b4038b84
>> > Commit: 8425e3d5bdbe8e741d2c73cf3189ed59b4038b84
>> > Parent: 611c92a0203091bb022edec7e2d8b765fe148622
>> > Author: Tejun Heo <[email protected]>
>> > AuthorDate: Wed Mar 13 16:51:36 2013 -0700
>> > Committer: Tejun Heo <[email protected]>
>> > CommitDate: Wed Mar 13 16:51:36 2013 -0700
>> >
>> > workqueue: inline trivial wrappers
>> >
>> > There's no reason to make these trivial wrappers full (exported)
>> > functions. Inline the followings.
>> >
>> > queue_work()
>> > queue_delayed_work()
>> > mod_delayed_work()
>> > schedule_work_on()
>> > schedule_work()
>> > schedule_delayed_work_on()
>> > schedule_delayed_work()
>> > keventd_up()
>> >
>> > Signed-off-by: Tejun Heo <[email protected]>
>>
>> This commit has the side effect of making some functions
>> EXPORT_SYMBOL_GPL that had been previously exported with EXPORT_SYMBOL
>> for a long time, such as schedule_work(). This is used by OpenAFS and
>> probably other out of tree modules. Past exchanges on this list (ex:
>> http://marc.info/?l=linux-fsdevel&m=123550631318910) suggest the
>> license requirements for existing interfaces shouldn't change, at
>> least without providing an alternate means of getting the same
>> functionality. Any thoughts on whether this can be adjusted within
>> the current release cycle?
>
> Hah, so schedule_work() was EXPORT_SYMBOL() and queue_work*() were
> EXPORT_SYMBOL_GPL()? It'd be rather silly to avoid inlining those
> wrappers for license reasons. Can you please send a patch changing
> the necessary functions to EXPORT_SYMBOL()?

As a follow up I sent a patch as you suggested to convert the needed
symbols which are system_wq, queue_work_on and queue_delayed_work_on.
Of course the goal is not to make direct use of those symbols, but
rather to make schedule_work() available again, and that's one way of
accomplishing that.

Thanks,
Marc