From: Andrew Lunn <andrew@lunn.ch>
To: Brandon Streiff <brandon.streiff@ni.com>
Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org,
"David S. Miller" <davem@davemloft.net>,
Florian Fainelli <f.fainelli@gmail.com>,
Vivien Didelot <vivien.didelot@savoirfairelinux.com>,
Richard Cochran <richardcochran@gmail.com>,
Erik Hons <erik.hons@ni.com>
Subject: Re: [PATCH net-next RFC 2/9] net: dsa: mv88e6xxx: expose switch time as a PTP hardware clock
Date: Thu, 28 Sep 2017 19:03:29 +0200 [thread overview]
Message-ID: <20170928170329.GC14940@lunn.ch> (raw)
In-Reply-To: <1506612341-18061-3-git-send-email-brandon.streiff@ni.com>
> +/* The 32-bit timestamp counter overflows every ~34.3 seconds; this task
> + * forces periodic reads so that we don't miss any wraparounds.
> + */
> +#define MV88E6XXX_TAI_OVERFLOW_PERIOD (34 * HZ / 2)
> +static void mv88e6xxx_ptp_overflow_check(struct work_struct *work)
> +{
> + struct delayed_work *dw = to_delayed_work(work);
> + struct mv88e6xxx_chip *chip =
> + container_of(dw, struct mv88e6xxx_chip, overflow_work);
> + bool timeout = time_is_before_jiffies(chip->last_overflow_check +
> + MV88E6XXX_TAI_OVERFLOW_PERIOD);
> +
> + if (timeout) {
Why do you need this timeout? Do you think the kernel will call this
more often than required?
Also, if it did call this function early, you skip the read, and
reschedule. There is then a danger the next read is after the
wraparound.....
> + mutex_lock(&chip->reg_lock);
> + timecounter_read(&chip->tstamp_tc);
> + chip->last_overflow_check = jiffies;
> + mutex_unlock(&chip->reg_lock);
> + }
> +
> + schedule_delayed_work(&chip->overflow_work,
> + MV88E6XXX_TAI_OVERFLOW_PERIOD);
> +}
Thanks
Andrew
next prev parent reply other threads:[~2017-09-28 17:03 UTC|newest]
Thread overview: 48+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-09-28 15:25 [PATCH net-next RFC 0/9] net: dsa: PTP timestamping for mv88e6xxx Brandon Streiff
2017-09-28 15:25 ` [PATCH net-next RFC 1/9] net: dsa: mv88e6xxx: add accessors for PTP/TAI registers Brandon Streiff
2017-09-28 16:29 ` Vivien Didelot
2017-10-08 14:32 ` Richard Cochran
2017-09-28 15:25 ` [PATCH net-next RFC 2/9] net: dsa: mv88e6xxx: expose switch time as a PTP hardware clock Brandon Streiff
2017-09-28 16:56 ` Andrew Lunn
2017-09-29 15:28 ` Brandon Streiff
2017-10-08 11:59 ` Richard Cochran
2017-09-28 17:03 ` Andrew Lunn [this message]
2017-09-29 15:17 ` Brandon Streiff
2017-10-08 12:07 ` Richard Cochran
2017-10-08 14:52 ` Richard Cochran
2017-09-28 15:25 ` [PATCH net-next RFC 3/9] net: dsa: mv88e6xxx: add support for GPIO configuration Brandon Streiff
2017-09-28 17:45 ` Florian Fainelli
2017-09-28 18:01 ` Andrew Lunn
2017-09-28 19:57 ` Vivien Didelot
2017-09-29 15:30 ` Brandon Streiff
2017-09-28 15:25 ` [PATCH net-next RFC 4/9] net: dsa: mv88e6xxx: add support for event capture Brandon Streiff
2017-10-08 15:06 ` Richard Cochran
2017-10-09 22:08 ` Levi Pearson
2017-10-10 1:53 ` Richard Cochran
2017-09-28 15:25 ` [PATCH net-next RFC 5/9] net: dsa: forward hardware timestamping ioctls to switch driver Brandon Streiff
2017-09-28 17:25 ` Florian Fainelli
2017-10-08 13:12 ` Richard Cochran
2017-09-28 19:31 ` Vivien Didelot
2017-09-28 15:25 ` [PATCH net-next RFC 6/9] net: dsa: forward timestamping callbacks to switch drivers Brandon Streiff
2017-09-28 17:40 ` Florian Fainelli
2017-09-29 15:30 ` Brandon Streiff
2017-09-28 15:25 ` [PATCH net-next RFC 7/9] ptp: add offset for reserved field to header Brandon Streiff
2017-09-28 15:25 ` [PATCH net-next RFC 8/9] net: dsa: mv88e6xxx: add rx/tx timestamping support Brandon Streiff
2017-10-08 14:24 ` Richard Cochran
2017-10-08 15:12 ` Richard Cochran
2017-10-08 15:29 ` Richard Cochran
2017-09-28 15:25 ` [PATCH net-next RFC 9/9] net: dsa: mv88e6xxx: add workaround for 6341 timestamping Brandon Streiff
2017-09-28 17:36 ` [PATCH net-next RFC 0/9] net: dsa: PTP timestamping for mv88e6xxx Andrew Lunn
2017-09-28 17:51 ` Florian Fainelli
2017-09-29 15:34 ` Brandon Streiff
2017-09-29 9:43 ` Richard Cochran
2017-10-08 15:38 ` Richard Cochran
2017-11-06 14:55 ` Richard Cochran
2017-11-06 15:04 ` Andrew Lunn
2017-11-07 18:15 ` Richard Cochran
2017-11-07 18:13 ` Richard Cochran
2017-11-07 20:56 ` Brandon Streiff
2017-11-08 0:09 ` Andrew Lunn
2017-11-08 3:02 ` Andrew Lunn
2017-11-08 3:23 ` Richard Cochran
2017-12-04 1:13 ` Richard Cochran
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=20170928170329.GC14940@lunn.ch \
--to=andrew@lunn.ch \
--cc=brandon.streiff@ni.com \
--cc=davem@davemloft.net \
--cc=erik.hons@ni.com \
--cc=f.fainelli@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=richardcochran@gmail.com \
--cc=vivien.didelot@savoirfairelinux.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox