24.05.2014 Views

AIX Version 4.3 Differences Guide

AIX Version 4.3 Differences Guide

AIX Version 4.3 Differences Guide

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

2.6.2 Debug Modifications<br />

Since the debugger cannot store to some areas in virtual mode due to kernel<br />

protection, the debugger has been altered so that all stores to virtual memory<br />

addresses are first transplanted and then performed in real mode. This operation<br />

is transparent to the debug user. It requires a modification to the<br />

get_put_data_aligned() routine so that virtual operations are translated and<br />

performed in real mode. I/O space has not been affected.<br />

2.6.3 Stack Overflow Protection<br />

A stack overflow detection mechanism has been implemented. i_poll() and<br />

i_poll_soft() check the MST save-area located lower in memory to see if the<br />

csa_prev values, that would be used if the interrupt is interrupted, are valid. If this<br />

location contains incorrect data, it is repaired if possible, and the code logs an<br />

error.<br />

2.7 SMP TTY Handling<br />

Currently on J30 and J40 SMP systems equipped with 128-port adapters, when<br />

the system is under load, CPU 0 spends a great deal of time off-level polling the<br />

various 128-port adapters for incoming events.<br />

To alleviate this problem, instead of CPU 0 being used as a timer handler, the<br />

load has been passed to other CPUs that are available, thereby improving the<br />

overall SMP performance.<br />

2.8 Faster Per-Thread Data<br />

In previous versions of <strong>AIX</strong>, all threads shared an identical address space. When<br />

per-thread data needed to be accessed, a fairly expensive lookup had to be<br />

performed by the get_thread_specific() routine.<br />

In a non-threaded version of the OpenGL API (which is very call intensive), tests<br />

show that you can expect to spend roughly 150 cycles per call (on average) in a<br />

routine. Using the existing get-thread-specific() routine would add approximately<br />

70 cycles (or 50 percent overhead) to enable a multi-threaded OpenGL API. A<br />

much faster mechanism to access per-thread data for 32-bit systems is therefore<br />

required. For 32-bit systems, a separate segment 0 for each processor is now<br />

provided. This segment contains a page of thread-specific data that is modified<br />

as each thread is swapped in. Faster access to private memory should also<br />

provide benefits to the thread libraries.<br />

2.9 Expanded Limits on Open Files (<strong>4.3</strong>.1)<br />

In previous versions of <strong>AIX</strong>, a single process was limited to a maximum of 2000<br />

open files at any one time. There was also a total system-wide limit of 200,000<br />

open files. This number was entirely arbitrary, and although it was perfectly<br />

adequate for most processes, it was not enough for some. <strong>AIX</strong> <strong>Version</strong> <strong>4.3</strong>.1<br />

increases these limits to the following.<br />

• Maximum of 1,048,576 open files system wide.<br />

• Maximum of 32,767 open files per process.<br />

<strong>AIX</strong> Kernel Enhancements 19

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!