Re: ts_to_ct messages; ntp: time correction of -1200 seconds exceeds sanity limit

2010-12-06 Thread Kostik Belousov
On Sun, Dec 05, 2010 at 08:30:11PM -0600, James R. Van Artsdalen wrote:
 FreeBSD gohorns.x 9.0-CURRENT FreeBSD 9.0-CURRENT #1 r216088: Thu Dec  2
 23:20:14 CST 2010 r...@gohorns.x:/usr/obj/usr/src/sys/GENERIC  amd64
 
 I have been getting a lot of ts_to_ct for months: are we supposed to
 look for something or report anything about these?
They should be silenced. I have this local change for too long, will
commit it shortly unless somebody objects:

diff --git a/sys/kern/subr_clock.c b/sys/kern/subr_clock.c
index 4e7bcd0..c04b5ac 100644
--- a/sys/kern/subr_clock.c
+++ b/sys/kern/subr_clock.c
@@ -49,7 +49,7 @@ __FBSDID($FreeBSD$);
 #include sys/sysctl.h
 #include sys/timetc.h
 
-#define ct_debug bootverbose
+static int ct_debug;
 static int adjkerntz;  /* local offset from UTC in seconds */
 static int wall_cmos_clock;/* wall CMOS clock assumed if != 0 */
 


pgpzZ94SynafF.pgp
Description: PGP signature


Re: ts_to_ct messages; ntp: time correction of -1200 seconds exceeds sanity limit

2010-12-06 Thread Bjoern A. Zeeb

On Mon, 6 Dec 2010, Kostik Belousov wrote:


On Sun, Dec 05, 2010 at 08:30:11PM -0600, James R. Van Artsdalen wrote:

FreeBSD gohorns.x 9.0-CURRENT FreeBSD 9.0-CURRENT #1 r216088: Thu Dec  2
23:20:14 CST 2010 r...@gohorns.x:/usr/obj/usr/src/sys/GENERIC  amd64

I have been getting a lot of ts_to_ct for months: are we supposed to
look for something or report anything about these?

They should be silenced. I have this local change for too long, will
commit it shortly unless somebody objects:

diff --git a/sys/kern/subr_clock.c b/sys/kern/subr_clock.c
index 4e7bcd0..c04b5ac 100644
--- a/sys/kern/subr_clock.c
+++ b/sys/kern/subr_clock.c
@@ -49,7 +49,7 @@ __FBSDID($FreeBSD$);
#include sys/sysctl.h
#include sys/timetc.h

-#define ct_debug bootverbose
+static int ct_debug;
static int adjkerntz;   /* local offset from UTC in seconds */
static int wall_cmos_clock; /* wall CMOS clock assumed if != 0 */


I have actually been using this one for two months now, which allows you
to enable it if you want the debugging.

--- sys/kern/subr_clock.c.orig  2010-11-14 16:10:15.0 +
+++ sys/kern/subr_clock.c   2010-12-04 23:39:51.0 +
@@ -49,7 +49,7 @@ __FBSDID($FreeBSD: src/sys/kern/subr_cl
 #include sys/sysctl.h
 #include sys/timetc.h

-#define ct_debug bootverbose
+static int ct_debug;
 static int adjkerntz;  /* local offset from UTC in seconds */
 static int wall_cmos_clock;/* wall CMOS clock assumed if != 0 */

@@ -60,6 +60,8 @@ int tz_dsttime;
  * This have traditionally been in machdep, but should probably be moved to
  * kern.
  */
+SYSCTL_INT(_machdep, OID_AUTO, ct_debug,
+   CTLFLAG_RW, ct_debug, 0, Print ct debug if enabled.);
 SYSCTL_INT(_machdep, OID_AUTO, wall_cmos_clock,
 CTLFLAG_RW, wall_cmos_clock, 0, CMOS clock keeps wall time);



--
Bjoern A. Zeeb  Welcome a new stage of life.
ks Going to jail sucks -- bz All my daemons like it!
  http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/jails.html
___
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to freebsd-current-unsubscr...@freebsd.org


Re: In-kernel PPPoE

2010-12-06 Thread Ian FREISLICH
David Rhodus wrote:
 Does mpd work in -current ? Last tried I, netgraph had problems with mpd.

I have successfully used it on -CURRENT as late as:

FreeBSD mini 9.0-CURRENT FreeBSD 9.0-CURRENT #16: Wed Nov 17 07:11:06 SAST 2010 
i...@mini:/usr/obj/usr/src/sys/APPLE  i386

Ian

-- 
Ian Freislich
___
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to freebsd-current-unsubscr...@freebsd.org


Re: In-kernel PPPoE

2010-12-06 Thread Bjoern A. Zeeb

On Mon, 6 Dec 2010, Andriy Gapon wrote:


BTW, there is a rumor that mpd may become an 'in source' program too.


It comes 'in source';-)

I think last time it came up for base, the package ended up being in
the dataset of the release packages and I think that's fine enough.
I cannot see any advantage having it in base.

I could see a lot more advantage with someone picking up the netgraph
problem reports and fixing them...

/bz

--
Bjoern A. Zeeb  Welcome a new stage of life.
ks Going to jail sucks -- bz All my daemons like it!
  http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/jails.html
___
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to freebsd-current-unsubscr...@freebsd.org


Re: binutils problem? WAS [Re: static linking error: ELF binary type 0 not known. Exec format error. Binary file not executable.]

2010-12-06 Thread Anton Shterenlikht
On Sat, Dec 04, 2010 at 12:52:57AM +0100, Dimitry Andric wrote:
 On 2010-12-03 10:58, Anton Shterenlikht wrote:
 a.out: ELF 64-bit LSB executable, IA-64, version 1 (SYSV), statically 
 linked, not stripped
 ...
 The branding on ia64 is wrong. The executable is not marked as being
 a FreeBSD executable. It's declared as SYSV, whereas on amd64 it's
 properly declared as FreeBSD.
 
 This is a binutils problem.
 ...
 Anybody here can explain better what Marcel means
 by binutils problem, and how to fix it?
 
 I've binutils-2.20.1_3 installed from devel/binutils.
 
 The problem is that our base binutils's BFD library has a custom hack to
 'brand' the produced executables, e.g. set the ELF_OSABI field in the
 ELF header to ELFOSABI_FREEBSD.
 
 Other arches such as i386, amd64 (x86_64 in binutils land), sparc and
 even alpha (!) have had patches sent upstream to do the right thing for
 FreeBSD, but not ia64.
 
 If you can, please try the attached patch, which resolves the problem on
 the ia64 machine I have tried it on.  It should really be sent upstream
 to the binutils people, if there is some interest.

Could there be a problem in the patch?:

