11.01.2013 Views

IBM AIX Continuous Availability Features - IBM Redbooks

IBM AIX Continuous Availability Features - IBM Redbooks

IBM AIX Continuous Availability Features - IBM Redbooks

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.

KKEY_UPUBLIC, KKEY_FILE_DATA<br />

KKEY_UPRIVATE1<br />

KKEY_PUBLIC<br />

KKEY_BLOCK_DEV<br />

KKEY_FILE_SYSTEM<br />

KKEY_COMMO<br />

KKEY_NETM<br />

KKEY_USB<br />

KKEY_GRAPHICS<br />

KKEY_DMA<br />

KKEY_TRB<br />

KKEY_IOMAP<br />

KKEY_PRIVATE1-32<br />

keys for kernel internal<br />

use, ex:<br />

KKEY_VMM_PMAP<br />

Mapping of<br />

KEY_SET to<br />

HKEY_SET<br />

through ABI<br />

KKEY_LDR<br />

KKEY_LFS<br />

KKEY_J2<br />

......<br />

KKEY_LDATALOC<br />

KKEY_KER<br />

Figure 3-2 PFT entry with AMR for a typical kernel process/execution path on P6 hardware<br />

For P6 hardware, there are only eight available hardware keys, so each keyset will be<br />

mapped to a 16-bit AMR. Each bit-pair in AMR may have more than one key mapped to it.<br />

For example, if key 4 is set in AMR, that means at least one of KKEY_COMMO,<br />

KKEY_NETM, KKEY_USB, and KKEY_GRAPHICS has been added to the hardware keyset.<br />

Two base kernel domains are provided. Hardware key 6 is used for critical kernel functions.<br />

Hardware key 7 for all other base kernel keys. Hardware key 5 is used for kernel extension<br />

private data keys. Hardware keys 3 to 5 are used for kernel extension domains. Two keys are<br />

dedicated for user mode kernel keys. KKEY_UPRIVATE1 is allocated by default for potential<br />

user mode.<br />

3.7.4 Degrees of storage key protection and porting considerations<br />

A kernel extension might support storage protection keys to varying degrees, depending on<br />

its unique requirements. These degrees are explored in the next section.<br />

Key-unsafe kernel extension<br />

A key-unsafe kernel extension does not contain any explicit support for storage protection<br />

keys. Extensions in this class are older code written without regard to storage key protection,<br />

needing largely unrestricted access to all memory.<br />

It is the kernel's responsibility to ensure that legacy code continues to function as it did on<br />

prior <strong>AIX</strong> releases and on hardware without storage key support, even though such code<br />

might access kernel private data.<br />

84 <strong>IBM</strong> <strong>AIX</strong> <strong>Continuous</strong> <strong>Availability</strong> <strong>Features</strong><br />

0<br />

1<br />

2<br />

3<br />

4<br />

5<br />

6<br />

7<br />

64 bit KEY_SET<br />

KEY0<br />

KEY1<br />

KEY2<br />

.<br />

.<br />

.<br />

KEY30<br />

KEY31<br />

W R<br />

AMR<br />

PFT<br />

Page frames<br />

page #x<br />

page #x + 1<br />

page #x + 2<br />

Note: Kernel extensions really should never<br />

need keys for internal use (hkey 6)

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

Saved successfully!

Ooh no, something went wrong!