RE: Request for information - timers, hz, interrupts

2009-12-12 Thread Phillip Spring

fact:

 

I had to clean up a motherboard to boot Suse 10.2 kernel.

I think that dust and dead insects are for Windows 2003 only.

 

dog -- now with the right sender name :)

 


 
 To: freebsd-hackers@freebsd.org
 From: ivo...@freebsd.org
 Date: Fri, 4 Dec 2009 15:52:39 +0100
 Subject: Request for information - timers, hz, interrupts
 
 For a long time, at least in the 6-stable timeframe, I was used to 
 seeing timer interrupts going at the frequency of 2*HZ, e.g. this is 
 from 6.4-RELEASE:
 
 kern.clockrate: { hz = 250, tick = 4000, profhz = 166, stathz = 33 }
 debug.psm.hz: 20
 
 cpu0: timer 6789885563 499
 cpu2: timer 6789885538 499
 cpu1: timer 6789885538 499
 cpu3: timer 6789885537 499
 
 Then sometime in 7.x this changed to 4*HZ, which continues in 8.x, e.g. 
 from 7.2-RELEASE:
 
 kern.clockrate: { hz = 250, tick = 4000, profhz = 1000, stathz = 142 }
 kern.hz: 250
 
 cpu0: timer 1368329715 988
 cpu1: timer 1368324640 988
 cpu2: timer 1367642854 988
 cpu3: timer 1367642874 988
 
 I'm not very worried about it (though maybe laptop users might be 
 because of potential power drainage) but would like to know the 
 explanation behind it.
 
 Presumably it has something to do with profhz but what and why? There 
 isn't an obvious correlation between profhz frequency in 6.x and HZ and 
 in 7.x. and HZ.
 
 ___
 freebsd-hackers@freebsd.org mailing list
 http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
 To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org
  
_
Windows 7: agora com conexões automáticas de rede. Conheça.
http://www.microsoft.com/brasil/windows7/default.html?WT.mc_id=1539___
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org


Re: Superpages on amd64 FreeBSD 7.2-STABLE

2009-12-12 Thread Robert Watson


On Thu, 10 Dec 2009, Nate Eldredge wrote:

What about using posix_spawn(3)?  This is implemented in terms of vfork(), 
so you'll gain the same performance advantages, but it avoids many of 
vfork's pitfalls.  Also, since it's a POSIX standard function, you needn't 
worry that it will go away or change its semantics someday.


Just as a note here: while we do posix_spawn(3) as a library function, Mac OS 
X does it as a system call.  As a result, they can implement certain spawn 
flags that we can't, among others, the ability to have the newly created 
process/image be suspended before its first instruction executes.  This would 
be very useful when debugging the runtime linker, among other things.  On the 
other hand, it's quite a complex kernel code path...


Robert N M Watson
Computer Laboratory
University of Cambridge
___
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org


Re: Superpages on amd64 FreeBSD 7.2-STABLE

2009-12-12 Thread Alan Cox
On Thu, Dec 10, 2009 at 8:50 AM, Bernd Walter ti...@cicely7.cicely.dewrote:

 On Wed, Dec 09, 2009 at 09:07:33AM -0500, John Baldwin wrote:
  On Thursday 26 November 2009 10:14:20 am Linda Messerschmidt wrote:
   It's not clear to me if this might be a problem with the superpages
   implementation, or if squid does something particularly horrible to
   its memory when it forks to cause this, but I wanted to ask about it
   on the list in case somebody who understands it better might know
   whats going on. :-)
 
  I talked with Alan Cox some about this off-list and there is a case that
 can
  cause this behavior if the parent squid process takes write faults on a
  superpage before the child process has called exec() then it can result
 in
  superpages being fragmented and never reassembled.  Using vfork() should
  prevent this from happening.  It is a known issue, but it will probably
 be
  some time before it is addressed.  There is lower hanging fruit in other
 areas
  in the VM that will probably be worked on first.

 For me the whole threads puzzles me.
 Especially because vfork is often called a solution.

 Scenario A
 Parent with super page
 fork/exec
 This problem can happen because there is a race.
 The parent now has it's super pages fragmented permanently!?
 the child throws away his pages because of the exec!?

 Scenario B
 Parent with super page
 vfork/exec
 This problem won't happen because the child has no pseudo copy of the
 parents memory and then starts with a completely new map.

 Scenario C
 Parent with super page
 fork/ no exec
 The problem can happen because the child shares the same memory over
 it's complete lifetime.
 The parent can get it's super pages fragmented over time.


I'm not sure how you are defining problem.  If we define problem as I
would, i.e., that re-promotion can never occur, then Scenario C is not
a problem scenario, only Scenario A is.

The source of the problem in Scenario A is basically that we have two ways
of handling copy-on-write faults.  Before the exec() occurs, copy-on-write
faults are handled as you might intuit from the name, a new physical copy is
made.  If the entirety of the 2MB region is written to before the exec(),
then
this region will be promoted to a superpage.  However, once the exec()
occurs,
copy-on-write faults are optimized.  Specifically, the kernel recognizes
that
the underlying physical page is no longer shared with the child and simply
restores write access to it.  It is the combination of these two methods
that
effectively blocks re-promotion because the underlying 4KB physical pages
within a 2MB region are no longer contiguous.

In other words, once the first page within a region has been copied, you
have
a choice to make: Do you perform avoidable copies or do you abandon the
possibility of ever creating a superpage.  The former has a significant
one-time cost and the latter has a small recurring cost.  Not knowing how
much the latter will add up to, I chose the former.  However, that choice
may change in time, particularly, if I find an effective heuristic for
choosing
between the two options.

Anyway, please keep trying superpages with large memory applications like
this.  Reports like this help me to prioritize my efforts.

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