% pwd
/usr/src/contrib/binutils/bfd
% patch  binutils-ia64-freebsd.diff 
Hmm...  Looks like a unified diff to me...
The text leading up to this was:
--
|diff --git a/bfd/config.bfd b/bfd/config.bfd
|index 9b719d8..d2fe23e 100644
|--- a/bfd/config.bfd
|+++ b/bfd/config.bfd
--
Patching file config.bfd using Plan A...
Hunk #1 failed at 182.
1 out of 1 hunks failed--saving rejects to config.bfd.rej
Hmm...  The next patch looks like a unified diff to me...
The text leading up to this was:
--
|diff --git a/bfd/configure b/bfd/configure
|index 278cc1d..ad9dcc9 100755
|--- a/bfd/configure
|+++ b/bfd/configure
--
Patching file configure using Plan A...
Hunk #1 succeeded at 6365 with fuzz 1 (offset -8804 lines).
Hmm...  The next patch looks like a unified diff to me...
The text leading up to this was:
--
|diff --git a/bfd/elfxx-ia64.c b/bfd/elfxx-ia64.c
|index d42ad89..5625c44 100644
|--- a/bfd/elfxx-ia64.c
|+++ b/bfd/elfxx-ia64.c
--
Patching file elfxx-ia64.c using Plan A...
Hunk #1 succeeded at 5013 (offset -1064 lines).
Hmm...  The next patch looks like a unified diff to me...
The text leading up to this was:
--
|diff --git a/bfd/targets.c b/bfd/targets.c
|index 3e99754..a642a8d 100644
|--- a/bfd/targets.c
|+++ b/bfd/targets.c
--
Patching file targets.c using Plan A...
Hunk #1 succeeded at 595 with fuzz 1 (offset -102 lines).
Hmm...  The next patch looks like a unified diff to me...
The text leading up to this was:
--
|diff --git a/ld/emulparams/elf64_ia64_fbsd.sh 
b/ld/emulparams/elf64_ia64_fbsd.sh
|index ab7e78f..a7e2675 100644
|--- a/ld/emulparams/elf64_ia64_fbsd.sh
|+++ b/ld/emulparams/elf64_ia64_fbsd.sh
--
File to patch: ../ld/emulparams/elf64_ia64_fbsd.sh
Patching file ../ld/emulparams/elf64_ia64_fbsd.sh using Plan A...
Hunk #1 succeeded at 4 with fuzz 2.
patch:  misordered hunks! output would be garbled
% 


many thanks for your help
anton

-- 
Anton Shterenlikht
Room 2.6, Queen's Building
Mech Eng Dept
Bristol University
University Walk, Bristol BS8 1TR, UK
Tel: +44 (0)117 331 5944
Fax: +44 (0)117 929 4423
___
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to freebsd-current-unsubscr...@freebsd.org


Re: Process accounting/timing has broken recently

2010-12-06 Thread John Baldwin
On Sunday, December 05, 2010 6:18:29 pm Steve Kargl wrote:
 Sometime in the last 7-10 days, some one made a
 change that has broken process accounting/timing.
 
 laptop:kargl[42] foreach i ( 0 1 2 3 4 5 6 7 8 9 )
 foreach? time ./testf
 foreach? end
 Max ULP: 0.501607 for x in [-18.00:88.70] with dx = 1.067100e-04
69.55 real38.39 user30.94 sys
 Max ULP: 0.501607 for x in [-18.00:88.70] with dx = 1.067100e-04
68.82 real40.95 user27.60 sys
 Max ULP: 0.501607 for x in [-18.00:88.70] with dx = 1.067100e-04
69.14 real38.90 user30.02 sys
 Max ULP: 0.501607 for x in [-18.00:88.70] with dx = 1.067100e-04
68.79 real40.59 user27.99 sys
 Max ULP: 0.501607 for x in [-18.00:88.70] with dx = 1.067100e-04
68.93 real39.76 user28.96 sys
 Max ULP: 0.501607 for x in [-18.00:88.70] with dx = 1.067100e-04
68.71 real41.21 user27.29 sys
 Max ULP: 0.501607 for x in [-18.00:88.70] with dx = 1.067100e-04
69.05 real39.68 user29.15 sys
 Max ULP: 0.501607 for x in [-18.00:88.70] with dx = 1.067100e-04
68.99 real39.98 user28.80 sys
 Max ULP: 0.501607 for x in [-18.00:88.70] with dx = 1.067100e-04
69.02 real39.64 user29.16 sys
 Max ULP: 0.501607 for x in [-18.00:88.70] with dx = 1.067100e-04
69.38 real37.49 user31.67 sys
 
 testf is a numerically intensive program that tests the
 accuracy of expf() in a tight loop.  User time varies
 by ~3 seconds on my lightly loaded 2 GHz core2 duo processor.
 I'm fairly certain that the code does not suddenly grow/loose
 6 GFLOP of operations.

The user/sys thing is a hack (and has been).  We sample the PC at stathz (~128 
hz) to figure out a user vs sys split and use that to divide up the total 
runtime (which actually is fairly accurate).  All you need is for the clock 
ticks to fire just a bit differently between runs to get a swing in user vs 
system time.

What I would like is to keep separate raw bintime's for user vs system time in 
the raw data instead, but that would involve checking the CPU ticker more 
often (e.g. twice for each syscall, interrupt, and trap in addition to the 
current once per context switch).  So far folks seem to be more worried about 
the extra overhead rather than the loss of accuracy.

-- 
John Baldwin
___
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to freebsd-current-unsubscr...@freebsd.org


Re: Process accounting/timing has broken recently

2010-12-06 Thread Steve Kargl
On Mon, Dec 06, 2010 at 09:44:03AM -0500, John Baldwin wrote:
 On Sunday, December 05, 2010 6:18:29 pm Steve Kargl wrote:
  Sometime in the last 7-10 days, some one made a
  change that has broken process accounting/timing.
  
  laptop:kargl[42] foreach i ( 0 1 2 3 4 5 6 7 8 9 )
  foreach? time ./testf
  foreach? end
  Max ULP: 0.501607 for x in [-18.00:88.70] with dx = 1.067100e-04
 69.55 real38.39 user30.94 sys
  Max ULP: 0.501607 for x in [-18.00:88.70] with dx = 1.067100e-04
 68.82 real40.95 user27.60 sys
  
  testf is a numerically intensive program that tests the
  accuracy of expf() in a tight loop.  User time varies
  by ~3 seconds on my lightly loaded 2 GHz core2 duo processor.
  I'm fairly certain that the code does not suddenly grow/loose
  6 GFLOP of operations.
 
 The user/sys thing is a hack (and has been).  We sample the PC at stathz 
 (~128 
 hz) to figure out a user vs sys split and use that to divide up the total 
 runtime (which actually is fairly accurate).  All you need is for the clock 
 ticks to fire just a bit differently between runs to get a swing in user vs 
 system time.
 
 What I would like is to keep separate raw bintime's for user vs system time 
 in 
 the raw data instead, but that would involve checking the CPU ticker more 
 often (e.g. twice for each syscall, interrupt, and trap in addition to the 
 current once per context switch).  So far folks seem to be more worried about 
 the extra overhead rather than the loss of accuracy.
 

John,

Thanks for the comment.  It seems this splitting has become
worse (for some definition of worse) in that previously the
user time variation was on the order of tenth of a second not
seconds.  In thinking about the issue, I recalled that some
changes to npx.c were committed 10 days ago.  Perhaps, there
is slightly more context switch overhead in dealing with the
FPU registers, and this has increased the sys time.
-- 
Steve
___
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to freebsd-current-unsubscr...@freebsd.org


trying to use xz on manuals.

2010-12-06 Thread Norikatsu Shigemura
Hi.

I tested like following:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
- -
--- share/mk/bsd.own.mk.orig2010-10-06 12:22:05.747697000 +0900
+++ share/mk/bsd.own.mk 2010-12-06 23:40:59.058632584 +0900
@@ -169,8 +169,8 @@
 STRIP?=-s
 .endif
 
-COMPRESS_CMD?= gzip -cn
-COMPRESS_EXT?= .gz
+COMPRESS_CMD?= xz -c
+COMPRESS_EXT?= .xz
 
 .if !defined(_WITHOUT_SRCCONF)
 #
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
- -

