[ Previous | Next | Contents | Home | Search ]
AIX Version 4.3 Kernel Extensions and Device Support Programming Concepts

Changing the mwcc_entries Variable

The default for the number of the logical volume manager mirror write consistency cache (MWCC) is 62, or 0x3e is the hexadecimal . This number is double the original default and improves the user's write performance, but it also increases the time needed to make all mirrors consistent again at volume-group vary-on time after a crash. These variables are all system load-dependent.

Note: This procedure modifies the LVM device driver binary code using the adb command. Care should be taken when following this procedure.

Prerequisite Tasks or Conditions

Procedure

  1. Change to the /usr/lib/drivers directory.
  2. At the command line, type:
    dump -h hd_pin
    In the .data section header is the RAWptr file, which contains a hex address. Record this address to be used later. An example hex address is 0x0000fc00 .
  3. At the command line, type:
    dump -n hd_pin | grep mwcc_entries
    The second field displayed is the offset for the variable. An example is 0x000003f8 .
  4. Add the hex address found in the RAWptr file to the offset for the variable to get the address of the mwcc_entries variable. For example:
    0x0000fc00 + 0x000003f8 = 0x0000fff8
  5. Make a copy of the hd_pin file by typing the following at the command line:
    cp hd_pin hd_pin.orig
  6. Use the adb command to modify the hd_pin file binary by typing the following at the command line:
    abd -w hd_pin
    Note: The adb command issues a warning that the string table is missing or the object is being stripped.
  7. Issue the following command in response to the adb command to verify you have the correct address:
    0xADDR/X
    where ADDR is the address you generated in step 4.

    If the hd_pin file has not been modified in this way, the adb command responds with:

    ADDR:   3e
    If this procedure has been done, the adb command responds with:
    ADDR:   zz
    where zz is the current value, from 0x1 to 0x3e, for the number of MWCC entries. If the value is not between 0x1 and 0x3e, check that you are using the correct address.
  8. Modify the address to the value you want for the number of MWCC entries by typing the following at the command line:
    0xADDR/W zz
    where ADDR is the address derived in step 4 and zz is a hex number between 0x1 and 0x3e.
  9. Exit the adb command by using the Ctrl-D key sequence.
  10. Rebuild the startup logical volume by typing the following at the command line:
    bosboot -a
  11. Shut down the system by typing the following at the command line:
    shutdown -F
  12. Restart the system.

    The system runs with the size of the mirror write consistency cache set to the new value.

    Note: The new mwcc_entries value must be from 0x1 to 0x3e, inclusive. Unpredictable results occur if these bounds are violated.

Related Information

Serial DASD Subsystem Device Driver in AIX Version 4.3 Technical Reference: Kernel and Subsystems Volume 2.

The lvdd special file.

The write subroutine, readx subroutine.

The bread kernel service, bwrite block I/O kernel services.

The adb command.


[ Previous | Next | Contents | Home | Search ]