When pm timer expires, the collected data should be stored in recordlist. Signed-off-by: Anders Selhammer <anders.selham...@est.tech> --- clock.c | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-)
diff --git a/clock.c b/clock.c index 7e92958..6575130 100644 --- a/clock.c +++ b/clock.c @@ -127,6 +127,7 @@ struct clock { int performance_monitoring; int pm_fd; struct pm_clock_stats pm_stats_record; + struct pm_clock_recordlist pm_recordlist; }; struct clock the_clock; @@ -170,6 +171,30 @@ static void clock_set_pmtime(struct clock *c) } } +static void clock_handle_pm_err(struct clock *c) +{ + clock_clr_tmo(c->pm_fd); + pm_free_clock_recordlist(&c->pm_recordlist); + c->performance_monitoring = 0; +} + +static void clock_pm_event(struct clock *c) +{ + clock_set_pm_tmo(c); + + if (pm_update_clock_stats_recordlist(&c->pm_stats_record, + &c->pm_recordlist)) { + pr_err("update of pm recordlist for clock failed"); + goto err; + } + + clock_set_pmtime(c); + return; +err: + clock_handle_pm_err(c); + return; +} + static void remove_subscriber(struct clock_subscriber *s) { LIST_REMOVE(s, list); @@ -314,6 +339,7 @@ void clock_destroy(struct clock *c) stats_destroy(c->stats.freq); stats_destroy(c->stats.delay); pm_destroy_clock_stats(&c->pm_stats_record); + pm_free_clock_recordlist(&c->pm_recordlist); if (c->sanity_check) { clockcheck_destroy(c->sanity_check); } @@ -1575,7 +1601,7 @@ int clock_poll(struct clock *c) /* Check the pm timer. */ if (cur[0].revents & (POLLIN|POLLPRI)) { - ; + clock_pm_event(c); } if (c->sde) { -- 1.8.3.1 ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ Linuxptp-devel mailing list Linuxptp-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linuxptp-devel