> -----Original Message-----
> From: Richard Cochran [mailto:richardcoch...@gmail.com]
> Sent: Sunday, August 16, 2015 1:15 PM
> To: linuxptp-devel@lists.sourceforge.net
> Subject: [Linuxptp-devel] [PATCH RFC v3 23/69] config: convert
> 'pi_proportional_exponent' to the new scheme.
> 
> Signed-off-by: Richard Cochran <richardcoch...@gmail.com>
> ---
>  config.c | 7 +------
>  config.h | 1 -
>  pi.c     | 6 +++---
>  pi.h     | 7 -------
>  ptp4l.c  | 1 -
>  5 files changed, 4 insertions(+), 18 deletions(-)
> 
> diff --git a/config.c b/config.c
> index 07cb016..43f96fe 100644
> --- a/config.c
> +++ b/config.c
> @@ -98,6 +98,7 @@ struct config_item config_tab[] = {
>       GLOB_ITEM_INT("max_frequency", 900000000, 0, INT_MAX),
>       GLOB_ITEM_DBL("pi_integral_const", 0.0, 0.0, DBL_MAX),
>       GLOB_ITEM_DBL("pi_proportional_const", 0.0, 0.0, DBL_MAX),
> +     GLOB_ITEM_DBL("pi_proportional_exponent", -0.3, -DBL_MAX,
> DBL_MAX),

Maybe I am missing something here, but where do we actually read these options 
out? Since we no longer set them in global variables, I don't quite understand 
how you're reading it now? I don't see any calls to read the option in this 
patch...

This applies to a few other patches as well...

Regards,
Jake

>       GLOB_ITEM_DBL("pi_proportional_scale", 0.0, 0.0, DBL_MAX),
>       GLOB_ITEM_DBL("step_threshold", 0.0, 0.0, DBL_MAX),
>       GLOB_ITEM_INT("tx_timestamp_timeout", 1, 1, INT_MAX),
> @@ -544,12 +545,6 @@ static enum parser_result
> parse_global_setting(const char *option,
>               cfg->dds.freq_est_interval = val;
>               pod->freq_est_interval = val;
> 
> -     } else if (!strcmp(option, "pi_proportional_exponent")) {
> -             r = get_ranged_double(value, &df, -DBL_MAX, DBL_MAX);
> -             if (r != PARSED_OK)
> -                     return r;
> -             *cfg->pi_proportional_exponent = df;
> -
>       } else if (!strcmp(option, "pi_proportional_norm_max")) {
>               r = get_ranged_double(value, &df, DBL_MIN, 1.0);
>               if (r != PARSED_OK)
> diff --git a/config.h b/config.h
> index 4b8a4a2..afd7142 100644
> --- a/config.h
> +++ b/config.h
> @@ -69,7 +69,6 @@ struct config {
>       struct port_defaults pod;
>       enum servo_type clock_servo;
> 
> -     double *pi_proportional_exponent;
>       double *pi_proportional_norm_max;
>       double *pi_integral_scale;
>       double *pi_integral_exponent;
> diff --git a/pi.c b/pi.c
> index 8fe847a..bf57789 100644
> --- a/pi.c
> +++ b/pi.c
> @@ -36,7 +36,6 @@
>  #define FREQ_EST_MARGIN 0.001
> 
>  /* These take their values from the configuration file. (see ptp4l.c) */
> -double configured_pi_kp_exponent = -0.3;
>  double configured_pi_kp_norm_max = 0.7;
>  double configured_pi_ki_scale = 0.0;
>  double configured_pi_ki_exponent = 0.4;
> @@ -55,6 +54,7 @@ struct pi_servo {
>       double configured_pi_kp;
>       double configured_pi_ki;
>       double configured_pi_kp_scale;
> +     double configured_pi_kp_exponent;
>  };
> 
>  static void pi_destroy(struct servo *servo)
> @@ -160,7 +160,7 @@ static void pi_sync_interval(struct servo *servo,
> double interval)
>  {
>       struct pi_servo *s = container_of(servo, struct pi_servo, servo);
> 
> -     s->kp = s->configured_pi_kp_scale * pow(interval,
> configured_pi_kp_exponent);
> +     s->kp = s->configured_pi_kp_scale * pow(interval, s-
> >configured_pi_kp_exponent);
>       if (s->kp > configured_pi_kp_norm_max / interval)
>               s->kp = configured_pi_kp_norm_max / interval;
> 
> @@ -205,7 +205,7 @@ struct servo *pi_servo_create(struct config *cfg, int
> fadj, int sw_ts)
>                  unstable. */
>               s->configured_pi_kp_scale = s->configured_pi_kp;
>               configured_pi_ki_scale = s->configured_pi_ki;
> -             configured_pi_kp_exponent = 0.0;
> +             s->configured_pi_kp_exponent = 0.0;
>               configured_pi_ki_exponent = 0.0;
>               configured_pi_kp_norm_max = MAX_KP_NORM_MAX;
>               configured_pi_ki_norm_max = MAX_KI_NORM_MAX;
> diff --git a/pi.h b/pi.h
> index d3e541e..27a64b1 100644
> --- a/pi.h
> +++ b/pi.h
> @@ -22,13 +22,6 @@
>  #include "servo.h"
> 
>  /**
> - * This variable determines the exponent in the formula used to set the
> - * proportional constant of the PI controller from the sync interval.
> - * kp = min(kp_scale * sync^kp_exponent, kp_norm_max / sync)
> - */
> -extern double configured_pi_kp_exponent;
> -
> -/**
>   * This variable determines the normalized maximum in the formula used to
> set
>   * the proportional constant of the PI controller from the sync interval.
>   * kp = min(kp_scale * sync^kp_exponent, kp_norm_max / sync)
> diff --git a/ptp4l.c b/ptp4l.c
> index b96bee3..43dd977 100644
> --- a/ptp4l.c
> +++ b/ptp4l.c
> @@ -103,7 +103,6 @@ static struct config cfg_settings = {
>       .transport = TRANS_UDP_IPV4,
>       .clock_servo = CLOCK_SERVO_PI,
> 
> -     .pi_proportional_exponent = &configured_pi_kp_exponent,
>       .pi_proportional_norm_max = &configured_pi_kp_norm_max,
>       .pi_integral_scale = &configured_pi_ki_scale,
>       .pi_integral_exponent = &configured_pi_ki_exponent,
> --
> 2.1.4
> 
> 
> ------------------------------------------------------------------------------
> _______________________________________________
> Linuxptp-devel mailing list
> Linuxptp-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/linuxptp-devel

------------------------------------------------------------------------------
_______________________________________________
Linuxptp-devel mailing list
Linuxptp-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linuxptp-devel

Reply via email to