netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Joe Malicki <jmalicki@metacarta.com>
To: Andi Kleen <andi@firstfloor.org>
Cc: Andi Kleen <andi@firstfloor.org>,
	David Miller <davem@davemloft.net>,
	johnpol@2ka.mipt.ru, dada1@cosmosbay.com, denys@visp.net.lb,
	netdev@vger.kernel.org, linux-kernel@vger.kernel.org,
	juhlenko@akamai.com, sammy@sammy.net
Subject: Re: loaded router, excessive getnstimeofday in oprofile
Date: Fri, 29 Aug 2008 11:43:21 -0400 (EDT)	[thread overview]
Message-ID: <9908552.1357791220024601650.JavaMail.root@ouachita> (raw)
In-Reply-To: <20080829153036.GV26610@one.firstfloor.org>



Joe Malicki
Software Engineer
MetaCarta, Inc.

----- "Andi Kleen" <andi@firstfloor.org> wrote:
> > That adds variance, and packets aren't comparable because they may
> > suffer different kernel/hardware delays.
> 
> And there are no "different kernel/hardware delays" in the network?
> 
> If your RTT measurement method cannot handle some variance (using
> standard sampling and data smoothing techniques similar to TCP) then
> it 
> just needs to be fixed.

Noone's measuring RTT... what ever made you think that?

I should explain the application of SO_TIMESTAMP better.

 Video camera -> Video jack -> Digitization -> Compression ->
     Packetization -> NIC -> Ethernet -> NIC -> Interrupt Handler -> Queue -> Application

 Microphone   -> MIC jack -> Digitization -> Compression ->
      Packetization -> NIC -> Ethernet -> NIC -> Interrupt Handler -> Queue -> Application

One wants to know the original time sound and light waves hit the camera
and microphone, because one wants to know when they should hit the soundcard and
video on the other end (i.e. any delays should be synchronized) but one only has control
over the receiving system.  There are timestamps at the application level for this...
unfortunately, many implementations in the real world have independent clocks that skew
relative to each other, with little correction on the sending system.

Yeah, that's broken, but one has to be liberal in what one accepts from popular products.

One way to mitigate the skew between the clocks is to take measurements on the receiving
host, which you do control, and compare the average skew between the two streams and
correct for it.  Interrupt handler time has variance, but it's less than application-level
time, so it's a better, more reliable estimator.

> Besides measuring in the interrupt handler doesn't protect you
> against local variances anyways because the interrupt timing has
> variability
> (e.g due to irq off regions or due to interrupt mitigation or
> higher priority interrupts) too
>
True, but occasionally it's the best approximation to original send time.

> > > Yes, but why ignore local scheduling delays? 
> > 
> > Because one would want to ignore even network scheduling delays
> > if possible... unfortunately in some instances it's not.
> 
> The local delays add to the user experience too.
> It's unclear why you want to ignore those.
> 
> -Andi

You don't want to ignore them, you want to compensate for them
by getting an earlier timestamp.

  reply	other threads:[~2008-08-29 15:43 UTC|newest]

Thread overview: 69+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-08-22  1:57 loaded router, excessive getnstimeofday in oprofile Denys Fedoryshchenko
2008-08-22  2:23 ` Denys Fedoryshchenko
2008-08-26  9:51 ` Jarek Poplawski
2008-08-26 10:29   ` Denys Fedoryshchenko
2008-08-26 10:47     ` Jarek Poplawski
2008-08-26 10:49       ` Denys Fedoryshchenko
2008-08-26 11:07         ` Jarek Poplawski
2008-08-26 11:15           ` Jarek Poplawski
2008-08-26 11:16             ` Denys Fedoryshchenko
2008-08-26 11:32               ` Jarek Poplawski
2008-08-26 11:32                 ` Denys Fedoryshchenko
2008-08-26 20:14 ` Evgeniy Polyakov
2008-08-26 20:44   ` Eric Dumazet
2008-08-26 20:51     ` Evgeniy Polyakov
2008-08-27 12:09       ` Denys Fedoryshchenko
2008-08-27 12:36         ` Evgeniy Polyakov
2008-08-27 14:00           ` Denys Fedoryshchenko
2008-08-27 14:23             ` Evgeniy Polyakov
2008-08-27 12:54       ` Andi Kleen
2008-08-27 16:07         ` Rick Jones
2008-08-27 16:27           ` Andi Kleen
2008-08-27 16:49             ` Rick Jones
2008-08-27 16:56               ` Andi Kleen
2008-08-27 16:57                 ` Rick Jones
2008-08-27 17:27                 ` Eric Dumazet
2008-08-27 18:32                   ` loaded router, excessive getnstimeofday in oprofile\ Andi Kleen
2008-08-27 22:23                     ` David Miller
2008-08-27 22:38                       ` Andi Kleen
2008-08-27 22:18             ` loaded router, excessive getnstimeofday in oprofile David Miller
2008-08-27 22:39               ` Andi Kleen
2008-08-28  0:45                 ` Nick Piggin
2008-08-28  0:48                   ` David Miller
2008-08-28  1:07                     ` Nick Piggin
2008-08-27 16:17         ` Stephen Hemminger
2008-08-27 17:14           ` Jarek Poplawski
2008-08-27 21:34         ` David Miller
2008-08-28  2:39           ` Jason Uhlenkott
2008-08-28  3:10             ` David Miller
2008-08-28  6:28               ` Joe Malicki
2008-08-28  7:22                 ` Andi Kleen
2008-08-28 15:02                   ` Denys Fedoryshchenko
2008-08-28 19:01                     ` Ilpo Järvinen
2008-08-28 19:31                     ` David Miller
2008-08-28 16:48                   ` Denys Fedoryshchenko
2008-08-28 16:56                     ` Andi Kleen
2008-08-28 18:57                     ` Eric Dumazet
2008-08-28 19:25                       ` Denys Fedoryshchenko
2008-08-28 19:37                         ` Eric Dumazet
2008-08-28 19:55                           ` Denys Fedoryshchenko
2008-08-29 15:43                             ` Stephen Hemminger
2008-08-28 19:36                     ` David Miller
2008-08-28 19:59                       ` Denys Fedoryshchenko
2008-08-29 15:21                   ` Joe Malicki
2008-08-29 15:30                     ` Andi Kleen
2008-08-29 15:43                       ` Joe Malicki [this message]
2008-08-29 20:43                     ` Evgeniy Polyakov
2008-08-28 18:00                 ` Rick Jones
2008-08-28 19:42                   ` David Miller
2008-08-28 20:29                     ` Rick Jones
2008-08-28 20:32                       ` David Miller
2008-08-28 20:45                         ` Rick Jones
2008-08-28 20:47                           ` David Miller
2008-09-01  2:39                   ` Valdis.Kletnieks
2008-09-01  3:51                     ` David Miller
2008-09-01  4:08                       ` Valdis.Kletnieks
2008-09-01  4:10                         ` David Miller
2008-09-02 17:04                       ` Rick Jones
2008-08-28  3:35 ` Stephen Hemminger
2008-08-28  8:49   ` Denys Fedoryshchenko

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=9908552.1357791220024601650.JavaMail.root@ouachita \
    --to=jmalicki@metacarta.com \
    --cc=andi@firstfloor.org \
    --cc=dada1@cosmosbay.com \
    --cc=davem@davemloft.net \
    --cc=denys@visp.net.lb \
    --cc=johnpol@2ka.mipt.ru \
    --cc=juhlenko@akamai.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=sammy@sammy.net \
    /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;
as well as URLs for NNTP newsgroup(s).