All of lore.kernel.org
 help / color / mirror / Atom feed
From: John Stultz <john.stultz@linaro.org>
To: Nicolas Pitre <nicolas.pitre@linaro.org>
Cc: Thomas Gleixner <tglx@linutronix.de>,
	Josh Triplett <josh@joshtriplett.org>,
	Richard Cochran <richardcochran@gmail.com>,
	lkml <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH v3) posix-timers: make it configurable
Date: Thu, 15 Sep 2016 12:58:22 -0700	[thread overview]
Message-ID: <CALAqxLWW1qsq0_C2kiW+GgPk8x-dHS317eRUUhK=CG4MpQgxMQ@mail.gmail.com> (raw)
In-Reply-To: <alpine.LFD.2.20.1609151523510.14769@knanqh.ubzr>

On Thu, Sep 15, 2016 at 12:31 PM, Nicolas Pitre
<nicolas.pitre@linaro.org> wrote:
> On Thu, 15 Sep 2016, John Stultz wrote:
>
>> On Thu, Sep 15, 2016 at 11:37 AM, Nicolas Pitre
>> <nicolas.pitre@linaro.org> wrote:
>> > On Thu, 15 Sep 2016, John Stultz wrote:
>> >
>> >> On Thu, Sep 15, 2016 at 11:28 AM, Nicolas Pitre
>> >> <nicolas.pitre@linaro.org> wrote:
>> >> > On Thu, 15 Sep 2016, John Stultz wrote:
>> >> >
>> >> >> > diff --git a/kernel/time/Kconfig b/kernel/time/Kconfig
>> >> >> > index 62824f2fe4..62504a2c9f 100644
>> >> >> > --- a/kernel/time/Kconfig
>> >> >> > +++ b/kernel/time/Kconfig
>> >> >> > @@ -195,3 +195,21 @@ config HIGH_RES_TIMERS
>> >> >> >
>> >> >> >  endmenu
>> >> >> >  endif
>> >> >> > +
>> >> >> > +config POSIX_TIMERS
>> >> >> > +       bool "Posix Clocks & timers" if EMBEDDED
>> >> >> > +       default y
>> >> >> > +       help
>> >> >> > +         This includes native support for POSIX timers to the kernel.
>> >> >> > +         Most embedded systems may have no use for them and therefore they
>> >> >> > +         can be configured out to reduce the size of the kernel image.
>> >> >> > +
>> >> >> > +         When this option is disabled, the following syscalls won't be
>> >> >> > +         available: timer_create, timer_gettime: timer_getoverrun,
>> >> >> > +         timer_settime, timer_delete, clock_adjtime. Furthermore, the
>> >> >> > +         clock_settime, clock_gettime, clock_getres and clock_nanosleep
>> >> >> > +         syscalls will be limited to CLOCK_REALTIME and CLOCK_MONOTONIC
>> >> >> > +         only.
>> >> >> > +
>> >> >> > +         If unsure say y.
>> >> >> >
>> >> >>
>> >> >> One thought.. Should this go under:
>> >> >>     Configure standard kernel features (expert users)
>> >> >> rather then a top level item under  General Setup ?
>> >> >
>> >> > Hmmm... probably yes.
>> >> >
>> >> > Do you need that I repost the patch?
>> >>
>> >> I can see about moving it..
>> >
>> > OK.
>> >
>> > Making it conditional on EXPERT rather than EMBEDDED would also be more
>> > inline with the other similar options there.
>>
>> Ack.
>>
>> Although I'm also seeing some Kconfig noise when I disable it:
>>
>> warning: (SFC && TILE_NET && AMD_XGBE && BFIN_MAC_USE_HWSTAMP &&
>> TIGON3 && BNX2X && LIQUIDIO && FEC && E1000E && IGB && IXGBE && I40E
>> && FM10K && MLX4_EN && MLX5_CORE_EN && RAVB && SXGBE_ETH && STMMAC_ETH
>> && TI_CPTS && PTP_1588_CLOCK_GIANFAR && PTP_1588_CLOCK_IXP46X &&
>> DP83640_PHY && PTP_1588_CLOCK_PCH) selects PTP_1588_CLOCK which has
>> unmet direct dependencies (NET && POSIX_TIMERS)
>> warning: (SFC && TILE_NET && AMD_XGBE && BFIN_MAC_USE_HWSTAMP &&
>> TIGON3 && BNX2X && LIQUIDIO && FEC && E1000E && IGB && IXGBE && I40E
>> && FM10K && MLX4_EN && MLX5_CORE_EN && RAVB && SXGBE_ETH && STMMAC_ETH
>> && TI_CPTS && PTP_1588_CLOCK_GIANFAR && PTP_1588_CLOCK_IXP46X &&
>> DP83640_PHY && PTP_1588_CLOCK_PCH) selects PTP_1588_CLOCK which has
>> unmet direct dependencies (NET && POSIX_TIMERS)
>>
>> Not sure if this is just expected given we can't do reverse dependency
>> checking on select...
>>
>> Maybe PTP_1588_CLOCK needs to select POSIX_TIMERS instead of just depend on it?
>
> That would forcefully pull in a whole bunch of code that one wanted out
> by explicitly not enabling CONFIG_POSIX_TIMERS.  And the current depends
> statement forces out a bunch of ethernet drivers.
>
> Maybe there ought to be fewer of those hard dependencies such as net
> drivers with ptp, and ptp with POSIX timers.
>
> What about the following patch that would take care of the later?
>
> diff --git a/drivers/ptp/Kconfig b/drivers/ptp/Kconfig
> index 00e6098e9a..ee3de3421f 100644
> --- a/drivers/ptp/Kconfig
> +++ b/drivers/ptp/Kconfig
> @@ -6,7 +6,7 @@ menu "PTP clock support"
>
>  config PTP_1588_CLOCK
>         tristate "PTP clock support"
> -       depends on NET && POSIX_TIMERS
> +       depends on NET
>         select PPS
>         select NET_PTP_CLASSIFY
>         help
> diff --git a/drivers/ptp/ptp_clock.c b/drivers/ptp/ptp_clock.c
> index 2e481b9e8e..873addff63 100644
> --- a/drivers/ptp/ptp_clock.c
> +++ b/drivers/ptp/ptp_clock.c
> @@ -208,7 +208,8 @@ struct ptp_clock *ptp_clock_register(struct ptp_clock_info *info,
>                 goto no_slot;
>         }
>
> -       ptp->clock.ops = ptp_clock_ops;
> +       if (IS_ENABLED(CONFIG_POSIX_TIMERS))
> +               ptp->clock.ops = ptp_clock_ops;
>         ptp->clock.release = delete_ptp_clock;
>         ptp->info = info;
>         ptp->devid = MKDEV(major, index);
> @@ -245,10 +246,12 @@ struct ptp_clock *ptp_clock_register(struct ptp_clock_info *info,
>         }
>
>         /* Create a posix clock. */
> -       err = posix_clock_register(&ptp->clock, ptp->devid);
> -       if (err) {
> -               pr_err("failed to create posix clock\n");
> -               goto no_clock;
> +       if (IS_ENABLED(CONFIG_POSIX_TIMERS)) {
> +               err = posix_clock_register(&ptp->clock, ptp->devid);
> +               if (err) {
> +                       pr_err("failed to create posix clock\n");
> +                       goto no_clock;
> +               }
>         }
>
>         return ptp;
> @@ -281,7 +284,8 @@ int ptp_clock_unregister(struct ptp_clock *ptp)
>         ptp_cleanup_sysfs(ptp);
>         device_destroy(ptp_class, ptp->devid);
>
> -       posix_clock_unregister(&ptp->clock);
> +       if (IS_ENABLED(CONFIG_POSIX_TIMERS))
> +               posix_clock_unregister(&ptp->clock);
>         return 0;
>  }
>  EXPORT_SYMBOL(ptp_clock_unregister);

