Check out the new USENIX Web site.

next up previous
Next: Varying file cache size Up: Experimental evaluation Previous: Performance analysis

Performance side-effects

In addition to generating hints, speculative execution will have other, less desirable performance effects. For example, since the speculating thread uses shadow code and performs copy-on-write, the speculating applications have larger memory footprints, consume memory more rapidly, and experience more page faults than the original applications. Table 6 shows that the memory footprints increase by 544 KB to 4.1 MB, the number of page reclaimes increases by 95 to 633, and the number of page faults increases by 12 to 40. In addition, the speculating applications may generate extraneous signals because speculative execution may use erroneous data in its calculations. Table 6 shows that the speculating applications generate up to 39 extraneous signals. However, many of the additional page reclaims and page faults, and all of the additional signals, will occur while the original thread is blocked on I/O, so that they would be nonobservable overhead. As described in Section 4.3, the observable overhead of these performance side-effects is captured within the less than 4% increases in runtime observed when hints were disabled.

Benchmark Memory Footprint Page Reclaims Page Faults Signals
Agrep Original 160 KB 39 4 0
SpecHint 704 KB 134 16 0
Manual 152 KB 39 4 0
Gnuld Original 10.1 MB 1,341 12 0
SpecHint 14.2 MB 1,974 52 39
Manual 10.5 MB 1,389 14 0
XDataSlice Original 62.0 MB 8,105 61 0
SpecHint 62.5 MB 8,202 93 2
Manual 62.1 MB 8,104 60 0

Table 6: Performance side-effects of speculative execution. Footprint is the maximum amount of memory that is physically mapped on behalf of the application at any time. Reclaims is the number of page reclaims, and Faults is the number of page faults, generated by the application. A page reclaim occurs if a referenced page is still in memory but is not physically mapped, and therefore requires operating system intervention but does not require a disk access. On our evaluation platform, at least one third of the memory-resident pages are not physically mapped, as determined by an LRU policy. Sigs is the number of signals generated by the application. For our applications, these signals were either segmentation violations or floating point exceptions.


Fay Chang
Tue Jan 5 18:05:04 EST 1999