Port-i386 archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Turning on stack protection by default



On Fri Oct 23 2009 at 09:20:42 +0100, Matthias Scheler wrote:
> On Fri, Oct 23, 2009 at 01:47:54AM +0100, Mindaugas Rasiukevicius wrote:
> > > Considering that this feature helps finding bugs and increases system
> > > security I would like to suggest to turn in on by default on these
> > > two NetBSD ports.
> > 
> > Can you provide some numbers how it affects performance?
> 
> I've attached a little test program which is very recursive.(*)
> Where are the results on my NetBSD/amd64 5.0_STABLE system
> which is driven by a ?Xen 3040 CP running at 1.83GHz:
> 
> tron@colwyn:~>gcc fib.c -Wall -O2 -o fib  
> tron@colwyn:~>time ./fib 42
> 42 -> 267914296
> ./fib 42  14.07s user 0.00s system 99% cpu 14.119 total
> tron@colwyn:~>gcc fib.c -fstack-protector-all -Wstack-protector -Wall -O2 -o 
> fib 
> tron@colwyn:~>time ./fib 42
> 42 -> 267914296
> ./fib 42  15.07s user 0.00s system 98% cpu 15.261 total
> 
> That is 8% overhead in a program which I believe gets affected particular
> bad by enabling stack protection.
> 
>       Kind regards
> 
> (*) Yes, this can be done much more efficient. The program is written
>     to defeat some of GCC's optimisations and to enforce stack protection.

Hi,

I think I support enabling it (per gut feeling).

But to make up my mind, could you post some useful numbers on performance?
I don't really care if a program written to be slow is slow (it's almost
like you're arguing against your own proposal! ;).

What's the effect on something that people might actually care about,
say build.sh or apachebench?  Do we have a "firefoxbench" which measures
web client speed?  Or run the mysql benchmark Andy used extensively in
his work.  lmbench might be good to run too, just for a general overview.

  - antti


Home | Main Index | Thread Index | Old Index