This doesn't look too bad.

Richard: Your thoughts?

thanks
-john

  reply	other threads:[~2016-09-15 19:58 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-09-15  3:47 [PATCH v3) posix-timers: make it configurable Nicolas Pitre
2016-09-15 17:48 ` John Stultz
2016-09-15 17:56   ` Nicolas Pitre
2016-09-15 18:13 ` John Stultz
2016-09-15 18:28   ` Nicolas Pitre
2016-09-15 18:35     ` John Stultz
2016-09-15 18:37       ` Nicolas Pitre
2016-09-15 18:46         ` John Stultz
2016-09-15 19:31           ` Nicolas Pitre
2016-09-15 19:58             ` John Stultz [this message]
2016-09-15 21:07               ` Richard Cochran
2016-09-15 21:15                 ` Josh Triplett
2016-09-15 21:35                   ` Nicolas Pitre
2016-09-15 21:56                     ` Josh Triplett
2016-09-16  7:24                       ` Richard Cochran
2016-09-17  2:57                         ` Nicolas Pitre
2016-09-18 14:35                           ` Richard Cochran
2016-09-18 16:54                             ` Nicolas Pitre
2016-09-18 18:20                               ` Richard Cochran
2016-09-18 18:49                                 ` Nicolas Pitre
2016-09-18 20:22                                   ` Richard Cochran
2016-09-18 20:30                                     ` Nicolas Pitre
2016-09-18 21:11                                       ` Richard Cochran
2016-09-15 21:23               ` Richard Cochran
2016-09-16 14:31 ` kbuild test robot

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='CALAqxLWW1qsq0_C2kiW+GgPk8x-dHS317eRUUhK=CG4MpQgxMQ@mail.gmail.com' \
    --to=john.stultz@linaro.org \
    --cc=josh@joshtriplett.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=nicolas.pitre@linaro.org \
    --cc=richardcochran@gmail.com \
    --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 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.