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

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

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!