So I got following results:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
- -
$ find /usr/share/doc /usr/share/info /usr/share/man /usr/share/openssl/man 
-name \*.gz | xargs stat -f %z | awk '{sum+=$0} END {print sum, NR}'
31186768 8629
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
- -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
- -
$ find /usr/share/doc /usr/share/info /usr/share/man /usr/share/openssl/man 
-name \*.xz | xargs stat -f %z | awk '{sum+=$0} END {print sum, NR}'
30010640 8631
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
- -

.xz smaller than .gz, but effective is about 96.2%:-(.

Different from files.gz to files.xz:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
- -
+/usr/share/man/man3/log2.3.xz
+/usr/share/man/man3/log2f.3.xz
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
- -
(Sorry, .gz environment is just older)


And I noticed that tooo long ObsoleteFiles.inc:-(.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
- -
# MMDD: Remove *.gz (Replaced by *.xz)
OLD_FILES+=usr/share/doc/papers/beyond43.ascii.gz
OLD_FILES+=usr/share/doc/papers/bio.ascii.gz
OLD_FILES+=usr/share/doc/papers/contents.ascii.gz
:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
- -

Humm.. JFYI.

-- 
Norikatsu Shigemura n...@freebsd.org
___
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to freebsd-current-unsubscr...@freebsd.org


Re: Process accounting/timing has broken recently

2010-12-06 Thread Kostik Belousov
On Mon, Dec 06, 2010 at 08:38:30AM -0800, Steve Kargl wrote:
 On Mon, Dec 06, 2010 at 09:44:03AM -0500, John Baldwin wrote:
  On Sunday, December 05, 2010 6:18:29 pm Steve Kargl wrote:
   Sometime in the last 7-10 days, some one made a
   change that has broken process accounting/timing.
   
   laptop:kargl[42] foreach i ( 0 1 2 3 4 5 6 7 8 9 )
   foreach? time ./testf
   foreach? end
   Max ULP: 0.501607 for x in [-18.00:88.70] with dx = 1.067100e-04
  69.55 real38.39 user30.94 sys
   Max ULP: 0.501607 for x in [-18.00:88.70] with dx = 1.067100e-04
  68.82 real40.95 user27.60 sys
   
   testf is a numerically intensive program that tests the
   accuracy of expf() in a tight loop.  User time varies
   by ~3 seconds on my lightly loaded 2 GHz core2 duo processor.
   I'm fairly certain that the code does not suddenly grow/loose
   6 GFLOP of operations.
  
  The user/sys thing is a hack (and has been).  We sample the PC at stathz 
  (~128 
  hz) to figure out a user vs sys split and use that to divide up the total 
  runtime (which actually is fairly accurate).  All you need is for the clock 
  ticks to fire just a bit differently between runs to get a swing in user vs 
  system time.
  
  What I would like is to keep separate raw bintime's for user vs system time 
  in 
  the raw data instead, but that would involve checking the CPU ticker more 
  often (e.g. twice for each syscall, interrupt, and trap in addition to the 
  current once per context switch).  So far folks seem to be more worried 
  about 
  the extra overhead rather than the loss of accuracy.
  
 
 John,
 
 Thanks for the comment.  It seems this splitting has become
 worse (for some definition of worse) in that previously the
 user time variation was on the order of tenth of a second not
 seconds.  In thinking about the issue, I recalled that some
 changes to npx.c were committed 10 days ago.  Perhaps, there
 is slightly more context switch overhead in dealing with the
 FPU registers, and this has increased the sys time.
If you can confirm this statement, it would be interesting. Otherwise,
I claim that the changes did not affected the context switch path at
all. The changes were mostly relevant for context(2) family of functions
and debugger access to the FPU register file.


pgp22NKWrueGR.pgp
Description: PGP signature


Re: non-invariant tsc and cputicker

2010-12-06 Thread Jung-uk Kim
On Saturday 04 December 2010 06:12 am, Andriy Gapon wrote:
 on 04/12/2010 02:38 Jung-uk Kim said the following:
  If my understanding is correct, your patch uses the dummy
  timecounter until a real timecounter is chosen.

 Perhaps this is one way to look at it.
 But I look at it differently - the patch makes cpu_ticks refer to
 tc_cpu_ticks. That is, it make _the_ timecounter be used for cpu
 ticks.
 Exact timecounter backend is not important to me.

  When a real timecounter is set,
  tc_cpu_ticks() changes the frequency naturally.  How are you
  going to solve this problem?

 Do we really care about cpu ticks accounting that early in the
 boot?

   What should we do when a user set a new
  timecounter hardware via sysctl kern.timecounter.hardware?

 User can expect some instability (*if any*) when he does such a
 significant system reconfiguration.
 I put if any, because I think that tc_cpu_ticks() should handle
 this. The same way as you don't see time returned by e.g.
 nanotime() going crazy at that moment.

  I don't
  think it is any better than current code.  Am I missing
  something? :-(

 I think that it is much better.
 Handling of P-state changes for non-invariant TSC is just
 incorrect. kern.timecounter.hardware is not going to be changed as
 frequently as P-states, if ever.

Sigh...  Please see the history of calcru() in 
sys/kern/kern_resource.c.  Most important ones are:

http://svn.freebsd.org/viewvc/base?view=revisionrevision=155444
http://svn.freebsd.org/viewvc/base?view=revisionrevision=155534

Basically, we chose efficiency over accuracy and you are suggesting 
going backwards.

Jung-uk Kim
___
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to freebsd-current-unsubscr...@freebsd.org


Re: trying to use xz on manuals.

2010-12-06 Thread Alex Kozlov
On Tue, Dec 07, 2010 at 02:03:50AM +0900, Norikatsu Shigemura wrote:
   .xz smaller than .gz, but effective is about 96.2%:-(.
Some time ago I do similar tests. Changing compression for base man's
to bz2 or xz doesn't make much sense.


--
Adios
RELENG_8 2010-04-26:

4,0M/tmp/mangzxz.hm0P7PH4xi/1_raw
1,7M/tmp/mangzxz.hm0P7PH4xi/1gz
1,6M/tmp/mangzxz.hm0P7PH4xi/1xz
1,1M/tmp/mangzxz.hm0P7PH4xi/2_raw
604K/tmp/mangzxz.hm0P7PH4xi/2gz
598K/tmp/mangzxz.hm0P7PH4xi/2xz
5,7M/tmp/mangzxz.hm0P7PH4xi/3_raw
2,6M/tmp/mangzxz.hm0P7PH4xi/3gz
2,6M/tmp/mangzxz.hm0P7PH4xi/3xz
3,5M/tmp/mangzxz.hm0P7PH4xi/4_raw
1,7M/tmp/mangzxz.hm0P7PH4xi/4gz
1,7M/tmp/mangzxz.hm0P7PH4xi/4xz
1,8M/tmp/mangzxz.hm0P7PH4xi/5_raw
748K/tmp/mangzxz.hm0P7PH4xi/5gz
718K/tmp/mangzxz.hm0P7PH4xi/5xz
 10K/tmp/mangzxz.hm0P7PH4xi/6_raw
6,0K/tmp/mangzxz.hm0P7PH4xi/6gz
6,0K/tmp/mangzxz.hm0P7PH4xi/6xz
804K/tmp/mangzxz.hm0P7PH4xi/7_raw
308K/tmp/mangzxz.hm0P7PH4xi/7gz
296K/tmp/mangzxz.hm0P7PH4xi/7xz
3,0M/tmp/mangzxz.hm0P7PH4xi/8_raw
1,4M/tmp/mangzxz.hm0P7PH4xi/8gz
1,4M/tmp/mangzxz.hm0P7PH4xi/8xz
2,1M/tmp/mangzxz.hm0P7PH4xi/9_raw
1,0M/tmp/mangzxz.hm0P7PH4xi/9gz
1,0M/tmp/mangzxz.hm0P7PH4xi/9xz
___
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to freebsd-current-unsubscr...@freebsd.org

Re: non-invariant tsc and cputicker

2010-12-06 Thread Andriy Gapon
on 06/12/2010 19:42 Jung-uk Kim said the following:
 Sigh...  Please see the history of calcru() in 
 sys/kern/kern_resource.c.  Most important ones are:
 
 http://svn.freebsd.org/viewvc/base?view=revisionrevision=155444
 http://svn.freebsd.org/viewvc/base?view=revisionrevision=155534
 
 Basically, we chose efficiency over accuracy and you are suggesting 
 going backwards.

Well, I guess that it depends.

Looking at r155444 - the time is still going to be accounted in ticks (but
timecounter ticks).  BTW, I think that this quote says something: On more 
modern
hardware no change in performance is seen. and that was ~5 years ago.

Looking at r155534 - the only change that is going to get undone is using TSC 
for
the accounting ticks, and that is only for machines with non-invariant TSC.  
And I
think that all sufficiently modern machines have invariant TSC and, in Intel's
words, that's an architectural path going forward.

So, I don't think that I propose a dramatic change.
-- 
Andriy Gapon
___
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to freebsd-current-unsubscr...@freebsd.org


Re: Process accounting/timing has broken recently

2010-12-06 Thread John Baldwin
On Monday, December 06, 2010 11:38:30 am Steve Kargl wrote:
 On Mon, Dec 06, 2010 at 09:44:03AM -0500, John Baldwin wrote:
  On Sunday, December 05, 2010 6:18:29 pm Steve Kargl wrote:
   Sometime in the last 7-10 days, some one made a
   change that has broken process accounting/timing.
   
   laptop:kargl[42] foreach i ( 0 1 2 3 4 5 6 7 8 9 )
   foreach? time ./testf
   foreach? end
   Max ULP: 0.501607 for x in [-18.00:88.70] with dx = 1.067100e-04
  69.55 real38.39 user30.94 sys
   Max ULP: 0.501607 for x in [-18.00:88.70] with dx = 1.067100e-04
  68.82 real40.95 user27.60 sys
   
   testf is a numerically intensive program that tests the
   accuracy of expf() in a tight loop.  User time varies
   by ~3 seconds on my lightly loaded 2 GHz core2 duo processor.
   I'm fairly certain that the code does not suddenly grow/loose
   6 GFLOP of operations.
  
  The user/sys thing is a hack (and has been).  We sample the PC at stathz 
  (~128 
  hz) to figure out a user vs sys split and use that to divide up the total 
  runtime (which actually is fairly accurate).  All you need is for the clock 
  ticks to fire just a bit differently between runs to get a swing in user vs 
  system time.
  
  What I would like is to keep separate raw bintime's for user vs system time 
  in 
  the raw data instead, but that would involve checking the CPU ticker more 
  often (e.g. twice for each syscall, interrupt, and trap in addition to the 
  current once per context switch).  So far folks seem to be more worried 
  about 
  the extra overhead rather than the loss of accuracy.
  
 
 John,
 
 Thanks for the comment.  It seems this splitting has become
 worse (for some definition of worse) in that previously the
 user time variation was on the order of tenth of a second not
 seconds.  In thinking about the issue, I recalled that some
 changes to npx.c were committed 10 days ago.  Perhaps, there
 is slightly more context switch overhead in dealing with the
 FPU registers, and this has increased the sys time.

Hmm, I wonder if the eventtimer stuff that has gone into HEAD recently could
be a factor?  It might change when statclock() is called.

-- 
John Baldwin
___
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to freebsd-current-unsubscr...@freebsd.org


Re: Process accounting/timing has broken recently

2010-12-06 Thread Steve Kargl
On Mon, Dec 06, 2010 at 07:35:31PM +0200, Kostik Belousov wrote:
 On Mon, Dec 06, 2010 at 08:38:30AM -0800, Steve Kargl wrote:
  John,
  
  Thanks for the comment.  It seems this splitting has become
  worse (for some definition of worse) in that previously the
  user time variation was on the order of tenth of a second not
  seconds.  In thinking about the issue, I recalled that some
  changes to npx.c were committed 10 days ago.  Perhaps, there
  is slightly more context switch overhead in dealing with the
  FPU registers, and this has increased the sys time.
 If you can confirm this statement, it would be interesting. Otherwise,
 I claim that the changes did not affected the context switch path at
 all. The changes were mostly relevant for context(2) family of functions
 and debugger access to the FPU register file.

I won't be able to test this possibiolity until later 
tonight (about 9 hours from now).

-- 
Steve
___
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to freebsd-current-unsubscr...@freebsd.org


Re: Process accounting/timing has broken recently

2010-12-06 Thread Andriy Gapon
on 06/12/2010 20:01 John Baldwin said the following:
 Hmm, I wonder if the eventtimer stuff that has gone into HEAD recently could
 be a factor?  It might change when statclock() is called.

But I think that that code was committed more than 7-10 days ago, which Steve
mentioned.


-- 
Andriy Gapon
___
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to freebsd-current-unsubscr...@freebsd.org


Re: non-invariant tsc and cputicker

2010-12-06 Thread Jung-uk Kim
On Monday 06 December 2010 12:58 pm, Andriy Gapon wrote:
 on 06/12/2010 19:42 Jung-uk Kim said the following:
  Sigh...  Please see the history of calcru() in
  sys/kern/kern_resource.c.  Most important ones are:
 
  http://svn.freebsd.org/viewvc/base?view=revisionrevision=155444
  http://svn.freebsd.org/viewvc/base?view=revisionrevision=155534
 
  Basically, we chose efficiency over accuracy and you are
  suggesting going backwards.

 Well, I guess that it depends.

 Looking at r155444 - the time is still going to be accounted in
 ticks (but timecounter ticks).  BTW, I think that this quote says
 something: On more modern hardware no change in performance is
 seen. and that was ~5 years ago.

On slower machines, the avoided multiplications to normalize 
timestams at every context switch, comes out as a 5-7% better score 
on the unixbench/context1 microbenchmark.  On more modern hardware no 
change in performance is seen.

His performance measurement was done for the avoided multiplications 
to normalize timestamps at every context switch, not for change CPU 
ticker from tc_cpu_ticks() to cpu_ticks(), which actually happened 
in r155534 later.

 Looking at r155534 - the only change that is going to get undone is
 using TSC for the accounting ticks, and that is only for machines
 with non-invariant TSC.  And I think that all sufficiently modern
 machines have invariant TSC and, in Intel's words, that's an
 architectural path going forward.

I understand that.  However, it is not clear to me why you want to 
pessimize performance of old hardware.  If you can convince me old 
hardware with slow timecounter hardware (e.g., i8254) does not hurt 
too much, maybe it's okay.

 So, I don't think that I propose a dramatic change.

Shrug...  Still I want to see some evidence.

Jung-uk Kim
___
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to freebsd-current-unsubscr...@freebsd.org


Re: non-invariant tsc and cputicker

2010-12-06 Thread Andriy Gapon
on 06/12/2010 20:34 Jung-uk Kim said the following:
 On Monday 06 December 2010 12:58 pm, Andriy Gapon wrote:
 on 06/12/2010 19:42 Jung-uk Kim said the following:
 Sigh...  Please see the history of calcru() in
 sys/kern/kern_resource.c.  Most important ones are:

 http://svn.freebsd.org/viewvc/base?view=revisionrevision=155444
 http://svn.freebsd.org/viewvc/base?view=revisionrevision=155534

 Basically, we chose efficiency over accuracy and you are
 suggesting going backwards.

 Well, I guess that it depends.

 Looking at r155444 - the time is still going to be accounted in
 ticks (but timecounter ticks).  BTW, I think that this quote says
 something: On more modern hardware no change in performance is
 seen. and that was ~5 years ago.
 
 On slower machines, the avoided multiplications to normalize 
 timestams at every context switch, comes out as a 5-7% better score 
 on the unixbench/context1 microbenchmark.  On more modern hardware no 
 change in performance is seen.
 
 His performance measurement was done for the avoided multiplications 
 to normalize timestamps at every context switch, not for change CPU 
 ticker from tc_cpu_ticks() to cpu_ticks(), which actually happened 
 in r155534 later.

Right.  I was just pointing out a fact.
That change is not going to get undone anyways.

 Looking at r155534 - the only change that is going to get undone is
 using TSC for the accounting ticks, and that is only for machines
 with non-invariant TSC.  And I think that all sufficiently modern
 machines have invariant TSC and, in Intel's words, that's an
 architectural path going forward.
 
 I understand that.  However, it is not clear to me why you want to 
 pessimize performance of old hardware.  If you can convince me old 
 hardware with slow timecounter hardware (e.g., i8254) does not hurt 
 too much, maybe it's okay.

Well, weighing totally bogus stats vs slight stats collection pessimization, I
have a new proposal - why we don't just hardcode some stats values?  That would
give that code unbeatable performance!

 So, I don't think that I propose a dramatic change.
 
 Shrug...  Still I want to see some evidence.

Evidence of what?
That nothing is going to be changed for new hardware?
Or that older hardware won't be slowed down to a crawl?

-- 
Andriy Gapon
___
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to freebsd-current-unsubscr...@freebsd.org


Re: Process accounting/timing has broken recently

2010-12-06 Thread Steve Kargl
On Mon, Dec 06, 2010 at 08:24:27PM +0200, Andriy Gapon wrote:
 on 06/12/2010 20:01 John Baldwin said the following:
  Hmm, I wonder if the eventtimer stuff that has gone into HEAD recently could
  be a factor?  It might change when statclock() is called.
 
 But I think that that code was committed more than 7-10 days ago, which Steve
 mentioned.
 

The 7-10 days is an estimate.  I upgraded world/kernel on
Saturday.  The previous world/kernel could have been older
than I'm guessing.  It could be upto 4 weeks old because
my laptop tends to lag behind the upgrades to my servers.

I would normally use gprof to measure execution times
for the functions I'm writing, but in some quick
testing last night gprof appears to be broken.  I'm 
seeing a larger variation that I would expect in 
self-seconds for the accumulated time for execution
of expf.

-- 
Steve
___
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to freebsd-current-unsubscr...@freebsd.org


Re: Process accounting/timing has broken recently

2010-12-06 Thread Andriy Gapon
on 06/12/2010 20:43 Steve Kargl said the following:
 The 7-10 days is an estimate.  I upgraded world/kernel on
 Saturday.  The previous world/kernel could have been older
 than I'm guessing.  It could be upto 4 weeks old because
 my laptop tends to lag behind the upgrades to my servers.

I see.

 I would normally use gprof to measure execution times
 for the functions I'm writing, but in some quick
 testing last night gprof appears to be broken.  I'm 
 seeing a larger variation that I would expect in 
 self-seconds for the accumulated time for execution
 of expf.

Just guessing - could you try setting sysctl kern.eventtimer.periodic=1 if it's
not 1 already?

And cc-ing Alexander, just in case.

-- 
Andriy Gapon
___
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to freebsd-current-unsubscr...@freebsd.org


Re: Process accounting/timing has broken recently

2010-12-06 Thread Steve Kargl
On Mon, Dec 06, 2010 at 08:46:15PM +0200, Andriy Gapon wrote:
 on 06/12/2010 20:43 Steve Kargl said the following:
  The 7-10 days is an estimate.  I upgraded world/kernel on
  Saturday.  The previous world/kernel could have been older
  than I'm guessing.  It could be upto 4 weeks old because
  my laptop tends to lag behind the upgrades to my servers.
 
 I see.
 
  I would normally use gprof to measure execution times
  for the functions I'm writing, but in some quick
  testing last night gprof appears to be broken.  I'm 
  seeing a larger variation that I would expect in 
  self-seconds for the accumulated time for execution
  of expf.
 
 Just guessing - could you try setting sysctl kern.eventtimer.periodic=1 if 
 it's
 not 1 already?
 
 And cc-ing Alexander, just in case.
 

Thanks for the suggestion.  I'll try this tonight (I left the
laptop at home) and will report back here.

-- 
Steve
___
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to freebsd-current-unsubscr...@freebsd.org


Re: coretemp TjMax

2010-12-06 Thread Xin LI
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA256

Hi,

On 12/04/10 13:59, Irakli wrote:
 Hi,
 
 ns# cpucontrol -m 0x1a2 /dev/cpuctl0
 MSR 0x1a2: 0x 0x1600
 
 ns# grep GenuineIntel /var/run/dmesg.boot
 Origin = GenuineIntel  Id = 0x6fb  Family = 6  Model = f  Stepping = 11

I didn't found any authoritative source that gives me 95.  Where did you
get the information?

Attached is a patch that uses 95C for stepping G0 but I'm really
clueless whether that's right.

 On Tue, Nov 23, 2010 at 5:13 PM, Xin LI delp...@delphij.net
 mailto:delp...@delphij.net wrote:
 
 [Redirected to -curr...@]
 
 Hi,
 
 On 11/15/10 03:32, Irakli wrote:
 Hi
 coretemp gets wrong TjMax for Intel E6750 CPU (CPUID 06FBh), 85
 instead of
 95.
 and therefore monitoring programs see low then room temperature
 (in air
 cooling)
 Please fix this and would be nice allowing users manual setting
 TjMax from
 sysctl
 
 Would you please provide the following information?
 
 cpucontrol -m 0x1a2 /dev/cpuctl0
 
 (kldload cpuctl if necessary).
 
 And:
 
 grep GenuineIntel /var/run/dmesg.boot
 
 Thanks in advance!
 
 Cheers,

- -- 
Xin LI delp...@delphij.nethttp://www.delphij.net/
FreeBSD - The Power to Serve!  Live free or die
-BEGIN PGP SIGNATURE-
Version: GnuPG v2.0.16 (FreeBSD)

iQEcBAEBCAAGBQJM/TCpAAoJEATO+BI/yjfBoxwH/RzrcuHXjo8buG3suGheD2kP
4N1LNMR/lPzmlG9duhqPOE3Y7DsKqe/tiZ91QykyFmJylePHf5gAv+bASP8An+xv
piyq12ghePUoWsl9kYJwSBQ1wkvpkYf6RJ+mWIGTMp3+xpmEa9yyQnnE2AvSWAga
HduALNzJnqqxQwlHFFqi216ay79ItUPvJEWCGeP1AfGt3CJqg1aAJ8fY3rF7m37P
whWg89QqWu6U0WDJ2QFmzJxxtbyHIT9CUcGsJrpfZKVQf2kglPn0rPSLjaBTQcGK
RJMyOW3KI/LueSJ+PgvRNtaSVhhGL2cm4L9Mz2uo/vp5OVoe48oWn68dZgFkffw=
=MKgf
-END PGP SIGNATURE-
Index: coretemp.c
===
--- coretemp.c  (revision 216236)
+++ coretemp.c  (working copy)
@@ -178,8 +178,13 @@
 */
sc-sc_tjmax = 100;
 
-   if ((cpu_model == 0xf  cpu_stepping = 2) || cpu_model == 0xe) {
+   if (cpu_model == 0xf  cpu_stepping == 11) {
/*
+* Use 95C for stepping G0
+*/
+   sc-sc_tjmax = 95;
+   } else if ((cpu_model == 0xf  cpu_stepping = 2) || cpu_model == 0xe) 
{
+   /*
 * On some Core 2 CPUs, there's an undocumented MSR that
 * can tell us if Tj(max) is 100 or 85.
 *
___
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to freebsd-current-unsubscr...@freebsd.org

Re: non-invariant tsc and cputicker

2010-12-06 Thread Andriy Gapon
on 06/12/2010 20:34 Jung-uk Kim said the following:
 I understand that.  However, it is not clear to me why you want to 
 pessimize performance of old hardware.  If you can convince me old 
 hardware with slow timecounter hardware (e.g., i8254) does not hurt 
 too much, maybe it's okay.

Overlooked this point - TSC can be very well used as a timecounter.
And in that case non-invariant TSC would veto P-state changes, which is the 
proper
thing to do, IMO.

-- 
Andriy Gapon
___
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to freebsd-current-unsubscr...@freebsd.org


Re: Process accounting/timing has broken recently

2010-12-06 Thread Alexander Motin

On 06.12.2010 20:49, Steve Kargl wrote:

On Mon, Dec 06, 2010 at 08:46:15PM +0200, Andriy Gapon wrote:

on 06/12/2010 20:43 Steve Kargl said the following:

The 7-10 days is an estimate.  I upgraded world/kernel on
Saturday.  The previous world/kernel could have been older
than I'm guessing.  It could be upto 4 weeks old because
my laptop tends to lag behind the upgrades to my servers.


I see.


I would normally use gprof to measure execution times
for the functions I'm writing, but in some quick
testing last night gprof appears to be broken.  I'm
seeing a larger variation that I would expect in
self-seconds for the accumulated time for execution
of expf.


Just guessing - could you try setting sysctl kern.eventtimer.periodic=1 if it's
not 1 already?

And cc-ing Alexander, just in case.


Thanks for the suggestion.  I'll try this tonight (I left the
laptop at home) and will report back here.


Unless your application utilizes all CPUs all the time, you can also try 
to set sysctl kern.eventtimer.idletick=1.


--
Alexander Motin
___
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to freebsd-current-unsubscr...@freebsd.org


Re: non-invariant tsc and cputicker

2010-12-06 Thread Jung-uk Kim
On Monday 06 December 2010 01:40 pm, Andriy Gapon wrote:
 on 06/12/2010 20:34 Jung-uk Kim said the following:
  On Monday 06 December 2010 12:58 pm, Andriy Gapon wrote:
  on 06/12/2010 19:42 Jung-uk Kim said the following:
  Sigh...  Please see the history of calcru() in
  sys/kern/kern_resource.c.  Most important ones are:
 
  http://svn.freebsd.org/viewvc/base?view=revisionrevision=15544
 4
  http://svn.freebsd.org/viewvc/base?view=revisionrevision=15553
 4
 
  Basically, we chose efficiency over accuracy and you are
  suggesting going backwards.
 
  Well, I guess that it depends.
 
  Looking at r155444 - the time is still going to be accounted in
  ticks (but timecounter ticks).  BTW, I think that this quote
  says something: On more modern hardware no change in
  performance is seen. and that was ~5 years ago.
 
  On slower machines, the avoided multiplications to normalize
  timestams at every context switch, comes out as a 5-7% better
  score on the unixbench/context1 microbenchmark.  On more modern
  hardware no change in performance is seen.
 
  His performance measurement was done for the avoided
  multiplications to normalize timestamps at every context switch,
  not for change CPU ticker from tc_cpu_ticks() to cpu_ticks(),
  which actually happened in r155534 later.

 Right.  I was just pointing out a fact.
 That change is not going to get undone anyways.

  Looking at r155534 - the only change that is going to get undone
  is using TSC for the accounting ticks, and that is only for
  machines with non-invariant TSC.  And I think that all
  sufficiently modern machines have invariant TSC and, in Intel's
  words, that's an architectural path going forward.
 
  I understand that.  However, it is not clear to me why you want
  to pessimize performance of old hardware.  If you can convince me
  old hardware with slow timecounter hardware (e.g., i8254) does
  not hurt too much, maybe it's okay.

 Well, weighing totally bogus stats vs slight stats collection
 pessimization, I have a new proposal - why we don't just hardcode
 some stats values?  That would give that code unbeatable
 performance!

:-) Don't get me wrong, I generally agree with you *iff* it does not 
hurt too much.  Anyway, this issue should be resolved from the root, 
i.e., kern_resouce.c, if possible.

  So, I don't think that I propose a dramatic change.
 
  Shrug...  Still I want to see some evidence.

 Evidence of what?
 That nothing is going to be changed for new hardware?
 Or that older hardware won't be slowed down to a crawl?

The latter, kinda.

Jung-uk Kim
___
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to freebsd-current-unsubscr...@freebsd.org


Re: non-invariant tsc and cputicker

2010-12-06 Thread Andriy Gapon
on 06/12/2010 21:01 Jung-uk Kim said the following:
 :-) Don't get me wrong, I generally agree with you *iff* it does not 
 hurt too much.  Anyway, this issue should be resolved from the root, 
 i.e., kern_resouce.c, if possible.

But what to resolve there?
I just want to always have a stable source cpu ticks, and then everything else
should just work?

BTW, if someone comes up with a patch for more or less correct accounting when
cpu ticks frequency is allowed to change, then I am all for it.
But, IMO, it's just easier to use stable cpu ticks.

-- 
Andriy Gapon
___
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to freebsd-current-unsubscr...@freebsd.org


Re: non-invariant tsc and cputicker

2010-12-06 Thread Jung-uk Kim
On Monday 06 December 2010 01:56 pm, Andriy Gapon wrote:
 on 06/12/2010 20:34 Jung-uk Kim said the following:
  I understand that.  However, it is not clear to me why you want
  to pessimize performance of old hardware.  If you can convince me
  old hardware with slow timecounter hardware (e.g., i8254) does
  not hurt too much, maybe it's okay.

 Overlooked this point - TSC can be very well used as a timecounter.
 And in that case non-invariant TSC would veto P-state changes,
 which is the proper thing to do, IMO.

Yes, thanks to njl.  He made it somewhat bogus from totally bogus.  
I made it almost correct from somewhat bogus for modern P-state 
invariant CPUs. ;-)

Jung-uk Kim
___
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to freebsd-current-unsubscr...@freebsd.org


Re: trying to use xz on manuals.

2010-12-06 Thread Chuck Swiger
On Dec 6, 2010, at 9:13 AM, Alex Kozlov wrote:
 On Tue, Dec 07, 2010 at 02:03:50AM +0900, Norikatsu Shigemura wrote:
  .xz smaller than .gz, but effective is about 96.2%:-(.
 
 Some time ago I do similar tests. Changing compression for base man's to bz2 
 or xz doesn't make much sense.

Oh, agreed.  The issue with small files is that they will always take up at 
least one sector [*]; different compression routines don't gain any benefit if 
they don't change the number of sectors needed to store the file.

More than half of the manpages end up as 1K .gz catman files as it is; ~90% are 
2K or smaller.

Regards,
-- 
-Chuck

[*]: 1K seems to be the smallest fragment size on the particular filesystem I 
was looking at, rather than DEV_BSIZE, ie a 512 byte sector

___
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to freebsd-current-unsubscr...@freebsd.org


Re: non-invariant tsc and cputicker

2010-12-06 Thread Jung-uk Kim
On Monday 06 December 2010 02:09 pm, Andriy Gapon wrote:
 on 06/12/2010 21:01 Jung-uk Kim said the following:
  :-) Don't get me wrong, I generally agree with you *iff* it does
  : not
 
  hurt too much.  Anyway, this issue should be resolved from the
  root, i.e., kern_resouce.c, if possible.

 But what to resolve there?

Better algorithm for stat.

 I just want to always have a stable source cpu ticks, and then
 everything else should just work?

If we had one, yes.  But we don't, at least for old x86 hardware. :-(

 BTW, if someone comes up with a patch for more or less correct
 accounting when cpu ticks frequency is allowed to change, then I
 am all for it. But, IMO, it's just easier to use stable cpu
 ticks.

If it doesn't hurt too much, yes.  Remember the P-state invariant CPUs 
are pretty new.  SMP-correct TSC is quite rare if there is any.

Jung-uk Kim
___
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to freebsd-current-unsubscr...@freebsd.org


Re: non-invariant tsc and cputicker

2010-12-06 Thread Andriy Gapon
on 06/12/2010 21:27 Jung-uk Kim said the following:
 On Monday 06 December 2010 02:09 pm, Andriy Gapon wrote:
 on 06/12/2010 21:01 Jung-uk Kim said the following:
 :-) Don't get me wrong, I generally agree with you *iff* it does
 : not

 hurt too much.  Anyway, this issue should be resolved from the
 root, i.e., kern_resouce.c, if possible.

 But what to resolve there?
 
 Better algorithm for stat.
 
 I just want to always have a stable source cpu ticks, and then
 everything else should just work?
 
 If we had one, yes.  But we don't, at least for old x86 hardware. :-(

This sounds contradictory... I don't follow.
So, TSC as a direct source of cpu ticks is good enough, but TSC as a source for
timecounter acting as a source for cpu ticks is not stable?

 BTW, if someone comes up with a patch for more or less correct
 accounting when cpu ticks frequency is allowed to change, then I
 am all for it. But, IMO, it's just easier to use stable cpu
 ticks.
 
 If it doesn't hurt too much, yes.  Remember the P-state invariant CPUs 
 are pretty new.

Well, not that new in this fast changing world.

 SMP-correct TSC is quite rare if there is any.

This contradicts my experience. All systems that I could test have SMP-correct
TSC.  Yes, they all are 1-2 years old and they all are single-package 
multi-core
 systems.  I tested only one two-socket machine from perf-cluster and it had 
more
or less SMP-correct TSC too.
BTW:
http://people.freebsd.org/~avg/tsc/

But, this SMP-correctness is not a requirement for the cpu ticks accounting that
we are discussing, right?

-- 
Andriy Gapon
___
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to freebsd-current-unsubscr...@freebsd.org


Re: non-invariant tsc and cputicker

2010-12-06 Thread Jung-uk Kim
On Monday 06 December 2010 02:38 pm, Andriy Gapon wrote:
 on 06/12/2010 21:27 Jung-uk Kim said the following:
  On Monday 06 December 2010 02:09 pm, Andriy Gapon wrote:
  on 06/12/2010 21:01 Jung-uk Kim said the following:
  :-) Don't get me wrong, I generally agree with you *iff* it
  : does not
 
  hurt too much.  Anyway, this issue should be resolved from the
  root, i.e., kern_resouce.c, if possible.
 
  But what to resolve there?
 
  Better algorithm for stat.
 
  I just want to always have a stable source cpu ticks, and then
  everything else should just work?
 
  If we had one, yes.  But we don't, at least for old x86 hardware.
  :-(

 This sounds contradictory... I don't follow.
 So, TSC as a direct source of cpu ticks is good enough, but TSC as
 a source for timecounter acting as a source for cpu ticks is not
 stable?

CPU ticker is per-CPU property, not global.  So, it is okay even if it 
cannot be used as a timecounter backend.  If TSC is selected as a 
timecounter source, that means a) it is a P-state invariant UP system 
or b) the user forced it.  If the CPU is P-state invariant, it does 
not matter it is UP or SMP because it is per-CPU property.  If the 
CPU is not invariant or UP system, then it does not allow frequency 
changes as you've noticed.  If the user forced it on SMP, well, the 
user should know its consequence. ;-)

  BTW, if someone comes up with a patch for more or less correct
  accounting when cpu ticks frequency is allowed to change, then
  I am all for it. But, IMO, it's just easier to use stable cpu
  ticks.
 
  If it doesn't hurt too much, yes.  Remember the P-state invariant
  CPUs are pretty new.

 Well, not that new in this fast changing world.

But most of our users do have old hardware, unfortunately.

  SMP-correct TSC is quite rare if there is any.

 This contradicts my experience. All systems that I could test have
 SMP-correct TSC.  Yes, they all are 1-2 years old and they all
 are single-package multi-core systems.

AFAIK, multi-core/single-package/single-socket systems have usually 
P-state invariant TSCs already, i.e., it can be used as a CPU ticker 
naturally.

 I tested only one two-socket machine from perf-cluster and it had
 more or less SMP-correct TSC too.

Unfortunately more or less does not work for us because timecounter 
should never go backwards.  It MUST be monotonic.

 BTW:
 http://people.freebsd.org/~avg/tsc/

Interesting...  I've seen something like this in the past.  In fact, 
I've written my own long ago but I wasn't able to make it 100% 
correct, unfortunately. :-(

 But, this SMP-correctness is not a requirement for the cpu ticks
 accounting that we are discussing, right?

No, it is not.  Sorry, if I confused you somehow.

Jung-uk Kim
___
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to freebsd-current-unsubscr...@freebsd.org


Re: Process accounting/timing has broken recently

2010-12-06 Thread David Xu

John Baldwin wrote:

On Sunday, December 05, 2010 6:18:29 pm Steve Kargl wrote:
  

Sometime in the last 7-10 days, some one made a
change that has broken process accounting/timing.

laptop:kargl[42] foreach i ( 0 1 2 3 4 5 6 7 8 9 )
foreach? time ./testf
foreach? end
Max ULP: 0.501607 for x in [-18.00:88.70] with dx = 1.067100e-04
   69.55 real38.39 user30.94 sys
Max ULP: 0.501607 for x in [-18.00:88.70] with dx = 1.067100e-04
   68.82 real40.95 user27.60 sys
Max ULP: 0.501607 for x in [-18.00:88.70] with dx = 1.067100e-04
   69.14 real38.90 user30.02 sys
Max ULP: 0.501607 for x in [-18.00:88.70] with dx = 1.067100e-04
   68.79 real40.59 user27.99 sys
Max ULP: 0.501607 for x in [-18.00:88.70] with dx = 1.067100e-04
   68.93 real39.76 user28.96 sys
Max ULP: 0.501607 for x in [-18.00:88.70] with dx = 1.067100e-04
   68.71 real41.21 user27.29 sys
Max ULP: 0.501607 for x in [-18.00:88.70] with dx = 1.067100e-04
   69.05 real39.68 user29.15 sys
Max ULP: 0.501607 for x in [-18.00:88.70] with dx = 1.067100e-04
   68.99 real39.98 user28.80 sys
Max ULP: 0.501607 for x in [-18.00:88.70] with dx = 1.067100e-04
   69.02 real39.64 user29.16 sys
Max ULP: 0.501607 for x in [-18.00:88.70] with dx = 1.067100e-04
   69.38 real37.49 user31.67 sys

testf is a numerically intensive program that tests the
accuracy of expf() in a tight loop.  User time varies
by ~3 seconds on my lightly loaded 2 GHz core2 duo processor.
I'm fairly certain that the code does not suddenly grow/loose
6 GFLOP of operations.



The user/sys thing is a hack (and has been).  We sample the PC at stathz (~128 
hz) to figure out a user vs sys split and use that to divide up the total 
runtime (which actually is fairly accurate).  All you need is for the clock 
ticks to fire just a bit differently between runs to get a swing in user vs 
system time.


What I would like is to keep separate raw bintime's for user vs system time in 
the raw data instead, but that would involve checking the CPU ticker more 
often (e.g. twice for each syscall, interrupt, and trap in addition to the 
current once per context switch).  So far folks seem to be more worried about 
the extra overhead rather than the loss of accuracy.


  

Adding any instruction into global syscall path should be cautioned, it
is worse then before, thinking about a threaded application, a userland
thread may have locked a mutex and calls a system call, the overhead
added to system call path can directly affect a threaded application's
performance now, because the time window the mutex is held
is longer than before, I have seen some people likes to fiddle with
system call path, it should be cautioned.

Regards,
David Xu

___
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to freebsd-current-unsubscr...@freebsd.org


Re: coretemp TjMax

2010-12-06 Thread Xin LI
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA256

Hi,

On 12/06/10 12:52, Irakli wrote:
 Information about this cpu I get from windows coretemp program
 http://www.alcpu.com/CoreTemp/
 
 this is screenshot of this program (new version)
 http://technbball.files.wordpress.com/2009/09/coretemp_e6750.jpg
 
 older version gets 100 degree for this cpu
 http://img233.imageshack.us/img233/8525/voltagecm9.jpg
 
 and some forums
 http://www.overclock.net/intel-cpus/378478-tjmax-e6750.html
 
 I haven't any authoritative source but sure 85 degree is wrong for this cpu
 because freebsd gets lower core temperature then room temperature is

Ok to make it clear - I did see some forums mentioned 95 C but these are
not authoritative in my opinion (e.g. I was not able to figure out if
all 0x6fb CPUs have 95C TjMax, or just a few models, etc).

 can you add some code for setting tjmax manualy from sysctl ?

Yes will do.  Did the patch help your situation by the way?

 thank you
 
 
 On Mon, Dec 6, 2010 at 10:51 PM, Xin LI delp...@delphij.net
 mailto:delp...@delphij.net wrote:
 
 Hi,
 
 On 12/04/10 13:59, Irakli wrote:
 Hi,
 
 ns# cpucontrol -m 0x1a2 /dev/cpuctl0
 MSR 0x1a2: 0x 0x1600
 
 ns# grep GenuineIntel /var/run/dmesg.boot
 Origin = GenuineIntel  Id = 0x6fb  Family = 6  Model = f
  Stepping = 11
 
 I didn't found any authoritative source that gives me 95.  Where did you
 get the information?
 
 Attached is a patch that uses 95C for stepping G0 but I'm really
 clueless whether that's right.
 
 On Tue, Nov 23, 2010 at 5:13 PM, Xin LI delp...@delphij.net
 mailto:delp...@delphij.net
 mailto:delp...@delphij.net mailto:delp...@delphij.net wrote:
 
 [Redirected to -curr...@]
 
 Hi,
 
 On 11/15/10 03:32, Irakli wrote:
 Hi
 coretemp gets wrong TjMax for Intel E6750 CPU (CPUID 06FBh), 85
 instead of
 95.
 and therefore monitoring programs see low then room temperature
 (in air
 cooling)
 Please fix this and would be nice allowing users manual setting
 TjMax from
 sysctl
 
 Would you please provide the following information?
 
 cpucontrol -m 0x1a2 /dev/cpuctl0
 
 (kldload cpuctl if necessary).
 
 And:
 
 grep GenuineIntel /var/run/dmesg.boot
 
 Thanks in advance!
 
 Cheers,
 

 -- 
 ][rakli




- -- 
Xin LI delp...@delphij.nethttp://www.delphij.net/
FreeBSD - The Power to Serve!  Live free or die
-BEGIN PGP SIGNATURE-
Version: GnuPG v2.0.16 (FreeBSD)

iQEcBAEBCAAGBQJM/Y6hAAoJEATO+BI/yjfB6tAIAJSzuNDQEKBhwaXHGKBTavai
2OlF8L+clazY2BrhzV0sBWnqewABHMHmEwtWqM+dp7GkD0TuiD9Shft4NG/pC+Hm
wT/7aF7Ipa0jrH6bo5oqk42oqNWOKt6edBSARdYtodtRTRKAFocyje0J0XNpw6r8
AWXxM1NXNM0/+Nf0ZG1jwLu8WhLGQ9V0eJ510Kd1uKh+jZkyOnBlP3tipkrDLgRQ
x8CdCJHtuWrqIk8KIOqqMMT3WVpddP4hdNH7usQYkHYh3bVthTamz75E+fGDut9w
Poia7FnRXC5odC1EWU8QUMuzpSzNM5Hy/6ePKOrxhfr0x9WpyssJzl9tPHfp/2s=
=cPJd
-END PGP SIGNATURE-
___
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to freebsd-current-unsubscr...@freebsd.org


Re: trying to use xz on manuals.

2010-12-06 Thread Tim Kientzle

On Dec 6, 2010, at 11:17 AM, Chuck Swiger wrote:

 On Dec 6, 2010, at 9:13 AM, Alex Kozlov wrote:
 On Tue, Dec 07, 2010 at 02:03:50AM +0900, Norikatsu Shigemura wrote:
 .xz smaller than .gz, but effective is about 96.2%:-(.
 
 Some time ago I do similar tests. Changing compression for base man's to bz2 
 or xz doesn't make much sense.
 
 Oh, agreed.  The issue with small files is that they will always take up at 
 least one sector [*]; different compression routines don't gain any benefit 
 if they don't change the number of sectors needed to store the file.
 
 More than half of the manpages end up as 1K .gz catman files as it is; ~90% 
 are 2K or smaller.

It might make sense if XZ decompression were significantly
faster than GZip decompression.  (Especially since man pages
are decompressed much more often than they are compressed.)

Tim

___
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to freebsd-current-unsubscr...@freebsd.org