From patchwork Thu Sep 15 19:31:13 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nicolas Pitre X-Patchwork-Id: 76342 Delivered-To: patch@linaro.org Received: by 10.140.106.72 with SMTP id d66csp122755qgf; Thu, 15 Sep 2016 12:32:16 -0700 (PDT) X-Received: by 10.98.57.136 with SMTP id u8mr17072069pfj.93.1473967936763; Thu, 15 Sep 2016 12:32:16 -0700 (PDT) Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id b74si4679962pfc.187.2016.09.15.12.32.16; Thu, 15 Sep 2016 12:32:16 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755294AbcIOTcI (ORCPT + 27 others); Thu, 15 Sep 2016 15:32:08 -0400 Received: from mail-qk0-f182.google.com ([209.85.220.182]:33277 "EHLO mail-qk0-f182.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932497AbcIOTbW (ORCPT ); Thu, 15 Sep 2016 15:31:22 -0400 Received: by mail-qk0-f182.google.com with SMTP id w204so67014044qka.0 for ; Thu, 15 Sep 2016 12:31:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=date:from:to:cc:subject:in-reply-to:message-id:references :user-agent:mime-version; bh=9CFTwtEz6Pt0G5eerJ4AlB8peoXYkSNJPdRtCFsWC28=; b=S+QRrMXls3LiTmAXtGiKsx1vDdAnXbHG3T38n6XNb0Ytqo9uTznCdk8vS2qle+UhDr NvY57V2PvQVRglO2KaUJ64wZz7/rVkNj2upWh4AjQ7pftjmUnTqq/IkQFOCSy56T/z7U glH78H21/zLgVAPCYiSQt1L6BOc/P1Yrc1i2M= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:date:from:to:cc:subject:in-reply-to:message-id :references:user-agent:mime-version; bh=9CFTwtEz6Pt0G5eerJ4AlB8peoXYkSNJPdRtCFsWC28=; b=c7KsqQw+QU2OY4ru5biwjYf5OvwCGjM1u/2LbOvRYM7WroR1v7dR0OcDChq0JY+Wfu +vkhruLRIs186lmGwyx79r0IHyScNootiuTCz/XPv/9QaHYT2QdZS+ikU2UlEDA8b8gB v4qPtv6qpoIdqV61AZuBsu5dE+7ibHcYfrEzv6cGX5H7yHCy26KUdOPBlcTOEcSF9gxy PkcwZFNmMfNEjqoBWXz0PJ8WEfpWCsklqUO+6+kYN6B8PLr8u6HKUKoDu4Edjjx9Zi7v KRyhKJ3MMtAy6bZMk6Zwty2F9SbYpEMwiu0QNxiezsDmu/KD7NIgO5ndxukIEhDB/RWE Urhw== X-Gm-Message-State: AE9vXwNUQo0kjT7ss6bfpptsjNTXbbM1/0FrADQyN5Vt8pLXQmVLsh7Ktz8TZYq14hnB6IKr X-Received: by 10.55.105.130 with SMTP id e124mr12133428qkc.183.1473967875991; Thu, 15 Sep 2016 12:31:15 -0700 (PDT) Received: from xanadu.home ([2607:fa48:6e39:d410:feaa:14ff:fea7:ed77]) by smtp.gmail.com with ESMTPSA id v10sm2656252qkg.20.2016.09.15.12.31.14 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 15 Sep 2016 12:31:14 -0700 (PDT) Date: Thu, 15 Sep 2016 15:31:13 -0400 (EDT) From: Nicolas Pitre To: John Stultz cc: Thomas Gleixner , Josh Triplett , Richard Cochran , lkml Subject: Re: [PATCH v3) posix-timers: make it configurable In-Reply-To: Message-ID: References: User-Agent: Alpine 2.20 (LFD 67 2015-01-07) MIME-Version: 1.0 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, 15 Sep 2016, John Stultz wrote: > On Thu, Sep 15, 2016 at 11:37 AM, Nicolas Pitre > wrote: > > On Thu, 15 Sep 2016, John Stultz wrote: > > > >> On Thu, Sep 15, 2016 at 11:28 AM, Nicolas Pitre > >> 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? > > thanks > -john > 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);