netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Eric Dumazet <dada1@cosmosbay.com>
To: Denys Fedoryshchenko <denys@visp.net.lb>
Cc: Andi Kleen <andi@firstfloor.org>,
	Joe Malicki <jmalicki@metacarta.com>,
	David Miller <davem@davemloft.net>,
	johnpol@2ka.mipt.ru, netdev@vger.kernel.org,
	linux-kernel@vger.kernel.org, juhlenko@akamai.com,
	sammy@sammy.net
Subject: Re: loaded router, excessive getnstimeofday in oprofile
Date: Thu, 28 Aug 2008 20:57:02 +0200	[thread overview]
Message-ID: <48B6F4FE.6010308@cosmosbay.com> (raw)
In-Reply-To: <200808281948.52608.denys@visp.net.lb>

Denys Fedoryshchenko a écrit :
> My small IMHO regarding SO_TIMESTAMP.
> 
> 1)Right now i have 400-500 Mbps passing router. If i will run 
> 5 "pings" ,simultaneous ,under _USER_ privileges(i know ping is suid), 
> instead of free 20% CPU time, i will have 1-2% free CPU time. Sure i know 
> ping is suid program, but it is has been "like this" since long time. By 
> security psychos it will be caled DoS.
> 

> 

So... if using ping on your machine has direct an noticeable effect on cpu load, problem is elsewhere
(if no ping is running, you dont have skb timestamping, but still getnstimeofday() is the top function in oprofile)

1) Do you have any netfilter rule using xt_time ?
   (This module also calls __net_timestamp(skb))

2) You maybe have a bad program that do something expensive relative to kernel time services.


bad_program()
{
while (1) {
    struct timeval t0,t1;
    gettimeofday(&tv0, NULL); // or whatever function that calls getnstimeofday()
    do_small_work();
    gettimeofday(&tv1, NULL); // or whatever function that calls getnstimeofday()
    add_stat_event(&tv1, &tv0);
}

> 2)Usefullness of this option. What is a difference if on almost idle machine 
> timestamp retrieved on higher level or lower level? 
> And why we need on highly loaded server so high precision timestamp (with 
> expensive timer), if in my case enabling any socket with SO_TIMESTAMP 
> creating delays more than 10ms(up to 100ms)?

Your setup is probably not common.
You want a PersonnalComputer class machine acts as a SuperCiscoDevice(TM),
while most PC machines dont use more than 10% of CPU power in average...

Many existing programs depend on current SO_TIMESTAMP.
We wont break them to solve a particular problem (yet to be demonstrated)

> 
> 3)Who is most users of SO_TIMESTAMP? iputils which is installed on almost 
> _ANY_ linux machine? busybox which is using same option? Many others 
> userspace multiplatform applications? Or banks? I dont take much in account 
> dhcpd, who is maybe abusing this option.
> 
> So there is few good solutions available (IMHO):
> 1)Introduce some SO_REALTIMESTAMP (anyway even SO_TIMESTAMP not defined in any 
> standard) for banks and ntp folks, who need them. And even give them timespec 
> instead timeval, so they will be even more happy with resolution.

kernel already provides nanosecond resolution :)
Check SO_TIMESTAMPNS and SCM_TIMESTAMPNS






  parent reply	other threads:[~2008-08-28 18:57 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 [this message]
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
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=48B6F4FE.6010308@cosmosbay.com \
    --to=dada1@cosmosbay.com \
    --cc=andi@firstfloor.org \
    --cc=davem@davemloft.net \
    --cc=denys@visp.net.lb \
    --cc=jmalicki@metacarta.com \
    --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).