Re: [PATCH 1/5] freepgt: free_pgtables use vma list

David S. Miller
2005-03-23T00:05:09Z

Ok, here are (finally, I've been debugging this so much purely
to see these things) some lmbench numbers with Hugh's base
patch on sparc64.

Ignore my previous comments about shell performance getting
worse, it's some difference that makes things run more slowly
in single user mode compared to a fully brought up system.

First, for 32-bit tasks.

BEFORE
Process fork+exit: 171.4483 microseconds
Process fork+exit: 171.9688 microseconds
Process fork+exit: 169.2727 microseconds
Process fork+exit: 169.0333 microseconds
Process fork+exit: 165.8065 microseconds
Process fork+execve: 555.7000 microseconds
Process fork+execve: 556.6000 microseconds
Process fork+execve: 552.6000 microseconds
Process fork+execve: 557.1000 microseconds
Process fork+execve: 552.3333 microseconds
Process fork+/bin/sh -c: 2207.3333 microseconds
Process fork+/bin/sh -c: 2183.0000 microseconds
Process fork+/bin/sh -c: 2179.6667 microseconds
Process fork+/bin/sh -c: 2190.0000 microseconds
Process fork+/bin/sh -c: 2197.6667 microseconds

AFTER
Process fork+exit: 142.9487 microseconds
Process fork+exit: 147.8649 microseconds
Process fork+exit: 139.0250 microseconds
Process fork+exit: 138.9250 microseconds
Process fork+exit: 136.9268 microseconds
Process fork+execve: 478.3333 microseconds
Process fork+execve: 479.1667 microseconds
Process fork+execve: 479.9091 microseconds
Process fork+execve: 480.1667 microseconds
Process fork+execve: 479.9091 microseconds
Process fork+/bin/sh -c: 2026.0000 microseconds
Process fork+/bin/sh -c: 2029.6667 microseconds
Process fork+/bin/sh -c: 2044.6667 microseconds
Process fork+/bin/sh -c: 2037.6667 microseconds
Process fork+/bin/sh -c: 2028.6667 microseconds

Pretty good, now for 64-bit processes.

BEFORE
Process fork+exit: 226.5200 microseconds
Process fork+exit: 230.0417 microseconds
Process fork+exit: 223.8800 microseconds
Process fork+exit: 226.4091 microseconds
Process fork+exit: 219.3043 microseconds
Process fork+execve: 799.8571 microseconds
Process fork+execve: 806.1429 microseconds
Process fork+execve: 799.5714 microseconds
Process fork+execve: 800.8571 microseconds
Process fork+execve: 788.7143 microseconds
Process fork+/bin/sh -c: 2655.0000 microseconds
Process fork+/bin/sh -c: 2668.5000 microseconds
Process fork+/bin/sh -c: 2649.0000 microseconds
Process fork+/bin/sh -c: 2662.5000 microseconds
Process fork+/bin/sh -c: 2642.0000 microseconds

AFTER
Process fork+exit: 165.1212 microseconds
Process fork+exit: 159.4571 microseconds
Process fork+exit: 160.3714 microseconds
Process fork+exit: 158.9091 microseconds
Process fork+exit: 157.2188 microseconds
Process fork+execve: 536.4545 microseconds
Process fork+execve: 542.0909 microseconds
Process fork+execve: 536.3000 microseconds
Process fork+execve: 540.6364 microseconds
Process fork+execve: 537.1818 microseconds
Process fork+/bin/sh -c: 2275.0000 microseconds
Process fork+/bin/sh -c: 2272.0000 microseconds
Process fork+/bin/sh -c: 2275.6667 microseconds
Process fork+/bin/sh -c: 2270.3333 microseconds
Process fork+/bin/sh -c: 2284.0000 microseconds

Quite nice. It makes the 64-bit numbers on par with
the 32-bit numbers.